/* ============================================================
   Practice MOT — premium editorial design system
   Trust & Authority · dark · restrained · clinical-credible
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ink:#080b10;          /* page bg */
  --surface:#0f141c;      /* raised */
  --surface-2:#141b25;    /* card */
  --surface-3:#1a2230;    /* hover */
  --line:#212a38;         /* hairline */
  --line-2:#2c3849;       /* stronger hairline */
  --text:#eef2f8;
  --muted:#9fadc2;
  --faint:#6c7c93;
  --teal:#68d1d9;
  --teal-soft:#9ee3e9;
  --teal-deep:#1f5b61;
  --teal-glow:rgba(104,209,217,.14);
  --ok:#5dcaa5;
  --amber:#e7b873;
  --warn:#ef8a7a;
  --r:14px; --r-lg:20px;
  --maxw:1140px; --prose:74ch;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--ink);color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.locked{overflow:hidden}
a{color:inherit;text-decoration:none}
::selection{background:var(--teal);color:#04181a}
img{max-width:100%;display:block}

/* layout */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.prose{max-width:var(--prose)}
section{padding:104px 0;border-top:1px solid var(--line)}
@media(max-width:760px){section{padding:68px 0}body{font-size:16px}}

/* typography */
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-.015em;line-height:1.08}
h1{font-size:clamp(40px,6.2vw,74px);line-height:1.04;letter-spacing:-.025em}
h2{font-size:clamp(29px,3.8vw,46px)}
h3{font-size:21px;letter-spacing:-.01em}
.lead{color:var(--muted);font-size:clamp(17px,1.5vw,21px);line-height:1.6;max-width:60ch}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--teal);font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:22px;font-family:'Inter',sans-serif}
.eyebrow:before{content:"";width:26px;height:1px;background:var(--teal);opacity:.7}
.muted{color:var(--muted)}.faint{color:var(--faint)}
.hl{color:var(--teal)}
em.book{font-style:italic;color:var(--teal-soft)}

/* nav */
nav.site{position:sticky;top:0;z-index:80;background:rgba(8,11,16,.72);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}
nav.site .row{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font-family:'Fraunces',serif;font-weight:600;font-size:20px;letter-spacing:-.01em}
.brand .mot{color:var(--teal)}
.brand small{display:block;font-family:'Inter';font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-top:-2px}
.navlinks{display:flex;align-items:center;gap:30px}
.navlinks a{color:var(--muted);font-size:14.5px;font-weight:500;transition:color .2s var(--ease)}
.navlinks a:hover{color:var(--text)}
.navlinks a.active{color:var(--text)}
@media(max-width:880px){.navlinks a:not(.btn){display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--teal);color:#04181a;font-weight:600;font-size:15.5px;padding:13px 24px;border-radius:11px;cursor:pointer;border:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s;font-family:'Inter';white-space:nowrap}
.btn:hover{background:var(--teal-soft);transform:translateY(-1px);box-shadow:0 10px 30px -8px var(--teal-glow)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line-2)}
.btn.ghost:hover{background:var(--surface-2);border-color:var(--teal-deep);box-shadow:none}
.btn.sm{padding:10px 18px;font-size:14px}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}
.btn svg{width:17px;height:17px}

/* hero */
.hero{padding:120px 0 96px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;top:-30%;right:-10%;width:680px;height:680px;background:radial-gradient(circle,var(--teal-glow),transparent 62%);pointer-events:none}
.hero .wrap{position:relative}
.hero h1{max-width:15ch}
.hero .lead{margin-top:26px}
.kicker{display:flex;gap:22px;flex-wrap:wrap;margin-top:30px;color:var(--faint);font-size:13.5px;font-weight:500}
.kicker span{display:inline-flex;align-items:center;gap:8px}
.kicker svg{width:15px;height:15px;color:var(--teal)}

/* generic grids */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* cards */
.card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;transition:border-color .25s var(--ease),transform .25s var(--ease),background .25s}
.card:hover{border-color:var(--line-2);transform:translateY(-3px)}
.card .ico{width:42px;height:42px;border-radius:11px;background:var(--teal-glow);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--teal)}
.card .ico svg{width:21px;height:21px}
.card h3{margin-bottom:9px;font-family:'Fraunces';font-weight:600}
.card p{color:var(--muted);font-size:15px;line-height:1.6}
.card .k{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
a.card{display:block}
a.card:hover h3{color:var(--teal)}
.card.feature{border-color:var(--teal-deep);background:linear-gradient(180deg,rgba(104,209,217,.05),var(--surface-2))}

/* stat */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:42px}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.stat .v{font-family:'Fraunces';font-size:40px;font-weight:600;color:var(--teal);letter-spacing:-.02em;line-height:1}
.stat .l{color:var(--muted);font-size:13.5px;margin-top:12px;line-height:1.5}

