:root{
  --ink:#101416;
  --night:#071012;
  --ink-blue:#0e2431;
  --deep:#0d2c2a;
  --jade:#6f8f81;
  --jade-dark:#3f675e;
  --platinum:#e8e8e4;
  --oyster:#f6f2ea;
  --paper:#fbf8f0;
  --sand:#d7c8ad;
  --gold:#b89b5e;
  --muted:#6d726b;
  --line:rgba(16,20,22,.18);
  --line-strong:rgba(16,20,22,.34);
  --shadow:0 18px 54px rgba(7,16,18,.14);
  --soft-shadow:0 22px 60px rgba(7,16,18,.10);
  --radius-small:3px;
  --radius-panel:2px;
  --radius-pill:999px;
  --max:1208px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Aptos, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color:var(--ink);
  background:
    linear-gradient(90deg, rgba(7,16,18,.04) 1px, transparent 1px) 0 0/72px 72px,
    var(--oyster);
  line-height:1.64;
  text-rendering:optimizeLegibility;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.22;
  z-index:-1;
  background-image:
    radial-gradient(circle at 10% 10%, rgba(184,155,94,.16), transparent 26%),
    radial-gradient(circle at 90% 0%, rgba(111,143,129,.12), transparent 28%);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
p{margin-top:0}
::selection{background:var(--jade);color:#fff}
.container{width:min(100% - 44px,var(--max));margin-inline:auto}
.skip-link{position:absolute;left:-999px;top:10px;background:var(--night);color:#fff;padding:10px 14px;z-index:999}
.skip-link:focus{left:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header: editorial hotel bar */
.site-header{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(246,242,234,.94);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.site-header::before{
  content:"";
  display:block;
  height:4px;
  background:linear-gradient(90deg,var(--night),var(--jade-dark) 48%,var(--gold));
}
.header-inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:26px;
  align-items:center;
  min-height:92px;
}
.logo-link{
  display:flex;
  align-items:center;
  padding:8px 0;
}
.logo-link img{width:226px;height:auto}
.nav-wrap{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:24px;
}
.primary-nav{
  display:flex;
  gap:2px;
  align-items:center;
  border:1px solid var(--line);
  background:rgba(251,248,240,.72);
  padding:3px;
}
.primary-nav a{
  position:relative;
  padding:10px 12px;
  font-size:.78rem;
  line-height:1;
  letter-spacing:.095em;
  text-transform:uppercase;
  color:var(--ink-blue);
  font-weight:780;
}
.primary-nav a:hover,
.primary-nav a.active{
  background:var(--night);
  color:var(--oyster);
}
.header-cta{
  display:flex;
  align-items:center;
  gap:14px;
}
.age-note{
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--jade-dark);
  border-left:2px solid var(--gold);
  padding-left:10px;
  max-width:190px;
  line-height:1.34;
}
.menu-toggle{
  display:none;
  background:transparent;
  border:1px solid var(--line-strong);
  color:var(--ink);
  padding:9px 13px;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}

/* Buttons and editorial links */
.btn,.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 18px;
  border:1px solid var(--night);
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.78rem;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.btn-primary{
  background:var(--night);
  color:var(--oyster);
}
.btn-primary:hover{
  background:var(--jade-dark);
  border-color:var(--jade-dark);
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(7,16,18,.16);
}
.btn-outline{
  background:transparent;
  color:var(--night);
}
.btn-outline:hover{
  background:var(--night);
  color:var(--oyster);
  transform:translateY(-2px);
}
.btn-link{
  display:inline;
  font-weight:850;
  color:var(--deep);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:7px;
  text-decoration-color:var(--gold);
}
.btn-link:hover{text-decoration-thickness:2px;color:var(--jade-dark)}

/* Heroes */
.hero{
  padding:84px 0 60px;
  background:
    linear-gradient(90deg,rgba(251,248,240,.98) 0%,rgba(246,242,234,.95) 52%,rgba(232,232,228,.82) 100%);
  border-bottom:1px solid var(--line);
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  gap:54px;
  align-items:center;
}
.eyebrow{
  display:inline-block;
  margin:0 0 14px;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--jade-dark);
  border-bottom:1px solid var(--gold);
  padding-bottom:7px;
}
.hero h1,.page-hero h1{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:clamp(2.7rem,6.4vw,6.65rem);
  line-height:.88;
  margin:0 0 26px;
  color:var(--night);
  letter-spacing:-.055em;
  max-width:880px;
}
.hero p.lead,.page-hero p.lead{
  font-size:clamp(1.05rem,1.7vw,1.33rem);
  color:#38413d;
  max-width:730px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-actions .btn-link{align-self:center}
.hero-media{
  position:relative;
  border-left:1px solid var(--line-strong);
  padding-left:24px;
}
.hero-media::before{
  content:"PacificKoru / Auckland";
  position:absolute;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  left:-16px;
  top:0;
  color:var(--muted);
  letter-spacing:.18em;
  font-size:.66rem;
  text-transform:uppercase;
}
.hero-media img{
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--line-strong);
  clip-path:polygon(0 0,100% 0,100% 88%,88% 100%,0 100%);
  box-shadow:none;
}
.hero-card{
  position:absolute;
  left:-14px;
  bottom:-22px;
  background:var(--night);
  color:var(--oyster);
  padding:22px 24px;
  max-width:332px;
  border:1px solid rgba(246,242,234,.22);
}
.hero-card strong{
  display:block;
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.26rem;
  line-height:1.18;
  margin-bottom:8px;
}
.hero-card span{color:#e5ded1}
.trust-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:62px;
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
}
.trust-strip>div{
  padding:20px 22px;
  border-right:1px solid var(--line);
  background:rgba(251,248,240,.68);
}
.trust-strip>div:last-child{border-right:0}
.trust-strip strong{
  display:block;
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  color:var(--night);
  font-size:1.08rem;
}
.trust-strip span{color:var(--muted);font-size:.96rem}

/* Sections and grids */
.section{
  padding:82px 0;
  border-bottom:1px solid rgba(16,20,22,.08);
}
.section.dark{
  background:
    linear-gradient(135deg,rgba(111,143,129,.14),transparent 42%),
    var(--night);
  color:var(--oyster);
}
.section.stone{
  background:
    linear-gradient(90deg,rgba(16,20,22,.035) 1px,transparent 1px) 0 0/54px 54px,
    var(--platinum);
}
.section.tight{padding:48px 0}
.section-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.54fr);
  gap:34px;
  align-items:end;
  margin-bottom:38px;
}
.section-head h2,.section h2{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:clamp(2rem,3.85vw,4.15rem);
  line-height:.98;
  margin:0;
  color:var(--night);
  letter-spacing:-.035em;
}
.dark .section-head h2,.dark h2{color:var(--oyster)}
.section-head p{margin:0;color:var(--muted)}
.dark .section-head p{color:#ddd4c4}
.kicker{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:var(--jade-dark);
  font-weight:900;
  margin-bottom:12px;
}
.dark .kicker{color:#d5c184}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.split-panel{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:0;
  background:var(--paper);
  border:1px solid var(--line-strong);
  box-shadow:0 0 0 8px rgba(251,248,240,.35);
}
.split-panel .copy{padding:48px 52px}
.split-panel img{
  height:100%;
  width:100%;
  object-fit:cover;
  border-right:1px solid var(--line-strong);
  filter:saturate(.94) contrast(1.02);
}

/* Cards: sharp editorial blocks */
.card{
  background:rgba(251,248,240,.86);
  border:1px solid var(--line);
  border-top:3px solid var(--jade-dark);
  padding:27px;
  border-radius:0;
  box-shadow:none;
  transition:border-color .22s ease, transform .22s ease, background .22s ease, box-shadow .22s ease;
}
.card:hover{
  border-color:var(--jade-dark);
  transform:translateY(-4px);
  background:#fffdf7;
  box-shadow:var(--soft-shadow);
}
.card.soft{
  border-top-color:var(--gold);
  border-radius:0;
  background:rgba(255,253,247,.92);
}
.dark .card{
  background:rgba(246,242,234,.06);
  border-color:rgba(246,242,234,.22);
  border-top-color:var(--gold);
}
.card h3{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.48rem;
  line-height:1.15;
  margin:0 0 11px;
  color:var(--night);
}
.dark .card h3{color:var(--oyster)}
.card p{margin:0 0 16px}
.feature-list{list-style:none;padding:0;margin:18px 0 0}
.feature-list li{position:relative;padding-left:20px;margin:8px 0}
.feature-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.78em;
  width:12px;
  height:1px;
  background:var(--gold);
}
.price{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.62rem;
  color:var(--deep);
  font-weight:800;
  margin:14px 0;
}
.dark .price{color:#eadcb6}
.price small{
  font-family:Aptos, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size:.88rem;
  color:var(--muted);
  font-weight:400;
}
.dark .price small{color:#d8cfc0}
.note{font-size:.95rem;color:var(--muted)}
.dark .note{color:#d8cfc0}
.room-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  border:1px solid var(--line-strong);
  background:var(--line);
}
.room-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  border:0;
  border-top:4px solid transparent;
}
.room-card:nth-child(2n){background:#f4eee2}
.room-card:hover{box-shadow:none;transform:none;border-top-color:var(--gold)}
.room-card .room-top{
  border-bottom:1px solid var(--line);
  padding-bottom:16px;
  margin-bottom:16px;
}
.room-card .btn-link{margin-top:auto;align-self:flex-start}
.steps{
  counter-reset:step;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border:1px solid var(--line-strong);
  background:var(--line);
  gap:1px;
}
.step{
  counter-increment:step;
  background:var(--paper);
  padding:27px 23px;
  min-height:178px;
}
.step::before{
  content:counter(step,decimal-leading-zero);
  display:block;
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:2rem;
  color:var(--gold);
  margin-bottom:16px;
}
.service-matrix{
  display:grid;
  grid-template-columns:1.16fr .86fr 1fr;
  gap:1px;
  background:var(--line-strong);
  border:1px solid var(--line-strong);
}
.service-matrix>div{
  background:var(--paper);
  padding:25px;
}
.quote-note{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.37rem;
  color:var(--night);
  border-left:1px solid var(--line-strong);
  padding-left:22px;
  position:relative;
}
.quote-note::before{
  content:"";
  display:block;
  width:38px;
  height:3px;
  background:var(--gold);
  margin-bottom:14px;
}

/* Prices and legal content */
.price-group{margin-bottom:48px}
.price-group h2{margin-bottom:16px}
.price-table{
  background:var(--paper);
  border:1px solid var(--line-strong);
}
.price-row{
  display:grid;
  grid-template-columns:1.15fr 1.1fr .55fr .55fr;
  gap:18px;
  align-items:center;
  padding:20px 22px;
  border-top:1px solid var(--line);
}
.price-row:first-child{border-top:0}
.price-row:nth-child(even){background:rgba(232,232,228,.44)}
.price-row .amount{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.38rem;
  color:var(--deep);
  font-weight:800;
}
.price-row .unit{color:var(--muted);font-size:.9rem}
.info-panel{
  background:var(--night);
  color:var(--oyster);
  padding:34px;
  border-left:4px solid var(--gold);
}
.info-panel h3{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.75rem;
  margin-top:0;
}
.faq-list{display:grid;gap:12px}
.faq-item{
  background:var(--paper);
  border:1px solid var(--line);
  padding:24px 25px;
}
.faq-item h3{margin:0 0 8px;font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;color:var(--night)}
.page-hero{
  padding:74px 0 50px;
  background:
    linear-gradient(90deg,rgba(251,248,240,.96),rgba(232,232,228,.88)),
    var(--platinum);
  border-bottom:1px solid var(--line);
}
.page-hero .breadcrumb{
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:18px;
}
.page-hero-grid{
  display:grid;
  grid-template-columns:1fr .72fr;
  gap:48px;
  align-items:center;
}
.page-hero img{
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--line-strong);
  clip-path:polygon(0 0,100% 0,100% 91%,91% 100%,0 100%);
  box-shadow:none;
}
.content-prose{max-width:880px}
.content-prose h2{font-size:2.35rem;margin-top:46px}
.content-prose h3{font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;font-size:1.45rem;color:var(--night)}
.content-prose a{border-bottom:1px solid var(--gold);font-weight:850}
.content-prose code{
  background:rgba(111,143,129,.14);
  padding:2px 5px;
  border:1px solid rgba(111,143,129,.2);
}
.legal-grid{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:42px;
}
.sticky-box{
  position:sticky;
  top:116px;
  background:var(--paper);
  border:1px solid var(--line-strong);
  padding:26px;
  align-self:start;
}
.sticky-box h2{
  font-size:1.75rem;
}

/* Contact and forms */
.contact-layout{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:38px;
  align-items:start;
}
.contact-card{
  background:var(--paper);
  border:1px solid var(--line-strong);
  padding:30px;
}
.enquiry-form{
  background:var(--paper);
  border:1px solid var(--line-strong);
  padding:32px;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-weight:820;color:var(--night)}
.field input,.field select,.field textarea{
  font:inherit;
  border:0;
  border-bottom:1px solid rgba(16,20,22,.36);
  border-radius:0;
  background:rgba(246,242,234,.65);
  padding:13px 2px;
  color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;
  border-bottom-color:var(--jade-dark);
  box-shadow:0 1px 0 var(--jade-dark);
}
.field textarea{min-height:135px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0}
.check input{margin-top:6px}
.form-error{color:#8b2d23;font-weight:800;margin-top:10px}
.hidden{display:none!important}
.success-box{
  background:var(--paper);
  border:1px solid var(--line-strong);
  padding:40px;
}

/* Footer: directory architecture */
.site-footer{
  background:
    linear-gradient(90deg,rgba(184,155,94,.09),transparent 34%),
    var(--night);
  color:var(--oyster);
  padding:58px 0 24px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.18fr .82fr .92fr .82fr;
  gap:38px;
  border-top:1px solid rgba(246,242,234,.16);
  padding-top:28px;
}
.footer-logo img{width:220px;filter:brightness(0) invert(1)}
.footer-grid h3{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  font-size:1.28rem;
  margin:0 0 12px;
  color:#f8efdc;
}
.footer-grid a{color:var(--oyster);display:block;margin:8px 0}
.footer-grid a:hover{
  color:#eadcb6;
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-underline-offset:5px;
}
.footer-bottom{
  border-top:1px solid rgba(246,242,234,.18);
  margin-top:36px;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
  font-size:.9rem;
  color:#d5ccbd;
}
.footer-age{color:#eadcb6}

/* Cookie UI */
.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--line-strong);
  box-shadow:var(--shadow);
  z-index:100;
  padding:22px;
  display:none;
  max-width:980px;
  margin:0 auto;
}
.cookie-banner.show{display:block}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.cookie-actions .btn{min-width:140px}
.modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(7,16,18,.68);
  z-index:120;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-backdrop.show{display:flex}
.cookie-modal{
  background:var(--paper);
  color:var(--ink);
  width:min(720px,100%);
  max-height:88vh;
  overflow:auto;
  border:1px solid var(--line-strong);
  box-shadow:var(--shadow);
  padding:30px;
}
.cookie-row{
  border-top:1px solid var(--line);
  padding:18px 0;
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
}
.toggle input{width:22px;height:22px}
.floating-enquiry{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:42;
}
.floating-enquiry .btn{
  border-radius:var(--radius-pill);
  box-shadow:0 12px 30px rgba(7,16,18,.2);
}

/* Image handling */
.grid-2>img,
.page-hero img,
.split-panel img,
.hero-media img{
  filter:saturate(.96) contrast(1.03);
}
.grid-2>img{
  border:1px solid var(--line-strong);
  aspect-ratio:4/3;
  object-fit:cover;
}
.section.dark .grid-2>img{border-color:rgba(246,242,234,.22)}
img[loading="lazy"]{background:var(--platinum)}

/* Responsive */
@media (max-width:1100px){
  .room-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:980px){
  .header-inner{grid-template-columns:auto auto;justify-content:space-between}
  .nav-wrap{
    position:absolute;
    left:0;
    right:0;
    top:96px;
    background:var(--oyster);
    border-bottom:1px solid var(--line);
    display:none;
    flex-direction:column;
    align-items:flex-start;
    padding:22px 20px;
    box-shadow:0 20px 50px rgba(7,16,18,.08);
  }
  .nav-wrap.open{display:flex}
  .primary-nav{flex-direction:column;align-items:stretch;width:100%}
  .primary-nav a{width:100%}
  .header-cta{flex-direction:column;align-items:flex-start}
  .menu-toggle{display:inline-flex}
  .hero-grid,.page-hero-grid,.grid-2,.split-panel,.legal-grid,.contact-layout{grid-template-columns:1fr}
  .hero-media{padding-left:0;border-left:0}
  .hero-media::before{display:none}
  .hero-card{position:static;margin-top:14px;max-width:none}
  .room-grid,.grid-3,.grid-4{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .service-matrix{grid-template-columns:1fr}
  .price-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .section-head{grid-template-columns:1fr}
  .floating-enquiry{display:none}
  .split-panel img{border-right:0;border-bottom:1px solid var(--line-strong)}
}
@media (max-width:640px){
  .container{width:min(100% - 28px,var(--max))}
  .logo-link img{width:188px}
  .hero,.page-hero{padding:50px 0 36px}
  .section{padding:56px 0}
  .room-grid,.grid-3,.grid-4,.steps,.trust-strip,.footer-grid,.form-grid{grid-template-columns:1fr}
  .split-panel .copy{padding:28px}
  .hero h1,.page-hero h1{font-size:2.72rem}
  .footer-bottom{display:block}
  .cookie-banner{left:10px;right:10px;bottom:10px}
  .btn,.button{width:100%}
  .hero-actions{display:grid}
  .age-note{font-size:.68rem;max-width:none}
  .primary-nav{border:0;padding:0}
  .primary-nav a{border-bottom:1px solid var(--line)}
}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;}


/* Final typography and form-contrast refinements */
:root{
  --form-bg:#fffdf7;
  --form-text:#071012;
  --form-label:#071012;
  --form-border:rgba(7,16,18,.58);
  --form-focus:#234f46;
}

body{
  font-family:Aptos, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.hero h1,.page-hero h1,
.section-head h2,.section h2,
.card h3,.faq-item h3,.sticky-box h2,.footer-grid h3,
.price,.step::before,.hero-card strong,.content-prose h3{
  font-family:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
}

.hero h1,.page-hero h1{
  font-size:clamp(2.05rem,4.25vw,4.55rem);
  line-height:1.02;
  letter-spacing:-.035em;
  margin-bottom:20px;
}

.section-head h2,.section h2{
  font-size:clamp(1.7rem,2.85vw,3.05rem);
  line-height:1.08;
  letter-spacing:-.022em;
}

.content-prose h2{
  font-size:clamp(1.55rem,2.2vw,2.2rem);
  line-height:1.15;
}

.card h3,.faq-item h3{
  font-size:1.3rem;
  line-height:1.22;
}

.price{
  font-size:1.34rem;
}

.hero p.lead,.page-hero p.lead{
  font-size:clamp(1rem,1.35vw,1.18rem);
}

.enquiry-form{
  background:var(--form-bg);
  color:var(--form-text);
  border:2px solid rgba(7,16,18,.38);
  box-shadow:0 18px 46px rgba(7,16,18,.12);
}

.enquiry-form h2,
.enquiry-form p,
.enquiry-form label,
.enquiry-form .check,
.enquiry-form .check span,
.enquiry-form a{
  color:var(--form-text);
}

.enquiry-form h2{
  font-size:clamp(1.45rem,2vw,2rem);
  line-height:1.16;
}

.enquiry-form p{
  color:#26302d;
  font-weight:520;
}

.field label{
  color:var(--form-label);
  font-weight:900;
}

.field input,.field select,.field textarea{
  background:#ffffff;
  color:var(--form-text);
  border:1.5px solid var(--form-border);
  border-radius:6px;
  padding:13px 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}

.field input::placeholder,
.field textarea::placeholder{
  color:#4d5853;
  opacity:1;
}

.field input:focus,.field select:focus,.field textarea:focus{
  outline:3px solid rgba(35,79,70,.20);
  border-color:var(--form-focus);
  box-shadow:0 0 0 1px var(--form-focus);
  background:#ffffff;
}

.check{
  color:var(--form-text);
  font-weight:650;
}

.form-error{
  color:#7b1e18;
  background:#fff0ee;
  border-left:4px solid #7b1e18;
  padding:10px 12px;
}

@media (max-width:640px){
  .hero h1,.page-hero h1{
    font-size:2.18rem;
    line-height:1.04;
  }
  .section-head h2,.section h2{
    font-size:1.85rem;
  }
}


/* Final requested heading scale: about 25% smaller */
.hero h1,.page-hero h1{
  font-size:clamp(1.55rem,3.2vw,3.42rem);
  line-height:1.08;
  letter-spacing:-.026em;
}

.section-head h2,.section h2{
  font-size:clamp(1.28rem,2.15vw,2.3rem);
  line-height:1.14;
  letter-spacing:-.014em;
}

.content-prose h2{
  font-size:clamp(1.18rem,1.65vw,1.65rem);
  line-height:1.2;
}

.card h3,.faq-item h3,.sticky-box h2,.footer-grid h3{
  font-size:1.03rem;
  line-height:1.25;
}

.enquiry-form h2{
  font-size:clamp(1.1rem,1.5vw,1.5rem);
  line-height:1.2;
}

.hero-card strong{
  font-size:1.05rem;
}

@media (max-width:640px){
  .hero h1,.page-hero h1{
    font-size:1.65rem;
    line-height:1.1;
  }
  .section-head h2,.section h2{
    font-size:1.4rem;
    line-height:1.16;
  }
  .content-prose h2{
    font-size:1.28rem;
  }
}
