/* tst.css — GENERATED by build_css.py. DO NOT EDIT. Parts, in cascade order:
 *   00-mockup.css
 *   10-bridge.css
 *   20-nav.css
 *   30-form.css
 *   40-utils.css
 *   50-elementor.css
 *   60-elementor-map.css
 *   65-widgets.css
 *   70-prose.css
 */

/* ==================== 00-mockup.css ==================== */
:root{--slate:#253746;
    --slate-deep:#16232E;
    --slate-panel:#2F4557;
    --orange:#F04E23;
    --orange-deep:#C93C15;
    --ink:#1B2A36;
    --body:#5A6672;
    --line:#E2E7EC;
    --wash:#F4F6F8;
    --rad:14px;}*{box-sizing:border-box;margin:0;padding:0;}body{font-family:'Inter',system-ui,sans-serif;color:var(--body);background:#ffffff;line-height:1.7;font-size:16px;}h1,h2,h3,h4{font-family:'Archivo',sans-serif;color:var(--ink);line-height:1.15;letter-spacing:-.02em;}h1{font-size:52px;font-weight:700;}h2{font-size:36px;font-weight:700;}h3{font-size:21px;font-weight:600;}h4{font-size:16px;font-weight:600;}a{color:inherit;text-decoration:none;}section{position:relative;padding:88px 56px;}.eyebrow{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:14px;display:block;}.lead{font-size:17px;max-width:640px;}.center{text-align:center;}.center .lead{margin-left:auto;margin-right:auto;}.wash{background:var(--wash);}.dark{background:var(--slate);color:#B7C4CE;}.dark h2,.dark h3,.dark h4{color:#fff;}.dark .eyebrow{color:#FF8347;}.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;white-space:nowrap;
    padding:15px 26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:.15s;}.btn-orange{background:var(--orange);color:#fff;}.btn-orange:hover{background:var(--orange-deep);}.btn-slate{background:var(--slate);color:#fff;}.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff;}.btn-outline{border-color:var(--line);color:var(--ink);background:#fff;}.row-btn{display:flex;gap:14px;flex-wrap:wrap;}.topbar{background:var(--slate-deep);color:#A6B4C0;font-size:13px;padding:9px 56px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}.topbar b{color:#fff;font-weight:600;}.topbar .lic{letter-spacing:.06em;font-size:12px;}header.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 40px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:20;gap:20px;}.logo{display:flex;align-items:center;gap:12px;}.logo .lt{font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;color:var(--ink);line-height:1.1;letter-spacing:-.01em;}.logo .lt span{display:block;font-family:'Inter',sans-serif;font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-deep);margin-top:3px;}nav ul{display:flex;gap:18px;list-style:none;font-size:14px;font-weight:500;color:var(--ink);}nav li{white-space:nowrap;}nav li.active{color:var(--orange-deep);}.hero{padding:0;position:relative;}.hero-img{position:relative;min-height:520px;
    background:#2F4557 url('') center 42%/cover no-repeat;
    display:flex;align-items:center;}.hero-img::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,35,46,.95) 0%,rgba(22,35,46,.86) 46%,rgba(22,35,46,.45) 100%);}.hero-tag{position:absolute;right:26px;bottom:26px;z-index:3;background:rgba(240,78,35,.94);color:#fff;font:600 11px/1.5 'Inter',sans-serif;padding:10px 14px;border-radius:6px;max-width:270px;text-align:right;}.hero-inner{position:relative;z-index:4;padding:70px 56px;max-width:760px;}.hero h1{color:#fff;margin-bottom:18px;}.hero h1 em{font-style:normal;color:#FF7A3D;}.hero p{color:#C9D4DD;font-size:18px;max-width:560px;margin-bottom:28px;}.hero .row-btn{margin-bottom:30px;}.hero-trust{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.16);padding-top:20px;}.hero-trust div{color:#A2B1BD;font-size:12.5px;line-height:1.5;}.hero-trust b{display:block;font-family:'Archivo',sans-serif;color:#fff;font-size:15px;font-weight:600;margin-bottom:2px;}.strip{background:var(--slate-deep);padding:18px 56px;display:flex;justify-content:center;gap:44px;flex-wrap:wrap;position:relative;}.strip span{color:#C5D0D9;font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:8px;}.dot{width:7px;height:7px;border-radius:50%;background:var(--orange);flex:none;}.about-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 18px 44px rgba(27,42,54,.18);}.about-photo .cap{font-size:12.5px;color:#8A949E;margin-top:12px;letter-spacing:.02em;}.about{display:grid;grid-template-columns:1.02fr 1fr;gap:52px;align-items:start;}.stat-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:26px;padding-top:24px;border-top:1px solid var(--line);}.stat{min-width:104px;}.stat b{display:block;font-family:'Archivo',sans-serif;font-size:28px;color:var(--ink);line-height:1;}.stat span{font-size:12.5px;letter-spacing:.04em;}.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px;}.flip{perspective:1400px;height:486px;cursor:pointer;}.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;
    transition:transform .65s cubic-bezier(.4,.15,.2,1);}.flip:hover .flip-inner,.flip:focus-within .flip-inner,.flip.is-flipped .flip-inner{transform:rotateY(180deg);}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
    border-radius:20px;padding:30px;display:flex;flex-direction:column;text-align:center;overflow:hidden;}.face.front{background:var(--slate);box-shadow:0 10px 26px rgba(27,42,54,.12);}.face.back{background:linear-gradient(155deg,var(--slate-panel) 0%,var(--slate-deep) 100%);
    transform:rotateY(180deg);justify-content:center;text-align:left;padding:34px 32px;
    border-top:4px solid var(--orange);box-shadow:0 18px 40px rgba(27,42,54,.24);}.svc-photo{width:100%;height:196px;object-fit:cover;border-radius:14px;margin-bottom:24px;display:block;}.face h3{color:#fff;font-size:22px;margin-bottom:12px;}.face.front p{font-size:14.5px;line-height:1.7;color:#B0BFCB;flex:1;}.flip-hint{margin-top:18px;font-family:'Archivo',sans-serif;font-weight:600;font-size:12px;letter-spacing:.12em;
    text-transform:uppercase;color:#FF8347;display:flex;align-items:center;justify-content:center;gap:7px;}.flip-hint::after{content:'';width:16px;height:16px;border-radius:50%;border:1.5px solid #FF8347;}.face.back ul{list-style:none;margin:6px 0 0;}.face.back li{position:relative;padding-left:22px;font-size:14px;line-height:1.6;color:#C2CFDA;margin-bottom:11px;}.face.back li::before{content:'';position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:2px;background:var(--orange);}.face.back .more{margin-top:20px;font-family:'Archivo',sans-serif;font-weight:600;font-size:13.5px;color:#FF8347;}.spot-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 18px 44px rgba(27,42,54,.16);}.map-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 22px 52px rgba(27,42,54,.22);}.map-wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:44px;align-items:center;}.chk{list-style:none;margin-top:18px;}.chk li{position:relative;padding-left:28px;font-size:15px;margin-bottom:10px;}.chk li::before{content:'';position:absolute;left:0;top:9px;width:14px;height:14px;border-radius:3px;background:var(--orange);}.brand-head{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:end;}.brand-head p{font-size:16px;}.logo-band{background:var(--slate);padding:54px 0;overflow:hidden;position:relative;}.logo-band::before,.logo-band::after{content:'';position:absolute;top:0;bottom:0;width:110px;z-index:3;pointer-events:none;}.logo-band::before{left:0;background:linear-gradient(90deg,var(--slate),rgba(37,55,70,0));}.logo-band::after{right:0;background:linear-gradient(270deg,var(--slate),rgba(37,55,70,0));}.logo-track{display:flex;align-items:center;gap:104px;width:max-content;animation:marq 34s linear infinite;}.logo-band:hover .logo-track{animation-play-state:paused;}.logo-track img{height:132px;width:auto;flex:none;filter:brightness(0) invert(1);mix-blend-mode:lighten;opacity:.92;}@keyframes marq{from{transform:translateX(0);}to{transform:translateX(-50%);}}@media(prefers-reduced-motion:reduce){.logo-track{animation:none;}
}.brand-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:26px;}.brand-foot span{font-size:14px;}.brand-foot a{font-family:'Archivo',sans-serif;font-weight:600;font-size:14px;color:var(--orange-deep);}.story{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center;}.story blockquote{font-family:'Archivo',sans-serif;font-size:25px;font-weight:600;line-height:1.4;color:#fff;margin-bottom:20px;letter-spacing:-.01em;}.story .attrib{display:flex;align-items:center;gap:14px;margin-top:22px;}.story .attrib b{display:block;color:#fff;font-family:'Archivo',sans-serif;font-size:15px;}.story .attrib span{font-size:13px;color:#A2B1BD;}.ai-head{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:end;}.ai-head p{font-size:16px;}.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px;}.ai-card{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:32px 30px;
    display:flex;flex-direction:column;transition:.18s;}.ai-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(27,42,54,.13);border-color:#F6C3B2;}.ai-card .top{display:flex;align-items:center;gap:14px;margin-bottom:16px;}.ai-card .ic{width:48px;height:48px;border-radius:12px;background:#FFF0EA;display:flex;align-items:center;justify-content:center;flex:none;}.ai-card h3{font-size:21px;margin-bottom:2px;}.ai-card .tag{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--orange-deep);}.ai-card p{font-size:14.5px;line-height:1.75;flex:1;}.ai-card .best{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.6;}.ai-card .best b{font-family:'Archivo',sans-serif;color:var(--ink);}.ai-close{margin-top:44px;background:var(--slate);border-radius:20px;padding:40px 44px;
    display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;}.ai-close h3{color:#fff;font-size:26px;margin-bottom:10px;}.ai-close p{color:#B7C4CE;font-size:15px;}.ai-close .row-btn{justify-content:flex-end;}.ai-close .lnk{color:#FF8347;font-family:'Archivo',sans-serif;font-weight:600;font-size:14px;
    border-bottom:2px solid rgba(255,131,71,.5);padding-bottom:2px;align-self:center;}@media(max-width:980px){.ai-head{grid-template-columns:1fr;gap:18px;align-items:start;}.ai-grid{grid-template-columns:1fr;}.ai-close{grid-template-columns:1fr;padding:30px 24px;gap:22px;}.ai-close .row-btn{justify-content:flex-start;}
}.case-head{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:end;}.case-head h2{font-size:38px;line-height:1.12;}.case-meta{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;
    border-left:2px solid rgba(255,255,255,.16);padding-left:32px;}.case-meta b{display:block;font-family:'Archivo',sans-serif;font-size:21px;font-weight:700;color:#fff;line-height:1.2;letter-spacing:-.01em;}.case-meta span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8FA3B4;}.case-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:56px;
    border-top:1px solid rgba(255,255,255,.16);}.stage{padding:30px 28px 0 0;border-right:1px solid rgba(255,255,255,.1);}.stage:last-child{border-right:0;}.stage:not(:first-child){padding-left:28px;}.stage .sn{font-family:'Archivo',sans-serif;font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--orange);margin-bottom:12px;}.stage h3{font-size:18px;color:#fff;margin-bottom:10px;}.stage p{font-size:14px;line-height:1.7;color:#B7C4CE;}.case-quote{margin-top:56px;padding-top:44px;border-top:1px solid rgba(255,255,255,.16);text-align:center;}.case-quote .qm{font-family:Georgia,serif;font-size:64px;line-height:1;color:var(--orange);opacity:.6;}.case-quote blockquote{font-family:'Archivo',sans-serif;font-size:25px;font-weight:600;line-height:1.5;
    color:#fff;max-width:840px;margin:6px auto 0;letter-spacing:-.01em;}.case-quote .attrib{margin-top:22px;}.case-quote .attrib b{display:block;font-family:'Archivo',sans-serif;font-size:15px;color:#fff;}.case-quote .attrib span{font-size:13px;color:#A2B1BD;}@media(max-width:980px){.case-head{grid-template-columns:1fr;gap:26px;align-items:start;}.case-head h2{font-size:27px;}.case-meta{padding-left:22px;gap:18px 20px;}.case-stages{grid-template-columns:1fr;}.stage{padding:26px 0 0 0 !important;border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:22px !important;}.stage:last-child{border-bottom:0;}.case-quote blockquote{font-size:20px;}
}.rating{text-align:right;}.rating .stars{color:var(--orange);font-size:20px;letter-spacing:3px;}.rating b{font-family:'Archivo',sans-serif;font-size:15px;color:var(--ink);}.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px;}.rev{border:1px solid var(--line);border-radius:var(--rad);padding:28px 26px;background:#fff;display:flex;flex-direction:column;}.rev .stars{color:var(--orange);font-size:15px;letter-spacing:2px;margin-bottom:14px;}.rev p{font-size:14.5px;line-height:1.7;flex:1;}.rev .who{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);}.rev .av{width:42px;height:42px;border-radius:50%;border:2px dashed var(--orange);background:#FFF4EE;flex:none;}.rev .who b{display:block;font-family:'Archivo',sans-serif;font-size:14px;color:var(--ink);}.rev .who span{font-size:12.5px;color:#8A949E;}.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;}.ind{background:#fff;border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column;}.ind-photo{width:100%;height:190px;object-fit:cover;display:block;}.ind .c{padding:24px;display:flex;flex-direction:column;flex:1;}.ind h3{font-size:19px;margin-bottom:8px;}.ind p{font-size:14.5px;line-height:1.65;flex:1;}.ind .more{display:inline-block;margin-top:14px;font-family:'Archivo',sans-serif;font-weight:600;font-size:13.5px;color:var(--orange-deep);}.area-band{position:relative;z-index:2;padding:96px 56px 132px;text-align:center;overflow:hidden;background-image:url("");background-size:cover;background-position:center 55%;}.area-band::after{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(100deg,rgba(22,35,46,.86) 0%,rgba(22,35,46,.74) 48%,rgba(22,35,46,.88) 100%);}.area-band .inner{position:relative;z-index:3;max-width:900px;margin:0 auto;}.area-band h2{color:#fff;font-size:42px;margin-bottom:18px;}.area-band p{color:#D3DCE3;font-size:17px;max-width:760px;margin:0 auto;}.pills{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:32px;}.pills a{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.08);color:#fff;
    font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;padding:13px 22px;border-radius:6px;}.pills a:hover{background:var(--orange);border-color:var(--orange);}.why-card{display:grid;grid-template-columns:.82fr 1.18fr;background:#fff;border-radius:26px;
    box-shadow:0 24px 60px rgba(27,42,54,.14);overflow:hidden;margin-top:44px;}.why-left{background:var(--slate);padding:60px 44px;display:flex;flex-direction:column;justify-content:center;}.why-left h3{color:#fff;font-size:42px;font-weight:700;line-height:1.05;letter-spacing:-.03em;}.why-left p{color:#A9BAC6;font-size:15px;margin-top:20px;max-width:250px;}.why-left .lic{color:#8199AB;font-size:12.5px;letter-spacing:.06em;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);}.why-right{padding:52px 44px 52px 0;display:flex;flex-direction:column;gap:34px;}.wrow{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;}.wnum{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-family:'Archivo',sans-serif;font-size:23px;font-weight:700;color:#fff;flex:none;
    margin-left:-31px;box-shadow:0 0 0 9px #fff;}.wnum.a{background:var(--slate);}.wnum.b{background:#63798B;}.wnum.c{background:var(--orange);}.wrow h4{font-size:17px;font-weight:600;margin-bottom:3px;}.wrow p{font-size:13.5px;line-height:1.6;color:#7A8792;}.why-close{margin-top:44px;text-align:center;}.why-close p{font-size:17px;max-width:720px;margin:0 auto;}.aud{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:22px;}.aud span{border:1px solid var(--line);background:#fff;border-radius:100px;padding:7px 15px;font-size:13px;color:var(--ink);}.rev blockquote{font-family:'Archivo',sans-serif;font-size:17.5px;font-weight:600;line-height:1.55;color:var(--ink);
    flex:1;letter-spacing:-.01em;}.rev .cat{font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:14px;}.rev .clogo{border:2px dashed var(--orange);border-radius:8px;height:52px;display:flex;align-items:center;justify-content:center;
    font-size:10.5px;color:#9A857A;background:#FBF7F4;margin-bottom:18px;}.faq{margin:44px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 30px;align-items:start;}.faq .col{display:flex;flex-direction:column;}.faq details{background:#EDF0F3;border:1px solid transparent;border-radius:100px;margin-bottom:14px;transition:.18s;}.faq details[open]{background:#fff;border-color:#DCE3EA;border-radius:22px;box-shadow:0 10px 30px rgba(27,42,54,.09);}.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:15px 14px 15px 22px;}.faq summary::-webkit-details-marker{display:none;}.faq .qn{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;color:#98A4AE;flex:none;width:14px;}.faq h3{font-size:16px;font-weight:600;flex:1;letter-spacing:-.01em;line-height:1.35;}.faq .tog{flex:none;width:36px;height:36px;border-radius:50%;background:var(--slate);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:400;line-height:1;}.faq details[open] .tog{background:#EDF0F3;color:var(--slate);font-size:15px;}.faq .ans{padding:0 40px 22px 52px;}.faq .ans p{font-size:14.5px;line-height:1.75;}.faq-foot{text-align:center;margin-top:34px;font-size:14.5px;}.faq-foot a{font-family:'Archivo',sans-serif;font-weight:600;color:var(--ink);border-bottom:2px solid var(--orange);padding-bottom:2px;margin-left:6px;}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px;}.step{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);border-radius:var(--rad);padding:26px 22px;}.step .n{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;margin-bottom:16px;}.step h3{font-size:18px;margin-bottom:8px;}.step p{font-size:14px;line-height:1.65;color:#B7C4CE;}.cta{background:linear-gradient(100deg,var(--slate-deep) 0%,var(--slate-panel) 100%);color:#BCC8D2;text-align:center;}.cta h2{color:#fff;margin-bottom:12px;}.cta p{max-width:560px;margin:0 auto 28px;}.cta .row-btn{justify-content:center;}footer.base{background:#101B24;color:#8494A0;padding:56px 56px 30px;}.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;}footer h4{color:#fff;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;}footer ul{list-style:none;font-size:14px;line-height:2;}footer a{color:#A2B1BD;}.f-bot{margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;}@media(max-width:980px){section{padding:60px 24px;}.hero-inner{padding:52px 24px;}h1{font-size:34px;}h2{font-size:27px;}nav ul{display:none;}.svc-grid,.ind-grid,.rev-grid,.faq{grid-template-columns:1fr;}.flip{height:440px;}.area-band{padding:60px 24px;}.area-band h2{font-size:28px;}.brand-head{grid-template-columns:1fr;gap:16px;}.logo-track{gap:58px;}.logo-track img{height:88px;}.map-wrap,.story,.about{grid-template-columns:1fr;gap:28px;}.why-card{grid-template-columns:1fr;}.why-left{padding:40px 26px;}.why-left h3{font-size:30px;}.why-right{padding:34px 24px 40px;}.wnum{margin-left:0;width:52px;height:52px;font-size:19px;box-shadow:none;}.f-grid{grid-template-columns:1fr 1fr;}.hero-img{min-height:auto;}
}section.slant{margin:-46px 0;padding-top:132px;padding-bottom:132px;}section.slant-l{transform:skewY(-2.2deg);}section.slant-r{transform:skewY(2.2deg);}section.slant-l > *{transform:skewY(2.2deg);}section.slant-r > *{transform:skewY(-2.2deg);}.seg{clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 26px),0 100%);padding-bottom:26px;}.cred-band{clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 46px),0 100%);}.rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1);}.rv.in{opacity:1;transform:none;}section.slant-l > .rv{transform:skewY(2.2deg) translateY(26px);}section.slant-r > .rv{transform:skewY(-2.2deg) translateY(26px);}section.slant-l > .rv.in{transform:skewY(2.2deg);}section.slant-r > .rv.in{transform:skewY(-2.2deg);}.rv-d1{transition-delay:.09s;}.rv-d2{transition-delay:.18s;}@media(prefers-reduced-motion:reduce){.rv{opacity:1 !important;transform:none !important;}section.slant-l > .rv.in,section.slant-r > .rv.in{transform:none !important;}
}.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;white-space:nowrap;
    padding:15px 26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:.15s;}.banner{padding:0;position:relative;}.banner-img{position:relative;min-height:320px;display:flex;align-items:center;
    background:repeating-linear-gradient(45deg,#2F4557,#2F4557 10px,#354D60 10px,#354D60 20px);}.banner-img::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,35,46,.93) 0%,rgba(22,35,46,.78) 50%,rgba(22,35,46,.4) 100%);}.banner-inner{position:relative;z-index:4;padding:56px;max-width:760px;}.banner h1{color:#fff;margin-bottom:14px;}.banner p{color:#C9D4DD;font-size:17px;max-width:560px;}.crumbs{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#8FA3B4;margin-bottom:16px;font-family:'Archivo',sans-serif;font-weight:600;}.crumbs span{color:#FF8347;}.banner-tag{position:absolute;right:26px;bottom:22px;z-index:3;background:rgba(240,78,35,.94);color:#fff;font:600 11px/1.5 'Inter',sans-serif;padding:9px 14px;border-radius:6px;max-width:280px;text-align:right;}.vhero{position:relative;min-height:540px;display:flex;align-items:center;justify-content:center;text-align:center;
    background:repeating-linear-gradient(45deg,#2F4557,#2F4557 10px,#354D60 10px,#354D60 20px);
    clip-path:polygon(0 0,100% 0,100% calc(100% - 66px),50% 100%,0 calc(100% - 66px));}.vhero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,35,46,.72) 0%,rgba(22,35,46,.6) 45%,rgba(22,35,46,.86) 100%);}.vhero .inner{position:relative;z-index:4;padding:78px 56px 118px;max-width:820px;}.vhero .crumbs{color:#9DB0BE;margin-bottom:22px;}.vhero h1{color:#fff;font-size:50px;line-height:1.1;margin-bottom:16px;}.vhero .sub{color:#D2DCE4;font-size:17px;font-style:italic;font-family:'Archivo',sans-serif;font-weight:500;
    letter-spacing:.01em;margin-bottom:30px;}.vhero .badge{width:74px;height:74px;border-radius:50%;border:2px solid rgba(255,255,255,.5);
    display:flex;align-items:center;justify-content:center;margin:0 auto 26px;}.vhero-tag{position:absolute;right:22px;top:22px;z-index:5;background:rgba(240,78,35,.94);color:#fff;
    font:600 11px/1.5 'Inter',sans-serif;padding:9px 14px;border-radius:6px;max-width:280px;text-align:right;}.intro{text-align:center;padding-top:44px;}.vrule{width:2px;height:66px;background:var(--slate);margin:0 auto 26px;opacity:.75;}.intro-body{max-width:800px;margin:32px auto 0;}.intro-body p{font-size:16.5px;line-height:1.85;}.rule{width:78px;height:2px;background:var(--orange);margin:20px auto 0;opacity:.85;}.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:52px;margin-top:56px;}.app{text-align:center;}.app .ic{width:74px;height:74px;border-radius:50%;background:#FFF0EA;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}.app h3{font-size:19px;margin-bottom:10px;letter-spacing:.02em;text-transform:uppercase;font-size:16px;}.app p{font-size:14.5px;line-height:1.75;max-width:300px;margin:0 auto;}.seg div{padding:22px 18px;text-align:center;font-family:'Archivo',sans-serif;font-weight:600;
    font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;color:#fff;}.seg .s1{background:var(--slate);}.seg .s2{background:#63798B;}.seg .s3{background:var(--orange);}.quote-sec{text-align:center;}.qmark{font-family:Georgia,serif;font-size:76px;line-height:1;color:var(--orange);opacity:.55;}.quote-sec blockquote{font-family:'Archivo',sans-serif;font-size:23px;font-weight:600;line-height:1.55;
    color:var(--ink);max-width:760px;margin:8px auto 0;letter-spacing:-.01em;}.qwho{font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.16em;
    text-transform:uppercase;color:var(--orange-deep);margin-top:24px;}.qav{width:82px;height:82px;border-radius:50%;border:2px dashed var(--orange);background:#FFF4EE;
    margin:20px auto 0;display:flex;align-items:center;justify-content:center;font-size:10.5px;color:#9A857A;text-align:center;line-height:1.25;padding:8px;}.cred-band .cap{text-align:center;font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;color:#8FA3B4;margin-bottom:26px;}.cred-row{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}.cred-row div{text-align:center;}.cred-row b{display:block;font-family:'Archivo',sans-serif;font-size:20px;color:#fff;margin-bottom:5px;letter-spacing:-.01em;}.cred-row span{font-size:13px;color:#A9BAC6;line-height:1.5;display:block;}.owner{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;}.photo-pair{position:relative;}.photo-pair .small{position:absolute;right:-30px;bottom:-30px;width:48%;min-height:168px;border-radius:12px;
    box-shadow:0 16px 34px rgba(27,42,54,.2);outline:7px solid #fff;}.sig{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);}.sig b{display:block;font-family:'Archivo',sans-serif;font-size:16px;color:var(--ink);}.sig span{font-size:13.5px;}.stat-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:26px;padding-top:24px;border-top:1px solid var(--line);}.tl{position:relative;margin-top:56px;padding-bottom:56px;}.tl::before{content:'';position:absolute;left:50%;top:0;bottom:34px;width:2px;margin-left:-1px;
    background:rgba(255,255,255,.28);}.tl::after{content:'';position:absolute;left:50%;bottom:6px;margin-left:-9px;
    width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;
    border-top:14px solid rgba(255,255,255,.45);}.tli{display:grid;grid-template-columns:1fr 104px 1fr;align-items:flex-start;margin-bottom:34px;}.tli .cell{padding:0 40px;}.tli.l .cell{grid-column:1;grid-row:1;text-align:right;padding-right:122px;}.tli.r .cell{grid-column:3;grid-row:1;text-align:left;padding-left:122px;}.tli .mid{grid-column:2;grid-row:1;position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:54px;}.ring{width:46px;height:46px;border-radius:50%;border:4px solid var(--c);background:var(--slate);
    display:flex;align-items:center;justify-content:center;z-index:3;flex:none;}.ring i{width:20px;height:20px;border-radius:50%;background:var(--c);display:block;}.conn{position:absolute;top:76px;height:3px;background:var(--c);width:88px;z-index:2;}.tli.l .conn{right:calc(50% + 18px);}.tli.r .conn{left:calc(50% + 18px);}.conn::after{content:'';position:absolute;top:-7.5px;width:18px;height:18px;border-radius:50%;background:var(--c);}.tli.l .conn::after{left:-9px;}.tli.r .conn::after{right:-9px;}.tli .num{font-family:'Archivo',sans-serif;font-size:46px;font-weight:700;line-height:1;color:var(--c);letter-spacing:-.03em;margin-bottom:12px;}.tli .chip{display:inline-block;background:var(--c);color:var(--slate);font-family:'Archivo',sans-serif;
    font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;padding:9px 18px;border-radius:4px;margin-bottom:14px;}.tli p{font-size:14.5px;line-height:1.75;color:#B7C4CE;max-width:340px;}.tli.l p{margin-left:auto;}.tli .ico{margin-bottom:14px;opacity:.85;}.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;}.val{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:32px 28px;}.val .ic{width:52px;height:52px;border-radius:12px;background:#FFF0EA;display:flex;align-items:center;justify-content:center;margin-bottom:20px;}.val h3{font-size:19px;margin-bottom:9px;}.val p{font-size:14.5px;line-height:1.7;}.cred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
    border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:44px;}.cred{background:#fff;padding:30px 24px;text-align:center;}.cred b{display:block;font-family:'Archivo',sans-serif;font-size:17px;color:var(--ink);margin-bottom:6px;}.cred span{font-size:13.5px;line-height:1.6;display:block;}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px;}.mem .ph-img{min-height:230px;margin-bottom:16px;}.mem b{display:block;font-family:'Archivo',sans-serif;font-size:16px;color:var(--ink);}.mem span{font-size:13.5px;}.wc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;}.wc{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--rad);
    padding:34px 30px 30px;overflow:hidden;transition:.18s;}.wc:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(27,42,54,.13);}.wc .ghost{position:absolute;right:14px;top:2px;font-family:'Archivo',sans-serif;font-size:76px;font-weight:700;
    line-height:1;color:var(--ink);opacity:.06;letter-spacing:-.04em;}.wc .bar{width:38px;height:3px;background:var(--orange);border-radius:2px;margin-bottom:18px;}.wc h3{font-size:18px;margin-bottom:9px;position:relative;}.wc p{font-size:14.5px;line-height:1.7;position:relative;}.area-map{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    display:grid;grid-template-columns:repeat(5,256px);grid-auto-rows:256px;filter:grayscale(.55) contrast(.95);z-index:1;}.area-map img{display:block;width:256px;height:256px;}@media(max-width:980px){.topbar,header.nav,footer.base,.notes{padding-left:24px;padding-right:24px;}.banner-inner{padding:44px 24px;}.owner{grid-template-columns:1fr;gap:28px;}section.slant{margin:-26px 0;padding-top:86px;padding-bottom:86px;}section.slant-l,section.slant-r{transform:skewY(-1.4deg);}section.slant-l > *,section.slant-r > *{transform:skewY(1.4deg);}.seg{clip-path:none;padding-bottom:0;}.cred-band{clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 26px),0 100%);}.tl::before{left:22px;}.tl::after{left:22px;}.tli{grid-template-columns:44px 1fr;margin-bottom:30px;}.tli .cell,.tli.l .cell,.tli.r .cell{grid-column:2;grid-row:1;text-align:left;padding:0 0 0 26px;}.tli .mid{grid-column:1;grid-row:1;justify-content:flex-start;padding-top:44px;}.tli .conn{display:none;}.tli.l p{margin-left:0;}.tli .num{font-size:34px;}.app-grid{grid-template-columns:1fr;gap:38px;}.vhero{min-height:auto;clip-path:polygon(0 0,100% 0,100% calc(100% - 34px),50% 100%,0 calc(100% - 34px));}.vhero .inner{padding:52px 24px 74px;}.vhero h1{font-size:31px;}.intro-body p{font-size:15.5px;}.cred-row{grid-template-columns:1fr 1fr;gap:22px;}.quote-sec blockquote{font-size:19px;}.team-grid{grid-template-columns:1fr 1fr;}.photo-pair .small{position:static;width:60%;margin-top:16px;outline:0;}.wc-grid{grid-template-columns:1fr;}.banner-img{min-height:auto;}
}.c-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;}.c-item{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);}.c-item:first-of-type{padding-top:0;}.c-item .ic{width:52px;height:52px;border-radius:12px;background:#FFF0EA;display:flex;align-items:center;justify-content:center;}.c-item h4{margin-bottom:3px;}.c-item .big{font-family:'Archivo',sans-serif;font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:block;}.c-item p{font-size:14px;line-height:1.6;}.lic-note{margin-top:22px;font-size:13px;letter-spacing:.05em;color:#8A949E;}.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:38px 36px;box-shadow:0 22px 50px rgba(27,42,54,.1);}.form-card h3{margin-bottom:6px;}.form-card .sub{font-size:14px;margin-bottom:24px;}.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.fld{border:1px solid var(--line);border-radius:9px;padding:14px 15px;font-size:14px;color:#98A2AC;background:#FBFCFD;margin-bottom:14px;}.fld.tall{padding-bottom:56px;}.fld-lab{font-family:'Archivo',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:7px;display:block;}.form-note{font-size:12.5px;color:#8A949E;margin-top:14px;text-align:center;}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;}.route{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:30px 28px;display:flex;flex-direction:column;}.route .tag{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:12px;}.route h3{font-size:19px;margin-bottom:8px;}.route p{font-size:14.5px;line-height:1.7;flex:1;}.route .go{margin-top:18px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14px;color:var(--ink);border-bottom:2px solid var(--orange);align-self:flex-start;padding-bottom:2px;}@media(max-width:980px){.c-split{grid-template-columns:1fr;gap:34px;}.form-card{padding:28px 22px;}.fld-row{grid-template-columns:1fr;gap:0;}.route-grid,.steps{grid-template-columns:1fr;}
}

