@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..600;1,9..144,400..600&family=Inter:wght@300;400;500;600;700&family=Inter+Tight:wght@500;600;700&display=swap');

:root{
  --ink:#0D1116;
  --charcoal:#1B232B;
  --paper:#F6F3EC;
  --paper-alt:#EFEAE0;
  --tint:#EDF0EA;
  --blue:#1B5EA5;
  --blue-deep:#0F3A66;
  --blue-pale:#7FA9D4;
  --amber:#E8973A;
  --amber-soft:#F3B96C;
  --cream:#F3F0E8;
  --muted-dark:rgba(243,240,232,0.58);
  --muted-light:#5C6066;
  --hl-dark:rgba(243,240,232,0.14);
  --hl-light:rgba(13,17,22,0.1);
  --serif:'Fraunces', serif;
  --sans:'Inter', sans-serif;
  --sans-tight:'Inter Tight', sans-serif;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans); color:var(--ink); background:var(--paper); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body::before{
  content:''; position:fixed; inset:0; z-index:300; pointer-events:none; opacity:0.028; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1320px; margin:0 auto; padding:0 56px;}
section{position:relative;}
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.16,.8,.3,1), transform .8s cubic-bezier(.16,.8,.3,1);}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none;} }

/* Page-load intro sequence */
@keyframes fadeUpIn{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
.load-in{opacity:0; animation:fadeUpIn .9s cubic-bezier(.16,.8,.3,1) forwards;}
.load-1{animation-delay:.15s;}
.load-2{animation-delay:.32s;}
.load-3{animation-delay:.48s;}
.load-4{animation-delay:.62s;}
header.load-in{animation-delay:0s; animation-duration:.7s;}
@media (prefers-reduced-motion: reduce){ .load-in{opacity:1; animation:none;} }

/* ---------- Photo placeholder frames ---------- */
.photo-frame{
  position:relative; overflow:hidden; border-radius:4px;
  background:linear-gradient(150deg, var(--blue-deep) 0%, var(--ink) 75%);
}
.photo-frame::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(127,169,212,0.35), transparent 55%),
             radial-gradient(circle at 75% 80%, rgba(232,151,58,0.18), transparent 50%);
}
.photo-frame::after{
  content:''; position:absolute; inset:0; opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n2'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n2)'/></svg>");
  mix-blend-mode:overlay;
}
.photo-caption{
  position:absolute; left:16px; bottom:16px; z-index:2;
  font-family:var(--sans); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; font-weight:500;
  color:rgba(255,255,255,0.85); background:rgba(13,17,22,0.45); backdrop-filter:blur(6px);
  padding:7px 13px; border-radius:100px; border:1px solid rgba(255,255,255,0.12);
}
.photo-frame.no-overlay::before, .photo-frame.no-overlay::after{content:none; display:none;}

/* ---------- Nav ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:250; padding:26px 0;
  transition:padding .35s ease, background .35s ease, backdrop-filter .35s ease;
}
header.scrolled{padding:16px 0; background:rgba(13,17,22,0.78); backdrop-filter:blur(14px);}
nav.wrap{display:flex; align-items:center; justify-content:space-between;}
.logo-mark img{height:65px; width:auto; filter:brightness(0) invert(1);}
.nav-links-desktop{display:flex; align-items:center; gap:42px;}
.nav-links-mobile{display:none;}
.nav-links a{font-family:var(--sans-tight); font-size:13.5px; font-weight:600; color:var(--cream); letter-spacing:.02em; position:relative; padding:4px 0;}
.nav-links a:not(.nav-cta)::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--amber-soft); transition:width .3s ease;}
.nav-links a:not(.nav-cta):hover::after{width:100%;}
.nav-links a.nav-cta{border:1px solid rgba(243,240,232,0.35); padding:12px 30px; border-radius:100px; transition:border-color .25s ease, background .25s ease; display:inline-block; line-height:1;}
.nav-links a.nav-cta:hover{border-color:var(--amber-soft); background:rgba(232,151,58,0.1);}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; flex-shrink:0;}
.logo-mark{flex-shrink:0;}

/* ---------- Hero (composition: full-bleed photo + text overlay) ---------- */
.hero{min-height:88vh; position:relative; display:flex; align-items:flex-end;}
@keyframes heroZoomIn{ from{transform:scale(1.06); opacity:0;} to{transform:scale(1); opacity:1;} }
.hero .photo-frame{animation:heroZoomIn 1.6s cubic-bezier(.16,.8,.3,1) forwards;}
@media (prefers-reduced-motion: reduce){ .hero .photo-frame{animation:none;} }
.hero .photo-frame{position:absolute; inset:0; border-radius:0;}
.hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(13,17,22,0.92) 0%, rgba(13,17,22,0.55) 45%, rgba(13,17,22,0.35) 100%);}
.hero-content{position:relative; z-index:2; padding-bottom:72px; width:100%;}
.hero-eyebrow{font-family:var(--sans-tight); font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:32px; font-weight:600; display:flex; flex-wrap:wrap;}
.hero-eyebrow span:not(:last-child)::after{content:'—'; margin:0 10px; color:var(--muted-dark);}
.hero h1{
  font-family:var(--serif); font-weight:500; letter-spacing:-0.01em; color:var(--cream);
  font-size:clamp(44px, 6.4vw, 92px); line-height:1.04; max-width:920px;
}
.hero h1 .it{font-style:italic; color:var(--amber-soft); font-weight:500;}
.hero-bottom{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:32px; margin-top:40px; padding-top:28px; border-top:1px solid var(--hl-dark);}
.hero-sub{max-width:380px; font-size:16px; color:var(--muted-dark); font-weight:300;}
.hero-cta{display:inline-flex; align-items:center; gap:12px; font-family:var(--sans-tight); font-weight:600; font-size:15px; color:var(--cream); border-bottom:1px solid var(--amber-soft); padding-bottom:6px; transition:gap .3s ease, color .3s ease;}
.hero-cta:hover{gap:20px; color:var(--amber-soft);}

