/* 3 Traits of Beauty: V3 type system (October 12, 2026).
   Body/UI typeface, readable scale, breadcrumbs, footer and sitemap typography.
   Loaded last on every page. Georgia display headings, colours, layout and the 3D hero are unchanged.
   Plus Jakarta Sans: SIL Open Font License 1.1, see assets/fonts/OFL.txt. */

/* ---------- 1. Typeface ---------- */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("../assets/fonts/plus-jakarta-sans-latin-wght.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("../assets/fonts/plus-jakarta-sans-latin-ext-wght.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Arial resized to Plus Jakarta Sans metrics, so text does not shift when the web font arrives. */
@font-face{font-family:"Plus Jakarta Sans Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Helvetica");
  size-adjust:105.07%;ascent-override:98.79%;descent-override:21.13%;line-gap-override:0%}

/* ---------- 2. Tokens ---------- */
:root{
  --tob-text-body:clamp(1rem,.95rem + .2vw,1.0625rem);          /* 16px phone, 17px from 900px */
  --tob-text-intro:clamp(1.0625rem,1.03125rem + .125vw,1.125rem); /* 17px phone, 18px from 1200px */
  --tob-text-lead:clamp(1.0625rem,.99rem + .29vw,1.25rem);        /* 17px phone, 20px from 1440px */
  --tob-text-ui:.9375rem;    /* 15px: navigation, breadcrumb, footer and sitemap links */
  --tob-text-label:.875rem;  /* 14px: eyebrows, labels, captions */
  --tob-leading:1.7;
  --tob-track-label:.2em;
  --tob-rule:rgba(182,139,74,.32);
}

/* ---------- 3. Body text ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--tob-sans);font-size:var(--tob-text-body);line-height:var(--tob-leading);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
p{line-height:var(--tob-leading);text-wrap:pretty}
.tob-staff,.tob-contact{font-size:var(--tob-text-body);line-height:var(--tob-leading)}
button,input,select,textarea{font-family:inherit}

/* ---------- 4. Labels and eyebrows ---------- */
.site-kicker,.eyebrow,.tob-staff__eyebrow,.tob-contact__eyebrow,.tob-faq__eyebrow{font-family:var(--tob-sans);font-size:var(--tob-text-label);font-weight:600;letter-spacing:var(--tob-track-label);line-height:1.5}
.sp-hero .eyebrow,.sp-intro .eyebrow,.sp-booking .eyebrow{font-size:var(--tob-text-label);letter-spacing:var(--tob-track-label)}
.site-dialog .site-kicker{font-size:var(--tob-text-label)}

/* ---------- 5. Buttons and header navigation ---------- */
.site-button,.btn,.tob-staff__button,.tob-contact__button{font-family:var(--tob-sans);font-size:var(--tob-text-label);font-weight:700;letter-spacing:.08em;line-height:1.3}
.sp-hero .btn,.tob-contact__info .tob-contact__button{font-size:var(--tob-text-label)}
.tob-contact .tob-contact__button{font:700 var(--tob-text-label)/1.3 var(--tob-sans);letter-spacing:.08em}
.site-nav a{font-family:var(--tob-sans);font-size:var(--tob-text-ui);font-weight:500;letter-spacing:.06em}
.site-header .site-menu{font:600 var(--tob-text-ui)/1.2 var(--tob-sans);letter-spacing:.06em}
@media(max-width:1150px){.site-nav a{font-size:1rem;letter-spacing:.08em}}