/* ==================== 10-bridge.css ==================== */
/* ============================================================================
   10-bridge.css — mockup <-> WordPress + Elementor reconciliation.
   Every rule here exists because something in WordPress, Hello Elementor or
   Elementor collides with something the mockups assume.
   ========================================================================== */

/* -- 1. WORDPRESS BODY CLASSES. The mockups' `.page` wrapper rule was dropped at merge
   time (WordPress puts class="page" on <body>; on the roofing build that rule killed
   scrolling sitewide). Belt to those braces: whatever happens, the body scrolls. */
body { overflow: visible !important; width: auto !important; max-width: none !important; box-shadow: none !important; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* -- 2. THE GLOBAL RESET. The mockups ship `*{margin:0;padding:0}` because every block
   in them is spaced explicitly. Editor prose needs its spacing back. */
.elementor-widget-text-editor p + p,
.tst-prose .elementor-widget-text-editor p + p { margin-top: 1.1em; }
.elementor-widget-text-editor ul, .elementor-widget-text-editor ol,
.tst-article ul, .tst-article ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.elementor-widget-text-editor li, .tst-article li { margin: 0 0 .4em; }

/* -- 3. THE PAGE WRAPPER: the footer stays at the bottom of a short page. */
.tst-page { min-height: 100vh; display: flex; flex-direction: column; background: #fff; }
#main { flex: 1 0 auto; }
.admin-bar .tst-page { min-height: calc(100vh - 32px); }

/* -- 4. MOCKUP SECTIONS vs ELEMENTOR SECTIONS. The mockup's `section{padding:88px 56px}`
   now lands on every Elementor section that was a band, which is right, and on every
   INNER section (card grids, nested wrappers), which is wrong. */
.elementor-section.elementor-inner-section.tst-sec { padding: 0; position: static; margin: 0; }
/* Reveal animation is gated on JS so a crawler or a no-JS visitor sees everything. */
html:not(.tst-js) .rv { opacity: 1; transform: none; }
/* .rv landed on wrappers that are now Elementor nodes; the reveal class survives on the
   node (the prefixer passes it through) but the mockup's rule is on `.rv` itself. */
.tst-sec.rv, .tst-col.rv { transition: opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1); }

/* -- 5. LINKS. The mockup's global `a{color:inherit}` is right for chrome and cards but
   wrong for prose, where a link has to look like one. */
.tst-article a, .tst-prose .elementor-widget-text-editor a,
.elementor-widget-text-editor a:not(.btn):not(.elementor-button) { color: var(--orange-deep); text-decoration: underline; text-underline-offset: 2px; }
.tst-article a:hover, .tst-prose .elementor-widget-text-editor a:hover { color: var(--orange); }
.dark .elementor-widget-text-editor a:not(.btn), .cta .elementor-widget-text-editor a:not(.btn) { color: #FF8347; }

/* -- 6. CONTRAST, measured not eyeballed. `--body #5A6672` on white is 5.4:1 (passes);
   on `--wash #F4F6F8` 4.95:1 (passes). `.eyebrow` `--orange-deep #C93C15` on white
   5.1:1 (passes). The dark-band accent `#FF8347` on `--slate #253746` is 5.3:1 (passes).
   The hero eyebrow `#FF9D63` on the hero scrim (~#16232E) is 7.9:1. The `.rev .who span`
   `#8A949E` on white is 3.2:1 and FAILS for small text; darkened to #6B7580 (4.9:1). */
.rev .who span, .who span, .about-photo .cap, .form-note, .lic-note { color: #6B7580; }
.wrow p { color: #5F6C78; }           /* was #7A8792 at 3.9:1 */
.faq .qn { color: #6B7580; }          /* was #98A4AE at 2.6:1 */
.hero-trust div { color: #B4C1CC; }   /* was #A2B1BD at 5.9:1 on the scrim, fine; lifted for the lighter right edge */

/* -- 7. FOCUS. Nothing in the mockups has a focus state. */
.tst-page a:focus-visible, .tst-page button:focus-visible, .tst-page input:focus-visible,
.tst-page select:focus-visible, .tst-page textarea:focus-visible, .tst-page [tabindex]:focus-visible,
.tst-page summary:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; border-radius: 4px; }

/* -- 8. BUTTONS ARE REAL ANCHORS HERE. The mockup's .btn is a <span>. Restate colours so
   inherited link colour never wins. */
a.btn-orange, a.btn-orange:hover { color: #fff; }
a.btn-slate { color: #fff; }
a.btn-ghost { color: #fff; }
a.btn-outline { color: var(--ink); }
a.btn-outline:hover { border-color: var(--slate); }
a.btn-slate:hover { background: var(--slate-deep); }
a.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }

/* -- 9. PRINT. */
@media print {
  .tst-topbar, .tst-nav, .tst-nav-toggle, .tst-foot, .tst-callbar, .logo-band { display: none !important; }
  .tst-page { min-height: 0; }
}

/* -- 10. THE SKIP LINK (WCAG 2.4.1). Clipped until focused, never deleted. */
.tst-skip { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.tst-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; margin: 0; padding: 12px 20px; clip: auto; clip-path: none; background: var(--orange); color: #fff; border-radius: 6px; font-family: 'Archivo', sans-serif; font-weight: 600; }

/* -- 11. HEADING ALIASES. The mockups use <h4> for card titles under an <h2>, which is a
   heading skip (spec 5.4). The bands emit <h3 class="h4"> and this keeps the look. */
h3.h4 { font-size: 16px; font-weight: 600; }
.c-item h3.h4 { margin-bottom: 3px; }
.wrow h3.h4, .wrow h4 { font-size: 17px; font-weight: 600; margin-bottom: 3px; }
.role-line { margin-top: 8px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; font-family: 'Archivo', sans-serif; font-weight: 600; color: var(--orange-deep); }

/* -- 12. STRIP LINKS, SEG LINKS: anchors where the mockup had text. */
.strip a { color: inherit; } .strip a:hover { color: #fff; }
.seg a { display: block; padding: 22px 18px; text-align: center; font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 13.5px; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.seg a:hover { filter: brightness(1.08); }
.pills span { border: 1px solid rgba(255,255,255,.3); color: #D3DCE3; font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 14.5px; padding: 13px 22px; border-radius: 6px; }
.face.back a.more { display: inline-block; }
.ind a.more:hover, .face.back a.more:hover { text-decoration: underline; }
.crumbs a { color: inherit; } .crumbs a:hover { color: #fff; }
.c-item a.big:hover { color: var(--orange-deep); }

/* -- 13. THE AREA BAND GROUND. The home mockup paints it as a CSS background; here it is
   a real <img> so it carries alt text and resolves through the media library. */
.area-band, .hero, .vhero { position: relative; overflow: hidden; }
.tst-sec img.band-bg, .elementor-widget-image img.band-bg, img.band-bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 45%; z-index: 0; margin: 0; }
.hero img.band-bg { object-position: center 42%; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(22,35,46,.95) 0%, rgba(22,35,46,.86) 46%, rgba(22,35,46,.45) 100%); }
.hero { min-height: 520px; display: flex; align-items: center; background: var(--slate-panel); padding: 0; }
.vhero::after { z-index: 1; }
.area-band::after { z-index: 1; }
/* the content column (.hero-inner / .inner) carries its own position:relative + z-index from
   the mockup; the CONTAINER must stay static, or the ground image inside it is lifted above
   the ::after scrim (a z-indexed container is a stacking context that holds the image). */
.hero-inner { padding: 70px 0; }
.hero-eyebrow { color: #FF9D63; }
.vhero .inner { padding: 66px 0 106px; }
@media (max-width: 980px) { .hero-inner { padding: 52px 0; } .vhero .inner { padding: 46px 0 66px; } }

/* -- 14. THE OWNER BAND WITH NO HEADSHOT (real-only slot, spec 9.3). */
.owner.no-photo { grid-template-columns: 1fr; max-width: 860px; }
.map-wrap.no-photo, .about.no-photo { grid-template-columns: 1fr; }
.photo-pair img.owner-photo { width: 100%; display: block; border-radius: 16px; box-shadow: 0 18px 44px rgba(27,42,54,.18); }
.photo-pair img.small { width: 48%; height: auto; }

/* -- 15. THE MOBILE TAP-TO-CALL BAR, from the mockups' own notes. */
.tst-callbar { display: none; }
@media (max-width: 767px) {
  .tst-callbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--orange); color: #fff; text-align: center; font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 15px; padding: 14px 16px; box-shadow: 0 -8px 24px rgba(0,0,0,.18); }
  .tst-page { padding-bottom: 52px; }
}

/* -- 16. THE SPOTLIGHT BAND: two splits with a rule between them. */
.tst-band-split.spot-2 { padding-top: 48px; border-top: 1px solid var(--line); margin-top: 0; }
.tst-band-split.spot-2.wash { border-top-color: var(--line); }
.map-wrap.flip-cols { grid-template-columns: 1fr 1.35fr; }
.spot-photo img, .map-photo img { width: 100%; height: auto; display: block; border-radius: 16px; }

/* -- 17. IMAGES INSIDE HTML WIDGETS. Elementor's `.elementor img{height:auto}` is (0,1,1)
   and beats every single-class mockup rule, so the fixed-height photos restate their
   height at (0,2,1). band-bg is the ground image widget. */
.elementor img.svc-photo { height: 196px; }
.elementor img.ind-photo { height: 190px; }
.elementor img.band-bg, .tst-sec .elementor-widget.tst-w-band-bg > img { height: 100%; width: 100%; max-width: none; }
.elementor .logo-track img { height: 132px; width: auto; }
@media (max-width: 980px) { .elementor .logo-track img { height: 88px; } }
.elementor .photo-pair img.small { width: 48%; }

/* ==================== 20-nav.css ==================== */
/* ============================================================================
   20-nav.css — header, dropdowns, mobile drawer, footer menus.
   The mockups draw the nav as a flat <li> list with no dropdown and no mobile
   state. Everything below is the part a real site needs.
   ========================================================================== */
.tst-topbar a { color: inherit; } .tst-topbar a:hover b { color: #FF8347; }
.tst-nav { gap: 20px; }
.tst-logo img { height: 58px; width: auto; max-width: 230px; display: block; }
.tst-logo .lt { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 18px; color: var(--ink); }
.tst-menu { flex: 1 1 auto; display: flex; justify-content: center; }
.tst-menu-list { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; font-size: 14px; font-weight: 500; color: var(--ink); }
.tst-menu-list li { position: relative; white-space: nowrap; }
.tst-menu-list a { color: inherit; display: inline-block; padding: 6px 0; }
.tst-menu-list a:hover { color: var(--orange-deep); }
.tst-menu-list .current-menu-item > a, .tst-menu-list .current-page-ancestor > a, .tst-menu-list .current-menu-parent > a { color: var(--orange-deep); }
.tst-nav-cta { flex-shrink: 0; }

/* dropdowns: hidden until hover/focus, links always in the DOM */
.tst-menu-list .sub-menu {
  position: absolute; top: 100%; left: -18px; z-index: 70; display: block; min-width: 250px; margin: 0; padding: 10px 0;
  list-style: none; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--orange); border-radius: 0 0 10px 10px;
  box-shadow: 0 18px 36px rgba(27,42,54,.16); font-size: 14px;
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .14s ease, transform .14s ease, visibility .14s;
}
.tst-menu-list li:hover > .sub-menu, .tst-menu-list li:focus-within > .sub-menu, .tst-menu-list li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.tst-menu-list .sub-menu li { white-space: normal; }
.tst-menu-list .sub-menu a { display: block; padding: 9px 20px; color: var(--ink); font-weight: 500; }
.tst-menu-list .sub-menu a:hover { background: var(--wash); color: var(--orange-deep); }
.tst-menu-list .sub-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px 10px; }
.tst-menu-list .sub-toggle::before { content: ""; display: block; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px,-2px); }
.tst-menu-list li.is-open > .sub-toggle::before { transform: rotate(-135deg) translate(-2px,-2px); }

/* toggle + drawer. The nav row holds the logo (230px), seven items and the CTA; it
   stops fitting a little under 1180px, and a maximised MacBook is 1176px, so the gate
   is placed where the row is measured to overflow, not at a round number. */
.tst-nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 42px; padding: 0 9px; background: var(--slate); border: 0; border-radius: 8px; cursor: pointer; }
.tst-nav-toggle span { display: block; height: 2px; background: #fff; border-radius: 2px; transition: transform .18s ease, opacity .18s ease; }
.tst-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tst-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tst-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 1199px) {
  .tst-nav-toggle { display: flex; }
  .tst-menu { position: absolute; top: 100%; left: 0; right: 0; z-index: 65; display: none; flex-direction: column; align-items: stretch; padding: 8px 24px 20px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 20px 40px rgba(27,42,54,.14); }
  .tst-nav.is-open .tst-menu { display: flex; }
  .tst-menu-list { flex-direction: column; align-items: stretch; gap: 0; width: 100%; font-size: 16px; }
  .tst-menu-list li { border-bottom: 1px solid var(--line); white-space: normal; display: flex; flex-wrap: wrap; align-items: center; }
  .tst-menu-list > li > a { flex: 1 1 auto; padding: 14px 0; }
  .tst-menu-list .sub-toggle { display: block; }
  .tst-menu-list .sub-menu { position: static; display: none; min-width: 0; padding: 0 0 8px 14px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; width: 100%; }
  .tst-menu-list li.is-open > .sub-menu { display: block; }
  .tst-menu-list li:hover > .sub-menu:not(.is-open) { display: none; }
  .tst-menu-list li.is-open > .sub-menu { display: block; }
  .tst-menu-list .sub-menu li { border-bottom: 0; }
  .tst-menu-list .sub-menu a { padding: 8px 0; }
}
@media (max-width: 640px) { .tst-nav-cta { display: none; } .tst-logo img { height: 44px; } header.nav { padding: 12px 20px; } }
@media (max-width: 980px) { .topbar { justify-content: center; text-align: center; font-size: 12px; padding: 8px 16px; } .topbar .lic { display: none; } }

/* footer */
.f-h { color: #fff; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 16px; font-weight: 600; }
.f-menu { list-style: none; font-size: 14px; line-height: 2; margin: 0; padding: 0; }
.f-menu a { color: #A2B1BD; } .f-menu a:hover { color: #fff; }
.f-logo { height: 46px; width: auto; display: block; margin-bottom: 16px; }
.f-logo-txt { color: #fff; font-family: 'Archivo', sans-serif; font-size: 18px; display: block; margin-bottom: 16px; }
.f-tag { font-size: 14px; } .f-lic { font-size: 13px; margin-top: 14px; }
.f-bot a { color: #A2B1BD; } .f-bot a:hover { color: #fff; }
@media (max-width: 640px) { .f-grid { grid-template-columns: 1fr; } }

/* ==================== 30-form.css ==================== */
/* ============================================================================
   30-form.css — the MCW lead form, dressed as the contact mockup's .form-card.
   ========================================================================== */
.form-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 38px 36px; box-shadow: 0 22px 50px rgba(27,42,54,.1); }
.form-card h2 { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.form-card .sub { font-size: 14px; margin-bottom: 24px; }
.tst-form .fld-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tst-form .field { margin: 0 0 14px; }
.tst-form label.fld-lab { font-family: 'Archivo', sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 7px; display: block; }
.tst-form input[type="text"], .tst-form input[type="tel"], .tst-form input[type="email"], .tst-form select, .tst-form textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 14px 15px; font: inherit; font-size: 14px; color: var(--ink); background: #FBFCFD;
}
.tst-form ::placeholder { color: #6B7580; }   /* #98A2AC was 2.9:1 */
.tst-form textarea { min-height: 120px; resize: vertical; }
.tst-form select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.tst-form .chk { display: flex; gap: 11px; align-items: flex-start; font-size: 13px; line-height: 1.55; margin: 6px 0 20px; }
.tst-form .chk input { width: 18px; height: 18px; margin-top: 2px; flex: none; accent-color: var(--orange); }
.tst-form .form-consent { font-size: 12.5px; color: #6B7580; margin: 0 0 16px; }
.tst-form .form-consent input { margin-right: 8px; accent-color: var(--orange); }
.tst-form button.btn { width: 100%; justify-content: center; border: 2px solid transparent; }
.form-note { font-size: 12.5px; margin-top: 14px; text-align: center; }
.form-notice { border-left: 3px solid var(--orange); background: #FFF4EE; padding: 14px 16px; border-radius: 0 10px 10px 0; margin-bottom: 18px; font-size: 14px; }
.form-notice strong { display: block; color: var(--ink); margin-bottom: 4px; }
.form-notice-err { border-color: #B3261E; background: #FCEDEB; }
.tst-form .form-req { font-size: 12.5px; color: #6B7580; margin-bottom: 12px; }
@media (max-width: 980px) { .form-card { padding: 28px 22px; } .tst-form .fld-row { grid-template-columns: 1fr; gap: 0; } }

/* ==================== 40-utils.css ==================== */
/* 40-utils.css — the mockups' inline style="" attributes as classes, so the band
   functions can carry them and gen_map can re-point them onto Elementor nodes. */
.mt0{margin-top:0}.mt8{margin-top:8px}.mt10{margin-top:10px}.mt12{margin-top:12px}.mt14{margin-top:14px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}.mt26{margin-top:26px}.mt34{margin-top:34px}
.mb26{margin-bottom:26px}.bb0{border-bottom:0}
.pb52{padding-bottom:52px}.pt40{padding-top:40px}
.mw880{max-width:880px}
.jc{justify-content:center}
.lead-strong{font-weight:600;color:var(--ink)}
.copy{min-width:0}

/* ==================== 50-elementor.css ==================== */
/* ============================================================================
   50-elementor.css — the generic structure of a widgetized band.

   A band is `section.tst-sec > .elementor-container > .elementor-column.tst-col >
   .elementor-widget-wrap > .elementor-widget.tst-w > (h2|p|img|a)`. The mockup's own
   rules describe a plain nested div tree, so this file makes Elementor's tree behave
   like one: the container stacks its columns (block flow), a column takes the full
   width, widget wraps add nothing, and widgets are the leaf they hold.

   Specificity: Elementor's frontend stylesheet loads AFTER tst.css and sits at
   (0,2,0) for `.elementor-section .elementor-container`, so structure rules here are
   (0,3,0) or better.
   ========================================================================== */

/* the container is the band's content box: measured 1128px, which is the mockups'
   1240px page minus two 56px gutters. Section padding comes from the mockup's own
   `section{padding:88px 56px}` and already supplies the gutter. */
.elementor-section.tst-sec > .elementor-container {
  display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap;
  max-width: 1128px; width: 100%; margin: 0 auto; position: static;
}
.elementor-section.elementor-inner-section.tst-sec > .elementor-container { max-width: none; }
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col { width: 100%; flex: 0 0 auto; min-height: 0; position: relative; }
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col > .elementor-widget-wrap {
  padding: 0; display: flex; flex-direction: column; align-items: stretch; align-content: normal; width: 100%;
}
.tst-sec .elementor-widget.tst-w { width: auto; margin-block-end: 0; position: static; }
.tst-sec .elementor-widget.tst-w > * { box-sizing: border-box; }
.elementor-widget:not(:last-child) { margin-bottom: 0; }

/* the ground column (the band photo) takes no space */
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-ground,
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-ground > .elementor-widget-wrap,
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-ground .tst-w { display: contents; }

/* a grid / row inner section: its container is the grid, its columns are the cells */
.elementor-section.tst-sec.tst-grid > .elementor-container > .elementor-column.tst-col { width: auto; flex: none; }
.elementor-section.tst-sec.tst-grid > .elementor-container > .elementor-column.tst-col > .elementor-widget-wrap { height: 100%; }

/* leaf widgets render the leaf, nothing else */
.tst-sec .elementor-widget.tst-w > p, .tst-sec .elementor-widget.tst-w > h1, .tst-sec .elementor-widget.tst-w > h2,
.tst-sec .elementor-widget.tst-w > h3, .tst-sec .elementor-widget.tst-w > h4 { margin: 0; }
.tst-sec .elementor-widget-heading .elementor-heading-title { line-height: 1.15; letter-spacing: -.02em; font-family: 'Archivo', sans-serif; color: var(--ink); padding: 0; margin: 0; }
.tst-sec .elementor-widget-heading h1.elementor-heading-title { font-size: 52px; font-weight: 700; }
.tst-sec .elementor-widget-heading h2.elementor-heading-title { font-size: 36px; font-weight: 700; }
.tst-sec .elementor-widget-heading h3.elementor-heading-title { font-size: 21px; font-weight: 600; }
.tst-sec .elementor-widget-heading h4.elementor-heading-title { font-size: 16px; font-weight: 600; }
.dark .elementor-widget-heading .elementor-heading-title, .cta .elementor-widget-heading .elementor-heading-title,
.hero .elementor-widget-heading .elementor-heading-title, .vhero .elementor-widget-heading .elementor-heading-title,
.area-band .elementor-widget-heading .elementor-heading-title { color: #fff; }
.tst-sec .elementor-widget-text-editor { font-size: inherit; line-height: inherit; color: inherit; }
.tst-sec .elementor-widget-image { line-height: 0; text-align: inherit; }
.tst-sec .elementor-widget-image img { display: block; width: 100%; height: auto; }
.tst-sec .elementor-widget-image.tst-w > img, .tst-sec .elementor-widget-image.tst-w > a > img { width: 100%; }
.tst-sec .elementor-widget-image.tst-w:not([class*="tst-wrap-"]) { flex: 0 0 auto; }

/* Elementor's button chrome is stripped so the mockup's .btn classes (re-pointed onto
   the anchor by the map) are the only styling. (0,3,0) beats the kit's (0,2,0). */
.tst-sec .elementor-widget-button .elementor-button-wrapper { display: block; }
.tst-sec .elementor-widget.tst-w .elementor-button {
  display: inline-flex; align-items: center; gap: 9px; line-height: normal; background: none; border: 2px solid transparent; border-radius: 8px;
  padding: 15px 26px; color: inherit; font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 14.5px; letter-spacing: normal; text-transform: none; white-space: nowrap; transition: .15s;
}
.tst-sec .elementor-widget.tst-w .elementor-button .elementor-button-content-wrapper { display: inline; }
.tst-sec .elementor-widget.tst-w .elementor-button .elementor-button-text { display: inline; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-orange .elementor-button { background: var(--orange); color: #fff; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-orange .elementor-button:hover { background: var(--orange-deep); color: #fff; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-slate .elementor-button { background: var(--slate); color: #fff; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-slate .elementor-button:hover { background: var(--slate-deep); }
.tst-sec .elementor-widget.tst-w.tst-w-btn-ghost .elementor-button { border-color: rgba(255,255,255,.5); color: #fff; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-ghost .elementor-button:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.tst-sec .elementor-widget.tst-w.tst-w-btn-outline .elementor-button { border-color: var(--line); color: var(--ink); background: #fff; }
.tst-sec .elementor-widget.tst-w.tst-w-btn-outline .elementor-button:hover { border-color: var(--slate); }
/* the button widget wrapper is a flex item; keep it content-sized like the <a> was */
.tst-sec .elementor-widget-button.tst-w { width: auto; align-self: flex-start; }
.center .elementor-widget-button.tst-w, .tst-carry-center .elementor-widget-button.tst-w, .cta .elementor-widget-button.tst-w { align-self: center; }
.tst-grid-row-btn > .elementor-container > .elementor-column.tst-col { width: auto; }

/* text-only spans became a Text Editor whose <p> wraps a <span>; the span rule
   (.eyebrow etc.) is re-pointed by the map at `> *`, i.e. the <p>. Blockify. */
.tst-sec .elementor-widget-text-editor.tst-w > p > span:only-child { display: inline; }

/* the HTML widget is a leaf too */
.tst-sec .elementor-widget-html.tst-w { line-height: inherit; }

/* The dark/CTA/hero bands set a light body colour on the band; Elementor's text widget
   inherits it, the kit's body colour must not override it. */
.dark .elementor-widget-text-editor, .cta .elementor-widget-text-editor, .hero .elementor-widget-text-editor, .vhero .elementor-widget-text-editor, .area-band .elementor-widget-text-editor { color: inherit; }

/* a .center column: centre every widget in it */
.tst-sec > .elementor-container > .elementor-column.tst-col-center > .elementor-widget-wrap { align-items: center; text-align: center; }
.tst-sec > .elementor-container > .elementor-column.tst-col-center .elementor-widget.tst-w { width: 100%; }
.elementor-section.tst-carry-center > .elementor-container { align-items: center; text-align: center; }
.elementor-section.tst-carry-center > .elementor-container .elementor-widget.tst-w { width: 100%; }
.tst-sec .elementor-widget.tst-w-lead > p { max-width: 640px; }
.tst-col-center .elementor-widget.tst-w-lead > p, .tst-carry-center .elementor-widget.tst-w-lead > p { margin-left: auto; margin-right: auto; }

/* The [VERIFY] notice on a draft page: deliberately loud. */
.tst-verify-note { background: #FFF4EE; border-top: 4px solid var(--orange); border-bottom: 1px solid var(--line); }
.tst-verify-note p { max-width: 900px; margin: 0 auto; padding: 22px 56px; font-size: 15px; line-height: 1.6; color: #8A3A08; }
.tst-verify-note strong { color: var(--orange-deep); }

/* a whole band: the mockup markup is intact inside one HTML widget, so the Elementor
   section around it must add no padding or measure of its own */
.elementor-section.tst-sec.tst-whole { padding: 0; }
.elementor-section.tst-sec.tst-whole > .elementor-container { max-width: none; display: block; }
.elementor-section.tst-sec.tst-whole .elementor-widget-html.tst-w { width: 100%; }

/* ==================== 60-elementor-map.css ==================== */
/* GENERATED by gen_map.py from 00-mockup.css + 10-bridge.css + 40-utils.css + class-usage.json. Do not edit. */

.tst-sec .elementor-widget.tst-w-eyebrow > *{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:14px;display:block;}
.tst-sec .elementor-widget.tst-w-lead > *{font-size:17px;max-width:640px;}
.elementor-section.tst-carry-center > .elementor-container{text-align:center}
.elementor-section.tst-grid-center > .elementor-container{text-align:center}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-center > .elementor-widget-wrap{text-align:center}
.elementor-section.tst-carry-center > .elementor-container .tst-sec .elementor-widget.tst-w-lead > *{margin-left:auto;margin-right:auto;}
.elementor-section.tst-grid-center > .elementor-container .tst-sec .elementor-widget.tst-w-lead > *{margin-left:auto;margin-right:auto;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-center .tst-sec .elementor-widget.tst-w-lead > *{margin-left:auto;margin-right:auto;}
.dark .tst-sec .elementor-widget.tst-w-eyebrow > *{color:#FF8347;}
.tst-sec .elementor-widget.tst-w-btn > *{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;white-space:nowrap;
    padding:15px 26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:.15s;}
.tst-sec .elementor-widget.tst-w-btn-orange > *{background:var(--orange);color:#fff;}
.tst-sec .elementor-widget.tst-w-btn-orange:hover > *{background:var(--orange-deep);}
.tst-sec .elementor-widget.tst-w-btn-slate > *{background:var(--slate);color:#fff;}
.tst-sec .elementor-widget.tst-w-btn-ghost > *{border-color:rgba(255,255,255,.5);color:#fff;}
.tst-sec .elementor-widget.tst-w-btn-outline > *{border-color:var(--line);color:var(--ink);background:#fff;}
.elementor-section.tst-carry-row-btn > .elementor-container{display:flex; gap:14px; flex-wrap:wrap; flex-direction: row}
.elementor-section.tst-grid-row-btn > .elementor-container{display:flex; gap:14px; flex-wrap:wrap; flex-direction: row}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-hero-inner{position:relative; z-index:4; max-width:760px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-hero-inner > .elementor-widget-wrap{padding:70px 56px}
.hero .elementor-section.tst-carry-row-btn > .elementor-container{margin-bottom:30px}
.hero .elementor-section.tst-grid-row-btn > .elementor-container{margin-bottom:30px}
.tst-sec .elementor-widget.tst-wrap-about-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 18px 44px rgba(27,42,54,.18);}
.tst-sec .elementor-widget.tst-wrap-about-photo .cap{font-size:12.5px;color:#8A949E;margin-top:12px;letter-spacing:.02em;}
.elementor-section.tst-carry-about > .elementor-container{display:grid; grid-template-columns:1.02fr 1fr; gap:52px; align-items:start}
.tst-sec .elementor-widget.tst-wrap-spot-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 18px 44px rgba(27,42,54,.16);}
.tst-sec .elementor-widget.tst-wrap-map-photo img{width:100%;display:block;border-radius:16px;box-shadow:0 22px 52px rgba(27,42,54,.22);}
.elementor-section.tst-carry-map-wrap > .elementor-container{display:grid; grid-template-columns:1.35fr 1fr; gap:44px; align-items:center}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-head > .elementor-widget-wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:end}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-head p{font-size:16px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-foot{margin-top:26px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-foot > .elementor-widget-wrap{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-foot span{font-size:14px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-foot a{font-family:'Archivo',sans-serif;font-weight:600;font-size:14px;color:var(--orange-deep);}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ai-head > .elementor-widget-wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:end}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ai-head p{font-size:16px;}
.ai-card .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic{width:48px; height:48px; border-radius:12px; background:#FFF0EA; flex:none}
.ai-card .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic > .elementor-widget-wrap{display:flex; align-items:center; justify-content:center}
.ai-close .elementor-section.tst-carry-row-btn > .elementor-container{justify-content:flex-end}
.ai-close .elementor-section.tst-grid-row-btn > .elementor-container{justify-content:flex-end}
@media(max-width:980px){
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ai-head > .elementor-widget-wrap{grid-template-columns:1fr; gap:18px; align-items:start}
  .ai-close .elementor-section.tst-carry-row-btn > .elementor-container{justify-content:flex-start}
  .ai-close .elementor-section.tst-grid-row-btn > .elementor-container{justify-content:flex-start}
}
.elementor-section.tst-carry-rating > .elementor-container{text-align:right}
.elementor-section.tst-carry-rating > .elementor-container .tst-sec .elementor-widget.tst-w-stars > *{color:var(--orange);font-size:20px;letter-spacing:3px;}
.elementor-section.tst-carry-rating > .elementor-container b{font-family:'Archivo',sans-serif;font-size:15px;color:var(--ink);}
.elementor-section.tst-grid-rev-grid > .elementor-container{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:38px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev{border:1px solid var(--line); border-radius:var(--rad); background:#fff}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev > .elementor-widget-wrap{padding:28px 26px; display:flex; flex-direction:column}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .tst-sec .elementor-widget.tst-w-stars > *{color:var(--orange);font-size:15px;letter-spacing:2px;margin-bottom:14px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev p{font-size:14.5px;line-height:1.7;flex:1;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .who{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .av{width:42px;height:42px;border-radius:50%;border:2px dashed var(--orange);background:#FFF4EE;flex:none;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .who b{display:block;font-family:'Archivo',sans-serif;font-size:14px;color:var(--ink);}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .who span{font-size:12.5px;color:#8A949E;}
.elementor-section.tst-grid-ind-grid > .elementor-container{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind{background:#fff; border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind > .elementor-widget-wrap{display:flex; flex-direction:column}
.tst-sec .elementor-widget.tst-w-ind-photo > *{width:100%;height:190px;object-fit:cover;display:block;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind .elementor-section.tst-carry-c > .elementor-container{padding:24px; display:flex; flex-direction:column; flex:1}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind h3{font-size:19px;margin-bottom:8px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind p{font-size:14.5px;line-height:1.65;flex:1;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind .more{display:inline-block;margin-top:14px;font-family:'Archivo',sans-serif;font-weight:600;font-size:13.5px;color:var(--orange-deep);}
.area-band .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner{position:relative; z-index:3; max-width:900px; margin:0 auto}
.elementor-section.tst-carry-wnum.tst-carry-c > .elementor-container{background:var(--orange)}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-why-close{margin-top:44px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-why-close > .elementor-widget-wrap{text-align:center}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-why-close p{font-size:17px;max-width:720px;margin:0 auto;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev blockquote{font-family:'Archivo',sans-serif;font-size:17.5px;font-weight:600;line-height:1.55;color:var(--ink);
    flex:1;letter-spacing:-.01em;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .cat{font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:14px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .clogo{border:2px dashed var(--orange);border-radius:8px;height:52px;display:flex;align-items:center;justify-content:center;
    font-size:10.5px;color:#9A857A;background:#FBF7F4;margin-bottom:18px;}
.elementor-section.tst-grid-steps > .elementor-container{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:44px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-step{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.13); border-radius:var(--rad)}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-step > .elementor-widget-wrap{padding:26px 22px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-step .n{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;margin-bottom:16px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-step h3{font-size:18px;margin-bottom:8px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-step p{font-size:14px;line-height:1.65;color:#B7C4CE;}
.cta .elementor-section.tst-carry-row-btn > .elementor-container{justify-content:center}
.cta .elementor-section.tst-grid-row-btn > .elementor-container{justify-content:center}
@media(max-width:980px){
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-hero-inner > .elementor-widget-wrap{padding:52px 24px}
  .elementor-section.tst-grid-ind-grid > .elementor-container{grid-template-columns:1fr}
  .elementor-section.tst-grid-rev-grid > .elementor-container{grid-template-columns:1fr}
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-brand-head > .elementor-widget-wrap{grid-template-columns:1fr; gap:16px}
  .elementor-section.tst-carry-map-wrap > .elementor-container{grid-template-columns:1fr; gap:28px}
  .elementor-section.tst-carry-about > .elementor-container{grid-template-columns:1fr; gap:28px}
}
.tst-sec .elementor-widget.tst-w-btn > *{display:inline-flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;white-space:nowrap;
    padding:15px 26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:.15s;}
.vhero .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner{position:relative; z-index:4; max-width:820px}
.vhero .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner > .elementor-widget-wrap{padding:78px 56px 118px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-intro-body{max-width:800px; margin:32px auto 0}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-intro-body p{font-size:16.5px;line-height:1.85;}
.elementor-section.tst-grid-app-grid > .elementor-container{display:grid; grid-template-columns:repeat(3,1fr); gap:52px; margin-top:56px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-app > .elementor-widget-wrap{text-align:center}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-app .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic{width:74px; height:74px; border-radius:50%; background:#FFF0EA; margin:0 auto 22px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-app .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic > .elementor-widget-wrap{display:flex; align-items:center; justify-content:center}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-app h3{font-size:19px;margin-bottom:10px;letter-spacing:.02em;text-transform:uppercase;font-size:16px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-app p{font-size:14.5px;line-height:1.75;max-width:300px;margin:0 auto;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-owner > .elementor-widget-wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start}
.elementor-section.tst-carry-sig > .elementor-container{margin-top:26px; padding-top:22px; border-top:1px solid var(--line)}
.elementor-section.tst-carry-sig > .elementor-container b{display:block;font-family:'Archivo',sans-serif;font-size:16px;color:var(--ink);}
.elementor-section.tst-carry-sig > .elementor-container span{font-size:13.5px;}
.val .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic{width:52px; height:52px; border-radius:12px; background:#FFF0EA; margin-bottom:20px}
.val .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic > .elementor-widget-wrap{display:flex; align-items:center; justify-content:center}
.elementor-section.tst-grid-wc-grid > .elementor-container{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; transition:.18s}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc > .elementor-widget-wrap{padding:34px 30px 30px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(27,42,54,.13)}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc .ghost{position:absolute;right:14px;top:2px;font-family:'Archivo',sans-serif;font-size:76px;font-weight:700;
    line-height:1;color:var(--ink);opacity:.06;letter-spacing:-.04em;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc .bar{width:38px;height:3px;background:var(--orange);border-radius:2px;margin-bottom:18px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc h3{font-size:18px;margin-bottom:9px;position:relative;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-wc p{font-size:14.5px;line-height:1.7;position:relative;}
@media(max-width:980px){
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-owner > .elementor-widget-wrap{grid-template-columns:1fr; gap:28px}
  .elementor-section.tst-grid-app-grid > .elementor-container{grid-template-columns:1fr; gap:38px}
  .vhero .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner > .elementor-widget-wrap{padding:52px 24px 74px}
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-intro-body p{font-size:15.5px;}
  .elementor-section.tst-grid-wc-grid > .elementor-container{grid-template-columns:1fr}
}
.elementor-section.tst-carry-c-split > .elementor-container{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start}
.elementor-section.tst-grid-c-item > .elementor-container{display:grid; grid-template-columns:52px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid var(--line)}
.elementor-section.tst-grid-c-item:first-of-type > .elementor-container{padding-top:0}
.elementor-section.tst-grid-c-item > .elementor-container .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic{width:52px; height:52px; border-radius:12px; background:#FFF0EA}
.elementor-section.tst-grid-c-item > .elementor-container .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ic > .elementor-widget-wrap{display:flex; align-items:center; justify-content:center}
.elementor-section.tst-grid-c-item > .elementor-container h4{margin-bottom:3px;}
.elementor-section.tst-grid-c-item > .elementor-container .tst-sec .elementor-widget.tst-w-big > *{font-family:'Archivo',sans-serif;font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:block;}
.elementor-section.tst-grid-c-item > .elementor-container p{font-size:14px;line-height:1.6;}
.elementor-section.tst-grid-route-grid > .elementor-container{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route{background:#fff; border:1px solid var(--line); border-radius:var(--rad)}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route > .elementor-widget-wrap{padding:30px 28px; display:flex; flex-direction:column}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route .tag{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:12px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route h3{font-size:19px;margin-bottom:8px;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route p{font-size:14.5px;line-height:1.7;flex:1;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-route .go{margin-top:18px;font-family:'Archivo',sans-serif;font-weight:600;font-size:14px;color:var(--ink);border-bottom:2px solid var(--orange);align-self:flex-start;padding-bottom:2px;}
@media(max-width:980px){
  .elementor-section.tst-carry-c-split > .elementor-container{grid-template-columns:1fr; gap:34px}
  .elementor-section.tst-grid-route-grid > .elementor-container{grid-template-columns:1fr}
  .elementor-section.tst-grid-steps > .elementor-container{grid-template-columns:1fr}
}
.elementor-widget-text-editor .tst-sec .elementor-widget.tst-w-btn.tst-w-elementor-button:not(.btn):not(.elementor-button) > *{color: var(--orange-deep); text-decoration: underline; text-underline-offset: 2px;}
.dark .elementor-widget-text-editor .tst-sec .elementor-widget.tst-w-btn:not(.btn) > *{color: #FF8347;}
.cta .elementor-widget-text-editor .tst-sec .elementor-widget.tst-w-btn:not(.btn) > *{color: #FF8347;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-rev .who span{color: #6B7580;}
.tst-sec .elementor-widget.tst-wrap-about-photo .cap{color: #6B7580;}
.tst-sec .elementor-widget.tst-w-btn-orange > *{color: #fff;}
.tst-sec .elementor-widget.tst-w-btn-orange:hover > *{color: #fff;}
.tst-sec .elementor-widget.tst-w-btn-slate > *{color: #fff;}
.tst-sec .elementor-widget.tst-w-btn-ghost > *{color: #fff;}
.tst-sec .elementor-widget.tst-w-btn-outline > *{color: var(--ink);}
.tst-sec .elementor-widget.tst-w-btn-outline:hover > *{border-color: var(--slate);}
.tst-sec .elementor-widget.tst-w-btn-slate:hover > *{background: var(--slate-deep);}
.tst-sec .elementor-widget.tst-w-btn-ghost:hover > *{border-color: #fff; background: rgba(255,255,255,.08);}
.tst-sec .elementor-widget.tst-w-h4 > *{font-size: 16px; font-weight: 600;}
.elementor-section.tst-grid-c-item > .elementor-container .tst-sec .elementor-widget.tst-w-h4 > *{margin-bottom: 3px;}
.wrow .tst-sec .elementor-widget.tst-w-h4 > *{font-size: 17px; font-weight: 600; margin-bottom: 3px;}
.tst-sec .elementor-widget.tst-w-role-line > *{margin-top: 8px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; font-family: 'Archivo', sans-serif; font-weight: 600; color: var(--orange-deep);}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-ind a.more:hover{text-decoration: underline;}
.elementor-section.tst-grid-c-item > .elementor-container .tst-sec .elementor-widget.tst-w-big:hover > *{color: var(--orange-deep);}
.tst-sec .tst-sec .elementor-widget.tst-w-band-bg > *{position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 45%; z-index: 0; margin: 0;}
.elementor-widget-image .tst-sec .elementor-widget.tst-w-band-bg > *{position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 45%; z-index: 0; margin: 0;}
.tst-sec .elementor-widget.tst-w-band-bg > *{position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 45%; z-index: 0; margin: 0;}
.hero .tst-sec .elementor-widget.tst-w-band-bg > *{object-position: center 42%;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-hero-inner > .elementor-widget-wrap{padding: 70px 0}
.tst-sec .elementor-widget.tst-w-hero-eyebrow > *{color: #FF9D63;}
.vhero .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner > .elementor-widget-wrap{padding: 66px 0 106px}
@media (max-width: 980px){
  .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-hero-inner > .elementor-widget-wrap{padding: 52px 0}
  .vhero .elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-inner > .elementor-widget-wrap{padding: 46px 0 66px}
}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-owner.tst-col-no-photo{max-width: 860px}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-owner.tst-col-no-photo > .elementor-widget-wrap{grid-template-columns: 1fr}
.elementor-section.tst-carry-map-wrap.tst-carry-no-photo > .elementor-container{grid-template-columns: 1fr}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-map-wrap.tst-col-no-photo > .elementor-widget-wrap{grid-template-columns: 1fr}
.elementor-section.tst-carry-about.tst-carry-no-photo > .elementor-container{grid-template-columns: 1fr}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-about.tst-col-no-photo > .elementor-widget-wrap{grid-template-columns: 1fr}
.elementor-section.tst-carry-map-wrap.tst-carry-flip-cols > .elementor-container{grid-template-columns: 1fr 1.35fr}
.tst-sec .elementor-widget.tst-wrap-spot-photo img{width: 100%; height: auto; display: block; border-radius: 16px;}
.tst-sec .elementor-widget.tst-wrap-map-photo img{width: 100%; height: auto; display: block; border-radius: 16px;}
.elementor .tst-sec .elementor-widget.tst-w-ind-photo > *{height: 190px;}
.elementor .tst-sec .elementor-widget.tst-w-band-bg > *{height: 100%; width: 100%; max-width: none;}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-mt0{margin-top:0}
.tst-sec .elementor-widget.tst-w-mt12 > *{margin-top:12px}
.tst-sec .elementor-widget.tst-w-mt14 > *{margin-top:14px}
.tst-sec .elementor-widget.tst-w-mt20 > *{margin-top:20px}
.elementor-section.tst-carry-mt24 > .elementor-container{margin-top:24px}
.elementor-section.tst-grid-mt24 > .elementor-container{margin-top:24px}
.tst-sec .elementor-widget.tst-w-mt26 > *{margin-top:26px}
.elementor-section.tst-carry-mt34 > .elementor-container{margin-top:34px}
.tst-sec .elementor-widget.tst-w-mb26 > *{margin-bottom:26px}
.elementor-section.tst-grid-bb0 > .elementor-container{border-bottom:0}
.tst-sec .elementor-widget.tst-w-mw880 > *{max-width:880px}
.tst-sec .elementor-widget.tst-w-lead-strong > *{font-weight:600;color:var(--ink)}
.elementor-section.tst-sec > .elementor-container > .elementor-column.tst-col-copy{min-width:0}

/* ==================== 65-widgets.css ==================== */
/* ============================================================================
   65-widgets.css — native Elementor Accordion and Testimonial widgets dressed as the
   mockups' FAQ pill rows and review cards.
   ========================================================================== */

/* -- FAQ: the mockup is two columns of numbered pill rows; the open row becomes a
   white card. Elementor's classic accordion is one list, so it is made a two-column
   CSS grid with the same pill look. */
.tst-sec .elementor-widget-accordion.tst-faq-acc { width: 100%; margin-top: 44px; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; align-items: start; counter-reset: faq; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-item { background: #EDF0F3; border: 1px solid transparent; border-radius: 100px; margin-bottom: 14px; transition: .18s; counter-increment: faq; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-item:has(.elementor-tab-content[style*="display: block"]),
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-item:has(.elementor-active) { background: #fff; border-color: #DCE3EA; border-radius: 22px; box-shadow: 0 10px 30px rgba(27,42,54,.09); }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-title { display: flex; align-items: center; gap: 14px; padding: 15px 14px 15px 22px; border: 0; cursor: pointer; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-title::before { content: counter(faq); font-family: 'Archivo', sans-serif; font-size: 12px; font-weight: 600; color: #6B7580; flex: none; width: 14px; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-title .elementor-accordion-title { font-family: 'Archivo', sans-serif; font-size: 16px; font-weight: 600; flex: 1; letter-spacing: -.01em; line-height: 1.35; color: var(--ink); }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-icon { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--slate); color: #fff; display: flex; align-items: center; justify-content: center; order: 3; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-icon span { display: flex; align-items: center; justify-content: center; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-icon i, .tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion-icon svg { color: #fff; fill: #fff; width: 13px; height: 13px; font-size: 13px; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-active .elementor-accordion-icon { background: #EDF0F3; color: var(--slate); }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-active .elementor-accordion-icon i, .tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-active .elementor-accordion-icon svg { color: var(--slate); fill: var(--slate); }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-content { padding: 0 40px 22px 52px; border: 0; font-size: 14.5px; line-height: 1.75; }
.tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-content p + p { margin-top: .8em; }
@media (max-width: 980px) { .tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-accordion { grid-template-columns: 1fr; } .tst-sec .elementor-widget-accordion.tst-faq-acc .elementor-tab-content { padding: 0 22px 20px 50px; } }
.faq-foot a { margin-left: 6px; }

/* -- reviews: three testimonial widgets in a row, each inside a column carrying .rev */
.elementor-section.tst-grid-rev-grid > .elementor-container { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; margin-top: 44px; }
.elementor-section.tst-grid-rev-grid > .elementor-container > .elementor-column.tst-col-rev { border: 1px solid var(--line); border-radius: var(--rad); padding: 32px 30px; background: #fff; }
.elementor-section.tst-grid-rev-grid > .elementor-container > .elementor-column.tst-col-rev > .elementor-widget-wrap { height: 100%; }
.tst-sec .elementor-widget-testimonial.tst-review { width: 100%; height: 100%; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-wrapper { display: flex; flex-direction: column; height: 100%; text-align: left; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-content { font-family: 'Archivo', sans-serif; font-size: 17px; font-weight: 600; line-height: 1.55; color: var(--ink); flex: 1; letter-spacing: -.01em; margin: 0; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-meta { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); width: 100%; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-meta-inner { text-align: left; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-image { display: none; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-name { display: block; font-family: 'Archivo', sans-serif; font-size: 14.5px; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
.tst-sec .elementor-widget-testimonial.tst-review .elementor-testimonial-job { display: block; font-size: 13px; color: #6B7580; }
.dark .elementor-section.tst-grid-rev-grid > .elementor-container > .elementor-column.tst-col-rev { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.13); }
.dark .tst-review .elementor-testimonial-content, .dark .tst-review .elementor-testimonial-name { color: #fff; }
@media (max-width: 980px) { .elementor-section.tst-grid-rev-grid > .elementor-container { grid-template-columns: 1fr; } }
/* no orphan: two reviews sit in two columns */
.elementor-section.tst-grid-rev-grid > .elementor-container:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0,1fr)); }
.elementor-section.tst-grid-rev-grid > .elementor-container:has(> :nth-child(1):last-child) { grid-template-columns: minmax(0, 560px); justify-content: center; }

/* ==================== 70-prose.css ==================== */
/* ============================================================================
   70-prose.css — the native prose bands on the inner pages (service, industry,
   location, problem, trust, FAQ hub, legal). Heading, Text Editor and Button widgets
   in a single measured column, in the mockups' own type.
   ========================================================================== */
.elementor-section.tst-band-prose { display: block; }
.elementor-section.tst-band-prose.tst-prose-white { background: #fff; }
.elementor-section.tst-band-prose.tst-prose-wash { background: var(--wash); }
.elementor-section.tst-band-prose.tst-prose-dark { background: var(--slate); color: #B7C4CE; }
.elementor-section.tst-band-prose > .elementor-container { max-width: 1128px; }
.elementor-section.tst-band-prose > .elementor-container > .elementor-column.tst-prose { max-width: 820px; width: 100%; }
.elementor-section.tst-band-prose > .elementor-container > .elementor-column.tst-prose > .elementor-widget-wrap { display: block; }
/* the band padding comes from `section{padding:88px 56px}`; consecutive prose bands of
   the same ground tighten so the page does not read as a stack of slabs */
.elementor-section.tst-band-prose + .elementor-section.tst-band-prose.tst-prose-white { padding-top: 0; }
.elementor-section.tst-band-prose.tst-prose-white + .elementor-section.tst-band-prose.tst-prose-white { margin-top: -20px; }

.tst-prose .elementor-widget-heading .elementor-heading-title { color: var(--ink); }
.tst-prose .elementor-widget-heading h2.elementor-heading-title { font-size: 32px; margin: 0 0 18px; max-width: 760px; }
.tst-prose .elementor-widget-heading h3.elementor-heading-title { font-size: 21px; margin: 34px 0 10px; }
.tst-prose .elementor-widget-text-editor { font-size: 16.5px; line-height: 1.8; color: var(--body); }
.tst-prose .elementor-widget-text-editor p { margin: 0 0 1.1em; }
.tst-prose .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.tst-prose .elementor-widget-text-editor strong { color: var(--ink); font-weight: 600; }
.tst-prose .elementor-widget-text-editor ul { list-style: none; padding: 0; margin: 0 0 1.1em; }
.tst-prose .elementor-widget-text-editor ul li { position: relative; padding-left: 28px; margin: 0 0 10px; }
.tst-prose .elementor-widget-text-editor ul li::before { content: ''; position: absolute; left: 0; top: 10px; width: 14px; height: 14px; border-radius: 3px; background: var(--orange); }
.tst-prose .elementor-widget-text-editor ol { padding-left: 1.3em; }
.tst-prose .elementor-widget-text-editor + .elementor-widget-heading { margin-top: 8px; }
.tst-prose .elementor-widget-button { margin-top: 26px; }
.tst-prose-dark .tst-prose .elementor-widget-heading .elementor-heading-title { color: #fff; }
.tst-prose-dark .tst-prose .elementor-widget-text-editor { color: #B7C4CE; }
.tst-prose-dark .tst-prose .elementor-widget-text-editor strong, .tst-prose-dark .tst-prose .elementor-widget-text-editor a { color: #fff; }
.tst-prose-dark .tst-prose .elementor-widget-text-editor a:hover { color: #FF8347; }
/* the mid-page CTA inside prose: the mockup's orange button */
.tst-prose .elementor-widget-button .elementor-button { background: var(--orange); color: #fff; }
.tst-prose .elementor-widget-button .elementor-button:hover { background: var(--orange-deep); }
.tst-prose-dark .tst-prose .elementor-widget-button .elementor-button { background: var(--orange); }

/* the long article (legal pages, migrated posts): plain measured prose */
.tst-article { max-width: 820px; margin: 0 auto; font-size: 16.5px; line-height: 1.8; }
.tst-article h2 { font-size: 28px; margin: 36px 0 12px; } .tst-article h3 { font-size: 21px; margin: 28px 0 10px; }
.tst-article p { margin: 0 0 1.1em; } .tst-article img { max-width: 100%; height: auto; border-radius: 12px; }
.tst-article table { border-collapse: collapse; width: 100%; margin: 0 0 1.4em; font-size: 15px; }
.tst-article th, .tst-article td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.tst-post-meta { font-size: 13px; color: #6B7580; margin-bottom: 26px; letter-spacing: .04em; text-transform: uppercase; font-family: 'Archivo', sans-serif; font-weight: 600; }
.tst-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; margin-top: 44px; }
.tst-post-grid a.post { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--rad); overflow: hidden; }
.tst-post-grid a.post:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(27,42,54,.13); }
.tst-post-grid .pbody { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.tst-post-grid .date { font-size: 12.5px; color: #6B7580; margin-bottom: 8px; }
.tst-post-grid h3 { font-size: 18px; margin-bottom: 8px; } .tst-post-grid p { font-size: 14.5px; flex: 1; }
.tst-post-grid .more { margin-top: 14px; font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 13.5px; color: var(--orange-deep); }
@media (max-width: 980px) { .tst-post-grid { grid-template-columns: 1fr; } }

/* sitemap */
.tst-sitemap { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 36px 40px; }
.tst-sitemap h2 { color: var(--orange-deep); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 12px; }
.tst-sitemap ul { list-style: none; margin: 0; padding: 0; } .tst-sitemap li { margin: 0 0 8px; font-size: 15px; }
.tst-sitemap a:hover { color: var(--orange-deep); }
@media (max-width: 980px) { .tst-sitemap { grid-template-columns: 1fr; } }

/* THREE BOXES GO IN ONE ROW (Chloe's standing rule), and no orphan cards. */
.ind-grid:has(> :nth-child(4):last-child), .route-grid:has(> :nth-child(4):last-child), .wc-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0,1fr)); }
.ind-grid:has(> :nth-child(2):last-child), .route-grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 760px; margin-left: auto; margin-right: auto; }
.app-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 32px; }
.cred-row:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 980px) { .app-grid:has(> :nth-child(4):last-child) { grid-template-columns: 1fr; } .ind-grid:has(> :nth-child(4):last-child), .route-grid:has(> :nth-child(4):last-child), .ind-grid:has(> :nth-child(2):last-child), .route-grid:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; } }