/* ---------- Intro split (composition: image left, text right) ---------- */
.intro{background:var(--paper); padding:100px 0;}
.intro .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:center;}
.intro .photo-frame{aspect-ratio:4/5;}
.intro-label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-light); margin-bottom:26px; font-weight:600;}
.intro h2{font-family:var(--sans-tight); font-weight:600; font-size:clamp(24px,2.6vw,34px); line-height:1.3; letter-spacing:-0.01em; margin-bottom:22px; max-width:520px;}
.intro p{font-size:16.5px; color:var(--muted-light); max-width:500px; margin-bottom:16px;}
.intro strong{color:var(--ink); font-weight:600;}

/* ---------- Featured / offset overlap (composition: large image, overlapping card) ---------- */
.featured{background:var(--paper-alt); padding:40px 0 110px; position:relative;}
.featured-img{position:relative; height:560px; margin:0 56px;}
.featured-img .photo-frame{position:absolute; inset:0;}
.featured-card{
  position:absolute; left:80px; bottom:-70px; z-index:3;
  background:var(--ink); color:var(--cream); padding:44px 46px; max-width:440px;
  box-shadow:0 40px 70px -30px rgba(13,17,22,0.4); border-radius:4px;
}
.featured-card .tag{font-family:var(--sans-tight); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--amber-soft); margin-bottom:16px; font-weight:600;}
.featured-card h3{font-family:var(--serif); font-weight:500; font-size:28px; margin-bottom:14px; letter-spacing:-0.01em;}
.featured-card p{font-size:14.5px; color:var(--muted-dark); font-weight:300;}

/* ---------- Services (composition: 3-up then 2-up card grid) ---------- */
.services{background:var(--paper-alt); padding:110px 0 80px;}
.section-head{max-width:560px; margin-bottom:44px;}
.section-eyebrow{font-family:var(--sans-tight); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-light); margin-bottom:20px; font-weight:600;}
.section-head h2{font-family:var(--sans-tight); font-weight:600; font-size:clamp(28px,3vw,38px); letter-spacing:-0.015em; line-height:1.2; margin-bottom:16px;}
.section-head p{font-size:16px; color:var(--muted-light);}
.services-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--hl-light); border:1px solid var(--hl-light);}
.service-card{
  background:var(--paper); padding:40px 34px 34px; transition:transform .4s cubic-bezier(.16,.8,.3,1), box-shadow .4s ease, background .4s ease;
  position:relative; overflow:hidden;
}
.service-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--blue), var(--amber));
  transform:scaleX(0); transform-origin:left; transition:transform .5s cubic-bezier(.16,.8,.3,1);
}
.service-card:hover{transform:translateY(-6px); box-shadow:0 34px 60px -28px rgba(13,17,22,0.22); background:var(--surface, #fff); z-index:2;}
.service-card:hover::before{transform:scaleX(1);}
.service-card-top{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px;}
.service-icon{
  width:50px; height:50px; border-radius:50%; background:rgba(27,94,165,0.07);
  display:flex; align-items:center; justify-content:center;
  transition:background .4s ease, transform .4s ease;
}
.service-card:hover .service-icon{background:var(--blue); transform:scale(1.06);}
.service-icon svg{width:22px; height:22px; stroke:var(--blue); fill:none; stroke-width:1.5; transition:stroke .4s ease;}
.service-card:hover .service-icon svg{stroke:var(--cream);}
.service-index{font-family:var(--sans-tight); font-size:12px; font-weight:600; color:var(--hl-light); letter-spacing:.04em; padding-top:6px;}
.service-card h3{font-family:var(--sans-tight); font-weight:600; font-size:19px; margin-bottom:12px; letter-spacing:-0.01em;}
.service-card p{font-size:14.5px; color:var(--muted-light); font-weight:400; margin-bottom:22px; min-height:44px;}
.service-more{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--sans-tight); font-size:13px; font-weight:600; color:var(--blue);
  opacity:0; transform:translateY(6px); transition:opacity .35s ease, transform .35s ease;
}
.service-card:hover .service-more{opacity:1; transform:translateY(0);}
.service-card.wide{grid-column:span 1;}
.services-row2{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--hl-light); margin-top:1px; border:1px solid var(--hl-light); border-top:none;}

