:root {
	--cbb-coral: #df795e;
	--cbb-coral-dark: #bd5d48;
	--cbb-peach: #f4ae93;
	--cbb-blush: #f8ddd4;
	--cbb-cream: #fff8ef;
	--cbb-paper: #fffdf9;
	--cbb-blue: #6f98aa;
	--cbb-blue-dark: #547b8d;
	--cbb-cocoa: #3a2722;
	--cbb-muted: #765f56;
	--cbb-line: #ead7cc;
	--cbb-shadow: 0 20px 60px rgba(83, 48, 38, .12);
	--cbb-serif: Georgia, "Times New Roman", serif;
	--cbb-sans: "Trebuchet MS", Arial, sans-serif;
}

html {
	scroll-behavior: smooth;
}

body.elementor-template-canvas {
	background: var(--cbb-cream);
	color: var(--cbb-cocoa);
	font-family: var(--cbb-sans);
	margin: 0;
	overflow-x: hidden;
}

.elementor-page .elementor-widget-text-editor,
.elementor-page .elementor-widget-text-editor p,
.elementor-page .elementor-widget-icon-box p {
	color: var(--cbb-muted);
	font-family: var(--cbb-sans);
	font-size: 16px;
	line-height: 1.75;
}

.elementor-page .elementor-heading-title {
	color: var(--cbb-cocoa);
	font-family: var(--cbb-serif);
	font-weight: 700;
	line-height: 1.03;
}

.elementor-section .elementor-container {
	position: relative;
}

.elementor-page .elementor-button,
.cbb-btn,
.cbb-form-submit {
	align-items: center;
	background: var(--cbb-coral);
	border: 2px solid var(--cbb-coral);
	border-radius: 999px;
	box-shadow: none;
	color: #fff;
	display: inline-flex;
	font-family: var(--cbb-sans);
	font-size: 13px;
	font-weight: 700;
	gap: 12px;
	justify-content: center;
	letter-spacing: .045em;
	min-height: 48px;
	padding: 12px 23px;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}

.elementor-page .elementor-button:hover,
.elementor-page .elementor-button:focus,
.cbb-btn:hover,
.cbb-btn:focus,
.cbb-form-submit:hover,
.cbb-form-submit:focus {
	background: var(--cbb-coral-dark);
	border-color: var(--cbb-coral-dark);
	box-shadow: 0 10px 22px rgba(189, 93, 72, .22);
	color: #fff;
	transform: translateY(-2px);
}

.cbb-announcement {
	background: var(--cbb-blue);
	color: #fff;
	min-height: 35px;
}

.cbb-announcement .elementor-widget-wrap {
	padding: 0 !important;
}

.cbb-announcement-text,
.cbb-announcement-text p {
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 700;
	letter-spacing: .12em;
	margin: 0 !important;
	padding: 8px 16px;
	text-align: center;
	text-transform: uppercase;
}

.cbb-site-header {
	background: rgba(255, 253, 249, .96);
	border-bottom: 1px solid rgba(223, 121, 94, .18);
	box-shadow: 0 8px 25px rgba(58, 39, 34, .04);
	position: relative;
	z-index: 50;
}

.cbb-site-header > .elementor-container {
	align-items: center;
	min-height: 94px;
}

.cbb-site-header .elementor-column-gap-extended > .elementor-column > .elementor-element-populated {
	padding: 10px 18px;
}

.cbb-header-logo .elementor-image {
	text-align: left;
}

.cbb-header-logo img {
	height: 70px !important;
	max-width: 245px !important;
	object-fit: contain;
	object-position: left center;
	width: 100% !important;
}

.cbb-nav-widget .elementor-widget-container {
	width: 100%;
}

.cbb-nav {
	align-items: center;
	display: flex;
	gap: clamp(14px, 2vw, 27px);
	justify-content: center;
}

.cbb-nav a {
	color: var(--cbb-cocoa);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .065em;
	position: relative;
	text-decoration: none;
	text-transform: uppercase;
}

.cbb-nav a::after {
	background: var(--cbb-coral);
	border-radius: 2px;
	bottom: -8px;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%) scaleX(0);
	transition: transform .2s ease;
	width: 100%;
}

.cbb-nav a:hover::after,
.cbb-nav a:focus::after {
	transform: translateX(-50%) scaleX(1);
}

