/* ==========================================================================
   Mainline Digital Solutions
   Shared stylesheet. Loaded by every page.
   ========================================================================== */

:root{
  color-scheme:only light;
  --teal:#006778;
  --teal-deep:#013f49;
  --teal-light:#5fb3c1;
  --ink:#10171b;
  --ink-soft:#2a3338;
  --paper:#f6f2ea;
  --paper-soft:#efe9dd;
  --gold:#c79a2e;
  --gold-deep:#a87f22;
  --gold-soft:rgba(199,154,46,0.34);
  --line:rgba(16,23,27,0.12);
  --line-dark:rgba(246,242,234,0.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;background:var(--paper);color-scheme:only light;}
body{
  font-family:'Montserrat',sans-serif;
  background:var(--paper);color:var(--ink);
  color-scheme:only light;
  line-height:1.65;font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  border-top:5px solid var(--gold);
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--teal);color:var(--paper);}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:600;line-height:1.06;letter-spacing:-0.01em;}
.eyebrow{
  font-family:'Montserrat',sans-serif;font-size:0.74rem;font-weight:600;
  letter-spacing:0.26em;text-transform:uppercase;color:var(--teal-deep);
}
.container{max-width:1120px;margin:0 auto;padding:0 32px;}

/* Skip link, keyboard users land here first */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--teal-deep);color:var(--paper);padding:12px 20px;
  font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;
}
.skip-link:focus{left:12px;top:12px;}

/* --------------------------------------------------------------------------
   Navigation
   -------------------------------------------------------------------------- */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;padding:22px 32px;
  transition:background .4s ease,padding .4s ease,box-shadow .4s ease;
}
#nav.scrolled{background:rgba(246,242,234,0.9);backdrop-filter:blur(12px);padding:14px 32px;box-shadow:0 1px 0 var(--line);}
.brand{display:flex;align-items:center;gap:11px;}
.brand-mark{width:26px;height:26px;flex:none;}
.brand-name{font-family:'Cormorant Garamond',serif;font-size:1.34rem;font-weight:600;color:var(--ink);}
.nav-links{display:flex;align-items:center;gap:38px;}
.nav-links a.navlink{
  position:relative;font-size:0.78rem;font-weight:400;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--ink-soft);transition:color .25s ease;
}
.nav-links a.navlink:hover{color:var(--teal-deep);}
.nav-links a.navlink.is-active{color:var(--teal-deep);font-weight:500;}
.nav-links a.navlink.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:-7px;
  height:2px;background:var(--gold);border-radius:2px;
}
a:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:3px;}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn{
  display:inline-block;font-family:'Montserrat',sans-serif;font-size:0.76rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;padding:13px 26px;
  border:1px solid var(--teal);background:var(--teal);color:var(--paper);border-radius:2px;
  transition:background .3s ease,color .3s ease,transform .3s ease;cursor:pointer;
}
.btn:hover{background:var(--teal-deep);border-color:var(--teal-deep);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--teal-deep);}
.btn-ghost:hover{background:var(--teal);color:var(--paper);transform:translateY(-2px);}
.btn-deep{background:var(--teal-deep);border-color:var(--teal-deep);color:var(--paper);}
.btn-deep:hover{background:var(--teal);border-color:var(--teal);transform:translateY(-2px);}
.btn-light{border-color:var(--paper);background:var(--paper);color:var(--teal-deep);}
.btn-light:hover{background:transparent;color:var(--paper);}
.nav-toggle{display:none;}

/* --------------------------------------------------------------------------
   Home hero
   -------------------------------------------------------------------------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;}
.rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(150vh,150vw);height:min(150vh,150vw);pointer-events:none;z-index:0;}
.rings span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid var(--teal);opacity:0;animation:ringpulse 11s ease-out infinite;}
.rings span.gold{border-color:var(--gold);border-width:2px;}
.rings span:nth-child(1){width:18%;height:18%;animation-delay:0s;}
.rings span:nth-child(2){width:36%;height:36%;animation-delay:1.4s;}
.rings span:nth-child(3){width:56%;height:56%;animation-delay:2.8s;}
.rings span:nth-child(4){width:78%;height:78%;animation-delay:4.2s;}
.rings span:nth-child(5){width:100%;height:100%;animation-delay:5.6s;}
@keyframes ringpulse{0%{opacity:0;}16%{opacity:0.45;}72%{opacity:0.12;}100%{opacity:0;}}
.hero-inner{position:relative;z-index:2;max-width:760px;margin:0 auto;text-align:center;}
.hero .eyebrow{display:block;margin-bottom:26px;}
.hero h1{font-size:clamp(3rem,8vw,5.4rem);margin-bottom:28px;color:var(--ink);font-weight:700;}
.grad{color:var(--teal-deep);}
.hero p.lead{font-size:1.12rem;font-weight:400;max-width:500px;color:var(--ink);margin:0 auto 38px;}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.hero .hero-cta{justify-content:center;}
.hero .hero-cta .btn{width:min(500px,100%);padding:20px 26px;font-size:0.95rem;letter-spacing:0.14em;text-align:center;}

/* --------------------------------------------------------------------------
   Interior page header
   Compact counterpart to the home hero, sits under the fixed nav.
   -------------------------------------------------------------------------- */