/* ---------- Process timeline (composition: horizontal steps) ---------- */
.process{background:var(--ink); color:var(--cream); padding:100px 0;}
.process .section-eyebrow{color:var(--muted-dark);}
.process .section-head h2{color:var(--cream);}
.process .section-head p{color:var(--muted-dark);}
.timeline{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; margin-top:20px;}
.timeline::before{content:''; position:absolute; top:11px; left:0; right:0; height:1px; background:var(--hl-dark);}
.tl-step{padding-right:32px; position:relative;}
.tl-dot{width:23px; height:23px; border-radius:50%; border:1px solid var(--amber-soft); background:var(--ink); position:relative; z-index:1; margin-bottom:28px; display:flex; align-items:center; justify-content:center;}
.tl-dot::after{content:''; width:7px; height:7px; border-radius:50%; background:var(--amber-soft);}
.tl-step h4{font-family:var(--sans-tight); font-weight:600; font-size:18px; margin-bottom:10px;}
.tl-step p{font-size:14px; color:var(--muted-dark); max-width:220px;}

/* ---------- Why (composition: layered glass card over image) ---------- */
.why{background:var(--paper); padding:110px 0;}
.why-stage{position:relative; max-width:1100px; margin:0 auto;}
.why-stage .photo-frame{height:520px; margin-left:auto; width:82%;}
.why-glass{
  position:absolute; left:0; top:60px; width:46%; z-index:2;
  background:rgba(13,17,22,0.82); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,0.08); border-radius:6px; padding:44px 40px; color:var(--cream);
  box-shadow:0 40px 70px -30px rgba(13,17,22,0.35);
}
.why-glass .label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--amber-soft); margin-bottom:22px; font-weight:600;}
.why-glass h3{font-family:var(--serif); font-weight:500; font-size:clamp(24px,2.8vw,32px); line-height:1.3; margin-bottom:22px;}
.why-glass p{font-size:15px; color:var(--muted-dark); font-weight:300;}
.why-flaw{
  margin-top:24px; padding-top:22px; border-top:1px solid var(--hl-dark);
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:18px !important; line-height:1.45; color:var(--cream) !important;
}

/* ---------- Testimonial (composition: elevated card) ---------- */
.testimonial{background:var(--paper-alt); padding:110px 0;}
.t-card{
  max-width:820px; margin:0 auto; background:var(--paper); border-radius:6px; padding:64px 70px;
  box-shadow:0 40px 80px -36px rgba(13,17,22,0.18); text-align:center; position:relative;
}
.t-avatar{width:64px; height:64px; border-radius:50%; margin:0 auto 28px; background:linear-gradient(150deg, var(--blue), var(--blue-deep));}
.t-tag{display:inline-block; font-family:var(--sans-tight); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-light); border:1px solid var(--hl-light); padding:6px 14px; border-radius:100px; margin-bottom:30px;}
.t-card blockquote{font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(22px,2.6vw,30px); line-height:1.45; color:var(--ink); margin-bottom:26px;}
.t-card .attrib{font-family:var(--sans-tight); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-light); font-weight:600;}

/* ---------- Final CTA (restrained — not competing with hero) ---------- */
.final-cta{background:linear-gradient(160deg, var(--charcoal), var(--ink) 70%); color:var(--cream); padding:110px 0; text-align:center;}
.final-cta-label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:26px; font-weight:600;}
.final-cta h2{font-family:var(--sans-tight); font-weight:600; font-size:clamp(30px,3.6vw,44px); letter-spacing:-0.015em; line-height:1.25; max-width:680px; margin:0 auto 40px;}
.final-cta-cta{display:inline-flex; align-items:center; gap:12px; font-family:var(--sans-tight); font-weight:600; font-size:15.5px; color:var(--ink); background:var(--amber-soft); padding:16px 30px; border-radius:100px; transition:transform .25s ease, background .25s ease;}
.final-cta-cta:hover{transform:translateY(-3px); background:var(--amber);}
.final-cta-contact{margin-top:44px; padding-top:36px; border-top:1px solid var(--hl-dark); display:flex; justify-content:center; gap:48px; flex-wrap:wrap;}
.final-cta-contact-item{text-align:left;}
.final-cta-contact-item .label{font-family:var(--sans-tight); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:8px; font-weight:600;}
.final-cta-contact-item a{font-family:var(--sans-tight); font-size:20px; font-weight:600; color:var(--cream); border-bottom:1px solid transparent; transition:border-color .25s ease, color .25s ease;}
.final-cta-contact-item a:hover{border-color:var(--amber-soft); color:var(--amber-soft);}