.cbb-mobile-toggle {
	background: none;
	border: 0;
	cursor: pointer;
	display: none;
	height: 44px;
	margin-left: auto;
	padding: 10px;
	width: 48px;
}

.cbb-mobile-toggle > span:not(.screen-reader-text) {
	background: var(--cbb-cocoa);
	display: block;
	height: 2px;
	margin: 5px 0;
	transition: transform .2s ease, opacity .2s ease;
	width: 27px;
}

.cbb-mobile-toggle[aria-expanded="true"] > span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.cbb-mobile-toggle[aria-expanded="true"] > span:nth-child(2) {
	opacity: 0;
}

.cbb-mobile-toggle[aria-expanded="true"] > span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.screen-reader-text {
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	clip: rect(0, 0, 0, 0);
}

.cbb-header-button .elementor-button {
	min-height: 44px;
	padding: 10px 19px;
	width: 100%;
}

.cbb-home-hero {
	background:
		radial-gradient(circle at 6% 20%, rgba(255, 255, 255, .72) 0 5px, transparent 6px),
		radial-gradient(circle at 43% 8%, rgba(111, 152, 170, .14) 0 4px, transparent 5px),
		linear-gradient(135deg, #fff9f2 0%, #f9e0d7 55%, #f2c2b2 100%);
	overflow: visible;
	padding: 86px 0 105px;
	position: relative;
}

.cbb-home-hero::after {
	background: var(--cbb-paper);
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
	bottom: -43px;
	content: "";
	height: 88px;
	left: -5%;
	position: absolute;
	width: 110%;
	z-index: 1;
}

.cbb-home-hero > .elementor-container {
	align-items: center;
}

.cbb-hero-copy-col {
	padding-right: 4%;
	z-index: 3;
}

.cbb-eyebrow p {
	color: var(--cbb-coral-dark) !important;
	font-size: 11px !important;
	font-weight: 800;
	letter-spacing: .16em;
	margin: 0 0 17px;
	text-transform: uppercase;
}

.cbb-hero-title .elementor-heading-title {
	font-size: clamp(56px, 6.2vw, 94px);
	letter-spacing: -.055em;
}

.cbb-hero-title .elementor-heading-title span {
	color: var(--cbb-coral);
	display: block;
	font-family: "Brush Script MT", "Segoe Script", cursive;
	font-size: 1.04em;
	font-weight: 500;
	letter-spacing: -.04em;
	line-height: .83;
	transform: rotate(-4deg);
	transform-origin: left center;
}

.cbb-hero-copy,
.cbb-hero-copy p {
	font-size: 17px !important;
	max-width: 560px;
}

.cbb-button-pair {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-top: 28px;
}

.cbb-btn-ghost {
	background: transparent;
	border-color: var(--cbb-cocoa);
	color: var(--cbb-cocoa);
}

.cbb-btn-ghost:hover,
.cbb-btn-ghost:focus {
	background: var(--cbb-cocoa);
	border-color: var(--cbb-cocoa);
}

.cbb-hero-visual-col {
	min-height: 540px;
	position: relative;
	z-index: 3;
}

.cbb-hero-photo {
	margin-left: auto;
	max-width: 545px;
	width: 88%;
}

.cbb-hero-photo img {
	border: 11px solid rgba(255, 255, 255, .9);
	border-radius: 48% 48% 18px 18px;
	box-shadow: var(--cbb-shadow);
	height: 510px !important;
	object-fit: cover;
	width: 100% !important;
}

.cbb-balloon-hero {
	left: -68px;
	pointer-events: none;
	position: absolute !important;
	top: -82px;
	width: 305px !important;
	z-index: 4;
}

.cbb-balloon-hero img {
	filter: drop-shadow(0 18px 16px rgba(58, 39, 34, .15));
	width: 100%;
}

.cbb-hero-sticker {
	align-items: center;
	background: var(--cbb-blue);
	border: 6px solid rgba(255, 255, 255, .86);
	border-radius: 50%;
	bottom: -8px;
	color: #fff;
	display: flex;
	flex-direction: column;
	height: 128px;
	justify-content: center;
	position: absolute;
	right: -8px;
	text-align: center;
	transform: rotate(7deg);
	width: 128px;
	z-index: 5;
}

.cbb-hero-sticker strong {
	font-family: var(--cbb-serif);
	font-size: 18px;
}

.cbb-hero-sticker span {
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cbb-centered-section {
	text-align: center;
}

.cbb-section-title .elementor-heading-title,
.cbb-section-head .elementor-heading-title {
	font-size: clamp(38px, 4vw, 58px);
	letter-spacing: -.035em;
}

.cbb-section-copy,
.cbb-section-copy p {
	margin-left: auto;
	margin-right: auto;
	max-width: 720px;
}

.cbb-occasions {
	background: var(--cbb-paper);
	padding: 100px 0 72px;
}

.cbb-occasion-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(5, 1fr);
	margin-top: 42px;
}

.cbb-occasion-grid div {
	background: var(--cbb-cream);
	border: 1px solid var(--cbb-line);
	border-radius: 999px 999px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 155px;
	padding: 30px 14px 22px;
	transition: transform .2s ease, box-shadow .2s ease;
}

.cbb-occasion-grid div:nth-child(even) {
	background: #f1f7f9;
}

.cbb-occasion-grid div:hover {
	box-shadow: 0 14px 30px rgba(58, 39, 34, .09);
	transform: translateY(-6px) rotate(1deg);
}

.cbb-occasion-grid span {
	font-size: 39px;
}

.cbb-occasion-grid strong {
	color: var(--cbb-cocoa);
	font-family: var(--cbb-serif);
	font-size: 18px;
}

.cbb-section-head {
	background: var(--cbb-cream);
	padding: 90px 0 30px;
}

.cbb-services-grid {
	background: var(--cbb-cream);
	padding: 22px 0 110px;
}

.cbb-services-grid > .elementor-container {
	align-items: stretch;
}

.cbb-service-card > .elementor-element-populated {
	background: #fff;
	border: 1px solid var(--cbb-line);
	border-radius: 26px;
	box-shadow: 0 15px 38px rgba(58, 39, 34, .07);
	margin: 0 10px;
	overflow: hidden;
	padding: 0 0 28px !important;
	transition: transform .25s ease, box-shadow .25s ease;
}

.cbb-service-card:hover > .elementor-element-populated {
	box-shadow: var(--cbb-shadow);
	transform: translateY(-8px);
}

.cbb-service-card-raised > .elementor-element-populated {
	transform: translateY(-18px);
}

.cbb-service-card-raised:hover > .elementor-element-populated {
	transform: translateY(-26px);
}

.cbb-service-card .elementor-widget-heading,
.cbb-service-card .elementor-widget-text-editor,
.cbb-service-card .elementor-widget-button {
	padding-left: 28px;
	padding-right: 28px;
}

.cbb-service-card h3 {
	font-size: 28px !important;
	margin-top: 8px;
}

.cbb-service-card .elementor-widget-text-editor {
	min-height: 103px;
}

.cbb-service-card .elementor-button {
	background: transparent;
	border: 0;
	color: var(--cbb-coral-dark);
	justify-content: flex-start;
	min-height: 35px;
	padding: 5px 0;
}

.cbb-card-image img {
	height: 285px !important;
	object-fit: cover;
	width: 100% !important;
}

.cbb-gallery-heading {
	background: var(--cbb-paper);
	padding-bottom: 20px;
	text-align: left;
}

.cbb-gallery-heading .cbb-inline-button {
	position: absolute;
	right: 0;
	top: 36px;
}

.cbb-home-gallery {
	background: var(--cbb-paper);
	padding: 18px 0 110px;
}

.cbb-home-gallery .elementor-column-gap-extended > .elementor-column > .elementor-element-populated,
.cbb-gallery-wall .elementor-column-gap-extended > .elementor-column > .elementor-element-populated {
	padding: 7px;
}

.cbb-gallery-img {
	margin-bottom: 14px;
	overflow: hidden;
}

.cbb-gallery-img img {
	border-radius: 16px;
	height: 225px !important;
	object-fit: cover;
	transition: transform .35s ease;
	width: 100% !important;
}

.cbb-gallery-img.cbb-small img {
	height: 175px !important;
}

.cbb-gallery-img.cbb-tall img {
	height: 414px !important;
}

.cbb-gallery-img:hover img,
.cbb-gallery-page-image:hover img {
	transform: scale(1.035);
}

.cbb-alt-crop img {
	object-position: 75% center;
}

.cbb-packages-heading {
	background: #f2f7f8;
	padding-top: 95px;
}

.cbb-package-grid {
	background: #f2f7f8;
	padding: 35px 0 110px;
}

.cbb-package-grid > .elementor-container {
	align-items: stretch;
}

.cbb-package-card > .elementor-element-populated {
	background: #fff;
	border: 1px solid #dce8ec;
	border-radius: 24px;
	box-shadow: 0 18px 44px rgba(50, 76, 86, .08);
	height: 100%;
	margin: 0 10px;
	overflow: visible;
	padding: 36px !important;
	position: relative;
}

.cbb-package-card h3,
.cbb-package-page-card h2 {
	font-size: 32px !important;
	text-align: center;
}

.cbb-package-card .elementor-widget-text-editor {
	text-align: center;
}

.cbb-package-card ul {
	list-style: none;
	margin: 24px 0;
	padding: 20px 0 0;
	text-align: left;
	border-top: 1px solid var(--cbb-line);
}

.cbb-package-card li {
	margin: 10px 0;
	padding-left: 24px;
	position: relative;
}

.cbb-package-card li::before {
	color: var(--cbb-coral);
	content: "✦";
	left: 0;
	position: absolute;
}

.cbb-package-card .elementor-button-wrapper {
	text-align: center;
}

.cbb-package-icon {
	color: var(--cbb-coral) !important;
	font-size: 44px !important;
	line-height: 1 !important;
	margin: 0 !important;
	text-align: center;
}

.cbb-featured-package > .elementor-element-populated {
	background: var(--cbb-coral);
	border-color: var(--cbb-coral);
	transform: translateY(-18px);
}

.cbb-featured-package .elementor-heading-title,
.cbb-featured-package p,
.cbb-featured-package li,
.cbb-featured-package .cbb-package-icon {
	color: #fff !important;
}

.cbb-featured-package .elementor-button {
	background: #fff;
	border-color: #fff;
	color: var(--cbb-coral-dark);
}

.cbb-featured-package ul {
	border-color: rgba(255, 255, 255, .35);
}

.cbb-featured-package li::before {
	color: #fff;
}

.cbb-package-badge {
	background: var(--cbb-blue);
	border-radius: 999px;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800;
	left: 50%;
	letter-spacing: .13em;
	margin: 0 !important;
	padding: 9px 18px;
	position: absolute;
	text-transform: uppercase;
	top: -16px;
	transform: translateX(-50%);
	white-space: nowrap;
}

.cbb-process {
	background: var(--cbb-paper);
	padding: 95px 0 105px;
}

.cbb-process-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 45px;
	position: relative;
}

