* {
	box-sizing:border-box;
}
body {
	margin:0;
}
* {
	box-sizing:border-box;
}
body {
	font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
	margin:0;
	undefined:undefined;
	line-height:inherit;
}
:root {
	--gjs-t-color-primary:#2e5a3a;
	--gjs-t-color-secondary:#5a4a3f;
	--gjs-t-color-accent:#8fbf7a;
	--gjs-t-color-success:#22c55e;
	--gjs-t-color-warning:#f59e0b;
	--gjs-t-color-error:#ef4444;
}
html {
	scroll-behavior:smooth;
}
.gjs-t-h1 {
	color:#2e5a3a;
	font-size:44px;
	line-height:1.2;
}
.gjs-t-h2 {
	color:#5a4a3f;
	font-size:28px;
	line-height:1.3;
}
.gjs-t-button {
	background-color:#2e5a3a;
	color:#ffffff;
	border-radius:0.5rem;
}
.gjs-t-link {
	color:#2e5a3a;
	text-decoration:none;
}
.gjs-t-border {
	border-radius:0.5rem;
	border-color:#e5e7eb;
}
body {
	font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
	margin:0;
	undefined:undefined;
	line-height:inherit;
}
*,::before,::after {
	box-sizing:border-box;
	undefined:undefined;
	border-width:0;
	border-style:solid;
	border-color:#e5e7eb;
}
html,:host {
	line-height:1.5;
	undefined:undefined;
	-webkit-text-size-adjust:100%;
	-moz-tab-size:4;
	tab-size:4;
	font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
	font-feature-settings:normal;
	font-variation-settings:normal;
	-webkit-tap-highlight-color:transparent;
}
hr {
	height:0;
	undefined:undefined;
	color:inherit;
	border-top-width:1px;
}
abbr:where([title]) {
	text-decoration:underline dotted;
}
h1,h2,h3,h4,h5,h6 {
	font-size:inherit;
	font-weight:inherit;
}
a {
	text-decoration:none;
	-webkit-transition:color 0.4s linear;
	-moz-transition:color 0.4s linear;
	-o-transition:color 0.4s linear;
	color:#ff2577;
}
b,strong {
	font-weight:bolder;
}
code,kbd,samp,pre {
	font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
	undefined:undefined;
	font-feature-settings:normal;
	font-variation-settings:normal;
	font-size:1em;
}
small {
	font-size:80%;
}
sub,sup {
	font-size:75%;
	line-height:0;
	position:relative;
	vertical-align:baseline;
}
sub {
	bottom:-0.25em;
}
sup {
	top:-0.5em;
}
table {
	text-indent:0;
	undefined:undefined;
	border-color:inherit;
	border-collapse:collapse;
}
button,input,optgroup,select,textarea {
	font-family:inherit;
	undefined:undefined;
	font-feature-settings:inherit;
	font-variation-settings:inherit;
	font-size:100%;
	font-weight:inherit;
	line-height:inherit;
	letter-spacing:inherit;
	color:inherit;
	margin:0;
	padding:0;
}
button,select {
	text-transform:none;
}
button,input:where([type='button']),input:where([type='reset']),input:where([type='submit']) {
	-webkit-appearance:button;
	undefined:undefined;
	background-color:transparent;
	background-image:none;
}
:-moz-focusring {
	outline:auto;
}
:-moz-ui-invalid {
	box-shadow:none;
}
progress {
	vertical-align:baseline;
}
::-webkit-inner-spin-button,::-webkit-outer-spin-button {
	height:auto;
}
[type='search'] {
	-webkit-appearance:textfield;
	undefined:undefined;
	outline-offset:-2px;
}
::-webkit-search-decoration {
	-webkit-appearance:none;
}
::-webkit-file-upload-button {
	-webkit-appearance:button;
	undefined:undefined;
	font:inherit;
}
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre {
	margin:0;
}
fieldset {
	margin:0;
	padding:0;
}
legend {
	padding:0;
}
ol,ul,menu {
	list-style:none;
	margin:0;
	padding:0;
}
dialog {
	padding:0;
}
textarea {
	resize:vertical;
}
input::placeholder,textarea::placeholder {
	opacity:1;
	undefined:undefined;
	color:#9ca3af;
}
button,[role="button"] {
	cursor:pointer;
}
:disabled {
	cursor:default;
}
img,svg,video,canvas,audio,iframe,embed,object {
	display:block;
	undefined:undefined;
	vertical-align:middle;
}
img,video {
	max-width:100%;
	height:auto;
}
[hidden] {
	display:none;
}
.header {
	width:100%;
	border-bottom-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 0.7);
	backdrop-filter:blur(4px);
}
.header-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:1rem;
	padding-bottom:1rem;
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.brand-link {
	display:flex;
	align-items:center;
	gap:0.75rem;
}
.brand-icon-link {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:999px;
}
.brand-icon-link:focus-visible {
	outline:2px solid transparent;
	box-shadow:0 0 0 2px rgba(46,90,58,0.25);
	border-radius:999px;
}
.brand-icon {
	width:2rem;
	height:2rem;
}
.brand-name {
	font-size:1.5rem;
	line-height:2rem;
}
.nav-link:hover {
	color:var(--gjs-t-color-accent);
}
.nav-link:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.nav-link {
	border-radius:0.375rem;
	padding-left:0.25rem;
	padding-right:0.25rem;
	padding-top:0.25rem;
	padding-bottom:0.25rem;
}
.navbar {
	display:flex;
	align-items:center;
	gap:1rem;
	background:transparent;
	border:none;
	padding:0;
}
.cta-button {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding-left:1rem;
	padding-right:1rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
	border-radius:0.375rem;
}
.cta-button:hover {
	background-color:rgb(36 74 48 / 1);
}
.cta-button:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.icon {
	width:1.5rem;
	height:1.5rem;
}
.hero-section {
	position:relative;
}
.hero-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:2.5rem;
	padding-bottom:2.5rem;
	display:flex;
	align-items:flex-start;
	gap:2.5rem;
}
.hero-copy {
	flex:1 1 0%;
}
.hero-title {
	margin-bottom:1rem;
}
.hero-subtitle {
	color:rgb(58 58 58 / 1);
	margin-bottom:1.5rem;
}
.hero-actions {
	display:flex;
	align-items:center;
	gap:1rem;
}
.primary-action {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding-left:1.25rem;
	padding-right:1.25rem;
	padding-top:0.75rem;
	padding-bottom:0.75rem;
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
	border-radius:0.375rem;
}
.primary-action:hover {
	background-color:rgb(36 74 48 / 1);
}
.primary-action:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.secondary-action {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding-left:1.25rem;
	padding-right:1.25rem;
	padding-top:0.75rem;
	padding-bottom:0.75rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:var(--gjs-t-color-primary);
	color:var(--gjs-t-color-primary);
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
}
.secondary-action:hover {
	background-color:rgb(234 243 237 / 1);
}
.secondary-action:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.hero-badges {
	margin-top:1.5rem;
	display:flex;
	align-items:center;
	gap:0.75rem;
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(90 74 63 / 1);
}
.badge {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:9999px;
	background-color:rgb(241 245 241 / 1);
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
}
.hero-media {
	width:480px;
	border-radius:0.75rem;
	overflow:hidden;
}
.hero-image {
	width:100%;
	height:360px;
	object-fit:cover;
}
.about-section {
	border-top-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(249 250 249 / 1);
}
.about-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:3rem;
	padding-bottom:3rem;
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	gap:2.5rem;
	align-items:flex-start;
}
.about-content {
	grid-column:span 7 / span 7;
}
.about-title {
	margin-bottom:1rem;
}
.about-paragraph {
	margin-bottom:1.25rem;
}
.about-highlights {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
}
.highlight-card {
	padding:1rem;
	border-radius:0.5rem;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 1);
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
}
.highlight-card:hover {
	box-shadow:0 0 #0000,0 0 #0000,0 0 #0000;
}
.highlight-header {
	display:flex;
	align-items:center;
	gap:0.5rem;
	margin-bottom:0.5rem;
}
.highlight-title {
	font-weight:500;
}
.highlight-text {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.about-media {
	grid-column:span 5 / span 5;
	border-radius:0.75rem;
	overflow:hidden;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
}
.about-image {
	width:100%;
	height:450px;
	object-fit:cover;
}
.services-section {
	border-top-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 1);
}
.services-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:3rem;
	padding-bottom:3rem;
}
.services-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:1.5rem;
}
.services-note {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.services-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
}
.service-card {
	display:flex;
	flex-direction:column;
	padding:1.25rem;
	border-radius:0.5rem;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(250 250 250 / 1);
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
}
.service-card:hover {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 #0000,0 0 #0000,0 0 #0000;
}
.service-header {
	display:flex;
	align-items:center;
	gap:0.75rem;
	margin-bottom:0.75rem;
}
.service-name {
	font-weight:600;
	font-size:1.125rem;
	line-height:1.75rem;
	color:rgb(90 74 63 / 1);
}
.service-description {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
	margin-bottom:0.75rem;
}
.service-footer {
	margin-top:auto;
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.service-price {
	font-weight:600;
	color:var(--gjs-t-color-primary);
}
.service-link {
	font-size:0.875rem;
	line-height:1.25rem;
	border-radius:0.375rem;
	padding-left:0.25rem;
	padding-right:0.25rem;
	padding-top:0.25rem;
	padding-bottom:0.25rem;
}
.service-link:hover {
	text-decoration-line:underline;
}
.service-link:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.calendar-section {
	border-top-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(249 250 249 / 1);
}
.calendar-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:3rem;
	padding-bottom:3rem;
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	gap:2.5rem;
	align-items:flex-start;
}
.calendar-panel {
	grid-column:span 7 / span 7;
}
.calendar-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:1rem;
}
.calendar-nav {
	display:flex;
	align-items:center;
	gap:0.5rem;
}
.calendar-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.calendar-button:hover {
	background-color:rgb(238 243 238 / 1);
}
.calendar-button:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.month-label {
	padding-left:1rem;
	padding-right:1rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
	background-color:rgb(255 255 255 / 1);
}
.calendar-grid-wrapper {
	border-radius:0.5rem;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 1);
}
.calendar-weekdays {
	display:grid;
	grid-template-columns:repeat(7,minmax(0,1fr));
	border-bottom-width:1px;
	border-color:rgb(229 231 235 / 1);
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(90 74 63 / 1);
}
.weekday {
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	text-align:center;
}
.calendar-grid {
	display:grid;
	grid-template-columns:repeat(7,minmax(0,1fr));
	gap:1px;
	padding:0.5rem;
	background-color:rgb(229 231 235 / 1);
}
.calendar-legend {
	padding:0.75rem;
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.legend-row {
	display:flex;
	align-items:center;
	gap:1rem;
}
.legend-item {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
}
.legend-swatch {
	width:0.75rem;
	height:0.75rem;
	display:inline-block;
	border-radius:0.125rem;
	background-color:var(--gjs-t-color-accent);
	border-width:1px;
	border-color:rgb(122 184 107 / 1);
}

.calendar-day-meta {
	font-size:0.75rem;
	line-height:1rem;
	color:rgb(90 74 63 / 1);
}

.calendar-day--unavailable .calendar-day-meta {
	color:rgb(156 163 175 / 1);
}

.legend-swatch--full {
	background-color:rgb(209 213 219 / 1);
	border-color:rgb(209 213 219 / 1);
}

.legend-swatch--selected {
	background-color:transparent;
	border-color:var(--gjs-t-color-accent);
	box-shadow:0 0 0 2px rgb(143 191 122 / 0.35);
}

.calendar-status {
	margin-top:0.75rem;
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.calendar-media {
	grid-column:span 5 / span 5;
	border-radius:0.75rem;
	overflow:hidden;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 1);
}
.calendar-image {
	width:100%;
	height:360px;
	object-fit:cover;
}
.calendar-tips {
	padding:1rem;
}
.tip-row {
	display:flex;
	align-items:flex-start;
	gap:0.75rem;
}
.tip-text {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.request-section {
	border-top-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(255 255 255 / 1);
}
.request-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:3rem;
	padding-bottom:3rem;
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	gap:2.5rem;
	align-items:flex-start;
}
.request-form-panel {
	grid-column:span 6 / span 6;
}
.request-title {
	margin-bottom:1rem;
}
.request-intro {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
	margin-bottom:1.5rem;
}
.form >:not([hidden]) ~:not([hidden]) {
	margin-top:calc(1.25rem * calc(1 - 0));
	margin-bottom:calc(1.25rem * 0);
}
.form-row {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1rem;
}
.form-row--stacked {
	grid-template-columns:repeat(1,minmax(0,1fr));
}
.form-field {
	display:flex;
	flex-direction:column;
	gap:0.25rem;
	position:relative;
}
.form-field--full {
	grid-column:1 / -1;
}
.label {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.label .required-indicator {
	margin-left:0.25rem;
}
.required-indicator {
	color:#b45309;
	font-weight:600;
}
.required-note {
	font-size:0.85rem;
	color:#6b7280;
	margin:0 0 1rem;
	display:flex;
	align-items:center;
	gap:0.35rem;
}
.note-limit {
	display:block;
	margin-top:0.25rem;
	color:#6b7280;
}
.note-limit--warning {
	color:#b45309;
	font-weight:600;
}
.inline-warning {
	position:absolute;
	right:0;
	top:0;
	transform:translateY(calc(-100% - 0.35rem));
	background:#b45309;
	color:#fff;
	font-size:0.75rem;
	line-height:1.2;
	padding:0.35rem 0.65rem;
	border-radius:999px;
	box-shadow:0 8px 18px rgba(180,83,9,0.35);
	display:none;
	white-space:nowrap;
	pointer-events:none;
	z-index:5;
}
.inline-warning::after {
	content:"";
	position:absolute;
	bottom:-5px;
	right:16px;
	border-width:5px;
	border-style:solid;
	border-color:#b45309 transparent transparent transparent;
}
.inline-warning.inline-warning--visible {
	display:inline-flex;
	align-items:center;
	gap:0.25rem;
}
.input-text {
	width:100%;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.input-text:focus {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.input-tel {
	width:100%;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.input-tel:focus {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.input-email {
	width:100%;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.input-email:focus {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.select {
	width:100%;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
	background-color:rgb(255 255 255 / 1);
}
.select:focus {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.input-date {
	width:100%;
	padding-left:0.75rem;
	padding-right:0.75rem;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.input-date:focus {
	border-color:var(--gjs-t-color-primary);
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.form-hint {
	font-size:0.85rem;
	line-height:1.25rem;
	margin-top:0.35rem;
}
.form-hint--warning {
	display:block;
	color:#92400e;
	background-color:rgba(249,115,22,0.12);
	border:1px solid rgba(249,115,22,0.35);
	border-radius:0.75rem;
	padding:0.4rem 0.75rem;
}
.form-consent-row {
	display:flex;
	align-items:center;
	gap:0.75rem;
}
.contact-method-group {
	margin-top:1rem;
}
.contact-method-options {
	display:flex;
	flex-wrap:wrap;
	gap:0.75rem;
}
.contact-method-option {
	position:relative;
	display:flex;
	flex:1 1 200px;
	border:1px solid rgba(46,90,58,0.25);
	border-radius:0.75rem;
	padding:0.75rem 1rem;
	cursor:pointer;
	gap:0.75rem;
	background-color:#fff;
	transition:border-color 150ms ease,box-shadow 150ms ease;
}
.contact-method-option input {
	position:absolute;
	opacity:0;
	pointer-events:none;
}
.contact-method-option span {
	display:flex;
	flex-direction:column;
	gap:0.15rem;
	color:#2e5a3a;
}
.contact-method-option strong {
	font-size:0.95rem;
}
.contact-method-option small {
	color:#4b5563;
	font-size:0.8rem;
}
.contact-method-option:focus-within,
.contact-method-option:hover {
	border-color:rgba(46,90,58,0.6);
	box-shadow:0 0 0 2px rgba(46,90,58,0.12);
}
.contact-method-option.is-selected {
	border-color:#2e5a3a;
	box-shadow:0 0 0 2px rgba(46,90,58,0.2);
}
.contact-method-option input:checked + span {
	color:#163722;
}
.contact-method-option input:checked + span strong {
	color:#0f2819;
}
.option-grid {
	display:flex;
	flex-wrap:wrap;
	gap:0.5rem;
	padding:0.25rem 0;
}
.option-chip {
	display:inline-flex;
	align-items:center;
	gap:0.35rem;
	padding:0.5rem 0.85rem;
	border-radius:999px;
	border:1px solid rgba(46,90,58,0.25);
	background-color:rgba(143,190,122,0.08);
	font-size:0.85rem;
	font-weight:500;
	color:rgb(46 90 58 / 1);
}
.option-chip input {
	accent-color:var(--gjs-t-color-primary);
	width:0.9rem;
	height:0.9rem;
}
.option-chip input:focus-visible + span {
	text-decoration:underline;
}
.checkbox {
	width:1rem;
	height:1rem;
	border-radius:0.375rem;
	border-width:1px;
	border-color:rgb(209 213 219 / 1);
}
.checkbox:checked {
	background-color:var(--gjs-t-color-primary);
	border-color:var(--gjs-t-color-primary);
}
.checkbox:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.submit-button {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding-left:1.25rem;
	padding-right:1.25rem;
	padding-top:0.75rem;
	padding-bottom:0.75rem;
	transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
	transition-timing-function:cubic-bezier(0.4,0,0.2,1);
	transition-duration:150ms;
	border-radius:0.375rem;
}
.submit-button:hover {
	background-color:rgb(36 74 48 / 1);
}
.submit-button:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.submit-button:disabled {
	opacity:0.6;
	cursor:not-allowed;
}
.form-success {
	font-size:0.875rem;
	line-height:1.25rem;
	color:var(--gjs-t-color-success);
	display:none;
	margin-top:0.75rem;
}
.form-success.is-visible {
	display:block;
}
.form-error {
	font-size:0.875rem;
	line-height:1.25rem;
	color:var(--gjs-t-color-error);
	display:none;
	margin:0.5rem 0;
}
.form-error.is-visible {
	display:block;
}
.request-sidebar {
	grid-column:span 6 / span 6;
	border-radius:0.75rem;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(249 250 249 / 1);
	padding:1.5rem;
	display:flex;
	flex-direction:column;
	gap:1.25rem;
}
.request-sidebar .map-embed iframe {
	width:100%;
	height:260px;
	border:0;
	border-radius:1rem;
	display:block;
}
.contact-header {
	display:flex;
	align-items:center;
	gap:0.75rem;
	margin-bottom:1rem;
}
.contact-title {
	font-size:1.125rem;
	line-height:1.75rem;
	color:rgb(90 74 63 / 1);
}
.helpful-list {
	display:flex;
	flex-direction:column;
	gap:0.75rem;
}
.helpful-item {
	display:flex;
	align-items:flex-start;
	gap:0.75rem;
}
.request-image-block {
	margin-top:1.5rem;
	border-radius:0.5rem;
	overflow:hidden;
	border-width:1px;
	border-color:rgb(229 231 235 / 1);
}
.footer {
	border-top-width:1px;
	border-color:rgb(229 231 235 / 1);
	background-color:rgb(249 250 249 / 1);
}
.footer-container {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:2rem;
	padding-bottom:2rem;
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
}
.footer-brand {
	display:flex;
	align-items:center;
	gap:0.75rem;
}
.footer-name {
	font-size:1.125rem;
	line-height:1.75rem;
	color:rgb(90 74 63 / 1);
}
.footer-info {
	font-size:0.875rem;
	line-height:1.25rem;
	color:rgb(75 75 75 / 1);
}
.footer-links {
	display:flex;
	align-items:center;
	gap:1rem;
}
.footer-link:hover {
	color:var(--gjs-t-color-accent);
}
.footer-link:focus {
	outline:2px solid transparent;
	outline-offset:2px;
	box-shadow:0 0 0 0px #fff,0 0 0 calc(2px + 0px) rgb(59 130 246 / 0.5),0 0 #0000;
}
.footer-link {
	border-radius:0.375rem;
	padding-left:0.25rem;
	padding-right:0.25rem;
	padding-top:0.25rem;
	padding-bottom:0.25rem;
}
.addons-section {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
	padding-left:1.5rem;
	padding-right:1.5rem;
	padding-top:0.2rem;
	padding-bottom:3rem;
}
.tag-badge {
	display:inline-flex;
	align-items:center;
	background-color:var(--gjs-t-color-accent);
	color:#ffffff;
	border-radius:9999px;
	padding:0.125rem 0.5rem;
	font-size:0.75rem;
	line-height:1rem;
	margin-left:0.5rem;
}
.tooltip {
	position:relative;
	display:inline-flex;
	align-items:center;
	margin-left:0.25rem;
}
.tooltip-trigger {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:1.25rem;
	height:1.25rem;
	border-radius:9999px;
	border:1px solid #e5e7eb;
	background-color:#fff;
	transition:background-color 150ms;
}
.tooltip-trigger:hover {
	background-color:#f1f5f1;
}
.tooltip-content {
	position:absolute;
	top:calc(100% + 0.5rem);
	left:0;
	min-width:220px;
	max-width:280px;
	padding:0.5rem 0.75rem;
	border-radius:0.5rem;
	border:1px solid #e5e7eb;
	background-color:#ffffff;
	box-shadow:0 1px 2px rgb(0 0 0 / 0.05);
	color:#4b4b4b;
	font-size:0.8125rem;
	line-height:1.25rem;
	opacity:0;
	visibility:hidden;
	z-index:10;
}
.tooltip-content.is-open {
	opacity:1;
	visibility:visible;
}
.tooltip:focus-within .tooltip-content {
	opacity:1;
	visibility:visible;
}
.icon-sm {
	width:1rem;
	height:1rem;
}
.tabs {
	display:flex;
	align-items:center;
	gap:0.5rem;
	margin-bottom:1rem;
}
.tab-btn[aria-selected="true"] {
	background-color:var(--gjs-t-color-accent);
	color:#fff;
	border-color:#7ab86b;
}
.tab-panel {
	display:block;
}
.tab-panel[hidden] {
	display:none;
}
.package-includes li {
	list-style:disc;
	font-size:0.875rem;
	line-height:1.25rem;
	color:#4b4b4b;
}
.form>:not([hidden])~:not([hidden]) {
	margin-top:calc(1.25rem * calc(1 - 0));
	margin-bottom:calc(1.25rem * 0);
}
.tab {
	padding:7px 14px;
	display:inline-block;
	border-radius:3px;
	margin-right:10px;
}
.tab:focus {
	outline:none;
}
.tab.tab-active {
	background-color:#0d94e6;
	color:white;
}
a:hover {
	color:#272727;
}
nav {
	text-align:center;
	border-top:14px solid white;
	box-shadow:inset 1px 1px 0 1px #ff2577;
}
nav ul li {
	display:inline-block;
	position:relative;
	border-top:10px solid white;
}
nav ul li a {
	font-size:28px;
	line-height:48px;
	display:block;
	background:white;
	padding:0 20px;
	margin:-10px 10px 0 10px;
	text-transform:uppercase;
	letter-spacing:1px;
	border-radius:0 0 6px 6px;
	box-shadow:inset -1px -1px 0 1px #ff2577,inset 1px -1px 0 1px #ff2577;
	border:3px solid white;
}
nav ul li a:before,nav ul li a:after {
	background:#ff2577;
	text-indent:-999999px;
	overflow:hidden;
	content:"&nbsp";
	width:21px;
	display:block;
	position:absolute;
	z-index:1;
	margin:0 2px;
	border-top:2px solid #ff2577;
}
nav ul li a:before {
	border-radius:0 6px 0 0;
	left:-10px;
	top:-10px;
	border-right:2px solid #ff2577;
	box-shadow:inset -2px 2px 0 1px #fff;
}
nav ul li a:after {
	border-radius:6px 0 0 0;
	right:-10px;
	top:-10px;
	border-left:2px solid #ff2577;
	box-shadow:inset 2px 2px 0 1px #fff;
}
nav ul li:first-child a:before {
	width:2500px;
	left:-2489px;
}
nav ul li:last-child a:after {
	width:2500px;
	right:-2489px;
}
* Scoped radio-tab styles ONLY inside this component */
#it67t8 {
	display:flex;
	justify-content:center;
}
#it67t8 .tabs {
	display:flex;
	flex-wrap:wrap;
	height:300px;
	width:600px;
}
#it67t8 .tabs label {
	order:1;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1rem 2rem;
	margin-right:0.2rem;
	cursor:pointer;
	background-color:green;
	font-weight:bold;
	transition:background ease 0.3s;
}
#it67t8 .tabs .tab {
	order:9;
	flex-grow:1;
	width:100%;
	height:100%;
	display:none;
	padding:20px;
	background-color:#f1f5f1;
	box-shadow:-10px 10px 0px 0px rgb(40,78,29);
}
#it67t8 .tabs input[type="radio"] {
	display:none;
}
#it67t8 .tabs input[type="radio"]:checked + label {
	background:#fff;
}
#it67t8 .tabs input[type="radio"]:checked + label + .tab {
	display:block;
}
#it67t8 > label {
	order:1;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1rem 2rem;
	margin-right:0.2rem;
	cursor:pointer;
	background-color:pink;
	font-weight:bold;
	transition:background 0.3s ease;
}
#it67t8 > .tab {
	order:9;
	flex-grow:1;
	width:100%;
	height:100%;
	display:none;
	padding:20px;
	background:#fff;
	box-shadow:-10px 10px 0 0 black;
}
#it67t8 > input[type="radio"] {
	display:none;
}
#it67t8 > input[type="radio"]:checked + label {
	background:#fff;
}
#it67t8 > input[type="radio"]:checked + label + .tab {
	display:block;
}
.form>:not([hidden])~:not([hidden]) {
	margin-top:calc(1.25rem * calc(1 - 0));
	margin-bottom:calc(1.25rem * 0);
}
* Scoped radio-tab styles ONLY inside this component */ #it67t8 {
	display:flex;
	justify-content:center;
}
#it67t8 .tabs input[type="radio"]:checked+label {
	background:#fff;
}
#it67t8 .tabs input[type="radio"]:checked+label+.tab {
	display:block;
}
#it67t8>label {
	order:1;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1rem 2rem;
	margin-right:0.2rem;
	cursor:pointer;
	background-color:rgb(255,255,255);
	font-weight:bold;
	transition:background 0.3s ease;
}
#it67t8>.tab {
	order:9;
	flex-grow:1;
	width:100%;
	height:100%;
	display:none;
	padding:20px;
	background-color:#f1f5f1;
	box-shadow:-10px 10px 0 0 rgb(54,85,28);
}
#it67t8>input[type="radio"] {
	display:none;
}
#it67t8>input[type="radio"]:checked+label {
	background-color:#f1f5f1;
}
#it67t8>input[type="radio"]:checked+label+.tab {
	display:block;
}
.gjs-divider {
	height:3px;
	width:100%;
	margin:10px;
	background-color:rgba(0,0,0,0.05);
}
#iigz0j-2 {
	align-self:center;
	text-align:center;
}
#ip910l-2 {
	text-align:center;
}
#ic205z-2 {
	text-align:center;
}
#i5iwlq-3 {
	text-align:center;
}
.gjs-plg-flex-column {
	flex-grow:1;
}
.gjs-plg-flex-row {
	display:flex;
	align-items:stretch;
	flex-wrap:nowrap;
}
.gjs-custom-code {
	max-width:80rem;
	margin-left:auto;
	margin-right:auto;
}
.form >:not([hidden]) ~:not([hidden]) {
	margin-top:calc(1.25rem * calc(1 - 0));
	margin-bottom:calc(1.25rem * 0);
}
#it67t8 {
	display:flex;
	flex-wrap:wrap;
	height:100%;
	margin:0 auto;
	width:100%;
}
#iwpr9 {
	filter:brightness(0) saturate(100%) invert(30%) sepia(12%) saturate(1419%) hue-rotate(84deg) brightness(96%) contrast(97%);
	height:100%;
	background-clip:border-box;
}
#iesrm {
	box-shadow:unset;
}
#i04dw {
	position:relative;
	bottom:5px;
	right:5px;
}
#iuj9y {
	padding-bottom:0.25rem;
	position:relative;
	bottom:5px;
	right:5px;
}
#i3cwo {
	position:relative;
	bottom:5px;
	right:5px;
}
#iqxrzd-2 {
	text-align:center;
}
#iihdc1-2 {
	vertical-align:middle;
	text-align:center;
}
#ieupc9-2 {
	text-align:center;
}
#ir4yoh {
	margin-left:50px;
	list-style-type:circle;
}
#ivgyw2 {
	margin-left:50px;
	list-style-type:circle;
}
#ilrr66-2-2-2 {
	align-items:center;
	position:static;
	flex-direction:row;
	vertical-align:baseline;
}
#izm5ki {
	margin-left:50px;
	list-style-type:circle;
}
#icpca4 {
	margin-left:50px;
	list-style-type:circle;
}
#i66uv {
	box-shadow:unset;
}
#itqrmd {
	border:0;
	height:350px;
}
@keyframes fadeEffect {
	from {
	opacity:0;
}
to {
	opacity:1;
}
}@media (max-width:992px) {
	[data-gjs-name="Hero Container"] {
	flex-direction:column;
}
[data-gjs-name="Hero Media"] {
	width:100%;
}
[data-gjs-name="About Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="About Content"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="About Media"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Services Grid"] {
	grid-template-columns:repeat(2,minmax(0,1fr));
}
[data-gjs-name="Calendar Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="Calendar Panel"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Calendar Media"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Request Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="Request Form Panel"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Request Sidebar"] {
	grid-column:span 12 / span 12;
}
.addons-section {
	padding:1rem;
}
.tooltip-content {
	min-width:200px;
	max-width:260px;
}
}@media (max-width:992px) {
	[data-gjs-name="Hero Container"] {
	flex-direction:column;
}
[data-gjs-name="Hero Media"] {
	width:100%;
}
[data-gjs-name="About Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="About Content"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="About Media"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Services Grid"] {
	grid-template-columns:repeat(2,minmax(0,1fr));
}
[data-gjs-name="Calendar Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="Calendar Panel"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Calendar Media"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Request Container"] {
	grid-template-columns:repeat(12,minmax(0,1fr));
}
[data-gjs-name="Request Form Panel"] {
	grid-column:span 12 / span 12;
}
[data-gjs-name="Request Sidebar"] {
	grid-column:span 12 / span 12;
}
.tooltip-content {
	min-width:200px;
	max-width:260px;
}
.addons-section {
	padding:1rem;
}
}@media (max-width:480px) {
	[data-gjs-name="Navbar"] {
	display:none;
}
[data-gjs-name="Hero Title"] {
	font-size:32px;
}
[data-gjs-name="Services Grid"] {
	grid-template-columns:repeat(1,minmax(0,1fr));
}
[data-gjs-name="Helpful List"] {
	gap:8px;
}
.tooltip-content {
	min-width:180px;
	max-width:240px;
}
}@media (max-width:480px) {
	[data-gjs-name="Navbar"] {
	display:none;
}
[data-gjs-name="Hero Title"] {
	font-size:32px;
}
[data-gjs-name="Services Grid"] {
	grid-template-columns:repeat(1,minmax(0,1fr));
}
[data-gjs-name="Helpful List"] {
	gap:8px;
}
.tooltip-content {
	min-width:180px;
	max-width:240px;
}
}@media (max-width:465px) {
	#it67t8 .tabs .tab,#it67t8 .tabs label {
	order:initial;
}
#it67t8 .tabs label {
	width:100%;
	margin-left:50px;
}
#it67t8 > .tab,#it67t8 > label {
	order:initial;
}
#it67t8 > label {
	width:100%;
	margin-left:50px;
}
}@media (max-width:465px) {
	#it67t8 .tabs .tab,#it67t8 .tabs label {
	order:initial;
}
#it67t8 .tabs label {
	width:100%;
	margin-left:50px;
}
#it67t8>.tab,#it67t8>label {
	order:initial;
}
#it67t8>label {
	width:100%;
	margin-left:50px;
}
#it67t8 > .tab,#it67t8 > label {
	order:initial;
}
#it67t8 > label {
	width:100%;
	margin-left:50px;
}
}