/* ---------- Footer ---------- */
footer{background:var(--paper); border-top:1px solid var(--hl-light); padding:64px 0 32px;}
.footer-top{display:grid; grid-template-columns:1.3fr 0.8fr 0.8fr 0.8fr; gap:40px; padding-bottom:44px;}
.footer-brand img{height:38px; margin-bottom:20px;}
.footer-brand p{font-size:14px; max-width:260px; color:var(--muted-light); font-weight:400;}
.footer-col h4{font-family:var(--sans-tight); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:18px; font-weight:600;}
.footer-col a, .footer-col p{display:block; font-size:14px; margin-bottom:11px; color:var(--muted-light); font-weight:400;}
.footer-col a:hover{color:var(--blue);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:28px; border-top:1px solid var(--hl-light); font-size:12.5px; color:var(--muted-light); flex-wrap:wrap; gap:12px;}

@media (max-width:900px){
  .wrap{padding:0 26px;}
  .about-hero, .page-hero, .contact-hero, .service-detail-hero{padding-top:130px;}
  header{padding:18px 0;}
  header.scrolled{padding:14px 0;}
  .logo-mark img{height:60px;}
  .nav-links-desktop{display:none;}
  .nav-links-mobile{display:flex; position:fixed; top:0; left:0; right:0; bottom:0; background:var(--ink); flex-direction:column; justify-content:flex-start; align-items:flex-start; padding:110px 30px 30px; gap:18px; transform:translateX(100%); transition:transform .35s ease; overflow-y:auto; z-index:200;}
  .nav-links-mobile.open{transform:translateX(0);}
  .nav-links a{font-size:21px; padding:6px 0;}
  .nav-links a.nav-cta{margin-top:8px; padding:14px 30px; font-size:15px;}
  .nav-toggle{
    display:block; position:relative; z-index:110;
    width:44px; height:44px; padding:0; margin:-10px;
  }
  .nav-toggle-line{
    position:absolute; left:11px; width:22px; height:2px; background:var(--cream);
    transition:transform .3s cubic-bezier(.4,0,.2,1), opacity .2s ease, top .3s cubic-bezier(.4,0,.2,1);
  }
  .nav-toggle-line:nth-child(1){top:16px;}
  .nav-toggle-line:nth-child(2){top:22px;}
  .nav-toggle-line:nth-child(3){top:28px;}
  .nav-toggle.open .nav-toggle-line:nth-child(1){top:22px; transform:rotate(45deg);}
  .nav-toggle.open .nav-toggle-line:nth-child(2){opacity:0;}
  .nav-toggle.open .nav-toggle-line:nth-child(3){top:22px; transform:rotate(-45deg);}
  .intro .wrap{grid-template-columns:1fr; gap:40px;}
  .featured-img{margin:0 26px; height:auto;}
  .featured-img .photo-frame{position:relative; height:260px;}
  .featured-card{position:static; margin:0; max-width:none; padding:28px 24px; border-radius:0 0 6px 6px; box-shadow:none;}
  .featured-card h3{font-size:22px;}
  .featured{padding:50px 0 60px;}
  .services-grid, .services-row2{grid-template-columns:1fr;}
  .timeline{grid-template-columns:1fr; gap:36px;}
  .timeline::before{display:none;}
  .why-stage .photo-frame{width:100%;}
  .why-glass{position:static; width:100%; margin-top:-60px; margin-left:26px; margin-right:26px; width:auto;}
  .t-card{padding:44px 30px;}
  .footer-top{grid-template-columns:1fr; gap:36px;}
  .intro, .services, .process, .why, .testimonial, .final-cta{padding-top:90px; padding-bottom:90px;}
}

/* ---------- Small phones ---------- */
@media (max-width:480px){
  .wrap{padding:0 20px;}
  .hero{min-height:78vh;}
  .hero .photo-frame{background-position:88% 8% !important;}
  .hero-scrim{background:rgba(13,17,22,0.8);}
  .hero-eyebrow{font-size:11px; margin-bottom:20px; flex-direction:column; gap:6px; align-items:flex-start;}
  .hero-eyebrow span:not(:last-child)::after{content:none; margin:0;}
  .hero h1{font-size:clamp(30px,8vw,40px); max-width:100%;}
  .hero-sub{font-size:14.5px; max-width:100%;}
  .hero-content{padding-bottom:40px;}
  .hero-bottom{margin-top:22px; padding-top:18px; gap:20px;}
  .service-link-card .card-body{padding:30px 26px;}
  .contact-form-panel, .contact-direct-panel{padding:32px 22px;}
  .stat-callout, .tag-callout, .perfect-box{padding:24px 20px;}
  .testimonial-card, .t-card{padding:34px 22px;}
  .footer-giant{font-size:clamp(40px,18vw,90px);}
  .final-cta, .about-closing{padding-top:80px; padding-bottom:80px;}
}