.cbb-process-grid::before {
	border-top: 2px dashed rgba(223, 121, 94, .38);
	content: "";
	left: 10%;
	position: absolute;
	right: 10%;
	top: 34px;
}

.cbb-process-grid > div {
	position: relative;
	z-index: 1;
}

.cbb-process-grid b {
	align-items: center;
	background: var(--cbb-blush);
	border: 7px solid var(--cbb-paper);
	border-radius: 50%;
	color: var(--cbb-coral-dark);
	display: flex;
	font-family: var(--cbb-serif);
	font-size: 19px;
	height: 67px;
	justify-content: center;
	margin: 0 auto 18px;
	width: 67px;
}

.cbb-process-grid strong,
.cbb-values-grid strong,
.cbb-addon-grid strong {
	color: var(--cbb-cocoa);
	display: block;
	font-family: var(--cbb-serif);
	font-size: 20px;
	margin-bottom: 7px;
}

.cbb-process-grid p,
.cbb-values-grid p,
.cbb-addon-grid p {
	color: var(--cbb-muted);
	font-size: 14px;
	line-height: 1.6;
}

.cbb-instagram-cta {
	background: var(--cbb-coral);
	color: #fff;
	overflow: visible;
	padding: 60px 0;
}

.cbb-instagram-cta .elementor-heading-title,
.cbb-instagram-cta p,
.cbb-instagram-cta .cbb-eyebrow p {
	color: #fff !important;
}

