:root{--ink:#080D10;--ink2:#101820;--ink3:#1A252E;--brass:#C9A227;--brass2:#E6CE86;--champ:#F0E4BE;--cream:#F7F3E9;--cream2:#EDE6D6;--muted:#5F6B72;--mutedd:#93A0A8;--hair:rgba(201,162,39,.28);--d:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--ease:cubic-bezier(.22,.61,.36,1);--slow:cubic-bezier(.16,.84,.44,1);--photo:1.1s}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.wrap-wide{max-width:var(--wide);margin:0 auto;padding:0 var(--pad)}
.page[hidden]{display:none}
:focus-visible{outline:2px solid var(--brass2);outline-offset:3px}

/* ------------------------------------------------------------ 16. loader */
#loader{position:fixed;inset:0;z-index:200;background:var(--ink);display:flex;
align-items:center;justify-content:center;flex-direction:column;gap:22px;
transition:opacity .5s var(--ease),visibility .5s}
#loader.done{opacity:0;visibility:hidden}
#loader .ld-rule{width:0;height:1px;background:var(--brass);transition:width .6s var(--ease) .15s}
#loader.go .ld-rule{width:140px}
#loader svg{opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
#loader.go svg{opacity:1;transform:none}

/* ------------------------------------------------------------ buttons */
.btn{display:inline-flex;align-items:center;gap:11px;text-decoration:none;position:relative;border:1px solid var(--brass);background:transparent;color:var(--brass2);overflow:hidden;z-index:0;transition:color var(--ui) var(--ease),border-color var(--ui) var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--brass);z-index:-1;
transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}
.btn:hover,.btn:focus-visible{color:var(--ink)}

.btn-primary::before{background:var(--brass2)}
.btn-primary:hover,.btn-primary:focus-visible{color:var(--ink)}
.btn-ghost{color:var(--cream);border-color:rgba(247,243,233,.32)}
.btn-ghost::before{background:rgba(247,243,233,.1)}
.btn-ghost:hover,.btn-ghost:focus-visible{color:var(--cream);border-color:rgba(247,243,233,.6)}
.acts{display:flex;flex-wrap:wrap;gap:13px}
.arw{display:inline-block;width:15px;height:1px;background:currentColor;position:relative;
transition:transform var(--ui) var(--ease)}
.arw::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;
border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .arw,.btn:focus-visible .arw{transform:translateX(6px)}

/* ------------------------------------------------------------ 18. header */
.concept{background:var(--ink);padding:10px var(--pad);display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap}
.concept span{opacity:.6}
header{position:sticky;top:0;z-index:80;background:var(--cream);
border-bottom:1px solid rgba(13,28,35,.14);
transition:background .4s var(--ease),border-color .4s var(--ease)}
header.scrolled{background:rgba(247,243,233,.86);backdrop-filter:saturate(1.6) blur(14px);
-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom-color:rgba(13,28,35,.1)}
.nav{margin:0 auto;display:flex;align-items:center;transition:height .4s var(--ease)}
header.scrolled .nav{height:74px}
.mark{margin-right:auto;flex:none;display:block;line-height:0}
.mark img{transition:height .4s var(--ease)}
header.scrolled .mark img{height:52px}
.menu{display:flex;list-style:none;margin:0;padding:0}
.menu li{position:relative;list-style:none}
.menu ul{list-style:none;margin:0;padding:0}
.menu a{display:block;text-decoration:none;color:#3A464E;padding:10px 13px;
position:relative}
.menu>li>a::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1px;
background:var(--brass);transform:scaleX(0);transform-origin:left;
transition:transform var(--ui) var(--ease)}
.menu>li>a:hover,.menu>li.on>a{color:#0D1C23}
.menu>li>a:hover::after,.menu>li.on>a::after,.menu>li>a:focus-visible::after{transform:scaleX(1)}
.drop{position:absolute;top:100%;left:0;min-width:278px;background:var(--cream);padding:10px;
border:1px solid rgba(13,28,35,.16);opacity:0;visibility:hidden;transform:translateY(8px);
transition:opacity .2s,transform .2s,visibility .2s}
.menu li.has:hover .drop,.menu li.has:focus-within .drop{opacity:1;visibility:visible;transform:none}
.drop a{padding:11px 14px}
.drop a:hover,.drop a:focus-visible{color:#0D1C23;background:var(--cream2)}

.burger{display:none;background:transparent;border:1px solid rgba(13,28,35,.2);padding:12px;
cursor:pointer}
.burger span{display:block;width:20px;height:1px;background:#0D1C23;margin:5px 0}
.drawer{position:fixed;inset:0;background:var(--ink);z-index:90;padding:32px var(--pad);
overflow-y:auto;transform:translateX(100%);transition:transform .3s var(--ease);display:none}
.drawer.open{transform:none}
.drawer .x{position:absolute;top:24px;right:var(--pad);background:none;border:0;
color:var(--brass2);font-size:34px;line-height:1;cursor:pointer}
.drawer a{display:block;color:var(--cream);text-decoration:none;font-family:var(--d);padding:11px 0;border-bottom:1px solid var(--hair2)}
.drawer a.sub{font-family:var(--s);padding:8px 0 8px 20px;border:0}

/* ------------------------------------------------------------ 1. hero */
.hero{position:relative;overflow:hidden;background:var(--ink)}
.hero-lg{min-height:min(94vh,940px);display:flex;align-items:flex-end}
.hero-lg .wrap{padding:clamp(60px,7vw,104px) var(--pad) clamp(48px,5.4vw,80px);width:100%}
.hero-sm .wrap{padding:clamp(58px,7vw,100px) var(--pad) clamp(48px,6vw,80px)}
.hero .wrap{position:relative;z-index:3}
.herophoto{position:absolute;inset:0;z-index:0;overflow:hidden}
.herophoto img{width:100%;height:100%;object-position:62% 64%;transform-origin:66% 60%;will-change:transform;opacity:1}
body.ready .herophoto img{opacity:1}

.hero-h{display:block}
.hero-h .l1{display:block;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.04;
letter-spacing:-.012em}
.hero-h .l2{display:block;font-size:clamp(3.4rem,10.4vw,9rem);line-height:.92;
letter-spacing:-.03em;margin-top:.06em;margin-left:-.02em}
.hero-h .l2 em{font-style:normal;font-weight:600;color:var(--brass2)}
.hero-rule{display:block;width:0;height:1px;background:var(--brass);margin:clamp(26px,3vw,40px) 0 0}
.hero .lede{margin-top:26px}
.hero .acts{margin-top:32px}
/* staged entrance */
.hero-h .l1,.hero-h .l2,.hero .lede,.hero .acts{opacity:0;transform:translateY(20px)}
body.ready .hero-h .l1,body.ready .hero-h .l2,body.ready .hero .lede,body.ready .hero .acts{
opacity:1;transform:none;transition:opacity .8s var(--slow),transform .8s var(--slow)}
body.ready .hero-h .l1{transition-delay:.15s}
body.ready .hero-h .l2{transition-delay:.31s}
body.ready .hero-rule{width:clamp(120px,16vw,240px);transition:width .8s var(--slow) .52s}
body.ready .hero .lede{transition-delay:.74s}
body.ready .hero .acts{transition-delay:.9s}

@keyframes drift{from{transform:scale(1)}to{transform:scale(1.03)}}

/* ------------------------------------------------------------ 2. road line */
.road{display:block;width:100%;overflow:visible}
.road path,.road line{stroke:var(--brass);stroke-width:1;fill:none;opacity:.75;
stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);
transition:stroke-dashoffset 1.5s var(--slow)}
.in .road path,.in .road line,.road.in path,.road.in line{stroke-dashoffset:0}
.roadwrap{position:relative;height:clamp(70px,9vw,132px)}
.roadwrap .road{position:absolute;inset:0;height:100%}

/* ------------------------------------------------------------ 13. ghost type */

/* ------------------------------------------------------------ 3. stats */
.sec-stats{background:var(--ink2);padding:clamp(56px,7vw,104px) 0 clamp(44px,5vw,72px)}
.stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--hair)}
.stat{padding:34px 30px 6px 0;border-right:1px solid var(--hair)}
.stat:last-child{border-right:0}

.stat>span{display:block;margin-top:20px;line-height:1.55}