/* ---------- About page: hero ---------- */
.about-hero{background:var(--ink); color:var(--cream); padding:170px 0 100px; position:relative; overflow:hidden;}
.about-hero .art-glow{position:absolute; width:820px; height:820px; border-radius:50%; top:-320px; right:-260px; background:radial-gradient(circle at 35% 30%, var(--blue-pale), transparent 45%), radial-gradient(circle at 65% 65%, var(--amber-soft), transparent 40%); filter:blur(80px); opacity:.5;}
.about-hero .wrap{display:grid; grid-template-columns:1fr 0.85fr; gap:70px; align-items:center;}
.about-eyebrow{font-family:var(--sans-tight); font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:28px; font-weight:600;}
.about-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(38px,4.6vw,60px); line-height:1.12; letter-spacing:-0.01em;}
.about-hero h1 .it{font-style:italic; color:var(--amber-soft);}
.about-hero-portrait{position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden;}

/* ---------- Narrative sections ---------- */
.narrative{background:var(--paper); padding:110px 0;}
.narrative.alt{background:var(--paper-alt);}
.narrative .wrap{max-width:760px;}
.narrative .wrap.narrative-columns{max-width:980px;}
.narrative p{font-size:18px; color:var(--muted-light); line-height:1.75; margin-bottom:24px;}
.narrative p:last-child{margin-bottom:0;}
.narrative strong{color:var(--ink); font-weight:600;}
.narrative .drop{font-family:var(--serif); font-style:italic; font-weight:500; font-size:26px; color:var(--blue); display:block; margin:36px 0;}

/* ---------- Dark pull-quote band ---------- */
.pull-band{background:var(--ink); color:var(--cream); padding:130px 0; text-align:center;}
.pull-band blockquote{font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(26px,3.6vw,42px); line-height:1.4; max-width:880px; margin:0 auto; letter-spacing:-0.01em;}
.pull-band .it{color:var(--amber-soft);}

/* ---------- Split process section ---------- */
.process-split{background:var(--paper); padding:110px 0;}
.process-split .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center;}
.process-split .photo-frame{aspect-ratio:4/5;}
.process-split-label{font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-light); margin-bottom:24px; font-weight:600; font-family:var(--sans-tight);}
.process-split h2{font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.2vw,38px); line-height:1.25; margin-bottom:22px; letter-spacing:-0.01em;}
.process-split p{font-size:16px; color:var(--muted-light); line-height:1.7;}

/* ---------- Three questions triptych ---------- */
.questions{background:var(--ink); color:var(--cream); padding:130px 0;}
.questions-head{max-width:600px; margin-bottom:64px;}
.questions-head .about-eyebrow{color:var(--muted-dark);}
.questions-head h2{font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.2vw,40px); line-height:1.2; letter-spacing:-0.01em;}
.questions-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hl-dark); border:1px solid var(--hl-dark);}
.question-item{background:var(--ink); padding:44px 34px;}
.question-item .q-num{font-family:var(--serif); font-style:italic; font-size:15px; color:var(--amber-soft); margin-bottom:20px; display:block;}
.question-item h3{font-family:var(--serif); font-weight:500; font-size:22px; line-height:1.3; letter-spacing:-0.01em;}

/* ---------- Closing statement ---------- */
.about-closing{background:linear-gradient(160deg, var(--charcoal), var(--ink) 70%); color:var(--cream); padding:150px 0; text-align:center; position:relative; overflow:hidden;}
.about-closing .art-panel{width:700px; height:700px; border-radius:50%; position:absolute; top:-260px; left:50%; transform:translateX(-50%); background:radial-gradient(circle, rgba(232,151,58,0.3), transparent 65%); filter:blur(30px);}
.about-closing .wrap{position:relative;}
.about-closing p.lead{font-family:var(--sans-tight); font-size:14px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:30px; font-weight:600;}
.about-closing h2{font-family:var(--serif); font-weight:500; font-size:clamp(32px,5vw,58px); line-height:1.2; max-width:780px; margin:0 auto 46px; letter-spacing:-0.01em;}
.about-closing h2 .it{font-style:italic; color:var(--amber-soft);}
.about-closing-cta{display:inline-flex; align-items:center; gap:12px; font-family:var(--sans-tight); font-weight:600; font-size:15.5px; color:var(--ink); background:var(--amber-soft); padding:16px 30px; border-radius:100px; transition:transform .25s ease, background .25s ease;}
.about-closing-cta:hover{transform:translateY(-3px); background:var(--amber);}