/* =================================================
   🌿 Cottagecore Deluxe Enhancement Layer
   ================================================= */

:root {
  --cream: #f7f3ee;
  --soft-cream: #fbf8f3;
  --sage: #8fae9e;
  --sage-dark: #6f8f80;
  --moss: #5d6e46;
  --warm-brown: #7a5a3a;
  --blush: #e7c6b2;
  --ink: #4b4036;
}

/* ---------- Global Warmth ---------- */

body {
  background-color: var(--cream);
  color: var(--ink);
}

/* Subtle paper grain */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image:
    radial-gradient(rgba(0,0,0,0.015) 1px, transparent 1px);
  background-size: 6px 6px;
  pointer-events: none;
  z-index: 0;
}

/* ---------- Typography ---------- */

.gjs-t-h1,
.gjs-t-h2,
.service-name,
.contact-title,
.footer-name {
  font-family: "Playfair Display", serif;
  letter-spacing: 0.04em;
}

.hero-title::after {
  content: " ✿";
  font-family: "Homemade Apple", cursive;
  color: var(--sage);
  font-size: 0.7em;
}

.section-accent,
.hero-subtitle::before {
  font-family: "Homemade Apple", cursive;
  color: var(--sage-dark);
}

/* ---------- Header ---------- */

.header {
  background-color: rgba(247,243,238,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px dashed rgba(0,0,0,0.08);
}

/* ---------- Pressed Paper Dividers ---------- */

.gjs-divider {
  height: 18px;
  background:
    linear-gradient(
      to right,
      transparent,
      rgba(0,0,0,0.08),
      transparent
    );
  border-radius: 999px;
  margin: 3rem 0;
}

/* ---------- Section Backgrounds ---------- */

.hero-section,
.about-section,
.calendar-section,
.footer {
  background-color: var(--soft-cream);
}

.services-section,
.request-section {
  background-color: var(--cream);
}

/* ---------- Scrapbook Card Style ---------- */

.service-card,
.highlight-card,
.calendar-grid-wrapper,
.request-sidebar {
  background-color: var(--soft-cream);
  border-radius: 1.5rem;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow:
    0 10px 25px rgba(0,0,0,0.06),
    inset 0 0 0 1px rgba(255,255,255,0.6);
  position: relative;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Polaroid hover lift */
.service-card:hover,
.highlight-card:hover {
  transform: translateY(-6px) rotate(-0.3deg);
  box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}

/* ---------- Floral Corner Accents ---------- */

.service-card::before,
.highlight-card::before {
  content: "❦";
  position: absolute;
  top: 10px;
  right: 14px;
  font-size: 1rem;
  color: var(--sage);
  opacity: 0.4;
}

/* ---------- Buttons ---------- */

.gjs-t-button,
.primary-action,
.submit-button {
  background-color: var(--sage-dark);
  border-radius: 999px;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.gjs-t-button:hover,
.primary-action:hover,
.submit-button:hover {
  background-color: var(--warm-brown);
}

/* ---------- Secondary Buttons ---------- */

.secondary-action {
  border-radius: 999px;
  background-color: transparent;
  border: 1px solid var(--sage-dark);
}

/* ---------- Service Footer ---------- */

.service-footer {
  border-top: 1px dashed rgba(0,0,0,0.12);
  padding-top: 0.75rem;
}

/* ---------- Tag Badges ---------- */

.tag-badge {
  background-color: var(--blush);
  color: var(--ink);
  font-weight: 500;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.6);
}

/* ---------- Calendar ---------- */

.calendar-grid button {
  background-color: var(--soft-cream);
  border-radius: 0.85rem;
}

.calendar-grid button:hover {
  background-color: #eef4ef;
}

.calendar-grid button[aria-disabled="true"] {
  background-color: #edeae6;
}

/* ---------- Tooltips ---------- */

.tooltip-content {
  background-color: var(--soft-cream);
  border-radius: 0.75rem;
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
}

/* ---------- Addon Tabs (Cute Pills) ---------- */

#it67t8 > label {
  background-color: var(--blush);
  border-radius: 999px;
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.6);
}