/* ------------------------------------------------------------ 4. sticky story */
.story{position:relative}
.story-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
gap:clamp(30px,6vw,96px);align-items:start}
.story-l{position:sticky;top:calc(74px + clamp(30px,5vw,80px));align-self:start}
.story-l h2{font-size:clamp(2.1rem,4.4vw,3.6rem);max-width:12ch}
.story-l .lead-rule{display:block;width:46px;height:1px;background:var(--brass);margin:28px 0}
.story-l .acts{margin-top:26px}
.story-intro{max-width:52ch;margin-bottom:clamp(40px,5vw,72px)}
.princ{list-style:none;margin:0;padding:0}
.princ li{position:relative;padding:clamp(26px,3vw,40px) 0 clamp(26px,3vw,40px) 0;
border-top:1px solid var(--hair2);transition:opacity .5s var(--ease)}
.princ li:last-child{border-bottom:1px solid var(--hair2)}
.pnum{display:block;opacity:.42;margin-bottom:12px;transition:opacity .5s var(--ease),color .5s}
.princ h3{font-size:clamp(1.35rem,2.3vw,1.9rem);color:#7F8B93;margin-bottom:14px;
transition:color .5s var(--ease)}
.princ .tick{display:block;width:22px;height:1px;background:var(--brass);opacity:.4;
margin-bottom:16px;transition:width .6s var(--ease),opacity .5s}
.princ p{margin:0;font-size:.97rem;color:#68757D;transition:color .5s var(--ease);max-width:46ch}
.princ li.active .pnum{opacity:1;color:var(--brass2)}
.princ li.active h3{color:var(--cream)}
.princ li.active .tick{width:64px;opacity:1}
.princ li.active p{color:var(--mutedd)}

/* ------------------------------------------------------------ 5. gallery */
.sec-services{padding:clamp(56px,6.6vw,96px) 0 clamp(64px,7.6vw,112px);background:var(--ink2)}
.head2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,68px);
align-items:end;margin-bottom:clamp(36px,4.4vw,58px)}
.head2 p{margin:0}
.svcgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.svc{position:relative;display:flex;flex-direction:column;overflow:hidden;text-decoration:none;
background:var(--cream);border:1px solid rgba(201,162,39,.3);isolation:isolate;
transition:transform .5s var(--ease),border-color .5s var(--ease)}
.svc-art{position:relative;overflow:hidden;background:var(--cream);flex:none}
.svc-art img{width:100%;height:100%;object-fit:cover;transform:scale(1.01);
transition:transform var(--photo) var(--slow),opacity .6s var(--ease)}
.svc-art::after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;
background:linear-gradient(0deg,var(--cream),rgba(247,243,233,0))}
.svc-body{position:relative;z-index:2;padding:0 clamp(22px,2.2vw,30px) clamp(24px,2.4vw,32px);
display:flex;flex-direction:column;flex:1;margin-top:-6px}
.svc-t{display:block;margin-bottom:10px;transition:transform .4s var(--ease)}
.svc-d{display:block;margin-bottom:18px}
.svc-go{display:inline-flex;align-items:center;gap:10px;margin-top:auto}
.svc-corner{position:absolute;top:0;right:0;width:0;height:1px;background:var(--brass);
transition:width .5s var(--ease);z-index:3}
.svc-corner::after{content:"";position:absolute;right:0;top:0;width:1px;height:0;
background:var(--brass);transition:height .5s var(--ease) .12s}
/* varied compositions, row 1 then row 2 */
.svc-retirement .svc-art{aspect-ratio:16/10}
.svc-retirement .svc-art img{object-position:50% 62%}
.svc-bank .svc-art{aspect-ratio:4/3.4}
.svc-bank .svc-art img{object-position:44% 44%}
.svc-college .svc-art{aspect-ratio:16/11}
.svc-college .svc-art img{object-position:center center}
.svc-college .svc-art::after{display:none}
.svc-protection .svc-art{aspect-ratio:4/3.2}
.svc-protection .svc-art img{object-position:50% 46%}
.svc-estate .svc-art{aspect-ratio:16/10.5}
.svc-estate .svc-art img{object-position:48% 46%}
.svc-business .svc-art{aspect-ratio:16/10}
.svc-business .svc-art img{object-position:46% 54%}

/* ------------------------------------------------------------ 6. Palo Duro */
.breathe{position:relative;overflow:hidden;background:var(--ink)}
.breathe img{object-position:center 52%;transform:scale(1.035);transition:transform 1.6s var(--slow);opacity:1}
.breathe.in img{transform:scale(1);opacity:1}
.breathe::after{content:"";position:absolute;inset:0;z-index:2;background:
linear-gradient(0deg,rgba(8,13,16,.86) 0%,rgba(8,13,16,.12) 46%,rgba(8,13,16,.3) 100%)}
.breathe .over{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end}
.breathe .over .wrap{width:100%;padding-bottom:clamp(38px,5vw,72px)}
.breathe h2{font-size:clamp(2rem,4.6vw,4.4rem);max-width:28ch;line-height:1.04;color:var(--cream)}
.breathe .b-sub{color:#C3CFD6;font-size:clamp(1rem,1.5vw,1.2rem);margin:18px 0 0}
.breathe .b-rule{display:block;width:0;height:1px;background:var(--brass);margin-bottom:28px;
transition:width 1s var(--slow) .5s}
.breathe.in .b-rule{width:clamp(90px,12vw,180px)}

/* ------------------------------------------------------------ 7. connected */
.sec-thread{padding:clamp(70px,9vw,140px) 0;background:var(--ink)}
.thread-h{max-width:19ch;margin-bottom:clamp(46px,5.4vw,86px);position:relative}
.thread-h .t2{display:block;font-style:normal;font-weight:600;color:var(--brass2);
font-size:clamp(1.7rem,3.4vw,2.8rem);margin-top:.06em}
.thread{position:relative;padding-top:30px}
.thread svg.tline{position:absolute;top:0;left:0;width:100%;height:2px;overflow:visible}
.thread ul{list-style:none;margin:0;padding:0;display:grid;
grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.thread li{position:relative;padding-top:30px;transition:color .6s var(--ease)}
.thread li::before{content:"";position:absolute;top:-4px;left:0;width:8px;height:8px;
border-radius:50%;background:var(--brass);opacity:0;transform:scale(.4);
transition:opacity .5s var(--ease),transform .5s var(--ease)}
.thread.in li::before{opacity:1;transform:none}
.thread.in li{color:var(--champ)}
.thread.in li:nth-child(2)::before,.thread.in li:nth-child(2){transition-delay:.2s}
.thread.in li:nth-child(3)::before,.thread.in li:nth-child(3){transition-delay:.4s}
.thread.in li:nth-child(4)::before,.thread.in li:nth-child(4){transition-delay:.6s}
.thread.in li:nth-child(5)::before,.thread.in li:nth-child(5){transition-delay:.8s}
.thread.in li:nth-child(6)::before,.thread.in li:nth-child(6){transition-delay:1s}
.thread-coda{text-align:center;margin-top:clamp(52px,6vw,96px);font-family:var(--d);
font-size:clamp(1.15rem,2vw,1.6rem);color:var(--brass2);opacity:0;transform:translateY(12px);
transition:opacity .9s var(--ease) 1.35s,transform .9s var(--ease) 1.35s}
.thread.in ~ .thread-coda,.sec-thread.in .thread-coda{opacity:1;transform:none}

/* ------------------------------------------------------------ 9. final CTA */
.finale{position:relative;overflow:hidden;background:var(--ink2);border-top:1px solid var(--hair2)}
.finale .horizonart{position:absolute;left:0;right:0;bottom:0;height:46%;opacity:.16;
pointer-events:none}
.finale h2{font-size:clamp(2.1rem,4.8vw,3.9rem);max-width:15ch;position:relative;z-index:2}
.finale p{margin:22px 0 0;max-width:40ch;position:relative;z-index:2}
.finale .acts{margin-top:38px;position:relative;z-index:2}
.finale .term{position:relative;z-index:2;width:1px;height:clamp(40px,5vw,72px);
background:linear-gradient(180deg,var(--brass),rgba(201,162,39,0));margin:0 0 8px 34px;
transform:scaleY(0);transform-origin:top;transition:transform .9s var(--ease)}
.finale.in .term{transform:scaleY(1)}

/* ------------------------------------------------------------ 8. team */
.person{flex-direction:column}
.shot img{z-index:2}
.initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
font-family:var(--d);font-size:2.7rem;color:var(--brass2)}

/* ------------------------------------------------------------ 11. cursor */

/* ------------------------------------------------------------ 10. transitions */
.page{opacity:1;transform:none}
.page.leaving{opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}
.page.entering{opacity:0;transform:translateY(14px)}
.page.entered{opacity:1;transform:none;
transition:opacity .35s var(--ease),transform .35s var(--ease)}
#wipe{position:fixed;left:0;right:0;top:0;height:2px;background:var(--brass);z-index:120;
transform:scaleX(0);transform-origin:left;pointer-events:none}
#wipe.go{animation:wipe .52s var(--ease)}
@keyframes wipe{0%{transform:scaleX(0);transform-origin:left}
45%{transform:scaleX(1);transform-origin:left}
55%{transform:scaleX(1);transform-origin:right}
100%{transform:scaleX(0);transform-origin:right}}

/* ------------------------------------------------------------ shared blocks */

.dark{background:var(--ink2)}
.tint,.tint2{background:var(--cream);color:#22303A}
.tint h2,.tint h3,.tint h4,.tint2 h2,.tint2 h3{color:#101820}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
gap:clamp(30px,6vw,88px);align-items:start}
.split-c{align-items:center}
.pull{font-style:normal;max-width:20ch;margin:0}
.four{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair)}
.four>div{padding:28px 30px 30px 0;border-right:1px solid var(--hair)}
.four>div:last-child{border-right:0}
.four h3{margin-bottom:11px}
.four p{margin:0}
.tick{width:26px;height:1px;background:var(--brass);margin-bottom:18px}
.cards{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair)}
.cards-3{grid-template-columns:repeat(3,1fr)}
.cards-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--ink);padding:clamp(28px,2.8vw,40px);display:flex;flex-direction:column;
text-decoration:none;transition:background .3s}
.dark .card{background:var(--ink2)}
.tint .card{background:var(--cream)}
.tint .card p{color:#4E5C66}
a.card:hover{background:var(--ink3)}
.tint a.card:hover{background:var(--cream2)}
.card h3{margin-bottom:14px}
.card p{margin:0}
.card .go{margin-top:24px}

.step{background:var(--ink);padding:clamp(26px,2.8vw,40px);display:grid;
grid-template-columns:78px 1fr;gap:clamp(16px,2vw,34px);align-items:start}
.dark .step{background:var(--ink2)}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);line-height:1}
.step h3{margin-bottom:10px}
.step p{margin:0}
.acc{border-top:1px solid var(--hair)}
.acc details{border-bottom:1px solid var(--hair)}
.acc summary{cursor:pointer;list-style:none;position:relative}

