:root{
  --bone:#FAF7F0;
  --bone-2:#F1EADC;
  --espresso:#2A211C;
  --espresso-soft:#4A3E36;
  --wine:#6E2436;
  --wine-light:#7C2B3F;
  --wine-deep:#551B29;
  --clay:#A85F3C;
  --pine:#2E3D34;
  --pine-light:#3B4E43;
  --stone:#C7B8A2;
  --cream:#F6EFE2;
  --line:rgba(42,33,28,.16);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bone);color:var(--espresso);font-family:var(--sans);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.wrap{max-width:1040px;margin:0 auto;padding:0 32px;}
.narrow{max-width:720px;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.14;margin:0;letter-spacing:-.01em;text-wrap:balance;}
p{margin:0 0 1.1em;}
a{color:var(--wine);text-underline-offset:3px;}
.bleed{width:100vw;margin-left:calc(50% - 50vw);}

a:focus-visible,button:focus-visible{outline:2.5px solid var(--wine);outline-offset:3px;border-radius:4px;}

.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin:0 0 16px;}
.btn{display:inline-block;background:var(--wine);color:var(--cream);text-decoration:none;font-weight:600;padding:14px 26px;border-radius:100px;font-size:16px;transition:background-color .25s ease, transform .2s ease, box-shadow .2s ease;box-shadow:0 0 0 rgba(85,27,41,0);}
.btn:hover{background:var(--wine-deep);transform:translateY(-2px);box-shadow:0 12px 26px rgba(85,27,41,.35);}
.hero-v2 .btn:hover,.closing .btn:hover{background:#fff;box-shadow:0 12px 26px rgba(30,8,14,.3);}
@media(prefers-reduced-motion:reduce){.btn{transition:background-color .25s ease;}.btn:hover{transform:none;}}

.hl{border-bottom:5px solid var(--clay);padding-bottom:1px;font-weight:700;}
.hl-soft{border-bottom:4px solid var(--wine);padding-bottom:1px;}

/* nav */
nav{position:sticky;top:0;z-index:9;background:rgba(250,247,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:15px;padding-bottom:15px;flex-wrap:wrap;gap:10px;}
.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);color:var(--espresso);}
.brand-name{font-weight:600;line-height:.86;font-size:24px;letter-spacing:.005em;}
.brand-name span{display:block;}
.navlinks{display:flex;gap:26px;font-size:14.5px;flex-wrap:wrap;}
.navlinks a{color:var(--espresso-soft);text-decoration:none;}
.navlinks a:hover{color:var(--wine);}

/* hero v2: full bleed wine */
.hero-v2{background:var(--wine);background-image:radial-gradient(130% 150% at 12% -15%, var(--wine-light), var(--wine) 48%, var(--wine-deep) 100%);color:var(--cream);padding:80px 0 100px;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.hero-v2 .eyebrow{color:#E7C9AE;}
.hero-v2 h1{font-size:clamp(42px,6.4vw,72px);color:#fff;}
.hero-v2 .sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.2vw,22px);color:#EBD9CB;max-width:34ch;margin:22px 0 10px;}
.hero-meta{font-size:14px;color:#D9BFA9;margin:0 0 30px;}
.hero-v2 .btn{background:var(--cream);color:var(--wine);}
.hero-photo-wrap{position:relative;}
.hero-photo-wrap .blob-back{position:absolute;inset:-6% -10% -10% 8%;background:var(--clay);border-radius:58% 42% 39% 61% / 55% 40% 60% 45%;opacity:.55;z-index:0;}
.hero-photo{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:58% 42% 39% 61% / 55% 40% 60% 45%;box-shadow:0 24px 60px rgba(30,8,14,.35);}

@media(max-width:760px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-photo-wrap{order:-1;max-width:320px;margin:0 auto;}
}

section{padding:76px 0;}
section h2{font-size:clamp(28px,4.2vw,38px);margin-bottom:26px;}
.lead{font-size:21px;color:var(--espresso-soft);}

/* full-bleed parallax banner: cropped shorter, image drifts slightly slower than the page scrolls */
.parallax-banner{width:100vw;margin-left:calc(50% - 50vw);height:28vh;min-height:210px;max-height:330px;overflow:hidden;position:relative;}
.parallax-img{position:absolute;top:-35%;left:0;width:100%;height:170%;background-size:cover;background-position:center 38%;will-change:transform;}
.banner-who-crop{background-position:center 65%;}
@media(min-width:900px){.banner-who-crop{background-position:center 42%;}}

/* per-section gradient tints, for a little dimension instead of flat fills */
#intro{background:linear-gradient(175deg, var(--bone) 0%, var(--bone-2) 100%);}
#approach{background:linear-gradient(200deg, var(--bone-2) 0%, var(--bone) 45%);}
#how{background:linear-gradient(190deg, var(--bone) 0%, var(--bone-2) 100%);}
#who{background:linear-gradient(15deg, var(--bone-2) 0%, var(--bone) 55%);}
#about{background:linear-gradient(185deg, var(--bone) 0%, var(--bone-2) 100%);}
#lighthouse{background:linear-gradient(15deg, var(--bone-2) 0%, var(--bone) 55%);}
#contact{background:linear-gradient(190deg, var(--bone) 0%, var(--bone-2) 100%);}

/* intro */
#intro .lead{font-size:22px;}
.intro-emphasis{font-family:var(--serif);font-weight:600;color:var(--espresso);}

/* approach */
.approach-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:56px;align-items:start;}
.approach-intro p{font-size:19px;max-width:60ch;}
.principle{padding:22px 0;border-top:1px solid var(--line);}
.principle:first-of-type{border-top:0;}
.principle h3{font-size:22px;color:var(--wine);margin-bottom:7px;font-weight:500;}
.principle p{margin:0;color:var(--espresso-soft);max-width:60ch;}
.hl-sm{border-bottom:3px solid var(--clay);padding-bottom:0;}

/* approach photo column */
.approach-photo-col{position:sticky;top:96px;}
.break-frame{position:relative;width:min(400px,80vw);margin:0 auto;}
.break-frame .blob-back{position:absolute;inset:10% -14% 8% -8%;background:var(--pine);opacity:.85;border-radius:46% 54% 61% 39% / 55% 40% 63% 45%;z-index:0;}
.break-frame img{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:50%;box-shadow:0 20px 44px rgba(42,33,28,.18);}
.break-caption{position:relative;z-index:2;text-align:center;max-width:36ch;margin:32px auto 0;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--espresso-soft);}

@media(max-width:800px){
  .approach-grid{grid-template-columns:1fr;}
  .approach-photo-col{position:static;order:-1;margin-bottom:12px;}
}

/* phases */
.phase{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line);}
.phase:first-of-type{border-top:0;}
.phase .n{width:40px;height:40px;border-radius:58% 42% 39% 61% / 55% 40% 60% 45%;background:var(--wine);color:var(--cream);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;}
.phase h4{font-size:19px;margin-bottom:5px;}
.phase p{margin:0;color:var(--espresso-soft);font-size:16px;}