#it67t8 > input[type="radio"]:checked + label {
  background-color: var(--sage-dark);
  color: #fff;
}

/* ---------- Footer ---------- */

.footer-container {
  border-top: 1px dashed rgba(0,0,0,0.12);
}

/* ---------- Polaroid Image Effect ---------- */

.hero-media,
.about-media,
.calendar-media {
  background-color: #fff;
  padding: 0.75rem;
  border-radius: 1.25rem;
  box-shadow:
    0 10px 30px rgba(0,0,0,0.08),
    inset 0 0 0 1px rgba(255,255,255,0.8);
}

.hero-image,
.about-image,
.calendar-image {
  border-radius: 0.75rem;
}

/* ---------- Mobile Tweaks ---------- */

@media (max-width: 640px) {
  .service-card:hover {
    transform: none;
  }
}

/* =================================================
   🌿 Cottagecore Visual Overrides (SAFE MODE)
   ================================================= */

/* --- Color System --- */
:root {
  --gjs-t-color-primary: #6f8f80;
  --gjs-t-color-secondary: #7a5a3a;
  --gjs-t-color-accent: #8fae9e;
}

/* --- Global Surface --- */
body {
  background-color: #f7f3ee;
  color: #4b4036;
}

/* Paper grain */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: radial-gradient(rgba(0,0,0,0.015) 1px, transparent 1px);
  background-size: 6px 6px;
  pointer-events: none;
  z-index: 0;
}