/* ---------- 6. Breadcrumb (all interior pages) ---------- */
.breadcrumb{margin:0;padding:6px max(6%,calc((100% - 1280px)/2));background:linear-gradient(90deg,#071517,#050b0d 70%);border-bottom:1px solid var(--tob-rule);font:500 var(--tob-text-ui)/1.4 var(--tob-sans);letter-spacing:.01em;color:var(--site-cream)}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;list-style:none}
.breadcrumb li{display:inline-flex;align-items:center;min-height:44px}
.breadcrumb li+li:before{content:"";flex:none;width:7px;height:7px;margin:0 17px 0 13px;border-top:1.5px solid var(--site-gold);border-right:1.5px solid var(--site-gold);transform:rotate(45deg);opacity:.9}
.breadcrumb a{display:inline-flex;align-items:center;min-height:44px;color:var(--site-cream);text-decoration:underline;text-decoration-color:rgba(228,186,118,.6);text-decoration-thickness:1px;text-underline-offset:6px;transition:color .2s,text-decoration-color .2s}
.breadcrumb a:hover{color:var(--site-gold);text-decoration-color:currentColor}
.breadcrumb a:focus-visible{outline:3px solid #72d5df;outline-offset:3px;border-radius:2px}
.breadcrumb [aria-current="page"]{color:var(--site-gold);font-weight:600}
@media(max-width:650px){.breadcrumb{padding-block:4px}}

/* ---------- 7. Footer ---------- */
.site-footer{font-family:var(--tob-sans)}
.site-footer .site-kicker{font-family:var(--tob-sans);font-size:var(--tob-text-label);font-weight:600;letter-spacing:var(--tob-track-label);line-height:1.5}
.site-footer p,.site-footer-contact,.site-footer address{font-size:1rem;line-height:1.7}
.site-footer p{font-family:var(--tob-sans)}
.site-footer-contact>a{gap:.35em;font-size:1rem;font-weight:500;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:6px;transition:color .2s,text-decoration-color .2s}
.site-footer-contact>a:hover{color:var(--site-gold);text-decoration:underline;text-decoration-color:currentColor}
.site-outline{min-height:48px;padding:10px 18px;font:600 var(--tob-text-label)/1.3 var(--tob-sans);letter-spacing:.14em;transition:background-color .2s,color .2s}
.site-outline:hover{background:var(--site-gold);color:#0b1112!important}
.site-footer-bottom{gap:4px 28px;margin-top:36px;padding-top:12px;font-size:var(--tob-text-label);line-height:1.5;color:rgba(246,243,237,.78);justify-content:flex-start}
.site-legal-links{gap:4px 28px}
.site-footer-bottom a{font-size:var(--tob-text-ui);font-weight:500;color:var(--site-cream);text-decoration:underline;text-decoration-color:rgba(228,186,118,.45);text-decoration-thickness:1px;text-underline-offset:6px;transition:color .2s,text-decoration-color .2s}
.site-footer-bottom a:hover{color:var(--site-gold);text-decoration-color:currentColor}
.site-footer-bottom>span{display:inline-flex;align-items:center;min-height:44px}
.site-footer-bottom>span:first-of-type{margin-left:auto}
@media(max-width:900px){.site-footer-bottom>span:first-of-type{margin-left:0}}
@media(max-width:650px){
  .site-footer-bottom{flex-direction:column;align-items:flex-start;gap:0;margin-top:28px}
  .site-footer-bottom>span{min-height:32px}
  .site-legal-links{gap:0 24px}
}

/* ---------- 8. Sitemap page ---------- */
.review-map>p:not(.site-kicker){max-width:52ch;font-size:var(--tob-text-lead);line-height:1.6;color:rgba(247,242,232,.9)}
.review-map-options>a{display:flex;flex-direction:column;color:inherit;text-decoration:none;transition:border-color .2s,background-color .2s}
.review-map-options>a:hover{border-color:var(--site-gold);background:#0d2124}
.review-map-options p{font-size:var(--tob-text-body);line-height:1.65}
.review-map-options>a>span{display:inline-flex;align-items:center;gap:10px;margin-top:auto;font:600 var(--tob-text-label)/1.4 var(--tob-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--site-gold)}
.review-map nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:0 40px;margin-top:24px;border-top:1px solid rgba(182,139,74,.45)}
.review-map nav a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;border-bottom:1px solid var(--tob-rule);font:500 1rem/1.4 var(--tob-sans);letter-spacing:.01em;color:var(--site-cream);text-decoration:none;transition:color .2s}
.review-map nav a span{color:var(--site-gold);transition:transform .2s}
.review-map nav a:hover{color:var(--site-gold)}
.review-map nav a:hover span{transform:translateX(4px)}

/* ---------- 9. Supporting text by page ---------- */
/* Home and the editorial alternative */
.home-main .about p,.home-main .staff p,.home-main .section-intro p,.review-placeholder p{font-size:var(--tob-text-body);line-height:1.7}
.home-main .service-copy p{font-size:1rem;line-height:1.55}
.home-main .booking-copy p,.booking p{font-size:var(--tob-text-body);line-height:1.65}
.location{font-size:var(--tob-text-ui)}




/* About: values tiles and invitation */
.about-hero-copy>p:not(.site-kicker){font-size:var(--tob-text-lead);line-height:1.6}
.about-split>p,.about-split>div>p:not(.site-kicker),.about-center>p:not(.site-kicker){font-size:var(--tob-text-intro);line-height:1.7}
.about-values h3{font:600 var(--tob-text-label)/1.4 var(--tob-sans);letter-spacing:.18em;margin:14px 0 10px}
.about-values p{max-width:26ch;margin-inline:auto;font-size:var(--tob-text-body);line-height:1.6;text-wrap:balance}
.about-owners .tob-staff__bio{font-size:var(--tob-text-body);line-height:1.65}
.about-invitation p:not(.site-kicker){max-width:34ch;font-size:var(--tob-text-intro);line-height:1.65}
@media(min-width:651px){.about-values{grid-template-columns:repeat(auto-fit,minmax(min(100%,10em),1fr))}}
@media(min-width:1200px){.about-split{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}}
@media(max-width:1199px){.about-split{grid-template-columns:1fr;gap:32px}.about-values article:first-child{border-left:0}}

/* Services */
.sp-hero p{font-size:var(--tob-text-lead);line-height:1.6}
.sp-intro p,.sp-booking p{font-size:var(--tob-text-intro);line-height:1.65}
.sp-card p{font-size:1rem;line-height:1.55}
.sp-learn{font:600 var(--tob-text-label)/1.4 var(--tob-sans);letter-spacing:.14em}
.service-facts dd{font-size:1rem;line-height:1.65}
.category-nav a{font-weight:500}

/* Our Work */
.lookbook-intro p{font-size:var(--tob-text-intro)}
.lookbook-filters button{font-family:var(--tob-sans);font-weight:500}
.lookbook-panel figcaption{font-size:var(--tob-text-ui);line-height:1.6}
.gallery-copy p,.lookbook-placeholder p{font-size:1rem;line-height:1.6}
.lookbook-panel .phase-actions a{font-size:var(--tob-text-ui)}

/* Meet the Staff */
.tob-staff__subtitle{font-size:var(--tob-text-label);font-weight:500;letter-spacing:.16em}
.tob-staff__intro,.tob-staff__section-heading>p{font-size:var(--tob-text-intro);line-height:1.65}
.tob-staff__bio,.tob-staff__assistant .tob-staff__bio,.tob-staff__provider-card .tob-staff__bio{font-size:var(--tob-text-body);line-height:1.6}
.tob-staff__role,.tob-staff__provider-card .tob-staff__role{font-size:var(--tob-text-label);font-weight:600;letter-spacing:.16em;line-height:1.5}
.tob-staff__photo-note{font-size:var(--tob-text-label);letter-spacing:.14em}
.tob-staff__social{font-size:var(--tob-text-ui);font-weight:500}
.tob-staff__affiliation a,.tob-staff__provider-card .tob-staff__affiliation a{font-size:var(--tob-text-ui)}
.tob-staff .profile-trigger,.profile-trigger{font:600 var(--tob-text-label)/1.5 var(--tob-sans);letter-spacing:.14em}
/* Staff booking buttons: general online booking links */
.tob-staff__card-book{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;min-height:46px;padding:10px 13px 10px 14px;border:1px solid rgba(228,186,118,.75);border-radius:7px;background:transparent;color:var(--site-gold)!important;font:600 var(--tob-text-ui)/1.3 var(--tob-sans);letter-spacing:0;text-transform:none;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.tob-staff__card-book span{font-size:1.25rem;line-height:1;transition:transform .2s}
.tob-staff__card-book:hover{background:linear-gradient(100deg,#cb954b,#f4d696 55%,#c9954d);border-color:#e2b871;color:#0b1112!important}
.tob-staff__card-book:hover span{transform:translateX(3px)}
.tob-staff__card-body>:has(+.tob-staff__card-book){margin-bottom:18px}
.tob-staff__owners .tob-staff__owner-card{display:flex;flex-direction:column}
.tob-staff__owners .tob-staff__owner-card .tob-staff__card-body{display:flex;flex-direction:column;flex:1}
.tob-staff__card-book+.profile-trigger{margin-top:14px}
@media(min-width:1200px) and (max-width:1399px){.tob-staff__provider-card .tob-staff__card-book{font-size:var(--tob-text-label)}.tob-staff__provider-card .tob-staff__card-book span{display:none}}
.profile-copy p,#profile-services ul{font-size:var(--tob-text-body)}
.profile-coming p{font-size:1rem}
.profile-image>span{font-size:var(--tob-text-label)}
#profile-affiliation a{font-size:var(--tob-text-ui)}

/* FAQ */
.tob-faq summary{font-weight:600}
.tob-faq details p,.tob-faq__cta p{font-size:var(--tob-text-body)}

/* Contact */
.tob-contact__intro{font-size:var(--tob-text-lead);line-height:1.65}
.tob-contact__sub{font-size:var(--tob-text-label);font-weight:600;letter-spacing:.16em}
.tob-contact__form label{font-size:var(--tob-text-label);font-weight:600;letter-spacing:.1em}
.tob-contact__fine{font-size:var(--tob-text-ui);line-height:1.6}
.tob-contact__notice{font-size:1rem!important;line-height:1.6}
.tob-contact address,.tob-contact__info address{font-size:1rem;line-height:1.6}

/* Booking, legal pages and dialogs */
.phase-hero>p{font-size:var(--tob-text-lead);line-height:1.65}
.legal-heading p:last-child{font-size:1rem}
.legal-content p{font-size:var(--tob-text-body)}
.site-dialog p{font-size:1rem}
.site-email,.contact-status{font-size:var(--tob-text-ui)}