.cbb-instagram-cta .elementor-heading-title {
	font-size: clamp(34px, 4vw, 55px);
}

.cbb-instagram-cta .elementor-button {
	background: #fff;
	border-color: #fff;
	color: var(--cbb-coral-dark);
}

.cbb-instagram-balloons {
	bottom: -55px;
	position: absolute !important;
	right: -30px;
	width: 440px !important;
	z-index: 3;
}

.cbb-page-hero {
	background:
		radial-gradient(circle at 14% 20%, rgba(255, 255, 255, .7) 0 5px, transparent 6px),
		linear-gradient(125deg, #fff9f2 0%, var(--cbb-blush) 100%);
	overflow: hidden;
	padding: 85px 0 95px;
	position: relative;
}

.cbb-page-hero > .elementor-container {
	align-items: center;
}

.cbb-page-hero::after {
	border: 2px dashed rgba(111, 152, 170, .28);
	border-radius: 50%;
	content: "";
	height: 230px;
	position: absolute;
	right: 20%;
	top: -130px;
	width: 230px;
}

.cbb-page-title .elementor-heading-title {
	font-size: clamp(52px, 6vw, 78px);
	letter-spacing: -.045em;
	max-width: 900px;
}

.cbb-page-lead,
.cbb-page-lead p {
	font-size: 18px !important;
	max-width: 720px;
}

.cbb-page-balloons {
	bottom: -130px;
	position: absolute !important;
	right: -120px;
	width: 430px !important;
}

.cbb-story-section,
.cbb-service-detail,
.cbb-contact-section,
.cbb-faq-content {
	background: var(--cbb-paper);
	padding: 110px 0;
}

.cbb-story-section > .elementor-container,
.cbb-service-detail > .elementor-container,
.cbb-contact-section > .elementor-container,
.cbb-faq-content > .elementor-container {
	align-items: center;
}

.cbb-story-visual {
	min-height: 540px;
	position: relative;
}

.cbb-story-image img,
.cbb-service-detail-image img {
	border-radius: 240px 240px 28px 28px;
	box-shadow: var(--cbb-shadow);
	height: 520px !important;
	object-fit: cover;
	width: 92% !important;
}

.cbb-story-balloons {
	bottom: -65px;
	left: -85px;
	position: absolute !important;
	width: 300px !important;
}

.cbb-story-copy {
	padding-left: 6%;
}

.cbb-story-copy .elementor-heading-title,
.cbb-service-detail-copy .elementor-heading-title,
.cbb-contact-copy .elementor-heading-title {
	font-size: clamp(38px, 4vw, 56px);
}

.cbb-values,
.cbb-event-types,
.cbb-addons {
	background: var(--cbb-cream);
	padding: 105px 0;
}

.cbb-values-grid,
.cbb-addon-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 42px;
}