/* --- Cards & Panels (NO SIZE CHANGES) --- */
.service-card,
.highlight-card,
.calendar-grid-wrapper,
.request-sidebar,
.hero-media,
.about-media,
.calendar-media {
  background-color: #fbf8f3 !important;
  border-radius: 1.25rem;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow:
    0 10px 25px rgba(0,0,0,0.06),
    inset 0 0 0 1px rgba(255,255,255,0.6);
}

/* Gentle lift */
.service-card:hover {
  transform: translateY(-4px);
}

/* --- Floral Accent --- */
.service-card::before,
.highlight-card::before {
  content: "❦";
  position: absolute;
  top: 10px;
  right: 14px;
  font-size: 1rem;
  color: #8fae9e;
  opacity: 0.4;
}

/* --- Buttons --- */
.gjs-t-button,
.primary-action,
.submit-button {
  background-color: #6f8f80;
  border-radius: 999px;
}

.gjs-t-button:hover,
.primary-action:hover,
.submit-button:hover {
  background-color: #7a5a3a;
}

/* --- Dashed separators --- */
.service-footer,
.footer-container {
  border-top: 1px dashed rgba(0,0,0,0.12);
}

/* =================================================
   📦 Service Package Tabs – FIXED SHADOW
   ================================================= */

#it67t8 > label {
  background-color: #e7c6b2 !important;
  color: #4b4036;
  border-radius: 999px;
  box-shadow:
    0 3px 6px rgba(0,0,0,0.08),
    inset 0 0 0 1px rgba(255,255,255,0.6);
}

