
:root{
  --navy:#162a4d;
  --navy-2:#243d66;
  --coral:#df8883;
  --coral-dark:#c9706a;
  --rose:#f3e7e4;
  --ivory:#fbf7f3;
  --paper:#fffdfb;
  --stone:#e8ddd8;
  --text:#253249;
  --muted:#647084;
  --white:#ffffff;
  --max:1280px;
  --shadow:0 22px 60px rgba(22,42,77,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:'Avenir Next',Avenir,'Century Gothic',Futura,'Trebuchet MS',Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.site-shell{width:min(var(--max),calc(100% - 48px));margin:0 auto}
.kicker{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--coral-dark)}
h1,h2,h3,h4{font-family:'Avenir Next',Avenir,'Century Gothic',Futura,'Trebuchet MS',Arial,sans-serif;font-weight:400;line-height:1.08;letter-spacing:-.025em;color:var(--navy);margin:0}
h1{font-size:clamp(3rem,6.6vw,6.25rem);font-weight:400}
h2{font-size:clamp(2.25rem,4.2vw,4.15rem);font-weight:400}
h3{font-size:clamp(1.4rem,2.15vw,1.9rem);font-weight:500}
p{margin:0 0 1rem}.lead{font-size:1.14rem;color:#526077;max-width:700px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.25rem;border:1px solid var(--navy);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;transition:.25s ease;min-width:190px}
.button.primary{background:var(--navy);color:#fff}.button.primary:hover{background:var(--coral-dark);border-color:var(--coral-dark);transform:translateY(-1px)}
.button.secondary{background:transparent;color:var(--navy)}.button.secondary:hover{background:var(--navy);color:#fff}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,253,251,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(22,42,77,.08)}
.header-inner{height:96px;display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:28px}
.brand img{height:68px;width:auto}.main-nav{display:flex;justify-content:center;align-items:center;gap:1.35rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#536179}
.main-nav a{position:relative;white-space:nowrap}.main-nav a:after{content:"";position:absolute;left:0;bottom:-9px;width:0;height:1px;background:var(--coral-dark);transition:.2s}.main-nav a:hover:after,.main-nav a.active:after{width:100%}
.header-cta{background:var(--navy);color:#fff;padding:.85rem 1rem;font-size:.69rem;letter-spacing:.19em;text-transform:uppercase;font-weight:600}.header-cta:hover{background:var(--coral-dark)}
.menu-toggle{display:none;border:0;background:none;color:var(--navy);font:inherit;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:600}
.home-hero{min-height:720px;position:relative;display:flex;align-items:stretch;background:#e9e2dc}
.home-hero-media{position:absolute;inset:0}.home-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%}
.home-hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,30,55,.63),rgba(16,30,55,.17) 56%,rgba(16,30,55,.05))}
.home-hero-content{position:relative;z-index:2;display:flex;align-items:center;padding:86px 0}
.hero-panel{width:min(700px,66%);padding:54px;background:rgba(255,253,251,.95);box-shadow:var(--shadow);border-top:4px solid var(--coral)}
.hero-panel h1{font-size:clamp(3rem,5.8vw,5.6rem);margin:.65rem 0 1.2rem}.hero-panel p{font-size:1.08rem;color:#4f5c70;max-width:590px}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}
.page-hero{padding:118px 0 96px;background:linear-gradient(180deg,var(--ivory),#fdf9f6);border-bottom:1px solid var(--stone)}
.page-hero .site-shell{max-width:980px}.page-hero h1{margin:.7rem 0 1.2rem}.page-hero p{font-size:1.15rem;color:#576379;max-width:760px}
.section{padding:105px 0}.section.compact{padding:78px 0}.section.tinted{background:var(--ivory)}
.section-heading{max-width:820px;margin:0 auto 58px;text-align:center}.section-heading h2{margin:.75rem 0 1rem}.section-heading p{color:#5d687c;max-width:720px;margin:0 auto}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.pillar{background:#fff;border:1px solid var(--stone);box-shadow:var(--shadow);padding:38px;min-height:310px;display:flex;flex-direction:column}.pillar .number{width:46px;height:46px;border:1px solid var(--coral);background:var(--rose);border-radius:50%;display:grid;place-items:center;color:var(--navy);font-weight:700;font-size:.78rem;letter-spacing:.08em;margin-bottom:25px}.pillar h3{margin-bottom:.9rem}.pillar p{color:#5d697d}.pillar .text-link{margin-top:auto;padding-top:24px;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--navy)}
.editorial-split{display:grid;grid-template-columns:1.08fr .92fr;min-height:670px}.editorial-image img{width:100%;height:100%;object-fit:cover}.editorial-copy{background:var(--ivory);padding:7vw;display:flex;flex-direction:column;justify-content:center}.editorial-copy h2{margin:.7rem 0 1.2rem}.editorial-copy p{color:#59667b}.ticks{list-style:none;padding:0;margin:1.4rem 0 1.9rem}.ticks li{padding:.55rem 0;border-bottom:1px solid rgba(22,42,77,.1);color:#536075}.ticks li:before{content:'—';color:var(--coral-dark);margin-right:.7rem}
.image-band{display:grid;grid-template-columns:.92fr 1.08fr;background:var(--navy);color:#fff}.image-band-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center}.image-band-copy h2{color:#fff;margin:.7rem 0 1.1rem}.image-band-copy p{color:#dbe3ef}.image-band-copy .kicker{color:#f3c8c4}.image-band-copy .button{border-color:#fff;color:#fff;width:max-content}.image-band-copy .button:hover{background:#fff;color:var(--navy)}.image-band-media{min-height:560px}.image-band-media img{width:100%;height:100%;object-fit:cover}
.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.content-card{background:#fff;border:1px solid var(--stone);padding:38px;box-shadow:var(--shadow)}.content-card h3{margin:.55rem 0 .8rem}.content-card p{color:#5e6b80}.content-card ul{margin:.8rem 0 0;padding-left:1.15rem;color:#5e6b80}.content-card li{margin:.35rem 0}
.photo-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.photo-grid img{width:100%;height:100%;object-fit:cover}.photo-grid .large{min-height:620px}.photo-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}.photo-stack img{min-height:301px}
.properties-cta{background:var(--rose);border-top:1px solid #ecd5d1;border-bottom:1px solid #ecd5d1}.properties-cta-inner{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px}.properties-cta h2{margin:.75rem 0 1rem}.properties-cta p{color:#5d687c}.properties-cta .actions{display:flex;justify-content:flex-end;gap:.8rem;flex-wrap:wrap}
.enquiry-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:start}.enquiry-copy h2{margin:.7rem 0 1rem}.enquiry-copy p{color:#5d687c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#61708a}.field input,.field select,.field textarea{width:100%;padding:15px;border:1px solid #d9cec9;background:#fff;font:inherit;color:var(--text);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--coral)}.field textarea{min-height:155px;resize:vertical}.form-note{font-size:.78rem;color:#6d7888}.hidden-field{display:none!important}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-card{background:#fff;border:1px solid var(--stone);padding:42px;box-shadow:var(--shadow)}.contact-card h2{font-size:2.4rem;margin:.55rem 0 1rem}.contact-card p{color:#5d687c}.contact-card a{display:block;margin:.35rem 0;color:var(--navy);font-size:1.02rem}.contact-card a:hover{color:var(--coral-dark)}
.empty-listing{background:#fff;border:1px solid var(--stone);box-shadow:var(--shadow);padding:58px;max-width:920px;margin:0 auto;text-align:center}.empty-listing h2{margin:.7rem 0 1rem}.empty-listing p{max-width:650px;margin:0 auto 1.6rem;color:#5d687c}
.site-footer{background:#f6f1ed;border-top:1px solid var(--stone);padding-top:52px}.footer-top{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:50px;padding-bottom:42px}.footer-brand img{height:70px;width:auto;margin-bottom:18px}.footer-brand p{color:#647084;font-size:.92rem}.footer-links{display:flex;flex-direction:column;gap:.5rem}.footer-links strong{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--navy);margin-bottom:.35rem}.footer-links a{color:#647084;font-size:.9rem}.footer-links a:hover{color:var(--coral-dark)}.footer-bottom{border-top:1px solid var(--stone);padding:18px 0 28px;display:flex;justify-content:space-between;gap:20px;color:#7b8491;font-size:.76rem}
.reveal{opacity:0;transform:translateY(20px);transition:.65s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1120px){.header-inner{grid-template-columns:1fr auto auto}.main-nav{display:none;position:absolute;top:96px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--stone);box-shadow:0 16px 40px rgba(22,42,77,.08)}.main-nav.open{display:flex}.menu-toggle{display:block}.header-cta{display:none}.hero-panel{width:min(760px,82%)}.pillars{grid-template-columns:1fr 1fr}.editorial-split,.image-band,.enquiry-grid,.properties-cta-inner{grid-template-columns:1fr}.image-band-media{order:-1}.properties-cta .actions{justify-content:flex-start}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:720px){.site-shell{width:min(var(--max),calc(100% - 28px))}.header-inner{height:82px}.main-nav{top:82px}.brand img{height:56px}.home-hero{min-height:640px}.home-hero-content{align-items:flex-end;padding:40px 0}.hero-panel{width:100%;padding:30px}.hero-panel h1{font-size:clamp(2.8rem,14vw,4.4rem)}.page-hero{padding:80px 0 65px}.section{padding:76px 0}.pillars,.content-grid,.photo-grid,.contact-cards,.form-grid{grid-template-columns:1fr}.pillar{min-height:auto}.editorial-copy,.image-band-copy{padding:58px 22px}.photo-grid .large{min-height:360px}.photo-stack{grid-template-rows:auto}.photo-stack img{min-height:330px}.field.full{grid-column:auto}.footer-top{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column}.empty-listing{padding:36px 24px}}

/* V12 — phone and tablet refinement */
body{overflow-x:hidden}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}

@media(max-width:1120px){
  .header-inner{grid-template-columns:1fr auto;height:88px;gap:16px}
  .brand img{height:58px}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:44px;padding:.6rem .75rem;border:1px solid rgba(22,42,77,.15);background:#fff;color:var(--navy);cursor:pointer}
  .header-cta{display:none}
  .main-nav{display:none;position:fixed;top:88px;left:0;right:0;bottom:0;z-index:99;background:rgba(255,253,251,.99);padding:18px 24px 34px;overflow-y:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;box-shadow:0 20px 50px rgba(22,42,77,.12)}
  .main-nav.open{display:flex}
  .main-nav a{display:flex;align-items:center;width:100%;min-height:56px;padding:14px 4px;border-bottom:1px solid var(--stone);font-size:.82rem;letter-spacing:.12em}
  .main-nav a:after{display:none}
  .main-nav a.active{color:var(--coral-dark)}
  body.menu-open{overflow:hidden}
}

@media(max-width:720px){
  .site-shell{width:min(var(--max),calc(100% - 32px))}
  .header-inner{height:76px}
  .brand img{height:50px}
  .menu-toggle{min-width:60px;min-height:42px;font-size:.68rem}
  .main-nav{top:76px;padding:14px 20px 28px}

  h1{font-size:clamp(2.55rem,12vw,4rem);line-height:1.02}
  h2{font-size:clamp(2.15rem,10vw,3.3rem);line-height:1.04}
  h3{font-size:clamp(1.5rem,7vw,2rem)}
  .kicker{font-size:.66rem;letter-spacing:.19em}
  .lead{font-size:1.02rem;line-height:1.65}

  .home-hero{display:block;min-height:0;background:var(--ivory);padding-bottom:34px}
  .home-hero-media{position:relative;height:56vh;min-height:330px;max-height:500px}
  .home-hero-media img{object-position:center 45%}
  .home-hero-media:after{background:linear-gradient(180deg,rgba(16,30,55,.04),rgba(16,30,55,.18))}
  .home-hero-content{display:block;padding:0;margin-top:-34px;position:relative;z-index:3}
  .hero-panel{width:100%;padding:28px 22px 30px;border-top:3px solid var(--coral);box-shadow:0 16px 40px rgba(22,42,77,.11)}
  .hero-panel h1{font-size:clamp(2.6rem,12vw,3.9rem);margin:.55rem 0 1rem}
  .hero-panel p{font-size:1rem;line-height:1.65}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:1.4rem}
  .hero-actions .button{width:100%;min-width:0}

  .page-hero{padding:64px 0 52px}
  .page-hero h1{margin:.55rem 0 1rem}
  .page-hero p{font-size:1.02rem;line-height:1.65}

  .section{padding:68px 0}
  .section.compact{padding:56px 0}
  .section-heading{margin-bottom:38px;text-align:left}
  .section-heading h2{margin:.6rem 0 .85rem}
  .section-heading p{margin:0}

  .pillars{grid-template-columns:1fr;gap:14px}
  .pillar{padding:28px 24px;min-height:0}
  .pillar .number{width:42px;height:42px;margin-bottom:20px}
  .pillar .text-link{padding-top:18px}

  .editorial-split,.image-band{display:flex;flex-direction:column;min-height:0}
  .editorial-image{order:0}
  .editorial-image img{height:360px;object-position:center center}
  .editorial-copy{order:1;padding:48px 22px}
  .editorial-copy h2{margin:.6rem 0 1rem}
  .editorial-copy .button{width:100%}

  .image-band-media{order:0;min-height:0}
  .image-band-media img{height:350px;object-position:center center}
  .image-band-copy{order:1;padding:48px 22px}
  .image-band-copy .button{width:100%;min-width:0}

  .content-grid{grid-template-columns:1fr;gap:14px}
  .content-card{padding:28px 24px}

  .photo-grid{grid-template-columns:1fr;gap:12px}
  .photo-grid .large{min-height:0;height:380px}
  .photo-stack{grid-template-rows:auto;gap:12px}
  .photo-stack img{height:300px;min-height:0}

  .properties-cta-inner{grid-template-columns:1fr;gap:26px}
  .properties-cta .actions{display:grid;grid-template-columns:1fr;width:100%;gap:10px}
  .properties-cta .button{width:100%;min-width:0}

  .enquiry-grid{grid-template-columns:1fr;gap:34px}
  .form-grid{grid-template-columns:1fr;gap:12px}
  .field.full{grid-column:auto}
  .field input,.field select,.field textarea{font-size:16px;padding:14px 13px}
  .field textarea{min-height:135px}
  .form-grid .button{width:100%}

  .contact-cards{grid-template-columns:1fr;gap:14px}
  .contact-card{padding:28px 24px}
  .contact-card h2{font-size:2.1rem}
  .contact-card a{font-size:1rem;overflow-wrap:anywhere}

  .empty-listing{padding:34px 22px}
  .empty-listing .button{width:100%}

  .site-footer{padding-top:38px}
  .footer-top{grid-template-columns:1fr;gap:28px;padding-bottom:30px}
  .footer-brand{grid-column:auto}
  .footer-brand img{height:58px;margin-bottom:14px}
  .footer-links a{padding:.2rem 0}
  .footer-bottom{padding:16px 0 22px;flex-direction:column;gap:8px}

  .button{min-height:48px;padding:.95rem 1rem;min-width:0}
}

@media(max-width:420px){
  .site-shell{width:min(var(--max),calc(100% - 24px))}
  .home-hero-media{height:48vh;min-height:300px}
  .hero-panel{padding:24px 18px 26px}
  .hero-panel h1{font-size:2.55rem}
  .page-hero{padding:54px 0 44px}
  .section{padding:58px 0}
  .editorial-image img{height:310px}
  .image-band-media img{height:310px}
  .photo-grid .large{height:330px}
  .photo-stack img{height:270px}
}

/* V14 — brand typography and two-area homepage expertise */
.pillars{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin-left:auto;margin-right:auto}
@media(max-width:720px){.pillars{grid-template-columns:1fr;max-width:none}}


/* ============================================================
   V16 MOBILE-FIRST POLISH — CSS ONLY, NO WORDING/PHP CHANGES
   ============================================================ */
@media (max-width: 820px){
  html{-webkit-text-size-adjust:100%}
  body{font-size:15.5px;line-height:1.58;overflow-x:hidden}
  .site-shell{width:calc(100% - 32px);max-width:none}

  .site-header{position:sticky;top:0;z-index:1000}
  .header-inner{height:74px;grid-template-columns:1fr auto;gap:12px}
  .brand{display:flex;align-items:center;min-width:0}
  .brand img{height:48px;max-width:150px;object-fit:contain}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:42px;padding:0 14px;border:1px solid rgba(22,42,77,.16);background:#fff;color:var(--navy);border-radius:0;font-size:.66rem;letter-spacing:.14em}
  .header-cta{display:none!important}
  .main-nav{display:none;position:fixed;z-index:999;top:74px;left:0;right:0;height:calc(100dvh - 74px);padding:10px 20px calc(30px + env(safe-area-inset-bottom));background:rgba(255,253,251,.995);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 40px rgba(22,42,77,.12);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0}
  .main-nav.open{display:flex}
  .main-nav a{display:flex;align-items:center;width:100%;min-height:58px;padding:14px 2px;border-bottom:1px solid var(--stone);font-size:.76rem;line-height:1.3;letter-spacing:.11em;white-space:normal}
  .main-nav a:after{display:none}
  .main-nav a.active{color:var(--coral-dark)}
  body.menu-open{overflow:hidden;touch-action:none}

  h1{font-size:clamp(2.35rem,10.8vw,3.35rem);line-height:1.04;letter-spacing:-.03em}
  h2{font-size:clamp(1.95rem,8.7vw,2.75rem);line-height:1.07;letter-spacing:-.025em}
  h3{font-size:clamp(1.35rem,6.5vw,1.8rem);line-height:1.12}
  .kicker{font-size:.64rem;letter-spacing:.18em;line-height:1.4}
  .lead{font-size:1rem;line-height:1.62}

  .button{width:100%;min-width:0;min-height:48px;padding:.9rem 1rem;font-size:.67rem;letter-spacing:.15em;text-align:center}

  .home-hero{min-height:0;display:block;padding-bottom:28px;background:var(--ivory)}
  .home-hero-media{position:relative;height:44vh;min-height:285px;max-height:420px}
  .home-hero-media img{height:100%;object-fit:cover;object-position:center 45%}
  .home-hero-media:after{background:linear-gradient(180deg,rgba(16,30,55,.02),rgba(16,30,55,.18))}
  .home-hero-content{display:block;padding:0;margin-top:-24px;position:relative;z-index:3}
  .hero-panel{width:100%;padding:24px 18px 26px;border-top:3px solid var(--coral);box-shadow:0 12px 32px rgba(22,42,77,.10)}
  .hero-panel h1{font-size:clamp(2.35rem,10.5vw,3.25rem);margin:.5rem 0 .9rem}
  .hero-panel p{font-size:.98rem;line-height:1.6}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:1.25rem}

  .page-hero{padding:50px 0 42px}
  .page-hero .site-shell{max-width:none}
  .page-hero h1{margin:.5rem 0 .85rem}
  .page-hero p{font-size:1rem;line-height:1.6}

  .section{padding:54px 0}
  .section.compact{padding:46px 0}
  .section-heading{max-width:none;margin:0 0 30px;text-align:left}
  .section-heading h2{margin:.5rem 0 .8rem}
  .section-heading p{margin:0;font-size:.97rem;line-height:1.6}

  .pillars,.content-grid,.contact-cards{grid-template-columns:1fr;gap:12px}
  .pillar,.content-card,.contact-card{padding:24px 20px;box-shadow:0 12px 30px rgba(22,42,77,.07)}
  .pillar{min-height:0}
  .pillar .number{width:40px;height:40px;margin-bottom:17px}
  .pillar .text-link{padding-top:16px}
  .contact-card h2{font-size:1.95rem;margin:.45rem 0 .8rem}
  .contact-card a{font-size:.98rem;overflow-wrap:anywhere}

  .editorial-split,.image-band{display:flex;flex-direction:column;min-height:0}
  .editorial-image,.image-band-media{order:0;min-height:0}
  .editorial-image img,.image-band-media img{width:100%;height:285px;object-fit:cover;object-position:center}
  .editorial-copy,.image-band-copy{order:1;padding:36px 18px 38px}
  .editorial-copy h2,.image-band-copy h2{margin:.5rem 0 .85rem}
  .ticks{margin:1rem 0 1.35rem}
  .ticks li{padding:.5rem 0}

  .photo-grid{grid-template-columns:1fr;gap:10px}
  .photo-grid .large{height:300px;min-height:0}
  .photo-stack{grid-template-rows:auto;gap:10px}
  .photo-stack img{height:240px;min-height:0}

  .properties-cta-inner,.enquiry-grid{grid-template-columns:1fr;gap:24px}
  .properties-cta .actions{display:grid;grid-template-columns:1fr;gap:9px;width:100%;justify-content:stretch}
  .form-grid{grid-template-columns:1fr;gap:11px}
  .field.full{grid-column:auto}
  .field input,.field select,.field textarea{font-size:16px;padding:13px 12px;border-radius:0}
  .field textarea{min-height:125px}
  .empty-listing{padding:28px 18px}

  .site-footer{padding-top:34px}
  .footer-top{grid-template-columns:1fr;gap:24px;padding-bottom:26px}
  .footer-brand{grid-column:auto}
  .footer-brand img{height:56px;margin-bottom:12px}
  .footer-bottom{padding:15px 0 20px;flex-direction:column;gap:7px}
}

@media (max-width: 390px){
  .site-shell{width:calc(100% - 24px)}
  .brand img{height:44px;max-width:138px}
  .menu-toggle{min-width:66px;padding:0 10px}
  .home-hero-media{height:40vh;min-height:255px}
  .hero-panel{padding:22px 16px 24px}
  h1{font-size:2.25rem}
  h2{font-size:1.9rem}
  .page-hero{padding:44px 0 36px}
  .section{padding:48px 0}
}


/* ============================================================
   V17 MOBILE NAVIGATION — REFINED SHEET MENU
   ============================================================ */
@media (max-width: 820px){
  .site-header{
    background:rgba(255,253,251,.98);
    box-shadow:0 1px 0 rgba(22,42,77,.06);
  }
  .header-inner{
    height:72px;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
  }
  .brand img{
    height:49px;
    width:auto;
    max-width:145px;
  }
  .menu-toggle{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    width:auto;
    min-width:96px;
    height:44px;
    padding:0 14px;
    border:1px solid rgba(22,42,77,.13);
    background:var(--navy);
    color:#fff;
    box-shadow:0 8px 20px rgba(22,42,77,.12);
    cursor:pointer;
    z-index:1003;
  }
  .menu-toggle-label{
    font-size:.64rem;
    line-height:1;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:700;
  }
  .menu-toggle-icon{
    width:17px;
    height:13px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    flex:0 0 auto;
  }
  .menu-toggle-icon span{
    display:block;
    height:1.5px;
    width:100%;
    background:currentColor;
    transform-origin:center;
    transition:transform .22s ease,opacity .18s ease;
  }
  .menu-toggle[aria-expanded="true"]{
    background:var(--coral-dark);
    border-color:var(--coral-dark);
  }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:nth-child(1){transform:translateY(5.75px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon span:nth-child(3){transform:translateY(-5.75px) rotate(-45deg)}

  .mobile-nav-backdrop{
    position:fixed;
    inset:72px 0 0;
    z-index:997;
    background:rgba(12,26,50,.28);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    opacity:0;
    visibility:hidden;
    transition:opacity .22s ease,visibility .22s ease;
  }
  .mobile-nav-backdrop.open{opacity:1;visibility:visible}

  .main-nav{
    display:flex;
    position:fixed;
    z-index:1001;
    top:84px;
    left:12px;
    right:12px;
    height:auto;
    max-height:calc(100dvh - 100px - env(safe-area-inset-bottom));
    padding:10px 16px 16px;
    background:rgba(255,253,251,.995);
    border:1px solid rgba(22,42,77,.08);
    border-radius:2px;
    box-shadow:0 28px 70px rgba(22,42,77,.20);
    overflow-y:auto;
    overscroll-behavior:contain;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    gap:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px) scale(.985);
    transform-origin:top center;
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
  }
  .main-nav.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }
  .main-nav a{
    position:relative;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    width:100%;
    min-height:54px;
    padding:13px 34px 13px 4px;
    border-bottom:1px solid rgba(232,221,216,.9);
    color:var(--navy);
    font-size:.72rem;
    line-height:1.25;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-weight:650;
    white-space:normal;
  }
  .main-nav a:not(.mobile-nav-cta)::before{
    content:'›';
    position:absolute;
    right:7px;
    top:50%;
    transform:translateY(-52%);
    color:#9aa3b0;
    font-size:1.25rem;
    font-weight:400;
    letter-spacing:0;
  }
  .main-nav a:after{display:none!important}
  .main-nav a.active{
    color:var(--coral-dark);
  }
  .main-nav a.active::before{color:var(--coral-dark)}
  .main-nav a.active::after{
    content:''!important;
    display:block!important;
    position:absolute;
    left:0;
    top:50%;
    bottom:auto;
    width:3px!important;
    height:22px;
    transform:translateY(-50%);
    background:var(--coral);
  }
  .main-nav .mobile-nav-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    margin-top:14px;
    padding:14px 16px;
    border:1px solid var(--navy);
    background:var(--navy);
    color:#fff;
    text-align:center;
  }
  .main-nav .mobile-nav-cta:hover{background:var(--coral-dark);border-color:var(--coral-dark);color:#fff}
  body.menu-open{overflow:hidden;touch-action:none}
}

@media (max-width: 420px){
  .header-inner{height:68px}
  .brand img{height:45px}
  .menu-toggle{height:42px;min-width:91px;padding:0 12px}
  .mobile-nav-backdrop{inset:68px 0 0}
  .main-nav{top:78px;left:9px;right:9px;max-height:calc(100dvh - 88px - env(safe-area-inset-bottom));padding:8px 14px 14px}
  .main-nav a{min-height:51px;font-size:.69rem;padding-top:12px;padding-bottom:12px}
}


/* ============================================================
   V18 MOBILE MENU — FULL HEIGHT NAVIGATION PANEL
   Gives the navigation the whole usable phone viewport instead
   of a small floating scroll box.
   ============================================================ */
@media (max-width: 820px){
  .mobile-nav-backdrop{display:none!important}

  .main-nav{
    top:72px!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(100dvh - 72px)!important;
    max-height:none!important;
    margin:0!important;
    padding:26px 24px calc(22px + env(safe-area-inset-bottom))!important;
    background:var(--paper)!important;
    border:0!important;
    border-top:3px solid var(--coral)!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-12px)!important;
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease!important;
  }
  .main-nav.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
  }

  .main-nav::before{
    content:'Navigation';
    display:block;
    padding:2px 0 17px;
    color:var(--coral-dark);
    font-size:.66rem;
    line-height:1;
    letter-spacing:.22em;
    text-transform:uppercase;
    font-weight:700;
  }

  .main-nav a{
    min-height:62px!important;
    padding:17px 36px 17px 4px!important;
    font-size:.78rem!important;
    line-height:1.3!important;
    letter-spacing:.115em!important;
    border-bottom:1px solid var(--stone)!important;
  }
  .main-nav a:not(.mobile-nav-cta)::before{
    right:5px!important;
    font-size:1.4rem!important;
  }
  .main-nav a.active::after{
    left:-12px!important;
    width:3px!important;
    height:28px!important;
  }

  .main-nav .mobile-nav-cta{
    min-height:54px!important;
    margin-top:24px!important;
    padding:16px 18px!important;
    border:0!important;
    background:var(--navy)!important;
    color:#fff!important;
    font-size:.7rem!important;
    letter-spacing:.16em!important;
  }

  body.menu-open{overflow:hidden!important;touch-action:none}
}

@media (max-width: 420px){
  .main-nav{
    top:68px!important;
    height:calc(100dvh - 68px)!important;
    padding:22px 20px calc(18px + env(safe-area-inset-bottom))!important;
  }
  .main-nav::before{padding-bottom:13px}
  .main-nav a{
    min-height:58px!important;
    padding-top:15px!important;
    padding-bottom:15px!important;
    font-size:.74rem!important;
  }
  .main-nav .mobile-nav-cta{
    min-height:52px!important;
    margin-top:20px!important;
  }
}