.cbb-values-grid div,
.cbb-addon-grid div {
	background: #fff;
	border: 1px solid var(--cbb-line);
	border-radius: 22px;
	padding: 35px 25px;
}

.cbb-values-grid span,
.cbb-addon-grid span {
	color: var(--cbb-coral);
	display: block;
	font-size: 38px;
	margin-bottom: 12px;
}

.cbb-main-cta {
	background: var(--cbb-blue);
	color: #fff;
	overflow: visible;
	padding: 65px 0;
}

.cbb-main-cta .elementor-heading-title,
.cbb-main-cta p {
	color: #fff !important;
}

.cbb-main-cta .elementor-heading-title {
	font-size: clamp(36px, 4.2vw, 57px);
}

.cbb-main-cta .elementor-button {
	background: #fff;
	border-color: #fff;
	color: var(--cbb-blue-dark);
}

.cbb-cta-balloons {
	bottom: -85px;
	position: absolute !important;
	right: -70px;
	width: 340px !important;
	z-index: 2;
}

.cbb-service-detail:nth-of-type(even),
.cbb-service-detail-alt {
	background: var(--cbb-cream);
}

.cbb-service-detail-copy {
	padding: 4% 6%;
}

.cbb-service-detail-copy .elementor-heading-title {
	font-size: clamp(40px, 4.2vw, 58px);
}

.cbb-service-number p {
	color: var(--cbb-coral) !important;
	font-family: var(--cbb-serif) !important;
	font-size: 28px !important;
	font-weight: 700;
}

.cbb-good-for {
	background: var(--cbb-blush);
	border-radius: 13px;
	padding: 14px 16px;
}

.cbb-event-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	justify-content: center;
	margin-top: 40px;
}

.cbb-event-chips span,
.cbb-gallery-filter span {
	background: #fff;
	border: 1px solid var(--cbb-line);
	border-radius: 999px;
	color: var(--cbb-cocoa);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	padding: 12px 19px;
	text-transform: uppercase;
}

.cbb-gallery-intro {
	background: var(--cbb-paper);
	padding: 95px 0 35px;
}

.cbb-gallery-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-top: 28px;
}

.cbb-gallery-filter span:first-child {
	background: var(--cbb-coral);
	border-color: var(--cbb-coral);
	color: #fff;
}