#it67t8 > input[type="radio"]:checked + label {
  background-color: #6f8f80 !important;
  color: #fff;
  box-shadow: 0 6px 14px rgba(0,0,0,0.15);
}

#it67t8 > .tab {
  background-color: #fbf8f3 !important;
  border-radius: 1.25rem;
  box-shadow:
    0 14px 28px rgba(0,0,0,0.12),
    inset 0 0 0 1px rgba(255,255,255,0.7);
}

@media (max-width: 1024px) {
  .calendar-container,
  .request-container {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .calendar-panel,
  .calendar-media,
  .request-form-panel,
  .request-sidebar {
    grid-column: span 6 / span 6;
  }
}

@media (max-width: 768px) {
  .calendar-container,
  .request-container {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.5rem;
  }
  .calendar-weekdays {
    font-size: 0.75rem;
  }
  .calendar-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    grid-auto-rows: minmax(90px, auto);
    gap: 0.5rem;
  }
  .calendar-grid button.calendar-day {
    min-height: auto;
  }
  .request-sidebar {
    order: 2;
  }
  .request-form-panel {
    order: 1;
  }
}

@media (max-width: 600px) {
  .hero-actions,
  .nav-links,
  .form-row {
    flex-direction: column;
    gap: 0.75rem;
  }
  .calendar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .request-sidebar .map-embed iframe {
    height: 220px;
  }
}