/* stepper (process / journey) */
.stepper{margin-top:48px;position:relative}
.stepper:before{content:"";position:absolute;left:23px;top:18px;bottom:18px;width:1px;background:linear-gradient(var(--teal-deep),var(--line));}
.stp{position:relative;padding:0 0 38px 70px}
.stp:last-child{padding-bottom:0}
.stp .num{position:absolute;left:0;top:0;width:48px;height:48px;border-radius:50%;background:var(--surface-2);border:1px solid var(--teal-deep);color:var(--teal);font-family:'Fraunces';font-weight:600;font-size:19px;display:flex;align-items:center;justify-content:center;z-index:2}
.stp .time{color:var(--teal);font-size:12.5px;font-weight:600;letter-spacing:.04em;margin:4px 0 8px}
.stp h3{font-family:'Fraunces';font-weight:600;margin-bottom:8px}
.stp>p{color:var(--muted);font-size:15.5px;max-width:62ch}
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
@media(max-width:640px){.who-grid{grid-template-columns:1fr}.stp{padding-left:60px}.stepper:before{left:19px}.stp .num{width:40px;height:40px;font-size:16px}}
.who{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.who h4{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:9px;font-family:'Inter';font-weight:700}
.who.us h4{color:var(--teal)} .who.you h4{color:var(--amber)}
.who ul{list-style:none} .who li{color:var(--muted);font-size:13.5px;padding:4px 0 4px 17px;position:relative;line-height:1.5}
.who li:before{content:"";position:absolute;left:2px;top:10px;width:5px;height:5px;border-radius:50%;background:var(--teal-deep)}
.who li ul{margin-top:4px}

/* contradiction / mechanism callouts */
.mech{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
@media(max-width:760px){.mech{grid-template-columns:1fr}}
.mech .m{background:var(--surface-2);border:1px solid var(--line);border-left:2px solid var(--teal-deep);border-radius:12px;padding:22px}
.mech .m .tag{color:var(--teal);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.mech .m h4{font-family:'Fraunces';font-weight:600;font-size:18px;margin:8px 0 7px}
.mech .m p{color:var(--muted);font-size:14.5px}
.callout{background:linear-gradient(180deg,rgba(104,209,217,.06),var(--surface-2));border:1px solid var(--teal-deep);border-radius:var(--r-lg);padding:30px 32px;margin-top:34px}
.callout h3{font-family:'Fraunces';font-weight:600;margin-bottom:10px;color:var(--teal-soft)}
.callout p{color:var(--muted)}
.guard{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:18px 20px;margin-top:22px}
.guard svg{width:22px;height:22px;color:var(--teal);flex:none;margin-top:2px}
.guard p{font-size:14.5px;color:var(--muted)} .guard b{color:var(--text)}

/* rich prose blocks (how-it-works content) */
.rich h3{font-family:'Fraunces';font-weight:600;margin:34px 0 12px;font-size:23px}
.rich h4{font-size:16px;font-weight:700;margin:22px 0 8px;color:var(--text);font-family:'Inter'}
.rich p{color:var(--muted);margin-bottom:14px;max-width:72ch}
.rich ul{list-style:none;margin:0 0 16px}
.rich li{color:var(--muted);padding:7px 0 7px 26px;position:relative;line-height:1.6;max-width:72ch}
.rich li:before{content:"";position:absolute;left:4px;top:14px;width:6px;height:6px;border-radius:2px;background:var(--teal);transform:rotate(45deg)}
.rich li ul{margin-top:6px;margin-bottom:0}
.rich strong{color:var(--text);font-weight:600}
.rich em{color:var(--teal-soft);font-style:italic}

/* FAQ accordion */
.faq{margin-top:38px;max-width:840px}
.faq details{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;background:var(--surface-2);overflow:hidden;transition:border-color .2s}
.faq details[open]{border-color:var(--teal-deep)}
.faq summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-weight:600;font-size:17.5px;font-family:'Fraunces'}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--teal);transition:.25s var(--ease)}
.faq summary .pm:before{content:"+";font-size:18px;line-height:1}
.faq details[open] summary .pm{transform:rotate(135deg);border-color:var(--teal-deep)}
.faq details[open] summary{color:var(--teal-soft)}
.faq .ans{padding:0 26px 24px;color:var(--muted);font-size:15.5px;line-height:1.7;max-width:74ch}
.faq .ans strong{color:var(--text);font-weight:600}
.faq .ans em{color:var(--teal-soft);font-style:italic}