@media (max-width:900px){
  .about-hero .wrap{grid-template-columns:1fr; gap:40px;}
  .process-split .wrap{grid-template-columns:1fr; gap:40px;}
  .questions-grid{grid-template-columns:1fr;}
  .narrative, .pull-band, .process-split, .questions, .about-closing{padding-top:80px; padding-bottom:80px;}
}

/* ---------- Nav active state ---------- */
.nav-links a.is-active::after{width:100% !important;}
.nav-links a.is-active{color:var(--amber-soft) !important;}

/* ---------- Simple page hero (services overview, contact, etc.) ---------- */
.page-hero{background:var(--ink); color:var(--cream); padding:170px 0 100px;}
.page-hero .about-eyebrow{margin-bottom:26px;}
.page-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(38px,5vw,64px); line-height:1.1; letter-spacing:-0.01em; max-width:760px;}
.page-hero p{font-size:17px; color:var(--muted-dark); max-width:560px; margin-top:26px; font-weight:300;}

/* ---------- Contact page ---------- */
.contact-form{display:flex; flex-direction:column; gap:26px;}
.form-group{display:flex; flex-direction:column; gap:10px;}
.form-group label{font-family:var(--sans-tight); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-light); font-weight:600;}
.form-group input, .form-group textarea{
  border:none; border-bottom:1.5px solid var(--hl-light); background:transparent; padding:12px 2px;
  font-family:var(--sans); font-size:16px; color:var(--ink); transition:border-color .25s ease;
}
.form-group input:focus, .form-group textarea:focus{outline:none; border-color:var(--blue);}
.form-group textarea{resize:vertical; min-height:120px;}
.form-submit{
  align-self:flex-start; display:inline-flex; align-items:center; gap:10px;
  background:var(--ink); color:var(--cream); padding:16px 32px; border-radius:100px; border:none;
  font-family:var(--sans-tight); font-weight:600; font-size:15px; cursor:pointer; transition:background .25s ease, transform .25s ease;
}
.form-submit:hover{background:var(--blue); transform:translateY(-2px);}
.contact-direct{background:var(--paper-alt); border-radius:6px; padding:44px 38px; align-self:start;}
.contact-direct h4{font-family:var(--sans-tight); font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-light); margin-bottom:26px; font-weight:600;}
.contact-direct-item{margin-bottom:24px;}
.contact-direct-item:last-child{margin-bottom:0;}
.contact-direct-item .lbl{font-size:12px; color:var(--muted-light); margin-bottom:6px;}
.contact-direct-item a, .contact-direct-item span{font-family:var(--sans-tight); font-size:18px; font-weight:600; color:var(--ink);}
.contact-direct-item a:hover{color:var(--blue);}

@media (max-width:900px){
  .narrative-columns{grid-template-columns:1fr;}
}

/* ---------- About page: colour-accented callouts (breaks up long text) ---------- */
:root{ --amber-text:#B9701A; }
.narrative-columns{display:grid; grid-template-columns:1fr 260px; gap:56px; align-items:start;}
.narrative-columns .col-text p:last-child{margin-bottom:0;}
.stat-callout{background:var(--paper-alt); border-left:3px solid var(--blue); padding:30px 26px; border-radius:4px;}
.stat-callout .num{font-family:var(--serif); font-style:italic; font-weight:600; font-size:46px; color:var(--blue); line-height:1;}
.stat-callout .lbl{font-size:13px; color:var(--muted-light); margin-top:12px; font-weight:500; line-height:1.5;}
.tag-callout{background:var(--paper); border-left:3px solid var(--amber); padding:30px 26px; border-radius:4px;}
.tag-callout h4{font-family:var(--sans-tight); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-light); margin-bottom:18px; font-weight:600;}
.tag-callout ul{display:flex; flex-direction:column; gap:11px;}
.tag-callout li{font-size:14.5px; color:var(--ink); font-weight:600; display:flex; gap:10px; align-items:flex-start;}
.tag-callout li::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--amber); flex-shrink:0; margin-top:7px;}
.accent-amber-text{color:var(--amber-text); font-weight:600;}
.accent-blue-text{color:var(--blue); font-weight:600;}
.section-rule{height:2px; width:64px; background:linear-gradient(90deg, var(--blue), var(--amber)); margin:0 auto 0;}
.pull-band .section-rule{margin-top:44px;}

@media (max-width:900px){
  .narrative-columns{grid-template-columns:1fr;}
}

/* ---------- Services overview: redesigned ---------- */
.services-intro-eyebrow{font-family:var(--sans-tight); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-light); margin-bottom:24px; font-weight:600;}
.process-split.services-intro h2{font-size:clamp(26px,3vw,36px);}
.process-split.services-intro p{font-size:16.5px;}
.process-split.services-intro .lead-line{font-family:var(--serif); font-style:italic; font-weight:500; font-size:20px; color:var(--blue); display:block; margin:18px 0;}