/* === Public calendar availability styling (updated) === */

.calendar-weekdays {
  font-size: 0.95rem;
}

.weekday {
  padding: 0.75rem 0.5rem;
}

.calendar-grid {
  background-color: transparent;
  gap: 0.65rem;
  padding: 0.85rem;
  grid-auto-rows: 112px;
}

.calendar-grid button.calendar-day {
  width: 100%;
  height: 100%;
  min-height: 112px;
  padding: 0.85rem;
  border-radius: 1rem;
  border: 1px solid rgba(46, 90, 58, 0.18);
  background: var(--soft-cream, #f7f4ef);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: left;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.calendar-grid button.calendar-day:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(143, 191, 122, 0.35);
}

.calendar-grid button.calendar-day--blank {
  background: transparent;
  border: 1px solid transparent;
  box-shadow: none;
}

.calendar-grid button.calendar-day--past {
  background: #f3f4f6;
  border-color: #e5e7eb;
  color: #9ca3af;
}

.calendar-grid button.calendar-day--available {
  background: rgba(46, 90, 58, 0.10);
  border-color: rgba(46, 90, 58, 0.25);
  cursor: pointer;
}

.calendar-grid button.calendar-day--available:hover {
  background: rgba(46, 90, 58, 0.14);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(46, 90, 58, 0.12);
}

.calendar-grid button.calendar-day--full {
  background: rgba(214, 75, 75, 0.14);
  border-color: rgba(214, 75, 75, 0.30);
  color: #7a1b1b;
}

.calendar-grid button.calendar-day--closed {
  background: rgba(145, 108, 48, 0.12);
  border-color: rgba(145, 108, 48, 0.22);
  color: rgba(47, 43, 40, 0.7);
}

.calendar-grid button.calendar-day--selected {
  box-shadow: 0 0 0 3px rgba(46, 90, 58, 0.35);
}

.calendar-day-meta {
  font-size: 0.85rem;
  line-height: 1.1rem;
  opacity: 0.95;
}

.calendar-day-indicator {
  width: 14px;
  height: 14px;
  border-radius: 0.35rem;
  margin-top: 0.35rem;
  background: #d1d5db;
  border: 1px solid rgba(0,0,0,0.08);
}

.calendar-day--available .calendar-day-indicator {
  background: var(--gjs-t-color-accent, #2e5a3a);
  border-color: rgba(46, 90, 58, 0.35);
}

.calendar-day--full .calendar-day-indicator {
  background: #d64b4b;
  border-color: rgba(214, 75, 75, 0.45);
}

.legend-swatch--available {
  background-color: var(--gjs-t-color-accent, #2e5a3a);
  border-color: rgba(46, 90, 58, 0.35);
}

.legend-swatch--full {
  background-color: #d64b4b;
  border-color: rgba(214, 75, 75, 0.45);
}

.legend-swatch--selected {
  background-color: transparent;
  border-color: var(--gjs-t-color-accent, #2e5a3a);
  box-shadow: 0 0 0 2px rgba(46, 90, 58, 0.22);
}

@media (max-width: 900px) {
  .header-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .navbar {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .hero-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .hero-media,
  .hero-image {
    width: 100%;
  }

  .services-grid {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .request-container,
  .about-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .form-row {
    flex-direction: column;
  }

  .form-field {
    width: 100%;
  }
}

@media (max-width: 600px) {
  .hero-actions {
    flex-direction: column;
  }

  .stats-grid {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .services-container,
  .addons-section {
    padding: 1.5rem;
  }

  .request-form-panel,
  .request-sidebar {
    padding: 1.25rem;
  }
}


/* =================================================
   📱 Mobile scaling fixes (Calendar + Addon tabs)
   - Keeps the calendar 7-column on phones (no huge 2-col layout)
   - Prevents "Available/Fully Booked" text overflow in cells
   - Fixes addon tabs where the 2nd button drops below content
   - Scales tab buttons + panels down proportionally on small screens
   ================================================= */

@media (max-width: 768px) {
  /* Calendar: keep 7 columns, shrink spacing */
  .calendar-weekdays {
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .weekday {
    padding: 0.4rem 0.2rem;
  }
  .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.45rem;
  }
  .calendar-day {
    padding: 0.4rem !important;
    border-radius: 0.75rem;
    min-height: 68px;
    gap: 0.2rem;
  }
  .calendar-day-meta {
    font-size: 0.65rem !important;
    line-height: 0.85rem !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .calendar-day-indicator {
    width: 12px;
    height: 12px;
    margin-top: 0.25rem;
  }
  .month-label {
    font-size: 0.9rem;
    padding: 0.4rem 0.6rem;
  }
  .calendar-button {
    padding: 0.4rem 0.6rem;
    border-radius: 0.6rem;
  }
}

@media (max-width: 520px) {
  /* Calendar: tighter still */
  .calendar-grid {
    gap: 0.25rem;
    padding: 0.35rem;
  }
  .calendar-day {
    min-height: 60px;
    padding: 0.35rem !important;
  }
  /* Shrink the day number */
  .calendar-day > .font-semibold {
    font-size: 0.85rem;
    line-height: 1rem;
  }

  /* Addon radio-tabs (#it67t8)
     NOTE: There is an existing @media (max-width:465px) block that resets order/margins
     and causes the 2nd tab button to appear below the content. These rules override that. */
  #it67t8 {
    justify-content: stretch !important;
    align-items: stretch;
    width: 100%;
    gap: 0.5rem;
  }
  #it67t8 > label {
    order: 1 !important;
    flex: 1 1 50%;
    width: auto !important;
    min-width: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0.5rem 0.6rem !important;
    font-size: 0.85rem !important;
    line-height: 1.1rem;
    border-radius: 0.85rem;
    text-align: center;
  }
  #it67t8 > .tab {
    order: 9 !important;
    flex-basis: 100%;
    width: 100%;
    height: auto !important;
    min-height: 0;
    padding: 0.85rem !important;
    box-shadow: 0 10px 24px rgba(0,0,0,0.08);
  }
}

@media (max-width: 380px) {
  /* On very small screens, hide the status text to prevent overflow
     (the dot + color still communicates availability). */
  .calendar-day-meta {
    display: none;
  }
  .calendar-day {
    min-height: 52px;
  }
  .calendar-day-indicator {
    width: 10px;
    height: 10px;
  }
  #it67t8 > label {
    font-size: 0.8rem !important;
    padding: 0.45rem 0.5rem !important;
  }
}


/* Addon request-form tab buttons */
@media (max-width: 520px) {
  [data-js="addon-tabs-root"] {
    flex-wrap: wrap;
    gap: 0.4rem;
  }
  [data-js="tab-btn"] {
    padding: 0.45rem 0.65rem;
    font-size: 0.85rem;
    line-height: 1.1rem;
    border-radius: 0.85rem;
  }

  /* Services/addons card grid: reduce spacing so cards don't feel oversized */
  .services-grid {
    gap: 0.85rem;
  }
  .service-card {
    padding: 0.85rem;
  }
  .service-name {
    font-size: 1.05rem;
    line-height: 1.35rem;
  }
  .service-description {
    font-size: 0.9rem;
    line-height: 1.35rem;
  }
  .service-footer .service-link {
    padding: 0.45rem 0.65rem;
    font-size: 0.9rem;
  }
}
/* === Mobile Scaling + Calendar Overflow Fix (added by ChatGPT) ===
   Addresses:
   - Pixel/Android font scaling & overflow inside calendar cells
   - Radio-tab addon/package switcher too large + wrong flow on phones
*/

/* Let content shrink inside flex/grid without forcing overflow */
.hero-copy, .calendar-panel, .calendar-grid-wrapper, .request-form-panel, .addons-section,
.service-card, .highlight-card {
  min-width: 0;
}

/* --- Calendar: robust cell layout + prevent text overflow --- */
.calendar-grid,
.calendar-weekdays {
  width: 100%;
}

.calendar-day {
  /* Some exports missed a base rule for .calendar-day; set one safely */
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: flex-start;
  justify-content: flex-start;
  overflow: hidden;           /* stops meta text from spilling outside */
  border-radius: 0.75rem;
}

.calendar-day-meta {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  /* scales more naturally across devices (helps Pixel text scaling) */
  font-size: clamp(0.55rem, 2.4vw, 0.75rem);
  line-height: 1.05;
}

.calendar-day-indicator {
  flex-shrink: 0;
}

.weekday {
  font-size: clamp(0.65rem, 2.2vw, 0.85rem);
  line-height: 1.1;
}

/* --- Addon/Package switcher (radio tabs) --- */
#it67t8 {
  display: block; /* keep component from trying to "center" everything like a toolbar */
}

#it67t8 .tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-start;
  align-items: stretch;
}

/* Make the two tab buttons smaller and equal width */
#it67t8 > label {
  flex: 1 1 calc(50% - 0.5rem);
  padding: 0.6rem 0.75rem;
  margin-right: 0; /* remove the old spacing that can cause wrapping weirdness */
  font-size: clamp(0.85rem, 3.2vw, 0.95rem);
  line-height: 1.1;
  border-radius: 0.75rem;
}

/* Ensure the content panel always sits below the tab buttons */
#it67t8 > .tab {
  order: 99;
  width: 100%;
  padding: 0.9rem;
}