.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";position:absolute;right:8px;top:50%;width:10px;height:10px;
border-right:1px solid var(--brass);border-bottom:1px solid var(--brass);
transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.acc details[open] summary::after{transform:translateY(-30%) rotate(225deg)}

.acc .ans p:last-child{margin-bottom:0}
.band{background:var(--ink)}
.band img{display:block;transform:scale(1.03);opacity:1;transition:transform 1.5s var(--slow)}
.band.in img{transform:scale(1);opacity:1}
.band.tall img{height:clamp(340px,46vw,600px);object-position:center 50%}
.band::after{content:"";position:absolute;inset:0;z-index:2;inset:0;z-index:3;display:flex;align-items:center}
.band .over .wrap{width:100%}
.band h2{max-width:15ch}
.band .b-rule{display:block;width:0;height:1px;background:var(--brass);margin-bottom:26px;transition:width .9s var(--ui) .35s}
.band.in .b-rule{width:clamp(80px,10vw,150px)}
.band h2,.band p{transform:none;transition:opacity .9s var(--ui),transform .9s var(--ui)}
.band.in h2{opacity:1;transform:none;transition-delay:.5s}
.band.in p{opacity:1;transform:none;transition-delay:.72s}
.band p{max-width:42ch;margin-top:18px}

.calc{border:1px solid var(--hair);padding:clamp(26px,3vw,46px);background:rgba(201,162,39,.035)}
.calc .fields{display:grid;gap:26px}
.field label{justify-content:space-between;align-items:baseline}

.field input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:1px;
background:var(--hair);outline:none;margin:12px 0}
.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;
background:var(--brass2);cursor:pointer;border:0;border-radius:50%}
.field input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--brass2);
cursor:pointer;border:0;border-radius:50%}
.readout{border-top:1px solid var(--hair);margin-top:34px;padding-top:30px;display:grid;
grid-template-columns:repeat(2,1fr);gap:28px}
.readout div b{display:block;font-size:clamp(2.1rem,4vw,3.2rem)}
.readout div span{display:block;font-size:.9rem;color:var(--mutedd);margin-top:14px;line-height:1.6}
.calc-note{margin:28px 0 0}
.cta{background:var(--ink2);border-top:1px solid var(--hair2)}
.cta .inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
gap:clamp(26px,5vw,64px);align-items:center}
.cta h2{max-width:16ch}
.cta p{margin:18px 0 0;max-width:44ch}
.details{border-top:1px solid var(--hair);margin:0}
.row{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:17px 0;border-bottom:1px solid var(--hair)}

.row dd{margin:0}
.row a{text-decoration:none;border-bottom:1px solid var(--brass)}
.row a:hover{color:var(--brass2)}
.form{display:grid;gap:20px}

.form input,.form select,.form textarea{width:100%}
.form textarea{min-height:140px;resize:vertical}