/* who */
.who{display:grid;gap:0;}
.who .row{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:18px;}
.who .row:first-child{border-top:0;}
.who .lab{font-weight:600;color:var(--wine);}
@media(max-width:560px){.who .row{grid-template-columns:1fr;gap:2px;}}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start;}
.about p{max-width:64ch;}
.about-photo-wrap{position:relative;}
.about-photo-wrap .blob-back{position:absolute;inset:-8% -12% -8% 10%;background:var(--stone);border-radius:63% 37% 42% 58% / 44% 63% 37% 56%;z-index:0;}
.about-photo-frame{position:relative;z-index:1;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:63% 37% 42% 58% / 44% 63% 37% 56%;box-shadow:0 18px 44px rgba(42,33,28,.16);}
.about-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%;transform:scale(1.3);transform-origin:50% 25%;}
.role{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin-bottom:18px;}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:26px 40px;margin:26px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.creds h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);font-family:var(--sans);font-weight:600;margin-bottom:10px;}
.creds ul{list-style:none;margin:0;padding:0;}
.creds li{padding:5px 0;font-size:15.5px;border-bottom:1px solid var(--line);}
.creds li:last-child{border-bottom:0;}
.superv{font-size:15.5px;color:var(--espresso-soft);max-width:64ch;}
@media(max-width:760px){
  .about-grid{grid-template-columns:1fr;}
  .about-photo-wrap{order:-1;max-width:280px;margin:0 auto;}
}
@media(max-width:560px){.creds{grid-template-columns:1fr;}}

/* lighthouse */
.deep{background:var(--pine);background-image:linear-gradient(155deg, var(--pine-light) 0%, var(--pine) 65%);color:#EDE6D6;border-radius:38px 12px 38px 12px;padding:44px 40px;}
.deep-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:44px;align-items:center;}
.deep h2{color:#fff;margin-bottom:14px;}
.deep p{color:#D6CDB9;max-width:60ch;}
.deep .eyebrow{color:#C9A98A;}
.deep a{color:#E7C9AE;}
.deep-photo{width:100%;height:auto;aspect-ratio:1/1;border-radius:50%;object-fit:cover;object-position:64% 40%;display:block;box-shadow:0 18px 40px rgba(0,0,0,.28);border:5px solid rgba(255,255,255,.14);}
@media(max-width:700px){
  .deep-grid{grid-template-columns:1fr;}
  .deep-photo{order:-1;max-width:220px;margin:0 auto;}
}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start;}
@media(max-width:640px){.contact-grid{grid-template-columns:1fr;}}
.booking-row{display:flex;gap:14px;flex-wrap:wrap;margin:22px 0 0;}
.callout{background:var(--bone-2);border-radius:14px;padding:24px 26px;font-size:15.5px;}
.hive-logo{display:block;height:56px;width:auto;margin-bottom:18px;}
.callout .eyebrow{margin-bottom:10px;}

/* closing band */
.closing{background:var(--wine);background-image:radial-gradient(130% 160% at 85% 115%, var(--wine-light), var(--wine) 50%, var(--wine-deep) 100%);color:var(--cream);padding:80px 0;}
.closing-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:56px;align-items:center;}
.closing h2{color:#fff;font-size:clamp(28px,4.5vw,42px);max-width:16ch;margin:0 0 26px;}
.closing .btn{background:var(--cream);color:var(--wine);margin-top:6px;}
.closing-info{border-left:1.5px solid rgba(255,255,255,.25);padding-left:28px;}
.closing-info-label{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#E7C9AE;margin:0 0 4px;}
.closing-info-value{font-size:15.5px;color:#EBD9CB;margin:0 0 20px;}
.closing-info-value:last-child{margin-bottom:0;}
@media(max-width:700px){
  .closing-grid{grid-template-columns:1fr;}
  .closing-info{border-left:none;border-top:1.5px solid rgba(255,255,255,.25);padding-left:0;padding-top:24px;margin-top:8px;}
}

footer{padding:40px 0 70px;font-size:13.5px;color:var(--espresso-soft);}
footer .wrap{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between;}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