/* --- Tighten everything further on phones --- */
@media (max-width: 768px) {
  /* Calendar cells: smaller padding/height so 7 columns fit */
  .calendar-weekdays,
  .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .calendar-day {
    padding: 0.45rem;
    min-height: 3.15rem;
  }

  .weekday {
    padding: 0.45rem 0.2rem;
  }

  /* Form addon buttons (data-js tabs if present) */
  [data-js="addon-tabs-root"] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
  [data-js="tab-btn"] {
    flex: 1 1 calc(50% - 0.5rem);
    padding: 0.6rem 0.75rem;
    font-size: clamp(0.85rem, 3.2vw, 0.95rem);
    border-radius: 0.75rem;
  }

  /* Reduce heavy desktop-y shadows in small view */
  #it67t8 > .tab {
    box-shadow: none;
  }
}

/* --- Very small phones: hide meta text inside calendar cells (keep color indicator) --- */
@media (max-width: 420px) {
  .calendar-day-meta {
    display: none;
  }
  .calendar-day {
    gap: 0;
    padding: 0.4rem;
    min-height: 2.85rem;
  }
  #it67t8 > label {
    flex: 1 1 100%;
  }
}
/* === Addon Tabs: keep both buttons side-by-side (override) === */
#it67t8 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}

/* Buttons (labels) always stay on the first row */
#it67t8 > label {
  order: 1;
  flex: 1 1 calc(50% - 0.5rem);
  width: auto;
}

/* Panels always go below, full width */
#it67t8 > .tab {
  order: 2;
  flex: 1 1 100%;
  width: 100%;
}

/* Very small phones: still allow stacking if needed */
@media (max-width: 420px) {
  #it67t8 > label {
    flex: 1 1 100%;
  }
}


/* =========================================================
   📱 Mobile fix: About Highlights cards (prevent compression)
   - Phones: 1 column
   - Small tablets: 2 columns
   ========================================================= */

/* Phones */
@media (max-width: 540px) {
  .about-highlights {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    gap: 0.9rem !important;
  }

  .highlight-card {
    padding: 0.95rem !important;
  }

  .highlight-header {
    gap: 0.45rem !important;
    margin-bottom: 0.45rem !important;
  }

  .highlight-title {
    font-size: clamp(0.95rem, 4.2vw, 1.05rem);
    line-height: 1.15;
  }

  .highlight-text {
    font-size: clamp(0.82rem, 3.4vw, 0.95rem);
    line-height: 1.25;
  }
}

/* Small tablets / large phones in landscape */
@media (min-width: 541px) and (max-width: 900px) {
  .about-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .highlight-card {
    padding: 1rem !important;
  }
}

.form-field--offscreen {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