.page-hero{
  position:relative;overflow:hidden;
  padding:clamp(150px,18vw,190px) 0 clamp(60px,7vw,84px);
  background:var(--paper-soft);
  border-bottom:1px solid var(--line);
}
.page-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gold),rgba(199,154,46,0));
}
.page-hero-inner{max-width:720px;}
.page-hero .eyebrow{display:block;margin-bottom:18px;}
.page-hero h1{font-size:clamp(2.6rem,6.4vw,4.2rem);color:var(--ink);margin-bottom:20px;}
.page-hero p.lead{font-size:1.05rem;font-weight:300;color:var(--ink-soft);max-width:560px;}
.page-hero .hero-cta{justify-content:flex-start;margin-top:30px;}

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
section{position:relative;}
.pad{padding:clamp(72px,9vw,110px) 0;}
.divider{border:none;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);max-width:1120px;margin:0 auto;}
.section-head{max-width:640px;margin-bottom:64px;}
.section-head .eyebrow{display:block;margin-bottom:18px;}
.section-head h2{font-size:clamp(2.2rem,5vw,3.4rem);}
.section-head h2::after{content:"";display:block;width:64px;height:3px;background:var(--gold);margin-top:22px;border-radius:2px;}
.section-head p{font-size:1rem;color:var(--ink-soft);font-weight:300;margin-top:20px;max-width:540px;}
.story .section-head h2::after{background:var(--gold);}

.story{background:var(--ink);color:var(--paper);}
.story .eyebrow{color:var(--teal-light);}
.story .section-head p{color:rgba(246,242,234,0.78);}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.pillar{padding:44px 34px 0;border-top:1px solid var(--line-dark);}
.pillar:first-child{padding-left:0;}
.pillar:last-child{padding-right:0;}
.pillar:not(:last-child){border-right:1px solid var(--line-dark);}
.pillar h3{font-size:1.9rem;margin-bottom:14px;color:var(--paper);}
.pillar p{font-size:0.96rem;color:rgba(246,242,234,0.78);font-weight:300;}
.pillar .num{font-family:'Montserrat',sans-serif;font-size:0.72rem;letter-spacing:0.2em;color:var(--teal-light);display:block;margin-bottom:20px;}

.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.svc{background:var(--paper);padding:54px 46px;}
.svc h3{font-size:2.1rem;margin-bottom:10px;}
.svc .svc-sub{font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:26px;}
.svc ul{list-style:none;}
.svc li{font-size:0.96rem;color:var(--ink-soft);font-weight:300;padding:11px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:13px;}
.svc li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal);flex:none;}

/* Process steps, used on How We Work */
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.step{background:var(--paper);padding:40px 38px;}
.step .num{font-family:'Montserrat',sans-serif;font-size:0.72rem;letter-spacing:0.2em;color:var(--teal-deep);display:block;margin-bottom:16px;font-weight:600;}
.step h3{font-size:1.55rem;margin-bottom:10px;}
.step p{font-size:0.94rem;color:var(--ink-soft);font-weight:300;}

/* --------------------------------------------------------------------------
   Founding partner counter
   -------------------------------------------------------------------------- */