/* vertical cards */
.vcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:34px}
@media(max-width:760px){.vcards{grid-template-columns:1fr}}
.vc{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:flex;gap:18px;align-items:flex-start;transition:border-color .2s,transform .2s}
.vc:hover{border-color:var(--line-2);transform:translateY(-2px)}
.vc .vt{font-family:'Fraunces';font-weight:600;font-size:18px;flex:none;width:120px}
.vc.lead-v .vt{color:var(--teal)}
.vc .vh{color:var(--muted);font-size:14.5px;line-height:1.55}
@media(max-width:520px){.vc{flex-direction:column;gap:6px}.vc .vt{width:auto}}

/* offer / pricing */
.offer{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
@media(max-width:960px){.offer{grid-template-columns:1fr}}
.toolstrip{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.toolstrip span{background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:13px;padding:8px 14px;border-radius:999px}
.new{display:inline-block;background:var(--teal-glow);color:var(--teal);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:6px;margin-left:8px;vertical-align:middle}
.capform{display:flex;gap:10px;max-width:480px;flex-wrap:wrap}
.capform input{flex:1;min-width:230px;padding:14px 16px;border-radius:11px;border:1px solid var(--line-2);background:var(--ink);color:var(--text);font-size:15px;font-family:'Inter'}
.capform input:focus{outline:none;border-color:var(--teal-deep)}
.bookform{display:flex;flex-wrap:wrap;gap:10px;max-width:760px;margin-top:6px}
.bookform input{flex:1;min-width:200px;padding:14px 16px;border-radius:11px;border:1px solid var(--line-2);background:var(--ink);color:var(--text);font-size:15px;font-family:'Inter'}
.bookform input:focus{outline:none;border-color:var(--teal-deep)}
.bookform .btn{flex:none}
.price{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px}
.price.feat{border:1.5px solid var(--teal-deep);background:linear-gradient(180deg,rgba(104,209,217,.06),var(--surface-2))}
.price .tag{display:inline-block;background:var(--surface);color:var(--teal);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:5px 11px;border-radius:7px;margin-bottom:16px}
.price h3{font-family:'Fraunces';font-weight:600;margin-bottom:4px}
.price .big{font-family:'Fraunces';font-size:34px;font-weight:600;color:var(--teal);margin:8px 0 16px;letter-spacing:-.02em}
.price ul{list-style:none}
.price li{color:var(--muted);font-size:14.5px;padding:8px 0 8px 26px;position:relative;line-height:1.55}
.price li:before{content:"";position:absolute;left:2px;top:13px;width:12px;height:7px;border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}

/* case / quote */
.case{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:34px;margin-top:26px}
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(93,202,165,.12);color:var(--ok);font-size:12.5px;font-weight:600;padding:6px 13px;border-radius:999px;margin-bottom:18px}
.badge svg{width:14px;height:14px}

/* who we are */
.people{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}
@media(max-width:640px){.people{grid-template-columns:1fr}}
.person{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px}
.person .role{color:var(--teal);font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.person h3{font-family:'Fraunces';font-weight:600;margin:8px 0 10px}
.person p{color:var(--muted);font-size:15px}

/* footer */
footer.site{padding:64px 0 80px;border-top:1px solid var(--line)}
footer.site h2{margin-bottom:16px}
footer.site .fnote{color:var(--faint);font-size:12.5px;line-height:1.7;max-width:78ch;margin-top:40px}
.foot-links{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px;font-size:14px}
.foot-links a{color:var(--muted)} .foot-links a:hover{color:var(--teal)}

/* gate */
#gate{position:fixed;inset:0;background:var(--ink);z-index:9999;display:flex;align-items:center;justify-content:center}
#gate .box{text-align:center;max-width:360px;width:90%;padding:26px}
#gate .e{color:var(--teal);font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px;font-weight:600}
#gate .ttl{font-family:'Fraunces';font-size:30px;font-weight:600;margin-bottom:22px}
#gate input{width:100%;background:var(--surface-2);border:1px solid var(--line-2);color:var(--text);padding:14px;border-radius:11px;font-size:15px;text-align:center;outline:none;font-family:'Inter'}
#gate input:focus{border-color:var(--teal-deep)}
#gate button{margin-top:12px;width:100%;background:var(--teal);color:#04181a;border:none;font-weight:600;font-size:15px;padding:14px;border-radius:11px;cursor:pointer;font-family:'Inter'}
#gate .err{color:var(--warn);font-size:12.5px;margin-top:10px;height:15px}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}