.form .two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
footer{padding:clamp(56px,7vw,88px) 0 38px;font-size:.9rem}
.flogo{margin-bottom:24px}
.fgrid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:38px;
padding-bottom:38px;border-bottom:1px solid rgba(13,28,35,.14)}
footer h5{margin:0 0 16px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
footer a{text-decoration:none}

.disclosure{margin-top:32px}

.fbot{margin-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:#6B777F}

/* ---- first-conversation sequence: editorial rows, not a table ---- */
.flow{border-top:1px solid var(--hair2);counter-reset:f}
.frow{display:grid;grid-template-columns:minmax(0,.38fr) minmax(0,1fr);
gap:clamp(20px,4vw,68px);padding:clamp(38px,5vw,74px) 0;
border-bottom:1px solid var(--hair2);align-items:start}
.fnum{font-family:var(--d);font-size:clamp(2.4rem,4.4vw,3.6rem);line-height:.9;
color:#6B5C22;transition:color .6s var(--ui)}
.frow h3{font-size:clamp(1.5rem,2.9vw,2.3rem);color:#71808A;margin-bottom:14px;
transition:color .6s var(--ui)}
.frow p{margin:0;max-width:52ch;color:#5C6970;transition:color .6s var(--ui)}
.frule{display:block;width:22px;height:1px;background:var(--brass);opacity:.45;
margin-top:26px;transition:width .8s var(--ui),opacity .6s var(--ui)}
.frow.on .fnum{color:var(--brass2)}
.frow.on h3{color:var(--cream)}
.frow.on p{color:var(--mutedd)}
.frow.on .frule{width:120px;opacity:1}

/* ---- service sequence ---- */

.svc-intro h2{font-size:clamp(2.3rem,5.4vw,4.6rem);max-width:14ch}
.svc-intro p{margin:26px 0 0;max-width:44ch}
.svc-intro .lead-rule{display:block;width:48px;height:1px;background:var(--brass);
margin:clamp(24px,3vw,36px) 0 0}
.panel{background:var(--cream);color:#22303A;position:relative;overflow:hidden;
border-top:1px solid rgba(201,162,39,.34);text-decoration:none;display:block}

.panel-a .pin{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.panel-b .pin{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}

.p-art img{transition:transform 1s var(--film)}
.p-txt h2{transition:transform .4s var(--ui)}
.p-txt .p-rule{display:block;width:44px;height:1px;background:var(--brass)}

.p-go{display:inline-flex;align-items:center;gap:11px}
/* variant C: artwork nearly full width, text panel overlapping */
.panel-c{padding:0}
.panel-c .pin{display:block;padding:0;max-width:none}
.panel-c .p-art{max-width:none}
.panel-c .p-art img{width:100%}
.panel-c .p-txt{position:relative;max-width:var(--wrap);padding:clamp(28px,3.4vw,52px) clamp(28px,3.4vw,56px);background:var(--cream);border:1px solid rgba(201,162,39,.34);margin-left:clamp(20px,8vw,140px)}

/* ---- dark editorial breaks between panels ---- */
.interlude{background:var(--ink);text-align:center}
.interlude p{font-family:var(--d);font-size:clamp(1.8rem,4.4vw,3.4rem);line-height:1.18;
color:var(--cream);max-width:22ch;margin:0 auto}
.interlude p em{font-style:normal;font-weight:600;color:var(--brass2)}

/* ---- Bank On Yourself cycle, rebuilt ---- */
.cycle{background:var(--ink2);border:1px solid var(--hair);padding:clamp(28px,3.4vw,54px)}
.cycle svg{width:100%;height:auto;display:block}
.cycle .cy-line{fill:none;stroke:var(--brass);stroke-width:1.25;
stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
transition:stroke-dashoffset 1.6s var(--film)}
.cycle.in .cy-line{stroke-dashoffset:0}
.cycle .cy-node{fill:var(--brass);opacity:0;transition:opacity .5s var(--ui)}
.cycle.in .cy-node{opacity:1}
.cycle.in .cy-node:nth-of-type(2){transition-delay:.35s}
.cycle.in .cy-node:nth-of-type(3){transition-delay:.7s}
.cycle .cy-t{font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-weight:600;font-size:19px;fill:#F7F3E9}
.cycle .cy-s{font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;fill:#A9B6BD}
.cycle .cy-c{font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-weight:600;font-size:16px;fill:#E6CE86;
font-style:normal}
.cycle figcaption{color:var(--muted);margin:22px 0 0}

/* if scripts never run, nothing stays hidden */
html:not(.js) [data-rev],html:not(.js) .band h2,html:not(.js) .band p{
opacity:1;transform:none}
html:not(.js) .hero-h .l1,html:not(.js) .hero-h .l2,html:not(.js) .hero .lede,
html:not(.js) .hero .acts{opacity:1;transform:none;animation:none}
html:not(.js) #loader{display:none}
html:not(.js) .road path,html:not(.js) .road line,html:not(.js) .cycle .cy-line{
stroke-dashoffset:0}
html:not(.js) .cycle .cy-node{opacity:1}

/* ================= image sizing system =================
   One place that decides how tall any photograph or illustration is.  */

/* service illustrations: editorial sections, never full-screen posters */

.p-art{overflow:hidden}
.p-art img{width:100%;height:460px;object-fit:cover;display:block}
.panel-c .p-art img{height:520px}

/* team photograph introduces the section, it does not take the screen */

.band::after{background:linear-gradient(90deg,rgba(7,12,15,.9) 0%,rgba(7,12,15,.72) 26%,
rgba(7,12,15,.34) 54%,rgba(7,12,15,.08) 80%,rgba(7,12,15,0) 100%)}
/* the team banner carries no copy over it, so it keeps its own light.
   Only a soft foot, to seat it against the section below. */
.band.tall::after{background:linear-gradient(0deg,rgba(7,12,15,.34) 0%,
rgba(7,12,15,.12) 22%,rgba(7,12,15,0) 55%)}

/* landscape feature */

/* ================= every advisor identical =================
   Same portrait, same card, same type, same CTA. No visual seniority.
   The card layout itself lives in the team component block. */
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ================= readability =================
   5. AHEAD / TOGETHER legible as deliberate graphics, never brighter than content. */

/* 7. first-conversation rows sit on cream, so the type must be ink */
.tint .frow .fnum,.sec-tight.tint .fnum{color:#8A7420}
.tint .frow h3,.sec-tight.tint .frow h3{color:#0D1C23}
.tint .frow p,.sec-tight.tint .frow p{color:#55636B}
.tint .frow.on .fnum{color:#6E5D14}
.tint .frow.on h3{color:#0D1C23}
.tint .frow.on p{color:#44525A}
.tint .flow,.tint .frow{border-color:rgba(13,28,35,.14)}
.tint .frule{background:var(--brass);opacity:.55}
.tint .frow.on .frule{opacity:1}

/* ------------------------------------------------------------ reveal */
[data-rev]{opacity:0;transform:translateY(18px)}
[data-rev].in{opacity:1;transform:none;
transition:opacity .9s var(--slow),transform .9s var(--slow)}
.breathe[data-rev],.band[data-rev],.thread[data-rev],.routeline[data-rev],
.sec-thread[data-rev],.finale[data-rev],.roadwrap[data-rev]{opacity:1;transform:none}

/* ------------------------------------------------------------ responsive */

/* ==================================================================
   SIZING CONTRACT
   Fixed frames. Source image dimensions never determine page height.
   ================================================================== */
.service-image-frame{position:relative;overflow:hidden;width:100%}
.service-image-frame img{position:absolute!important;inset:0!important;
width:100%!important;height:100%!important;object-fit:cover!important;
max-height:none!important;transition:transform 1s var(--film)}

/* per-illustration focal point */
.art-retirement{object-position:center 52%}
.art-boy{object-position:center 50%}
.art-college{object-position:center center;object-fit:contain;background:#FAF6ED}
.art-protection{object-position:center 48%}
.art-legacy{object-position:center 46%}
.art-business{object-position:center 45%}

/* text panel: 220-280px, so a module lands inside 600-680px total */

.panel .p-txt{flex-direction:column;justify-content:center}
.panel-c .p-txt{margin:0 auto;width:auto}
.p-txt h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:16ch}
.p-txt .p-rule{margin:16px 0}
.p-txt p{margin:0 0 18px;max-width:56ch}

/* team photograph frame */
.band{height:380px;min-height:380px;max-height:380px;position:relative;overflow:hidden}
.band img{position:absolute!important;inset:0!important;width:100%!important;
height:100%!important;object-fit:cover!important;object-position:50% 50%!important}

.band h2{color:var(--cream);opacity:1;
font-size:clamp(1.9rem,3.6vw,3rem)}
.band p{color:#C3CFD6;opacity:1}

/* landscape feature stays generous but bounded */
.breathe{height:480px;min-height:480px;max-height:480px}

.breathe img{position:absolute;inset:0;width:100%;height:100%}

/* ==================================================================
   DECORATIVE WORDS
   One complete word, centred, never clipped, never over the content.
   ================================================================== */
/* short word can be large, long word must come down so it still fits */

/* content always sits above the decoration */

/* stats: four equal columns, values aligned */

/* ==================================================================
   SPACING: 72px default, generous only where it is deliberate
   ================================================================== */
.sec{padding:72px 0}

.story{padding:80px 0 56px}

.interlude{padding:80px 0}
.svc-intro{padding:76px 0 40px}
.finale{padding:88px 0 72px}
.cta{padding:72px 0}

/* ==================================================================
   Portrait artwork gets a portrait-friendly frame beside the copy,
   instead of being sliced into a full-width horizontal strip.
   ================================================================== */
.artband{background:var(--cream);color:#22303A;
border-top:1px solid rgba(201,162,39,.3);border-bottom:1px solid rgba(201,162,39,.3)}
.artband-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
gap:clamp(26px,4vw,68px);align-items:center;
padding-top:clamp(30px,3.4vw,50px);padding-bottom:clamp(30px,3.4vw,50px)}
.artband-flip .p-art{order:2}
.artband-flip .artband-txt{order:1}
.artband-txt .p-rule{display:block;width:44px;height:1px;background:var(--brass);margin:0 0 22px}
.artband-txt p{font-size:1.04rem;line-height:1.7;margin:0 0 26px;max-width:44ch}

/* the frame: fixed height, portrait-leaning, source dimensions ignored */
.service-image-frame{height:440px;min-height:440px;max-height:440px}

/* services page panels return to two columns */
.panel .pin{display:grid;
grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
gap:clamp(26px,4vw,68px);align-items:center;
padding:clamp(30px,3.4vw,52px) var(--pad);max-width:var(--wrap);
margin:0 auto}
.panel-b .p-art{order:2}
.panel-b .p-txt{order:1}
.panel-c .pin{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.panel .p-txt{min-height:0;padding:0;background:transparent;
border:0;margin:0;width:auto;max-width:none;
display:block;position:static}
.panel .p-txt h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:15ch}
.panel .p-txt p{max-width:44ch;margin:0 0 22px}

/* ---- shared tool furniture ---- */
.bar{height:2px;background:rgba(201,162,39,.2);margin-top:26px;overflow:hidden}
.bar span{display:block;height:100%;width:0;background:var(--brass2);
transition:width .8s var(--ui)}
.checks{list-style:none;margin:0;padding:0;display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 30px}
.checks li{border-bottom:1px solid var(--hair2)}
.checks label{display:flex;gap:13px;align-items:flex-start;cursor:pointer;
padding:13px 0;font-size:.94rem;color:var(--mutedd);transition:color .3s}
.checks label:hover{color:var(--champ)}
.checks input{appearance:none;-webkit-appearance:none;flex:none;width:17px;height:17px;
margin:3px 0 0;border:1px solid var(--brass);background:transparent;cursor:pointer;
position:relative;transition:background .25s}
.checks input:checked{background:var(--brass)}
.checks input:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;
border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(42deg)}
.checks input:checked ~ span{color:var(--cream)}
.calc select{width:100%;padding:13px 14px;border:1px solid var(--hair);background:var(--ink2);
color:var(--cream);font-family:var(--s);font-size:15px}

/* ---- trust strip: verifiable signals, stated plainly ---- */
.trust{background:var(--ink);border-top:1px solid var(--hair2);
padding:clamp(34px,4vw,54px) 0}
.trustrow{list-style:none;margin:0;padding:0;display:grid;
grid-template-columns:repeat(4,minmax(0,1fr))}
.trustrow li{padding:4px 26px 4px 0;border-right:1px solid var(--hair2)}
.trustrow li:last-child{border-right:0}
.trustrow b{display:block;font-family:var(--d);font-size:clamp(1.15rem,1.7vw,1.45rem);
font-weight:400;color:var(--brass2);line-height:1.1;margin-bottom:9px}
.trustrow span{display:block;color:var(--mutedd);line-height:1.55;max-width:26ch}

/* the counter span must inherit the display size of its <b>, not the caption size */
.stat b span,.stat b [data-count]{font-size:inherit!important;color:inherit!important;
line-height:inherit!important;display:inline!important;margin:0!important;letter-spacing:inherit}
.stat b{font-size:clamp(3.4rem,6.4vw,7rem)!important;line-height:.88!important;
color:var(--brass2)!important;margin:0 0 18px!important;display:block}
.stat>span{font-size:.92rem;color:var(--mutedd)}
/* decorative word sits further back so it never muddies the figures */

/* ---- one-line descriptor under every advisor name ---- */
.oneline{line-height:1.5;margin:7px 0 0;font-style:normal;font-weight:500}

/* ---- advisor bios: identical treatment for all seven ---- */

.bio{background:var(--ink);padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column}

/* ---- core values ---- */
.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
gap:clamp(24px,3vw,44px) clamp(30px,4vw,70px)}
.value{border-top:1px solid var(--hair);padding-top:22px}
.vnum{display:block;margin-bottom:14px}
.value h3{font-size:clamp(1.25rem,2vw,1.5rem);margin-bottom:12px}
.value p{margin:0;max-width:46ch}

/* ---- college: who does what, and the credited partner resource ---- */
.partner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,4vw,64px)}
.partner h3{font-size:clamp(1.25rem,2vw,1.55rem);margin-bottom:14px}

.partner b{color:var(--cream);font-weight:400}
.partner .btn{margin-top:6px}
.credit{margin:clamp(26px,3vw,40px) 0 0;padding-top:20px;border-top:1px solid var(--hair2)}

/* ---- team: one card per person, everything in it, all identical ---- */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
gap:1px;background:var(--hair);border:1px solid var(--hair)}

.person h3{margin-bottom:0}

.person .role{letter-spacing:.01em}
.bio-copy{margin:14px 0 18px;max-width:52ch}
.person .book{font-size:.87rem;text-decoration:none;color:var(--brass2);border-bottom:1px solid var(--brass);padding-bottom:3px;align-self:flex-start}
.person .book:hover{color:var(--cream)}

/* ---- nationwide reach ---- */
.reach{background:var(--ink2);padding:clamp(56px,7vw,96px) 0 clamp(30px,3.4vw,50px);
border-top:1px solid var(--hair2)}
.reach-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
gap:clamp(24px,5vw,64px);align-items:end;margin-bottom:clamp(24px,3vw,40px)}
.reach-head h2{max-width:16ch}
.reach-head p{margin:0}
.reach-map{margin:0}
.reach-map img{opacity:.92}

/* ---- resources ---- */
.res-filter{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(26px,3vw,40px)}
.rf{padding:10px 18px;cursor:pointer;background:transparent;color:var(--mutedd);border:1px solid var(--hair);transition:color .25s var(--ui),border-color .25s var(--ui),background .25s var(--ui)}
.rf:hover{color:var(--cream);border-color:var(--brass)}
.rf.on{background:var(--brass);border-color:var(--brass);color:var(--ink);font-weight:500}
.resgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
background:var(--hair);border:1px solid var(--hair)}
.res{background:var(--ink);padding:clamp(24px,2.5vw,34px);display:flex;flex-direction:column}
.res[hidden]{display:none}
.res-kind{margin-bottom:16px}
.res h3{font-size:1.16rem;line-height:1.22;margin-bottom:5px}
.res-src{margin:0 0 14px;font-style:normal}
.res-body{margin:0 0 20px}
.res-go{margin-top:auto;display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:3px;align-self:flex-start}
.res-go:hover{color:var(--cream)}

.res-note{margin:clamp(26px,3vw,40px) 0 0;padding-top:20px;border-top:1px solid var(--hair2)}

/* ---- founders ---- */
.founders{background:var(--ink2);padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--hair2)}
.fnd{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
gap:clamp(28px,5vw,72px);align-items:center}

.fnd-txt .lead-rule{display:block;width:46px;height:1px;background:var(--brass);margin:22px 0 24px}

/* ══════════════════════════════════════════════════════════════════
   DESIGN SYSTEM
   Thompson & Thurman Generational Wealth
   High-end wealth management with West Texas heritage.
   Readability is the priority: every rule below assumes a reader
   between 55 and 70 who should never have to squint.
   ══════════════════════════════════════════════════════════════════ */

:root{
  /* ---- ink and ground ---- */
  --ink:#070C0F;            /* deepest, for full-bleed sections   */
  --ink2:#101820;           /* section alternate                  */
  --ink3:#18232B;           /* raised surfaces                    */
  --cream:#F7F4EC;          /* warm light ground                  */
  --cream2:#EFEADF;         /* light alternate                    */

  /* ---- type on dark ---- */
  --on-dark:#E6EBEE;        /* primary paragraphs                 */
  --on-dark-2:#C4CFD6;      /* secondary, still comfortable       */
  --on-dark-3:#9AA8B1;      /* labels and disclosures only        */
  --head-dark:#F6F8F9;      /* headings                           */

  /* ---- type on light ---- */
  --on-light:#3A4750;       /* primary paragraphs                 */
  --on-light-2:#55636C;     /* secondary                          */
  --head-light:#0B1218;     /* headings, deepest ink              */

  /* ---- brass, used sparingly ---- */
  --brass:#C9A227;          /* rules, numbers, active states      */
  --brass2:#E0C874;         /* links and accents on dark          */
  --brass-ink:#6E5D14;      /* brass legible on cream             */
  --champ:#F0E4BE;

  /* ---- hairlines ---- */
  --hair:rgba(230,236,240,.16);
  --hair2:rgba(230,236,240,.09);
  --hair-light:#DDD6C6;

  /* ---- type ---- */
  /* one family, matched to the logo */
  --d:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --s:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --w-body:500;
  --w-med:500;
  --w-head:600;

  /* ---- scale ---- */
  --t-body:1.0625rem;       /* 17px at 16 root, 18.7px at 17.6    */
  --t-lead:1.1875rem;
  --t-small:0.9375rem;      /* 15px floor for anything meaningful */
  --t-label:0.8125rem;      /* 13px, tracked caps only            */
  --lh-body:1.7;

  /* ---- measure and rhythm ---- */
  --measure:62ch;
  --measure-tight:54ch;
  --wrap:1240px;
  --wide:1440px;
  --pad:clamp(20px,4vw,56px);
  --gap-s:clamp(14px,1.6vw,22px);
  --gap-m:clamp(24px,3vw,44px);
  --gap-l:clamp(44px,6vw,88px);

  --ui:cubic-bezier(.22,.61,.36,1);
  --film:cubic-bezier(.19,1,.22,1);   /* slow cinematic ease */
  --slow:cubic-bezier(.16,1,.3,1);
}

/* ────────────── base ────────────── */
html{font-size:17.6px}
body{overflow-x:hidden}
h1,h2,h3,h4,p,li,dd,dt,td,summary,.lede,.svc-d,.gd,.bio-copy,.res-body,.oneline{
overflow-wrap:break-word;word-break:normal;hyphens:none}

body{font-family:var(--s);font-size:var(--t-body);line-height:var(--lh-body);color:var(--on-dark);background:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ────────────── headings ──────────────
   Montserrat, weight 600. Hierarchy comes from size, spacing and colour
   rather than weight, so nothing reads as heavy. Sizes are pulled back
   from the previous serif scale because Montserrat sets much wider. */
h1,h2,h3,h4,.hero-t,.hero-h,.thread-h,.pull,.plan-coda,
.svc-t,.gt,.p-txt h2,.fnd-txt h2,.reach-head h2,.acc summary,.value h3{
  font-family:var(--d);
  font-weight:600;
  color:var(--head-dark);
}
h1,.hero-h{font-size:clamp(2.15rem,4.3vw,3.5rem);line-height:1.02;letter-spacing:-.025em}
h2{font-size:clamp(1.6rem,2.8vw,2.35rem);line-height:1.08;letter-spacing:-.017em}
h3{font-size:clamp(1.16rem,1.7vw,1.38rem);line-height:1.28;letter-spacing:-.01em}
h4{font-size:1.05rem;line-height:1.3;letter-spacing:-.008em}
.pull,.thread-h{font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.16;
letter-spacing:-.015em;font-weight:500}
.plan-coda{font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:-.012em;font-weight:500}
p{margin:0 0 1.15em;max-width:var(--measure)}
p:last-child{margin-bottom:0}

/* the serif italics were a serif device; Montserrat carries the accent
   through colour and weight instead */
em.g,em.gd,.hero-t2{font-style:normal;font-weight:600;color:var(--brass2)}
.tint em.g,.tint em.gd{color:var(--brass-ink)}

/* headings in half-width columns take a smaller step so they stay to
   two or three comfortable lines in Montserrat */
.split h2,.head2 h2{font-size:clamp(1.45rem,2.3vw,1.95rem);line-height:1.14}
.artband-txt h2,.p-txt h2,.fnd-txt h2{font-size:clamp(1.4rem,2.2vw,1.85rem);
line-height:1.14;letter-spacing:-.015em}
.reach-head h2{font-size:clamp(1.5rem,2.5vw,2.05rem);line-height:1.1}

/* ────────────── body copy ────────────── */
p,li,dd,td,.lede,.card p,.item p,.four p,.step p,.prin p,.value p,
.acc .ans,.bio-copy,.res-body,.svc-d,.gd,.fnd-txt p,.reach-head p,
.head2 p,.band p,.thread li,.partner p,.fnd-story p,.theme p,.tlist li{
  color:#EDF1F3;
  font-weight:var(--w-body);
  font-size:var(--t-body);
  line-height:var(--lh-body);
}
.lede,.fnd-txt p,.reach-head p,.head2 p,.b-sub,.partner p{
  font-size:var(--t-lead);
  color:#EDF1F3;
  max-width:var(--measure-tight);
}
.person .role,.res-src,.oneline{color:var(--on-dark-2);font-size:var(--t-small)}
.calc-note,.credit,.res-note,.disclosure,.covnote{
  color:var(--on-dark-3);font-size:var(--t-small);line-height:1.75;max-width:78ch}

/* light grounds */
.tint,.tint p,.tint li,.p-txt p,.artband-txt p,.svc-d,.gd{color:var(--on-light)}
.tint h1,.tint h2,.tint h3,.tint h4,.svc-t,.gt,.p-txt h2,.tint .acc summary{
  color:var(--head-light)}
.tint .head2 p,.tint .lede{color:var(--on-light-2)}

/* ────────────── eyebrows and labels ────────────── */
.crumb,.res-kind,.gcorner,.vnum,.pnum,.prin .pnum,.trustrow em,.tile em,.hb em{
  font-family:var(--d);
  font-size:var(--t-label);
  font-weight:600;
  letter-spacing:.18em;          /* echoes GENERATIONAL WEALTH in the logo */
  text-transform:uppercase;
  color:var(--brass);
}
.step::before{font-family:var(--d);font-size:var(--t-label);font-weight:600;
letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}
.tint .crumb,.tint .res-kind{color:var(--brass-ink)}

/* ────────────── navigation ────────────── */
.nav{height:80px;gap:18px;max-width:none;width:100%;box-sizing:border-box;padding:0 clamp(20px,2.8vw,40px)}
header.small .nav{height:68px}
.mark img{height:30px;width:auto}
header.small .mark img{height:27px}
.menu{gap:clamp(3px,0.8vw,11px);min-width:0;flex-wrap:nowrap}
.menu>li>a{font-family:var(--d);font-size:.86rem;color:#26333B;white-space:nowrap;padding:10px 5px;letter-spacing:0}
.menu>li>a:hover,.menu>li>a[aria-current]{color:var(--head-light)}
.drop a{font-size:.94rem;color:#26333B}
.drop a span{font-size:.87rem;color:#5C6A73}
.navcta{font-size:.88rem;white-space:nowrap;letter-spacing:.01em;padding:13px 22px;flex:none}
.drawer a{font-size:1.5rem;font-weight:var(--w-med)}
.drawer a.sub{font-size:1.02rem;color:var(--brass2)}

/* ────────────── hero ────────────── */
.herophoto::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(100deg,
      rgba(5,9,12,.94) 0%,
      rgba(5,9,12,.88) 26%,
      rgba(5,9,12,.66) 48%,
      rgba(5,9,12,.34) 68%,
      rgba(5,9,12,.20) 100%),
    linear-gradient(to top, rgba(5,9,12,.55) 0%, rgba(5,9,12,0) 42%);
}
.hero .lede{color:#F0F3F5;font-size:clamp(1.08rem,1.5vw,1.28rem);max-width:52ch}
.hero-h{text-shadow:0 2px 28px rgba(0,0,0,.42)}

/* ────────────── active-state without dimming ────────────── */
/* inactive process items stay readable; the active one gains
   brightness, a gold rule and a nudge, never the others losing contrast */
.prin,.step,.four>*{opacity:1}
.prin h3,.step h3{color:var(--head-dark)}
.prin p,.step p{color:var(--on-dark)}
.prin.on h3,.step.on h3,.prin[data-on] h3{color:#fff}
.prin.on,.step.on{transform:translateX(4px)}
.prin::before,.step::after{background:var(--hair)}
.prin.on::before,.step.on::after{background:var(--brass);height:2px}
.prin,.step{transition:transform .45s var(--ui)}

/* ────────────── decorative ghost words stay decorative ────────────── */

/* ────────────── service cards ────────────── */
.svc-t,.gt{font-size:clamp(1.12rem,1.7vw,1.34rem);letter-spacing:-.012em;line-height:1.26}
.svc-d,.gd{line-height:1.65;max-width:44ch}
.svc-go,.ggo,.p-go,.card .go,.res-go,.book{
  font-family:var(--s);font-size:.97rem;font-weight:var(--w-head);letter-spacing:.01em}
.svc-go,.ggo,.p-go{color:var(--brass-ink)}
.res-go,.book,.card .go{color:var(--brass2)}

/* ────────────── buttons ────────────── */
.btn,.navcta,.rf{font-family:var(--d);font-weight:600}
.btn{font-size:.94rem;padding:17px 30px;letter-spacing:.012em}
.btn-primary{background:var(--brass);color:#0B1218;border-color:var(--brass)}
.btn-primary:hover{background:var(--brass2);border-color:var(--brass2)}
.rf{font-size:.95rem}

/* ────────────── numbers ────────────── */
.stat b,.statcell b,.hb b,.readout div b{
  font-family:var(--d);font-weight:600;color:var(--brass2);
  letter-spacing:-.035em;line-height:.94}
.stat b span,.stat b [data-count]{font-weight:inherit}
.stat>span,.hb span{color:var(--on-dark-2);font-size:var(--t-small);max-width:26ch}

/* ────────────── accordions ────────────── */
.acc summary{font-size:clamp(1.06rem,1.6vw,1.26rem);line-height:1.3;letter-spacing:-.012em;padding:26px 52px 26px 0}
.acc .ans{padding:2px 52px 30px 0;max-width:70ch;color:#EDF1F3}
.acc .ans p{color:#EDF1F3;max-width:none}
.tint .acc .ans p{color:var(--on-light)}
.acc summary:focus{outline:none}
.acc summary:focus-visible{outline:2px solid var(--brass2);outline-offset:4px}

/* ────────────── forms ────────────── */
.form label,.field label{font-family:var(--s);font-size:.95rem;color:#DCE3E7;margin-bottom:8px;display:block}
.field label output{color:var(--brass2);font-size:1.5rem;font-family:var(--d);
font-weight:var(--w-head)}
.form input,.form select,.form textarea{
  font-family:var(--s);font-size:1rem;color:#F2F5F7;padding:15px 16px;
  background:var(--ink2);border:1px solid var(--hair)}
.form input::placeholder,.form textarea::placeholder{color:#8B99A2}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.calc select option{color:#16222B}

/* ────────────── weight lift: Spencer should not be squinting ────────────── */
/* short copy keeps 500 for punch */
body,.lede,.card p,.item p,.four p,.step p,.svc-d,.gd,.head2 p,.band p,
.reach-head p,.tlist li,.res-body{font-weight:500}
/* sustained reading drops to 400: Montserrat 500 sets dense over several
   lines. Contrast is unchanged, only the stroke weight. */
p,li,dd,td,.acc .ans,.acc .ans p,.bio-copy,.fnd-txt p,.value p,.prin p,
.partner p,.theme p,.thread li{font-weight:400}
.menu>li>a,.drop a,.btn,.book,.navcta,.form label,.field label{font-weight:600}
.svc-d,.gd{font-size:1.0625rem;color:var(--on-light);font-weight:500}
.tint .svc-d,.tint .gd{color:#35434C}

/* ────────────── decorative background words ──────────────
   They sit behind their own section and are clipped to it, so they can
   never bleed into the section above or below. */
.ghost{position:absolute;left:5%;right:5%;width:90%;top:50%;
transform:translateY(-50%);font-family:var(--d);font-weight:400;color:var(--cream);
opacity:.035;pointer-events:none;user-select:none;letter-spacing:.02em;
line-height:.8;white-space:nowrap;text-align:center;z-index:0}
.ghost-ahead{font-size:clamp(72px,13.5vw,210px)}
.ghost-together{font-size:clamp(48px,8.2vw,132px)}
.sec-stats,.sec-thread{position:relative;overflow:hidden}
.sec-stats>.wrap-wide,.sec-thread>.wrap{position:relative;z-index:2}

/* ────────────── founders story ──────────────
   One continuous read. The shield sits behind the copy on the right as a
   quiet background mark; nothing sits behind the words themselves. */
.eyebrow{display:block;font-family:var(--d);font-size:var(--t-label);font-weight:600;
letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:14px;
background:none}
.founders{position:relative;overflow:hidden}
.founders>.wrap{position:relative;z-index:2}
.bgmark{position:absolute;top:50%;right:clamp(24px,6vw,96px);
transform:translateY(-50%);width:clamp(150px,17vw,280px);opacity:.06;z-index:0;
pointer-events:none;line-height:0}
.bgmark img{width:100%;height:auto;display:block}
.finale>.wrap{position:relative;z-index:2}

.fnd-head{max-width:var(--measure);margin:0 0 clamp(28px,3.4vw,44px);background:none}
.fnd-head h2,.finale h2{color:#FFFFFF;background:none}
.fnd-img{margin:0 0 clamp(30px,3.6vw,48px);overflow:hidden;border:1px solid var(--hair)}

.fnd-story{max-width:64ch;background:none}
.fnd-story p{margin-bottom:1.35em;color:#EDF1F3;background:none}
.fnd-story .btn{margin-top:26px}

/* ────────────── team cards ──────────────
   The portrait bleeds to the card edges and fills the full height. The text
   column sits on four fixed bands so names, roles, bios and booking links
   line up across every card instead of staggering. */
.person{
  display:grid;
  grid-template-columns:minmax(0,38%) minmax(0,1fr);
  gap:0;
  padding:0;
  align-items:stretch;
  background:var(--ink);
  overflow:hidden;
}
.person .shot{
  position:relative;
  aspect-ratio:auto;
  width:100%;
  height:100%;
  min-height:100%;
  max-width:none;
  margin:0;
  border:0;
  border-right-width:1px;border-right-style:solid;border-right-color:rgba(230,236,240,.16);
  overflow:hidden;
}
.person .shot img{position:absolute;inset:0;width:100%;height:100%;display:block}
.person-in{
  display:flex;flex-direction:column;min-width:0;
  padding:clamp(24px,2.3vw,34px);
}
/* four aligned bands */
.person h3{
  font-size:clamp(1.1rem,1.5vw,1.28rem);
  line-height:1.24;
  min-height:2.5em;
  margin:0 0 2px;
  display:flex;align-items:flex-start;
}
.person .oneline{margin:0;min-height:5.2em;line-height:1.6}
.person .role{
  margin:0 0 4px;
  min-height:4.6em;
  line-height:1.55;
  font-size:.9rem;
}

.person .book{margin:0;padding:0}

/* ────────────── bio opens as an overlay ──────────────
   Expanding the bio in flow stretched the portrait, because the photo
   fills the card height. The bio now floats over the card instead: the
   card never changes size, and the image and summary blur behind it.
   The toggle and the booking link stay clear at the bottom. */
.person{position:relative;min-height:clamp(330px,25vw,390px)}
.person .bio{position:static}
.person .bio summary{position:relative;z-index:7}
.person .book{position:relative;z-index:7}

.person .bio[open] .bio-copy{
  position:absolute;
  left:0;right:0;top:0;bottom:5.9em;
  z-index:6;
  margin:0;
  padding:clamp(22px,2.2vw,32px);
  overflow-y:auto;
  background:rgba(8,13,16,.90);
  -webkit-backdrop-filter:blur(14px) saturate(.9);
  backdrop-filter:blur(14px) saturate(.9);
  border-bottom:1px solid rgba(230,236,240,.16);
  font-size:1rem;line-height:1.66;
  animation:biofade .34s var(--ui) both;
}
@keyframes biofade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.person .bio[open] summary{color:var(--champ)}

/* ────────────── retirement income themes ────────────── */
.theme{display:grid;grid-template-columns:76px minmax(0,1fr);gap:clamp(14px,2vw,28px);
padding:clamp(26px,3vw,40px) 0;border-top:1px solid var(--hair);align-items:start}
.theme:first-of-type{border-top:0;padding-top:8px}
.tnum{font-family:var(--d);font-size:1.6rem;font-weight:600;color:var(--brass);line-height:1}
.theme h3{margin-bottom:12px;font-size:clamp(1.3rem,2.1vw,1.68rem)}
.theme p{max-width:62ch;margin-bottom:18px}
.tlist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.tlist li{position:relative;padding-left:22px;color:var(--on-dark);font-size:1.0625rem;
line-height:1.6;max-width:62ch}
.tlist li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;
background:var(--brass)}

/* ────────────── team: bios behind a disclosure ────────────── */
.person .bio{margin:0 0 16px;border-top:1px solid var(--hair);margin-top:auto;padding-top:2px}
.person .bio summary{list-style:none;cursor:pointer;padding:13px 0 0;font-family:var(--s);
font-size:.95rem;font-weight:600;color:var(--brass2);display:flex;align-items:center;gap:9px}
.person .bio summary::-webkit-details-marker{display:none}
.person .bio summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;
border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--ui)}
.person .bio[open] summary::after{transform:rotate(-135deg)}
.person .bio summary:hover{color:var(--champ)}
.person .bio-copy{font-size:1.0625rem;line-height:1.7;color:var(--on-dark);font-weight:400;
margin:14px 0 0;max-width:58ch}
.person .book{margin-top:0;padding-top:0}
/* portrait frames accept any client photo without changing card height */
.person .shot img{object-position:center 22%}
.shot-landon-morgan img{object-position:center 26%}
.shot-chris-thurman img{object-position:center 20%}
.shot-grant-thompson img{object-position:center 18%}
.shot-teresa-hodge img{object-position:center 24%}
.shot-blane-thompson img{object-position:center 20%}
.shot-brittany-thompson img{object-position:center 22%}
.shot-spencer-thurman img{object-position:center 18%}

/* ────────────── supporting copy floor ──────────────
   15px is the floor for anything a visitor is expected to read.
   Below that is reserved for legal and disclosure text only. */
.trustrow span{font-size:.9rem}
.cycle figcaption{font-size:.88rem;line-height:1.6}
.cycle .cy-s{font-size:15px}
.person .oneline,.oneline{font-size:.88rem}

.fbot{font-size:.88rem}
/* true disclosure text: smaller is appropriate, faint is not */
.disclosure{font-size:.86rem;line-height:1.8;color:#5F6C75}
.fnap{margin:22px 0 0;font-size:.88rem;color:#5F6C75}
/* classes replacing inline styles */
.card-raised{background:var(--ink3)}
.inlink{color:var(--brass2);text-decoration:none;border-bottom:1px solid rgba(224,200,116,.42)}
.inlink:hover{border-bottom-color:var(--brass2)}
.figframe{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink2)}

/* ────────────── remaining small furniture ────────────── */
.concept{font-size:var(--t-small);color:#DCE3E7}
.concept span{color:var(--on-dark-2)}

.f-done{margin:18px 0 0;padding:16px 18px;background:rgba(201,162,39,.09);
border-left:2px solid var(--brass);color:var(--on-dark);font-size:1rem;line-height:1.65;
max-width:56ch}
.f-warn{border-color:var(--brass);box-shadow:0 0 0 3px rgba(201,162,39,.2)}
.btn:disabled{opacity:.75;cursor:default}

/* stats: four across on desktop, two on tablet, stacked on a phone */

/* ---- team: seven people in two columns, so the last one spans ---- */
.people>.person:last-child:nth-child(odd){grid-column:1 / -1}
.people>.person:last-child:nth-child(odd) .person-in{max-width:58ch}

/* ---- initials stand in for a portrait, deliberately ---- */
.person .shot{background:linear-gradient(150deg,var(--ink3) 0%,var(--ink) 100%)}
.person .initials{font-family:var(--d);font-weight:600;letter-spacing:.06em;
color:var(--brass2);font-size:2rem}
.person .shot:not(:has(img))::after{content:"";position:absolute;inset:9px;
border:1px solid rgba(224,200,116,.22);pointer-events:none}

/* ---- partner credit: named, never linked out ---- */
.partner-credit{border-left:2px solid var(--brass);padding:4px 0 4px 26px;max-width:62ch}
.pc-label{display:block;font-family:var(--d);font-size:var(--t-label);font-weight:600;
letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:8px}
.pc-name{display:block;font-family:var(--d);font-weight:600;
font-size:clamp(1.2rem,2vw,1.55rem);letter-spacing:-.012em;color:var(--head-dark);
margin-bottom:12px}
.tint .pc-name{color:var(--head-light)}
.tint .pc-label{color:var(--brass-ink)}
.partner-credit p{margin:0}
.partner-inline{margin:0 auto}
.sec-tight{padding:clamp(34px,4vw,56px) 0}

/* ---- the partner mark inside a team card ---- */
.card-partner{display:block;margin:0 0 14px}
.card-partner em{display:block;font-style:normal;font-family:var(--d);
font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
color:var(--brass);margin-bottom:8px}
.card-partner img{display:block;width:clamp(150px,11vw,190px);height:auto;
background:#F7F4EC;padding:9px 12px;border:1px solid var(--hair);box-sizing:content-box}

/* ---- Elite Collegiate Planning mark, used as supplied ---- */
.pc-logo{display:block;height:auto;margin:0 0 16px}
.partner-credit.has-logo .pc-label{margin-bottom:14px}
.press .pc-logo{margin:0 auto 18px}
/* the mark carries its own blue, so it sits on a light ground */
.pc-logo{width:clamp(230px,22vw,320px)}
.pc-logo{background:#F7F4EC;padding:15px 20px;border:1px solid var(--hair-light);
box-sizing:content-box}
.tint .pc-logo{background:#FFFFFF;border-color:#E2DBCA}

/* ---- press strip: names set in our own type, not supplied logos ---- */
.press{text-align:center;max-width:none}
.press .pc-label{margin-bottom:20px}
.press-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
justify-content:center;align-items:center;gap:clamp(20px,3.4vw,54px)}
.press-list li{font-family:var(--d);font-weight:600;font-size:clamp(.95rem,1.4vw,1.15rem);
letter-spacing:.02em;color:#41505A;white-space:nowrap}

/* ---- workshops ---- */
.wk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,48px)}
.wk-item h3{margin-bottom:12px}
.wk-item p{max-width:38ch}
.wk-item .btn{margin-top:20px}

/* ────────────── tables and rows ────────────── */
.row{font-size:var(--t-body);color:var(--on-dark)}
.row dt{font-size:var(--t-small);color:var(--on-dark-3);letter-spacing:.02em}

/* ────────────── footer ────────────── */
footer{background:var(--cream);color:var(--on-light)}
footer h5{font-family:var(--d);font-size:1.12rem;font-weight:var(--w-head);
color:var(--head-light);margin-bottom:14px}
footer a,footer li,footer p{font-size:var(--t-small);color:var(--on-light);
font-weight:var(--w-body)}
footer a:hover{color:var(--head-light)}
footer .disclosure,footer .fbot{font-size:.875rem;color:#5F6C75;line-height:1.75;
max-width:88ch}
.flogo{height:40px;width:auto}

/* ────────────── images never dictate height ────────────── */
img{max-width:100%}
.fnd-img img,.reach-map img{width:100%;height:auto;display:block}
.person .shot img,.herophoto img,.breathe img,.band img,.gfig img,
.service-image-frame img{object-fit:cover}

/* ────────────── motion supports content, never delays it ────────────── */
[data-rev]{transition:opacity .5s var(--ui),transform .5s var(--ui)}

/* ────────────── mobile ────────────── */



@media(max-width:1500px){
.p-art img{height:410px}.panel-c .p-art img{height:460px}.band img{height:420px!important}.breathe{height:500px}
}
@media(max-width:1400px){
.menu,.navcta{display:none}.burger,.drawer{display:block}.nav{height:72px}
}
@media(max-width:1200px){
.band{height:340px;min-height:340px;max-height:340px}.breathe{height:430px;max-height:430px}.service-image-frame{height:400px;
min-height:400px;max-height:400px}
}
@media(max-width:1180px){
.nav{gap:12px}.mark img{height:40px}.menu a{padding:10px 10px}
}
@media(max-width:1100px){
.p-art img{height:360px}.panel-c .p-art img{height:400px}.band img{height:360px!important}.breathe{height:430px}
}
@media(max-width:1080px){
.menu,.navcta{display:none}.burger,.drawer{display:block}.mark img{height:58px}.nav{height:84px}header.scrolled .nav{height:70px}header.scrolled .mark img{height:48px}.story-grid{grid-template-columns:1fr;gap:34px}.story-l{position:static}.stats,.four,.four>div:nth-child(2n),.stat:nth-child(2n){border-right:0}.svcgrid,.cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.head2,.cta .inner{grid-template-columns:1fr}.thread ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 12px}.hero-lg{min-height:min(88vh,760px)}.people{grid-template-columns:1fr}.resgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.person h3,.person .oneline,.person .role{min-height:0}.person h3{margin-bottom:8px}.person .oneline{margin-bottom:10px}.person .role{margin-bottom:14px}.people>.person:last-child:nth-child(odd){grid-column:auto}.card-partner img{width:150px}
}
@media(max-width:900px){
.band{height:300px;min-height:300px;max-height:300px}.breathe{height:360px;max-height:360px}.sec,.gallery,.cta{padding:56px 0}.plan,.interlude,.finale,.svc-intro,.story{padding:60px 0}.service-image-frame{height:360px;
min-height:360px;max-height:360px}.artband-in,.panel .pin{grid-template-columns:1fr}.artband-flip .p-art,.panel-b .p-art{order:0}.artband-flip .artband-txt,.panel-b .p-txt{order:0}.trustrow{grid-template-columns:repeat(2,1fr);gap:22px 0}.trustrow li:nth-child(2n){border-right:0}.bios,.values{grid-template-columns:1fr}.partner{grid-template-columns:1fr}.reach-head{grid-template-columns:1fr}.fnd{grid-template-columns:1fr}html{font-size:17px}.ghost-ahead{font-size:clamp(60px,17vw,120px)}.ghost-together{font-size:clamp(40px,10.5vw,84px)}.bgmark{right:4%;width:34vw;opacity:.05}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:28px 24px 22px 0}.stat:nth-child(2n){border-right:0;padding-right:0}.wk{grid-template-columns:1fr}h1,.hero-h{font-size:clamp(1.72rem,6.6vw,2.3rem);line-height:1.06;letter-spacing:-.022em}h2{font-size:clamp(1.4rem,5vw,1.75rem);letter-spacing:-.015em}.lede,.fnd-txt p,.reach-head p,.head2 p{font-size:1.08rem;max-width:none}p{max-width:none}.acc summary{font-size:1.16rem;padding-right:40px}.acc .ans{padding-right:0}.btn{width:100%;justify-content:center}.acts{flex-direction:column;gap:12px}
}
@media(max-width:820px){
.p-art img{height:300px}.panel-c .p-art img{height:330px}.band img{height:340px!important}.breathe{height:360px}
}
@media(max-width:768px){
.hero-lg{min-height:min(82vh,660px)}
}
@media(max-width:760px){
.checks{grid-template-columns:1fr}
}
@media(max-width:700px){
.person{grid-template-columns:1fr}.person .shot{aspect-ratio:4/3;height:auto;min-height:0;
  border-right-width:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgba(230,236,240,.16)}.person{min-height:0}.person .bio[open] .bio-copy{position:static;inset:auto;background:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;padding:14px 0 0;border-bottom:0;
  overflow:visible}
}
@media(max-width:640px){
.herophoto img{object-position:70% 66%}.hero-h .l1{font-size:clamp(1.35rem,6.2vw,1.85rem)}.hero-h .l2{font-size:clamp(2.1rem,12vw,3rem)}.svcgrid,.cards-3,.cards-2,.stats,.four,.items,.people,.four>div,.stat{border-right:0;border-bottom:1px solid var(--hair);padding-right:0}.four>div:last-child,.stat:last-child{border-bottom:0}.stat{padding-top:26px}.thread ul{grid-template-columns:repeat(2,minmax(0,1fr))}.thread-h{margin-bottom:34px}.readout,.form .two{grid-template-columns:1fr}.row{grid-template-columns:1fr;gap:3px}.fgrid{grid-template-columns:1fr}.step{grid-template-columns:1fr;gap:12px}.flogo{height:46px}.svc-art{aspect-ratio:16/10}.band{height:240px;min-height:240px;max-height:240px}.breathe{height:280px;max-height:280px}.service-image-frame{height:300px;
min-height:300px;max-height:300px}.resgrid{grid-template-columns:1fr}.theme{grid-template-columns:1fr;gap:8px}.stats{grid-template-columns:1fr;gap:0}.stat{border-right:0;border-bottom:1px solid var(--hair);
  padding:26px 0 24px;width:100%;max-width:none}.stat:last-child{border-bottom:0}.stat>span{margin-top:10px;max-width:none;font-size:1rem}.press-list{gap:16px 26px}.mark img{height:28px}.nav{height:64px}h1,.hero-h{font-size:clamp(1.55rem,7.4vw,2rem)}.stat b,.statcell b{font-size:clamp(2.1rem,11vw,2.7rem)}
}
@media(max-width:560px){
.p-art img{height:240px}.panel-c .p-art img{height:260px}.band img{height:290px!important}.breathe{height:300px}.trustrow{grid-template-columns:1fr;gap:18px 0}.trustrow li{border-right:0;padding-right:0;border-bottom:1px solid var(--hair2);
padding-bottom:16px}.trustrow li:last-child{border-bottom:0}.person{grid-template-columns:1fr;gap:16px}.ghost-ahead{font-size:clamp(46px,17vw,84px)}.ghost-together{font-size:clamp(30px,10vw,56px)}.bgmark{width:44vw;right:-6%;opacity:.045}
}
@media (hover:hover) and (min-width:900px){
.svc:hover{transform:translateY(-4px);border-color:var(--brass)}.svc:hover .svc-art img{transform:scale(1.05) translateY(-8px)}.svc:hover .svc-t{transform:translateY(-2px)}.svc:hover .arw{transform:translateX(6px)}.svc:hover .svc-corner{width:38px}.svc:hover .svc-corner::after{height:38px}.panel:hover .p-art img{transform:translateX(-7px) scale(1.012)}.panel:hover .p-txt h2{transform:translateY(-2px)}.panel:hover .p-rule{width:78px;transition:width .5s var(--ui)}.panel:hover .arw{transform:translateX(6px)}
}
@media (prefers-reduced-motion:no-preference) and (min-width:900px){
body.ready .herophoto img{animation:drift 19s ease-in-out 1.4s infinite alternate}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}[data-rev],.page{opacity:1;transform:none;transition:none}.hero-h .l1,.hero-h .l2,.hero .lede,.hero .acts,.herophoto img{opacity:1!important;
transform:none!important;animation:none!important;transition:none!important}.hero-rule{width:180px}.road path,.road line{stroke-dashoffset:0;transition:none}.breathe img,.band img{opacity:1!important;transform:none!important;transition:none!important}.breathe .b-rule{width:140px}.thread li::before{opacity:1;transform:none}.thread-coda{opacity:1;transform:none}.finale .term{transform:scaleY(1)}#wipe{animation:none}.arw,.svc,.svc-art img,.four>div{transition:none}
}
@media(prefers-reduced-motion:reduce){
.person .bio[open] .bio-copy{animation:none}*,*::before,*::after{animation-duration:.01ms;
  transition-duration:.01ms;scroll-behavior:auto}[data-rev]{opacity:1;transform:none}
}
/* ---- 16 Sep 2026: ghost button and inline link on light sections ---- */
.tint .btn-ghost,.tint2 .btn-ghost{color:var(--head-light);border-color:rgba(11,18,24,.32)}
.tint .btn-ghost::before,.tint2 .btn-ghost::before{background:rgba(11,18,24,.06)}
.tint .btn-ghost:hover,.tint .btn-ghost:focus-visible,.tint2 .btn-ghost:hover,.tint2 .btn-ghost:focus-visible{color:var(--head-light);border-color:rgba(11,18,24,.6)}
.tint .inlink,.tint2 .inlink{color:var(--brass-ink);border-bottom-color:rgba(110,93,20,.42)}
.tint .inlink:hover,.tint2 .inlink:hover{border-bottom-color:var(--brass-ink)}

/* ---- 17 Sep 2026: dated workshop listing on the College page ---- */
.wk-next{border:1px solid rgba(11,18,24,.16);background:rgba(255,255,255,.55);padding:clamp(24px,3.4vw,40px);margin:0 0 clamp(36px,4vw,56px)}
.wk-next[hidden]{display:none}
.wk-tag{display:block;font-family:var(--d);font-size:var(--t-small);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);margin:0 0 10px}
.tint .wk-next h3{margin:0 0 20px;color:var(--head-light)}
.wk-when{margin:0 0 26px;display:grid;gap:12px}
.wk-when div{display:grid;grid-template-columns:90px 1fr;gap:16px}
.wk-when dt{font-weight:600;color:var(--head-light)}
.wk-when dd{margin:0;color:var(--on-light)}
.wk-fine{margin:18px 0 0;font-size:var(--t-small);color:var(--on-light-2)}
@media(max-width:560px){.wk-when div{grid-template-columns:1fr;gap:2px}}

/* ---- 17 Sep 2026: scrolled header logo on 1401-1520px screens ---- */
/* The scrolled logo grew to 52px and pushed the menu under "Book a meeting"
   below ~1500px. It now grows only as far as the row has room, reaching the
   full 52px from ~1518px (allowing for a 15px scrollbar). */
@media(min-width:1401px){
header.scrolled .mark img{height:clamp(30px,calc(39px + (100vw - 1431px) * .15),52px)}
}

/* ---- 17 Sep 2026: multi-paragraph team bios ---- */
.bio-copy p{margin:0 0 14px}
.bio-copy p:last-child{margin-bottom:0}

/* ---- 17 Sep 2026: contact address on team cards ---- */
.cmail{margin:0 0 4px;font-size:var(--t-small);line-height:1.7}
.cmail a{color:var(--brass2);text-decoration:none;border-bottom:1px solid rgba(230,206,134,.42);word-break:break-word}
.cmail a:hover{color:var(--champ);border-bottom-color:var(--brass2)}
.cmail span{color:var(--on-dark-3)}

/* ---- 22 Sep 2026: live contact form ---- */
.f-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.f-err{border-left-color:#E8A08C}
.f-err a{color:var(--brass2)}

/* ---- 22 Sep 2026: show the whole College Solutions logo sketch ---- */
.service-image-frame img.art-college{object-fit:contain!important;background:#FAF6ED}

/* ---- 22 Sep 2026: Landon's portrait in the College page hero ---- */
.hero-person .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:clamp(32px,5vw,80px);align-items:center}
.hero-portrait{margin:0;width:clamp(230px,24vw,340px)}
.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;border:1px solid rgba(230,236,240,.16)}
.hero-portrait figcaption{margin-top:12px;font-size:var(--t-small);color:var(--on-dark-2);letter-spacing:.02em}
@media(max-width:860px){
.hero-person .wrap{grid-template-columns:1fr}
.hero-portrait{width:min(260px,70%)}
}

/* ---- 22 Sep 2026: every team card full width, like the last one ---- */
.people{grid-template-columns:1fr}
.people>.person .person-in{max-width:58ch}
/* the open bio covers the text column of a full-width card, not the photo */
@media(min-width:701px){
.people>.person .person-in{position:relative}
.people>.person .bio[open] .bio-copy{max-width:none}
}

/* ---- 22 Sep 2026: tighter "How a first conversation actually goes" steps (About) ---- */
#about .frow{padding:clamp(19px,2.5vw,37px) 0}
#about .flow .frow:last-child{padding-bottom:clamp(12px,1.4vw,20px)}

/* ---- 22 Sep 2026: five Bank On Yourself habits ---- */
.thread-5 ul{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.thread-5 ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}}

/* ---- 24 Sep 2026: loader uses the real shield artwork ---- */
#loader .ld-mark{display:block;height:63px;width:auto;opacity:0;transform:translateY(6px);
transition:opacity .45s var(--ease),transform .45s var(--ease)}
#loader.go .ld-mark{opacity:1;transform:none}