.founding{
  position:relative;overflow:hidden;margin-bottom:44px;border-radius:4px;
  padding:44px 46px;color:var(--paper);
  background:radial-gradient(120% 150% at 12% 0%,var(--teal) 0%,var(--teal-deep) 58%,#012f37 100%);
  box-shadow:0 20px 50px rgba(1,63,73,0.18);
}
.founding::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),rgba(199,154,46,0));}
.founding-top{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.founding .eyebrow{color:var(--teal-light);display:block;margin-bottom:16px;}
.founding-count{display:flex;align-items:baseline;gap:14px;}
.founding-num{
  font-family:'Cormorant Garamond',serif;font-weight:700;line-height:0.9;
  font-size:clamp(3.4rem,9vw,5rem);color:var(--gold);
}
.founding-label{font-size:0.95rem;font-weight:300;color:rgba(246,242,234,0.86);max-width:230px;}
.founding-side{text-align:right;}
.founding-claimed{font-size:0.74rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(246,242,234,0.6);}
.founding-deadline{font-size:0.92rem;font-weight:400;color:var(--paper);margin-top:8px;}
.founding-deadline[hidden]{display:none;}
.seats{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px;}
.seat{
  width:22px;height:22px;border-radius:2px;flex:none;
  border:1px solid rgba(199,154,46,0.55);background:transparent;
  transform:scale(0.7);opacity:0;transition:transform .34s ease,opacity .34s ease,background .34s ease;
}
.seat.shown{transform:scale(1);opacity:1;}
.seat.taken{background:var(--gold);border-color:var(--gold);}
.founding-foot{margin-top:26px;padding-top:20px;border-top:1px solid var(--line-dark);font-size:0.9rem;font-weight:300;color:rgba(246,242,234,0.72);}
.founding.is-closed .founding-num{color:var(--paper);}
@media (prefers-reduced-motion:reduce){.seat{transition:none;}}

/* Compact founding strip, used on pages other than Pricing */
.founding-strip{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding:28px 34px;border-radius:4px;color:var(--paper);
  background:radial-gradient(120% 150% at 12% 0%,var(--teal) 0%,var(--teal-deep) 70%);
}
.founding-strip .fs-text{font-size:1rem;font-weight:300;max-width:560px;}
.founding-strip .fs-text b{font-weight:500;color:var(--gold);}

/* --------------------------------------------------------------------------
   Pricing
   -------------------------------------------------------------------------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.price-card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:36px 30px;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease;}
.price-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(1,63,73,0.10);}
.price-card.featured{border-color:var(--teal);box-shadow:0 14px 36px rgba(1,63,73,0.10);}
.price-name{font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:600;margin-bottom:4px;}
.price-tag{font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:22px;}
.price-amt{font-family:'Cormorant Garamond',serif;font-size:2.9rem;font-weight:600;line-height:1;margin-bottom:4px;}
.price-amt small{font-size:0.8rem;font-family:'Montserrat',sans-serif;font-weight:300;color:var(--ink-soft);letter-spacing:0.04em;}
.price-was{font-family:'Montserrat',sans-serif;font-size:0.9rem;font-weight:300;color:var(--ink-soft);text-decoration:line-through;margin-bottom:2px;}
.price-note{font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-top:6px;}
.price-care{margin:20px 0 4px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.price-care .cl{font-size:0.64rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-bottom:6px;}
.price-care .cp{font-size:1.05rem;font-weight:500;color:var(--ink);}
.price-care .cp s{font-size:0.82rem;font-weight:300;color:var(--ink-soft);margin-left:8px;}
.price-scope{font-size:0.74rem;line-height:1.5;color:var(--ink-soft);font-weight:300;border-left:2px solid var(--line);padding-left:12px;margin-top:6px;}
.price-card ul{list-style:none;margin:24px 0 28px;flex:1;}
.price-card li{font-size:0.88rem;color:var(--ink-soft);font-weight:300;padding:8px 0;border-top:1px solid var(--line);}
.price-card .btn{text-align:center;}
.price-foot{margin-top:42px;display:flex;flex-wrap:wrap;gap:14px 48px;justify-content:space-between;align-items:baseline;padding-top:26px;border-top:1px solid var(--line);}
.price-foot .pf{font-size:0.92rem;color:var(--ink-soft);font-weight:300;}
.price-foot .pf b{font-weight:500;color:var(--ink);}
.fineprint{font-size:0.78rem;color:var(--ink-soft);opacity:0.78;margin-top:14px;font-weight:300;}

/* Question and answer blocks */
.qa{max-width:760px;}
.qa-item{padding:26px 0;border-top:1px solid var(--line);}
.qa-item:last-child{border-bottom:1px solid var(--line);}
.qa-item h3{font-size:1.4rem;margin-bottom:8px;}
.qa-item p{font-size:0.95rem;color:var(--ink-soft);font-weight:300;}

/* --------------------------------------------------------------------------
   Closing band
   -------------------------------------------------------------------------- */
.closing{background:linear-gradient(160deg,var(--teal-deep),var(--teal));color:var(--paper);text-align:center;}
.closing h2{font-size:clamp(2.6rem,7vw,5rem);margin-bottom:14px;color:var(--paper);}
.closing .sig-note{font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:rgba(246,242,234,0.72);margin-bottom:40px;display:block;}
.closing .hero-cta{justify-content:center;}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact-wrap{max-width:680px;}
.contact-form{margin-top:8px;}
.field{margin-bottom:26px;}
.field label{
  display:block;font-family:'Montserrat',sans-serif;font-size:0.72rem;font-weight:600;
  letter-spacing:0.2em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:10px;
}
.field input,.field textarea{
  width:100%;font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:300;
  color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);
  padding:10px 2px;border-radius:0;transition:border-color .3s ease;
}
.field input:focus,.field textarea:focus{outline:none;border-bottom:2px solid var(--teal);}
.field textarea{resize:vertical;min-height:110px;line-height:1.6;}
.field input::placeholder,.field textarea::placeholder{color:rgba(16,23,27,0.35);}
.form-note{font-size:0.86rem;color:var(--ink-soft);font-weight:300;margin-top:18px;}
.contact-form .btn{margin-top:6px;}