.cbb-gallery-wall {
	background: var(--cbb-paper);
	padding: 25px 0 110px;
}

.cbb-gallery-wall > .elementor-container {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
}

.cbb-gallery-wall .elementor-column {
	flex: 0 0 25%;
	width: 25% !important;
}

.cbb-gallery-page-image {
	overflow: hidden;
}

.cbb-gallery-page-image img {
	border-radius: 18px;
	height: 310px !important;
	object-fit: cover;
	transition: transform .35s ease;
	width: 100% !important;
}

.cbb-gallery-wide img {
	height: 390px !important;
}

.cbb-flip img {
	transform: scaleX(-1);
}

.cbb-flip:hover img {
	transform: scaleX(-1) scale(1.035);
}

.cbb-package-page-grid {
	padding-top: 105px;
}

.cbb-package-page-card > .elementor-element-populated {
	min-height: 500px;
}

.cbb-addon-grid {
	grid-template-columns: repeat(4, 1fr);
}

.cbb-faq-content > .elementor-container {
	align-items: flex-start;
}

.cbb-faq-accordion .elementor-accordion-item {
	border: 0 !important;
	border-bottom: 1px solid var(--cbb-line) !important;
}

.cbb-faq-accordion .elementor-tab-title {
	color: var(--cbb-cocoa) !important;
	font-family: var(--cbb-serif);
	font-size: 21px;
	font-weight: 700 !important;
	padding: 25px 12px !important;
}

.cbb-faq-accordion .elementor-tab-content {
	border: 0 !important;
	color: var(--cbb-muted);
	font-size: 15px;
	line-height: 1.75;
	padding: 0 45px 25px 12px !important;
}

.cbb-faq-aside > .elementor-element-populated {
	background: var(--cbb-blush);
	border-radius: 22px;
	padding: 18px !important;
}

.cbb-faq-image img {
	border-radius: 15px;
	height: 210px !important;
	object-fit: cover;
	width: 100% !important;
}

.cbb-faq-aside .elementor-button {
	width: 100%;
}

.cbb-contact-section > .elementor-container {
	align-items: flex-start;
}

.cbb-contact-copy {
	padding: 3% 6% 0 0;
}

.cbb-contact-list {
	list-style: none;
	margin: 14px 0 26px;
	padding: 0;
}

.cbb-contact-list li {
	color: var(--cbb-cocoa);
	margin: 11px 0;
	padding-left: 27px;
	position: relative;
}

.cbb-contact-list li::before {
	color: var(--cbb-coral);
	content: "✦";
	left: 0;
	position: absolute;
}

.cbb-contact-note {
	background: var(--cbb-cream);
	border-left: 4px solid var(--cbb-coral);
	border-radius: 8px;
	font-size: 13px !important;
	padding: 12px 14px;
}

.cbb-instagram-link {
	background: var(--cbb-blue);
	border-radius: 16px;
	color: #fff;
	display: flex;
	flex-direction: column;
	margin-top: 25px;
	padding: 18px 20px;
	text-decoration: none;
}

