:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);--text-hero:clamp(3rem,1rem + 6vw,6.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --color-bg:#F5F1E8;--color-surface:#FBF8F1;--color-surface-offset:#ECE6D8;--color-border:#D9D1BF;--color-divider:#E3DCCB;
  --color-text:#1E2A26;--color-text-muted:#56635E;--color-text-inverse:#F5F1E8;
  --color-primary:#2F5B4C;--color-primary-hover:#234538;--color-primary-highlight:#D5E0D8;
  --color-dark:#1C2925;--color-brass:#A57C3A;--color-warn:#8A4B12;--color-warn-bg:#F1E2CC;
  --radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;
  --t:180ms cubic-bezier(.16,1,.3,1);
  --shadow-sm:0 1px 2px oklch(.2 .01 80 / .06);--shadow-md:0 6px 20px oklch(.2 .02 150 / .08);
  --font-display:'Instrument Serif',Georgia,serif;--font-body:'Switzer','Helvetica Neue',sans-serif;
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:var(--space-20)}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}
img{display:block;max-width:100%;height:auto}
ul[role=list],ol[role=list]{list-style:none}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
h1,h2,h3{text-wrap:balance;line-height:1.12}
p,li{text-wrap:pretty;max-width:68ch}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
a,button,input,select,textarea{transition:color var(--t),background var(--t),border-color var(--t),box-shadow var(--t)}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-4);z-index:99}
.skip:focus{left:var(--space-4)}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(var(--space-5),4vw,var(--space-10))}

/* Header */
.header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 92%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid transparent}
.header.is-scrolled{border-color:var(--color-divider);box-shadow:var(--shadow-sm)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:68px}
.brand{display:flex;align-items:baseline;gap:var(--space-3);text-decoration:none;color:var(--color-text)}
.brand__name{font-family:var(--font-display);font-size:1.75rem;line-height:1;letter-spacing:-.01em}
.brand__tag{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase}
.nav__list{display:flex;align-items:center;gap:var(--space-6)}
.nav__list a{font-size:var(--text-sm);color:var(--color-text);text-decoration:none}
.nav__list a:not(.btn):hover{color:var(--color-primary)}
.nav__book{color:var(--color-primary)!important;font-weight:500}
.nav__toggle{display:none;font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full)}
@media (max-width:1400px){.brand__tag{display:none}.nav__list{gap:var(--space-5)}}
.brand__name,.brand__tag,.nav__list a{white-space:nowrap}
@media (max-width:1080px){
  .brand__tag{display:none}
  .nav__toggle{display:inline-block}
  .nav__list{display:none;position:absolute;left:0;right:0;top:68px;flex-direction:column;align-items:stretch;gap:0;background:var(--color-surface);border-bottom:1px solid var(--color-divider);padding:var(--space-2) var(--space-5) var(--space-5)}
  .nav__list.is-open{display:flex}
  .nav__list li a:not(.btn){display:block;padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider)}
  .nav__list .btn{margin-top:var(--space-4);width:100%;justify-content:center}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-primary);color:var(--color-text-inverse)!important;text-decoration:none;font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);border:1px solid var(--color-primary)}
.btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.btn--sm{padding:var(--space-2) var(--space-5)}
.btn--ghost{background:transparent;border-color:color-mix(in oklab,#fff 70%,transparent)}
.btn--ghost:hover{background:color-mix(in oklab,#fff 14%,transparent);border-color:#fff}
.btn--outline{background:transparent;color:var(--color-primary)!important}
.btn--outline:hover{background:var(--color-primary);color:var(--color-text-inverse)!important}
.link{color:var(--color-primary);font-size:var(--text-sm);text-underline-offset:3px}
.link:hover{color:var(--color-primary-hover)}

/* Hero */
.hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:flex-end;color:var(--color-text-inverse);overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,oklch(.2 .02 160 / .15) 0%,oklch(.18 .02 160 / .35) 45%,oklch(.16 .02 160 / .85) 100%)}
.hero__content{position:relative;padding-block:var(--space-32) clamp(var(--space-12),8vw,var(--space-20));width:100%}
.hero__title{font-family:var(--font-display);font-weight:400;font-size:var(--text-hero);letter-spacing:-.02em;line-height:.98;margin-block:var(--space-4) var(--space-6)}
.hero__title em{font-style:italic;color:#EADBC0}
.hero__lede{font-size:var(--text-base);max-width:54ch;color:color-mix(in oklab,#fff 88%,transparent)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);font-weight:600}
.eyebrow--light{color:#EADBC0}

/* Trust strip */
.trust{background:var(--color-surface);border-bottom:1px solid var(--color-divider)}
.trust__inner{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);padding-block:var(--space-8)}
.trust p{font-size:var(--text-sm);color:var(--color-text-muted);padding-left:var(--space-4);border-left:2px solid var(--color-brass)}
.trust strong{color:var(--color-text);font-weight:600}
@media (max-width:760px){.trust__inner{grid-template-columns:1fr;gap:var(--space-4)}}

/* Sections */
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.section--tint{background:var(--color-surface-offset)}
.section--dark{background:var(--color-dark);color:var(--color-text-inverse)}
.section__head{max-width:760px;margin-bottom:var(--space-12)}
.section__title{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);letter-spacing:-.015em;margin-block:var(--space-3) var(--space-4)}
.section__lede{color:var(--color-text-muted)}
h3{font-size:var(--text-lg);font-weight:600;letter-spacing:-.005em}

.feature{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center;margin-bottom:var(--space-16)}
.feature__media img{border-radius:var(--radius-lg);aspect-ratio:4/3;object-fit:cover;width:100%}
.feature__body p{color:var(--color-text-muted);margin-block:var(--space-3) var(--space-5)}
.ticks li{position:relative;padding-left:var(--space-6);margin-bottom:var(--space-2)}
.ticks li::before{content:"";position:absolute;left:0;top:.7em;width:12px;height:1px;background:var(--color-brass)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);overflow:hidden}
.card img{aspect-ratio:3/2;object-fit:cover;width:100%}
.card__body{padding:var(--space-6)}
.card__body p{color:var(--color-text-muted);margin-top:var(--space-2);font-size:var(--text-sm)}
@media (max-width:900px){.feature{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}
@media (min-width:600px) and (max-width:900px){.cards{grid-template-columns:1fr 1fr}}

/* Calendar */
.filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6)}
.chip{font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface)}
.chip:hover{border-color:var(--color-primary)}
.chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}
.cal{border-top:1px solid var(--color-border)}
.cal__row{max-width:none;display:grid;grid-template-columns:72px 1fr auto;gap:var(--space-6);align-items:center;padding-block:var(--space-5);border-bottom:1px solid var(--color-border)}
.cal__date{display:flex;flex-direction:column;align-items:center;line-height:1}
.cal__mon{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}
.cal__day{font-family:var(--font-display);font-size:2.4rem}
.cal__name{font-size:var(--text-base);font-weight:600}
.cal__meta{font-size:var(--text-sm);color:var(--color-text-muted)}
.cal__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}
.tag{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-primary-highlight);color:var(--color-primary-hover)}
.tag--warn{background:var(--color-warn-bg);color:var(--color-warn)}
.cal__actions{display:flex;align-items:center;gap:var(--space-5)}
.cal__empty{padding:var(--space-8) 0;color:var(--color-text-muted)}
.fineprint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-5)}
.fineprint--light{color:color-mix(in oklab,var(--color-text-inverse) 70%,transparent)}
@media (max-width:700px){
  .cal__row{grid-template-columns:56px 1fr;gap:var(--space-4)}
  .cal__actions{grid-column:2;justify-content:space-between}
  .cal__day{font-size:2rem}
}

/* ANZ split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.split__body>p{color:var(--color-text-muted);margin-bottom:var(--space-5)}
.split__body .ticks{margin-bottom:var(--space-5)}
.split__media img{border-radius:var(--radius-lg);aspect-ratio:4/5;object-fit:cover;width:100%}
.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);margin-top:var(--space-20);padding-top:var(--space-10);border-top:1px solid var(--color-border)}
.region p{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-2)}
@media (max-width:900px){.split{grid-template-columns:1fr}.split__media img{aspect-ratio:16/10}.regions{grid-template-columns:1fr;gap:var(--space-6);margin-top:var(--space-12)}}

/* About */
.about{display:grid;grid-template-columns:auto 1fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:start;max-width:1000px}
.about__mark{width:clamp(96px,14vw,168px);aspect-ratio:1;border-radius:50%;border:1px solid var(--color-brass);display:grid;place-items:center;font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);color:#EADBC0}
.about p{color:color-mix(in oklab,var(--color-text-inverse) 85%,transparent);margin-bottom:var(--space-4)}
@media (max-width:700px){.about{grid-template-columns:1fr}}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8)}
.steps li{max-width:none;border-top:1px solid var(--color-text);padding-top:var(--space-5)}
.steps__n{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-brass);display:block;margin-bottom:var(--space-3)}
.steps p{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-2)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.steps{grid-template-columns:1fr}}

/* Form */
.enquire{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:start}
.enquire__intro p{color:var(--color-text-muted);margin-bottom:var(--space-4)}
.form{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:clamp(var(--space-6),4vw,var(--space-10));display:grid;gap:var(--space-5)}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.form label{display:grid;gap:var(--space-2);font-size:var(--text-sm);font-weight:500}
.form input:not([type=checkbox]),.form select,.form textarea{width:100%;font-weight:400;font-size:var(--text-base);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-highlight)}
.chips{border:none;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.chips legend{font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2)}
.chips label{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:400;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg);cursor:pointer}
.chips input{accent-color:var(--color-primary)}
.form .btn{justify-self:start}
.form__status{font-size:var(--text-sm);min-height:1.2em}
.form__status.is-ok{color:var(--color-primary)}
.form__status.is-error{color:#9A2B2B}
@media (max-width:900px){.enquire{grid-template-columns:1fr}}
@media (max-width:540px){.form__row{grid-template-columns:1fr}}

/* Footer */
.footer{background:var(--color-dark);color:color-mix(in oklab,var(--color-text-inverse) 75%,transparent);padding-block:var(--space-16);font-size:var(--text-sm)}
.footer a{color:#EADBC0}
.footer__inner{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-12)}
.brand__name--foot{color:var(--color-text-inverse);margin-bottom:var(--space-2)}
.footer__legal p{font-size:var(--text-xs);margin-bottom:var(--space-3)}
@media (max-width:760px){.footer__inner{grid-template-columns:1fr;gap:var(--space-8)}}

@media (max-width:420px){.brand__name{font-size:1.45rem}}
