/* Tiziana Option A. Licensed local fonts; typography limited to configured pages. */
.tz-front { --tz-ivory:#F7F3EC; --tz-sage:#DEE3D8; --tz-rose:#F1DDD7; --tz-forest:#19332E; --tz-action:#385343; color:var(--tz-forest); font-family:'Source Sans 3',system-ui,sans-serif; font-size:1rem; line-height:1.6; }
.tz-front,.tz-front * { box-sizing:border-box; }
.tz-front a { color:inherit; text-decoration:underline; text-underline-offset:.25em; }
.tz-front a:hover { text-decoration-thickness:2px; }
.tz-front :is(a,button):focus-visible { outline:3px solid var(--tz-forest); outline-offset:3px; box-shadow:0 0 0 3px #fff; }
.tz-front ul,.tz-front ol { list-style:none; margin:0; padding:0; }
.tz-front__brand { font:600 clamp(1.8rem,3vw,2.5rem)/1.15 'Cormorant Garamond',Georgia,serif; margin:0; overflow-wrap:anywhere; }
.tz-front a.tz-front__brand { text-decoration:none; }
.tz-front--header { background:var(--tz-ivory); border-bottom:1px solid #D7D5CB; }
.tz-front__header-inner { max-width:1200px; margin-inline:auto; padding:1.5rem 2rem; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.tz-front__navigation { margin-inline:auto; }
.tz-front__navigation ul { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem 1rem; }
.tz-front__navigation a { display:flex; align-items:center; min-height:48px; font-weight:600; }
.tz-front [aria-current=page] { text-decoration-thickness:2px; font-weight:700; }
.tz-front a.tz-front__cta { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:.6rem; padding:.75rem 1.25rem; border-radius:999px; background:var(--tz-action); color:#fff; font-weight:600; text-decoration:none; }
.tz-front a.tz-front__cta:hover { background:#284334; }
.tz-front__icon { width:24px; height:24px; flex-shrink:0; }
.tz-front__cta .tz-front__icon { filter:brightness(0) invert(1); }
.tz-front__toggle { display:none; align-items:center; justify-content:center; gap:.5rem; min-width:48px; min-height:48px; background:transparent; color:var(--tz-forest); border:1px solid #71806E; border-radius:8px; padding:.5rem .8rem; font:600 1rem/1.5 'Source Sans 3',system-ui,sans-serif; cursor:pointer; }
.tz-front [hidden] { display:none!important; }
.tz-front--footer { padding:3.5rem max(1.25rem,calc((100% - 1136px)/2)); background:var(--tz-sage); }
.tz-front__footer-inner { display:grid; grid-template-columns:1.2fr 1fr auto; gap:2rem; }
.tz-front--footer address { font-style:normal; margin-top:1rem; }
.tz-front--footer li a { display:inline-flex; align-items:center; min-height:44px; }
.tz-front__legal { border-top:1px solid #71806E; padding-top:1.25rem; margin-top:2rem; }
.tz-front__legal ul { display:flex; gap:.5rem 1.5rem; flex-wrap:wrap; }
.tz-front--breadcrumb { background:transparent; font-size:.875rem; padding-block:1rem; }
.tz-front--breadcrumb ol { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem .6rem; }
.tz-front--breadcrumb li+li::before { content:'/'; color:#4F5A54; margin-right:.6rem; }
.tz-front--sitemap a { display:inline-flex; min-height:48px; align-items:center; }
.tz-front__notice { font-size:.875rem; padding:.75rem; border:1px dashed #71806E; }
@media(max-width:960px) {
 .tz-front__header-inner { padding:1.25rem; gap:1rem; }
 .tz-front__header-inner>.tz-front__brand { flex:1; }
 .tz-front__toggle:not([hidden]) { display:inline-flex; }
 .tz-front__navigation { width:100%; order:3; }
 .tz-front__navigation ul { flex-direction:column; align-items:stretch; gap:0; }
 .tz-front__navigation a { padding:.5rem 0; border-bottom:1px solid #D7D5CB; }
 .tz-front__header-inner>.tz-front__cta { order:4; }
 .tz-front__footer-inner { grid-template-columns:1fr; }
}
/* Content is never hidden by CSS; JS animates only elements entering the viewport. */
@media(prefers-reduced-motion:reduce) { [data-tz-reveal],.tz-reveal { animation:none!important; transition:none!important; transform:none!important; opacity:1!important; } }

/* Do not alter the construction page, WordPress admin or unrelated site pages. */
body.tcs-site-page { background:#F7F3EC; color:#19332E; font-family:'Source Sans 3',system-ui,sans-serif; font-weight:400; }
body.tcs-site-page :is(p,li,address,input,textarea,select),body.tcs-site-page .elementor-widget-text-editor { font-family:'Source Sans 3',system-ui,sans-serif!important; }
body.tcs-site-page :is(h1,h2,h3),body.tcs-site-page :is(h1,h2,h3).elementor-heading-title { font-family:'Cormorant Garamond',Georgia,serif!important; }
body.tcs-site-page :is(h1,h2) { font-weight:500!important; }
body.tcs-site-page h3 { font-weight:600!important; }
body.tcs-site-page :is(button,.elementor-button,.tz-front__cta,.tcs-booking) { font-family:'Source Sans 3',system-ui,sans-serif!important; font-weight:600; }
body.tcs-site-page .tz-front__header-inner { gap:1rem; padding-inline:1rem; }
body.tcs-site-page .tz-front__header-inner>.tz-front__brand { font-size:24px; line-height:28px; max-width:280px; min-width:0; }
body.tcs-site-page .tz-front__navigation a { font-size:15px; }
body.tcs-site-page .tz-front__navigation ul { gap:.25rem .8rem; }
body.tcs-site-page .tz-front__header-inner>.tz-front__cta { font-size:15px; padding-inline:1rem; }
.tz-front__medical-note { margin:2rem 0 0; padding-top:1.25rem; border-top:1px solid #71806E; font-size:.875rem; max-width:75ch; }
@media(max-width:960px) {
 body.tcs-site-page .tz-front__header-inner>.tz-front__brand { max-width:calc(100% - 112px); }
 body.tcs-site-page .tz-front__header-inner>.tz-front__cta { max-width:100%; white-space:normal; }
}

body.tcs-site-page .tz-front__brand { font-family:'Cormorant Garamond',Georgia,serif!important; font-weight:600; }
/* Small screens: full-width brand, controls on row two, expanded menu on row three. */
@media(max-width:767px) {
 body.tcs-site-page .tz-front__header-inner { display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:.75rem; }
 body.tcs-site-page .tz-front__header-inner>.tz-front__brand { grid-column:1 / -1; grid-row:1; width:100%; max-width:none; min-width:0; font-size:24px; line-height:28px; }
 body.tcs-site-page .tz-front__header-inner>.tz-front__toggle { grid-column:1; grid-row:2; min-width:0; max-width:100%; }
 body.tcs-site-page .tz-front__header-inner>.tz-front__cta { grid-column:2; grid-row:2; justify-self:end; min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
 body.tcs-site-page .tz-front__header-inner>.tz-front__navigation { grid-column:1 / -1; grid-row:3; min-width:0; width:100%; margin:0; }
 body.tcs-site-page .tz-front__navigation a { overflow-wrap:anywhere; }
}