.cbb-instagram-link span {
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cbb-instagram-link strong {
	font-family: var(--cbb-serif);
	font-size: 20px;
}

.cbb-form-column > .elementor-element-populated {
	background: #fff;
	border: 1px solid var(--cbb-line);
	border-radius: 28px;
	box-shadow: var(--cbb-shadow);
	padding: 38px !important;
}

.cbb-inquiry-form label {
	color: var(--cbb-cocoa);
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	margin-bottom: 17px;
	text-transform: uppercase;
	width: 100%;
}

.cbb-inquiry-form label span {
	display: block;
	margin-bottom: 8px;
}

.cbb-form-row {
	display: flex;
	gap: 15px;
}

.cbb-form-row label {
	flex: 1;
}

.cbb-inquiry-form input,
.cbb-inquiry-form select,
.cbb-inquiry-form textarea {
	background: var(--cbb-cream);
	border: 1px solid var(--cbb-line);
	border-radius: 11px;
	box-sizing: border-box;
	color: var(--cbb-cocoa);
	font: 15px var(--cbb-sans);
	outline: 0;
	padding: 13px 14px;
	text-transform: none;
	transition: border-color .2s ease, box-shadow .2s ease;
	width: 100%;
}

.cbb-inquiry-form input:focus,
.cbb-inquiry-form select:focus,
.cbb-inquiry-form textarea:focus {
	border-color: var(--cbb-coral);
	box-shadow: 0 0 0 3px rgba(223, 121, 94, .14);
}

.cbb-inquiry-form textarea {
	resize: vertical;
}

.cbb-form-submit {
	cursor: pointer;
	width: 100%;
}

.cbb-honeypot {
	left: -9999px !important;
	position: absolute !important;
}

.cbb-form-message {
	border-radius: 11px;
	font-weight: 700;
	margin-bottom: 18px;
	padding: 14px 16px;
}

.cbb-form-success {
	background: #e6f3e9;
	color: #315d3d;
}

.cbb-form-error {
	background: #fbe6e3;
	color: #8a372f;
}

.cbb-contact-signoff {
	background: var(--cbb-blush);
	overflow: visible;
	padding: 55px 0;
}

.cbb-contact-signoff > .elementor-container {
	align-items: center;
}

.cbb-contact-signoff .elementor-heading-title {
	font-size: clamp(35px, 4vw, 52px);
}

.cbb-contact-balloons {
	bottom: -110px;
	left: -60px;
	position: absolute !important;
	width: 360px !important;
}

.cbb-footer {
	background: #34241f;
	color: rgba(255, 255, 255, .75);
	overflow: hidden;
	padding: 72px 0 50px;
}

.cbb-footer > .elementor-container {
	align-items: flex-start;
}

.cbb-footer .elementor-heading-title,
.cbb-footer p {
	color: #fff !important;
}

.cbb-footer .elementor-heading-title {
	font-family: var(--cbb-sans);
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.cbb-footer-logo img {
	background: #fff;
	border-radius: 12px;
	height: 88px !important;
	object-fit: contain;
	padding: 6px;
	width: 280px !important;
}

.cbb-footer-links {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.cbb-footer-links a,
.cbb-footer-links span {
	color: rgba(255, 255, 255, .72);
	font-size: 14px;
	text-decoration: none;
}

.cbb-footer-links a:hover {
	color: var(--cbb-peach);
}

.cbb-footer-balloons {
	bottom: -95px;
	position: absolute !important;
	right: -170px;
	width: 390px !important;
}

.cbb-copyright {
	background: #2b1d19;
}

.cbb-copyright .elementor-widget-wrap {
	padding: 0 !important;
}

.cbb-copyright p {
	color: rgba(255, 255, 255, .55) !important;
	font-size: 11px !important;
	letter-spacing: .08em;
	margin: 0;
	padding: 15px;
	text-align: center;
	text-transform: uppercase;
}

@media (max-width: 1024px) {
	.cbb-header-logo-col {
		width: 40% !important;
	}
	.cbb-header-nav-col {
		width: 60% !important;
	}
	.cbb-header-button-col {
		display: none;
	}
	.cbb-mobile-toggle {
		display: block;
	}
	.cbb-nav {
		background: #fff;
		border: 1px solid var(--cbb-line);
		border-radius: 16px;
		box-shadow: var(--cbb-shadow);
		display: none;
		flex-direction: column;
		gap: 0;
		padding: 10px;
		position: absolute;
		right: 14px;
		top: 53px;
		width: min(310px, calc(100vw - 28px));
		z-index: 99;
	}
	.cbb-nav.is-open {
		display: flex;
	}
	.cbb-nav a {
		padding: 12px 16px;
		width: 100%;
	}
	.cbb-nav a::after {
		display: none;
	}
	.cbb-hero-visual-col {
		min-height: 480px;
	}
	.cbb-balloon-hero {
		left: -45px;
		width: 250px !important;
	}
	.cbb-hero-photo img {
		height: 450px !important;
	}
	.cbb-occasion-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.cbb-services-grid > .elementor-container,
	.cbb-package-grid > .elementor-container {
		flex-wrap: wrap;
	}
	.cbb-service-card,
	.cbb-package-card {
		margin-bottom: 22px;
		width: 50% !important;
	}
	.cbb-featured-package > .elementor-element-populated,
	.cbb-service-card-raised > .elementor-element-populated {
		transform: none;
	}
	.cbb-process-grid,
	.cbb-addon-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.cbb-process-grid::before {
		display: none;
	}
	.cbb-gallery-wall .elementor-column {
		flex-basis: 50%;
		width: 50% !important;
	}
}

@media (max-width: 767px) {
	.cbb-announcement-text p {
		font-size: 9px !important;
		letter-spacing: .07em;
	}
	.cbb-site-header > .elementor-container {
		min-height: 76px;
	}
	.cbb-header-logo img {
		height: 58px !important;
		max-width: 190px !important;
	}
	.cbb-home-hero {
		padding: 60px 0 70px;
	}
	.cbb-home-hero > .elementor-container,
	.cbb-page-hero > .elementor-container,
	.cbb-story-section > .elementor-container,
	.cbb-service-detail > .elementor-container,
	.cbb-contact-section > .elementor-container,
	.cbb-faq-content > .elementor-container,
	.cbb-main-cta > .elementor-container,
	.cbb-contact-signoff > .elementor-container,
	.cbb-footer > .elementor-container {
		display: flex;
		flex-direction: column;
	}
	.cbb-home-hero .elementor-column,
	.cbb-page-hero .elementor-column,
	.cbb-story-section .elementor-column,
	.cbb-service-detail .elementor-column,
	.cbb-contact-section .elementor-column,
	.cbb-faq-content .elementor-column,
	.cbb-main-cta .elementor-column,
	.cbb-contact-signoff .elementor-column,
	.cbb-footer .elementor-column {
		width: 100% !important;
	}
	.cbb-hero-title .elementor-heading-title {
		font-size: 54px;
	}
	.cbb-hero-visual-col {
		margin-top: 50px;
		min-height: 390px;
	}
	.cbb-hero-photo {
		width: 92%;
	}
	.cbb-hero-photo img {
		height: 370px !important;
	}
	.cbb-balloon-hero {
		left: -30px;
		top: -52px;
		width: 190px !important;
	}
	.cbb-hero-sticker {
		height: 105px;
		right: 1px;
		width: 105px;
	}
	.cbb-occasion-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.cbb-occasion-grid div:last-child {
		grid-column: 1 / -1;
		margin: 0 auto;
		width: calc(50% - 7px);
	}
	.cbb-service-card,
	.cbb-package-card {
		width: 100% !important;
	}
	.cbb-service-card > .elementor-element-populated,
	.cbb-package-card > .elementor-element-populated {
		margin: 0;
	}
	.cbb-gallery-heading .cbb-inline-button {
		position: static;
	}
	.cbb-home-gallery > .elementor-container {
		flex-wrap: wrap;
	}
	.cbb-home-gallery .elementor-column {
		width: 50% !important;
	}
	.cbb-gallery-img.cbb-tall img {
		height: 340px !important;
	}
	.cbb-process-grid,
	.cbb-values-grid,
	.cbb-addon-grid {
		grid-template-columns: 1fr;
	}
	.cbb-instagram-cta {
		padding-bottom: 145px;
	}
	.cbb-instagram-balloons {
		bottom: -110px;
		right: -90px;
		width: 320px !important;
	}
	.cbb-page-hero {
		padding: 65px 0 130px;
	}
	.cbb-page-title .elementor-heading-title {
		font-size: 49px;
	}
	.cbb-page-balloons {
		bottom: -230px;
		right: -85px;
		width: 280px !important;
	}
	.cbb-story-visual {
		min-height: 420px;
	}
	.cbb-story-image img,
	.cbb-service-detail-image img {
		height: 400px !important;
		width: 100% !important;
	}
	.cbb-story-copy,
	.cbb-service-detail-copy,
	.cbb-contact-copy {
		padding: 45px 0 0;
	}
	.cbb-service-detail-alt > .elementor-container {
		flex-direction: column-reverse;
	}
	.cbb-gallery-wall .elementor-column {
		flex-basis: 100%;
		width: 100% !important;
	}
	.cbb-form-row {
		display: block;
	}
	.cbb-form-column > .elementor-element-populated {
		padding: 24px !important;
	}
	.cbb-faq-aside {
		margin-top: 35px;
	}
	.cbb-main-cta {
		padding-bottom: 150px;
	}
	.cbb-cta-balloons {
		bottom: -160px;
		right: -80px;
		width: 290px !important;
	}
	.cbb-contact-signoff {
		padding-top: 170px;
	}
	.cbb-contact-balloons {
		bottom: auto;
		left: -50px;
		top: -180px;
		width: 280px !important;
	}
	.cbb-footer .elementor-column {
		margin-bottom: 25px;
	}
	.cbb-footer-balloons {
		bottom: -130px;
		right: -150px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	* {
		transition-duration: .01ms !important;
	}
}