.or-book{margin-top:88px;padding-top:56px;border-top:1px solid var(--line);}
.or-book h3{font-size:1.9rem;margin-bottom:8px;}
.or-book p{font-size:0.96rem;color:var(--ink-soft);font-weight:300;margin-bottom:30px;max-width:480px;}
.cal-frame{
  width:100%;height:640px;border:1px solid var(--line);border-radius:3px;
  background:var(--paper-soft);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
footer{background:var(--ink);color:rgba(246,242,234,0.6);padding:54px 0 40px;}
.foot-grid{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;}
.foot-brand{display:flex;align-items:center;gap:10px;}
.foot-brand .brand-name{color:var(--paper);font-size:1.15rem;}
.foot-left{display:flex;flex-direction:column;gap:20px;}
.foot-social{display:flex;gap:12px;}
.foot-social a{
  width:38px;height:38px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-dark);color:rgba(246,242,234,0.7);
  transition:color .3s ease,border-color .3s ease,transform .3s ease;
}
.foot-social a:hover{color:var(--gold);border-color:var(--gold);transform:translateY(-2px);}
.foot-social svg{width:17px;height:17px;}
.foot-meta{font-size:0.8rem;font-weight:300;text-align:right;line-height:1.9;}
.foot-meta a:hover{color:var(--teal-light);}
.foot-thread{color:var(--gold);}

/* Footer sitemap, new for the multi-page structure */
.foot-nav{display:flex;flex-wrap:wrap;gap:10px 26px;}
.foot-nav a{
  font-size:0.76rem;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(246,242,234,0.6);transition:color .25s ease;
}
.foot-nav a:hover{color:var(--gold);}

/* --------------------------------------------------------------------------
   Reveal on scroll
   -------------------------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media(max-width:860px){
  .nav-links{position:fixed;top:0;right:0;height:100vh;width:74%;max-width:320px;background:var(--ink);flex-direction:column;justify-content:center;gap:30px;transform:translateX(100%);transition:transform .4s ease;padding:40px;}
  .nav-links.open{transform:translateX(0);}
  .nav-links a.navlink{color:var(--paper);font-size:0.95rem;}
  .nav-links a.navlink.is-active{color:var(--gold);}
  .nav-links a.navlink.is-active::after{display:none;}
  .nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;z-index:1100;}
  .nav-toggle span{width:24px;height:2px;background:var(--ink);transition:.3s;}
  #nav.menu-open .nav-toggle span{background:var(--paper);}
  .pillars{grid-template-columns:1fr;}
  .pillar,.pillar:not(:last-child){border-right:none;padding:32px 0;}
  .pillar:not(:first-child){padding-left:0;}
  .svc-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .price-grid{grid-template-columns:1fr;}
  .svc{padding:40px 30px;}
  .foot-grid{flex-direction:column;align-items:flex-start;gap:20px;}
  .foot-meta{text-align:left;}
}
@media(max-width:520px){
  .container{padding:0 22px;}
  #nav{padding:18px 22px;}
  .pad{padding:84px 0;}
  .page-hero{padding:128px 0 56px;}
  .hero-cta{flex-direction:column;align-items:stretch;}
  .hero-cta .btn{text-align:center;}
  .price-foot{flex-direction:column;gap:18px;}
  .contact-form .btn{width:100%;text-align:center;}
  .or-book{margin-top:64px;padding-top:44px;}
  .cal-frame{height:580px;}
  .founding{padding:34px 26px;}
  .founding-side{text-align:left;}
  .seat{width:18px;height:18px;}
  .founding-strip{padding:26px 24px;}
  .step{padding:32px 26px;}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.reveal{opacity:1;transform:none;}}