.services-overview{background:var(--paper-alt); padding:100px 0;}
.services-overview-head{max-width:640px; margin-bottom:56px;}
.services-link-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; background:none; border:none;}
.service-link-card{
  background:var(--paper); border-radius:8px; padding:0; overflow:hidden;
  transition:transform .35s cubic-bezier(.16,.8,.3,1), box-shadow .35s ease;
  border:1px solid var(--hl-light);
}
.service-link-card:hover{transform:translateY(-6px); box-shadow:0 30px 54px -26px rgba(13,17,22,0.2);}
.service-link-card .card-top{height:5px; width:100%;}
.service-link-card.accent-blue .card-top{background:linear-gradient(90deg, var(--blue), var(--blue-pale));}
.service-link-card.accent-amber .card-top{background:linear-gradient(90deg, var(--amber), var(--amber-soft));}
.service-link-card .card-body{padding:38px 36px;}
.service-link-card .idx{font-family:var(--sans-tight); font-size:12px; color:var(--muted-light); font-weight:600; margin-bottom:18px; display:block; letter-spacing:.05em;}
.service-link-card .link-icon{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:22px; transition:transform .35s ease;}
.service-link-card.accent-blue .link-icon{background:rgba(27,94,165,0.1);}
.service-link-card.accent-amber .link-icon{background:rgba(232,151,58,0.14);}
.service-link-card:hover .link-icon{transform:scale(1.08) rotate(-4deg);}
.service-link-card.accent-blue .link-icon svg{stroke:var(--blue);}
.service-link-card.accent-amber .link-icon svg{stroke:var(--amber-text);}
.service-link-card .link-icon svg{width:24px; height:24px; fill:none; stroke-width:1.6;}
.service-link-card h3{font-family:var(--serif); font-weight:500; font-size:24px; margin-bottom:14px; letter-spacing:-0.01em; color:var(--ink);}
.service-link-card p{font-size:14.5px; color:var(--muted-light); margin-bottom:20px; line-height:1.6;}
.service-link-card .perfect-for{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.service-link-card .perfect-for span{font-family:var(--sans-tight); font-size:11.5px; font-weight:600; padding:5px 12px; border-radius:100px;}
.service-link-card.accent-blue .perfect-for span{background:rgba(27,94,165,0.08); color:var(--blue);}
.service-link-card.accent-amber .perfect-for span{background:rgba(232,151,58,0.14); color:var(--amber-text);}
.service-link-card .go{font-family:var(--sans-tight); font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:8px;}
.service-link-card.accent-blue .go{color:var(--blue);}
.service-link-card.accent-amber .go{color:var(--amber-text);}

/* ---------- Service detail page v2 ---------- */
.service-detail-hero{padding:170px 0 90px;}
.service-detail-hero.tone-blue{background:linear-gradient(160deg, var(--blue-deep), var(--ink) 75%); color:var(--cream);}
.service-detail-hero.tone-amber{background:linear-gradient(160deg, #7a4a12, var(--ink) 75%); color:var(--cream);}
.service-detail-hero .wrap{display:grid; grid-template-columns:1fr 0.8fr; gap:60px; align-items:center;}
.service-detail-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(34px,4.4vw,54px); line-height:1.12; letter-spacing:-0.01em;}
.service-detail-hero .lede{font-family:var(--serif); font-style:italic; font-weight:400; font-size:19px; color:var(--amber-soft); margin-top:20px; max-width:480px;}
.service-detail-hero .photo-frame{aspect-ratio:4/5;}

.service-detail-body2{background:var(--paper); padding:100px 0;}
.service-detail-body2 .wrap{display:grid; grid-template-columns:1fr 300px; gap:60px; align-items:start;}
.service-detail-body2 p{font-size:17px; color:var(--muted-light); line-height:1.75; margin-bottom:22px; max-width:600px;}
.service-detail-body2 .closer{font-family:var(--serif); font-style:italic; font-weight:500; font-size:19px; color:var(--ink); margin-top:8px;}
.perfect-box{border-radius:6px; padding:36px 32px; align-self:start;}
.perfect-box.tone-blue{background:var(--tint); border-left:3px solid var(--blue);}
.perfect-box.tone-amber{background:var(--paper-alt); border-left:3px solid var(--amber);}
.perfect-box h4{font-family:var(--sans-tight); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-light); margin-bottom:20px; font-weight:600;}
.perfect-box ul{display:flex; flex-direction:column; gap:13px;}
.perfect-box li{font-size:14.5px; color:var(--ink); font-weight:600; display:flex; gap:10px;}
.perfect-box.tone-blue li::before{content:'—'; color:var(--blue); flex-shrink:0;}
.perfect-box.tone-amber li::before{content:'—'; color:var(--amber-text); flex-shrink:0;}

@media (max-width:900px){
  .services-link-grid{grid-template-columns:1fr;}
  .service-detail-hero .wrap, .service-detail-body2 .wrap{grid-template-columns:1fr; gap:36px;}
}

/* ---------- Contact page v2 ---------- */
.contact-hero{background:var(--ink); color:var(--cream); padding:170px 0 0; position:relative; overflow:hidden;}
.contact-hero .art-glow{position:absolute; width:760px; height:760px; border-radius:50%; top:-320px; right:-260px; background:radial-gradient(circle at 35% 30%, var(--blue-pale), transparent 45%), radial-gradient(circle at 65% 65%, var(--amber-soft), transparent 40%); filter:blur(80px); opacity:.5;}
.contact-hero .wrap{position:relative; display:grid; grid-template-columns:1fr 0.7fr; gap:60px; align-items:end; padding-bottom:70px;}
.contact-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(36px,4.8vw,62px); line-height:1.1; letter-spacing:-0.01em;}
.contact-hero p{font-size:17px; color:var(--muted-dark); max-width:480px; margin-top:24px; font-weight:300;}
.contact-hero-strip{display:flex; gap:40px; flex-wrap:wrap; padding:30px 0; border-top:1px solid var(--hl-dark);}
.contact-hero-strip-item .lbl{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:8px; font-weight:600; font-family:var(--sans-tight);}
.contact-hero-strip-item a, .contact-hero-strip-item span{font-family:var(--sans-tight); font-size:18px; font-weight:600; color:var(--cream);}
.contact-hero-strip-item a:hover{color:var(--amber-soft);}

.contact-body2{background:var(--paper); padding:100px 0;}
.contact-body2 .wrap{display:grid; grid-template-columns:1.1fr 0.9fr; gap:0; border-radius:10px; overflow:hidden; box-shadow:0 40px 80px -40px rgba(13,17,22,0.25);}
.contact-form-panel{background:var(--surface,#fff); padding:56px 52px;}
.contact-form-panel .panel-label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-light); margin-bottom:8px; font-weight:600;}
.contact-form-panel h2{font-family:var(--serif); font-weight:500; font-size:28px; margin-bottom:32px; letter-spacing:-0.01em;}
.contact-form{display:flex; flex-direction:column; gap:24px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-group{display:flex; flex-direction:column; gap:9px;}
.form-group label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted-light); font-weight:600;}
.form-group input, .form-group textarea{
  border:none; border-bottom:1.5px solid var(--hl-light); background:transparent; padding:11px 2px;
  font-family:var(--sans); font-size:16px; color:var(--ink); transition:border-color .25s ease;
}
.form-group input:focus, .form-group textarea:focus{outline:none; border-color:var(--blue);}
.form-group textarea{resize:vertical; min-height:110px;}
.form-submit{
  align-self:flex-start; display:inline-flex; align-items:center; gap:10px;
  background:var(--ink); color:var(--cream); padding:16px 32px; border-radius:100px; border:none;
  font-family:var(--sans-tight); font-weight:600; font-size:15px; cursor:pointer; transition:background .25s ease, transform .25s ease;
}
.form-submit:hover{background:var(--blue); transform:translateY(-2px);}

.contact-direct-panel{background:linear-gradient(165deg, var(--charcoal), var(--ink) 80%); color:var(--cream); padding:56px 48px; position:relative; overflow:hidden;}
.contact-direct-panel .art-panel{position:absolute; width:420px; height:420px; border-radius:50%; bottom:-200px; right:-160px; background:radial-gradient(circle, rgba(232,151,58,0.28), transparent 65%); filter:blur(20px);}
.contact-direct-panel .panel-label{font-family:var(--sans-tight); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-dark); margin-bottom:8px; font-weight:600; position:relative;}
.contact-direct-panel h2{font-family:var(--serif); font-weight:500; font-size:26px; margin-bottom:36px; letter-spacing:-0.01em; position:relative;}
.contact-direct-item{margin-bottom:30px; position:relative;}
.contact-direct-item:last-child{margin-bottom:0;}
.contact-direct-item .icon{width:38px; height:38px; border-radius:50%; background:rgba(232,151,58,0.14); display:flex; align-items:center; justify-content:center; margin-bottom:12px;}
.contact-direct-item .icon svg{width:18px; height:18px; stroke:var(--amber-soft); fill:none; stroke-width:1.6;}
.contact-direct-item .lbl{font-size:11.5px; color:var(--muted-dark); margin-bottom:6px; text-transform:uppercase; letter-spacing:.08em;}
.contact-direct-item a, .contact-direct-item span{font-family:var(--sans-tight); font-size:19px; font-weight:600; color:var(--cream);}
.contact-direct-item a:hover{color:var(--amber-soft);}
.contact-direct-divider{height:1px; background:var(--hl-dark); margin:34px 0; position:relative;}

@media (max-width:900px){
  .contact-hero .wrap{grid-template-columns:1fr; padding-bottom:40px;}
  .contact-body2 .wrap{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .contact-form-panel, .contact-direct-panel{padding:40px 30px;}
}
