/* STW Core: templates, cards, calculator. Colours mirror the Elementor global palette. */
:root{
  --stw-navy:#0D2B55;--stw-blue:#2E5FCF;--stw-amber:#F2A900;--stw-ink:#16213A;--stw-slate:#5B6B85;
  --stw-mist:#F3F6FB;--stw-line:#DCE3EE;--stw-white:#fff;--stw-radius:14px;--stw-shadow:0 10px 30px rgba(13,43,85,.08);
}
.stw-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.stw-btn{display:inline-flex;align-items:center;gap:.5em;background:var(--stw-blue);color:#fff!important;font-weight:700;padding:14px 26px;border-radius:999px;text-decoration:none;border:2px solid var(--stw-blue);transition:.2s;line-height:1.2;cursor:pointer;font-size:16px}
.stw-btn:hover{background:var(--stw-navy);border-color:var(--stw-navy)}
.stw-btn-ghost{background:transparent;border-color:rgba(255,255,255,.55)}
.stw-btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.stw-btn-amber{background:var(--stw-amber);border-color:var(--stw-amber);color:var(--stw-ink)!important}
.stw-btn-amber:hover{background:#d99700;border-color:#d99700}
.stw-btn-block{display:flex;justify-content:center;width:100%}

/* Hero */
.stw-hero{background:linear-gradient(135deg,var(--stw-navy) 0%,#153a75 60%,var(--stw-blue) 100%);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden}
.stw-hero.has-image::before{content:"";position:absolute;inset:0;background:var(--stw-hero-img) center/cover no-repeat;opacity:.12}
.stw-hero>.stw-wrap{position:relative}
.stw-crumbs{font-size:14px;opacity:.85;display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.stw-crumbs a{color:#fff!important;text-decoration:none}
.stw-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700;color:var(--stw-amber);margin:0 0 10px}
.stw-hero h1{color:#fff!important;font-size:clamp(32px,4.5vw,52px);line-height:1.1;margin:0 0 14px;max-width:820px}
.stw-side-card h3,.stw-cta h2{color:#fff!important}
.stw-contact-list a,.stw-side-card a:not(.stw-btn){color:#fff!important}
.stw-hero h1 i{font-size:.7em;opacity:.9;margin-right:6px}
.stw-tagline{font-size:clamp(17px,2vw,21px);max-width:720px;opacity:.92;margin:0 0 28px}
.stw-hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* Layout */
.stw-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;padding-top:56px;padding-bottom:56px}
@media (max-width:980px){.stw-layout{grid-template-columns:1fr;gap:36px}}
.stw-main h2{font-size:clamp(24px,3vw,32px);color:var(--stw-navy);margin:44px 0 18px}
.stw-main h2:first-child{margin-top:0}
.stw-prose{font-size:17px;line-height:1.75;color:var(--stw-ink)}
.stw-prose p{margin:0 0 1.2em}
.stw-prose h2,.stw-prose h3{color:var(--stw-navy)}
.stw-checklist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.stw-checklist.stw-two-col{grid-template-columns:1fr 1fr}
@media (max-width:640px){.stw-checklist.stw-two-col{grid-template-columns:1fr}}
.stw-checklist li{display:flex;gap:12px;align-items:flex-start;font-size:16.5px;line-height:1.5;color:var(--stw-ink)}
.stw-checklist li i{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--stw-mist);color:var(--stw-blue);display:inline-flex;align-items:center;justify-content:center;font-size:11px;margin-top:2px}
.stw-checklist li i.fa-circle{font-size:6px}
.stw-steps{list-style:none;padding:0;margin:0;display:grid;gap:18px;counter-reset:s}
.stw-steps li{display:flex;gap:18px;padding:20px 22px;border:1px solid var(--stw-line);border-radius:var(--stw-radius);background:#fff}
.stw-step-no{flex:0 0 42px;height:42px;border-radius:12px;background:var(--stw-navy);color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.stw-steps strong{display:block;font-size:17px;color:var(--stw-navy)}
.stw-steps p{margin:6px 0 0;color:var(--stw-slate);line-height:1.55}
.stw-faq details{border:1px solid var(--stw-line);border-radius:12px;margin-bottom:10px;background:#fff;overflow:hidden}
.stw-faq summary{cursor:pointer;padding:16px 20px;font-weight:700;color:var(--stw-navy);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}
.stw-faq summary::-webkit-details-marker{display:none}
.stw-faq summary::after{content:"+";font-size:22px;color:var(--stw-blue);font-weight:400}
.stw-faq details[open] summary::after{content:"\2212"}
.stw-faq details>div{padding:0 20px 18px;color:var(--stw-ink);line-height:1.65}

/* Sidebar */
.stw-side{position:sticky;top:110px;align-self:start;display:grid;gap:22px}
.stw-side-card{background:var(--stw-navy);color:#fff;border-radius:var(--stw-radius);padding:28px;box-shadow:var(--stw-shadow)}
.stw-side-card h3{color:#fff;margin:0 0 8px;font-size:22px}
.stw-side-card p{opacity:.9;line-height:1.6;margin:0 0 18px;font-size:15.5px}
.stw-contact-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px;font-size:15px}
.stw-contact-list li{display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.stw-contact-list i{color:var(--stw-amber);margin-top:3px}
.stw-contact-list a{color:#fff;text-decoration:none}

/* Badges */
.stw-badges{display:grid;gap:10px}
.stw-badge{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--stw-line);border-radius:12px;background:#fff}
.stw-badge i{font-size:22px;color:var(--stw-blue);width:30px;text-align:center}
.stw-badge strong{display:block;color:var(--stw-navy);font-size:15px}
.stw-badge span{color:var(--stw-slate);font-size:13.5px}
.elementor-widget-shortcode .stw-badges{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

/* Cards */
.stw-grid{display:grid;gap:22px}
.stw-cols-2{grid-template-columns:repeat(2,1fr)}
.stw-cols-3{grid-template-columns:repeat(3,1fr)}
.stw-cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.stw-cols-3,.stw-cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.stw-grid{grid-template-columns:1fr!important}}
.stw-card{display:flex;flex-direction:column;gap:10px;padding:28px 26px;background:#fff;border:1px solid var(--stw-line);border-radius:var(--stw-radius);text-decoration:none!important;color:var(--stw-ink);transition:.25s;position:relative;overflow:hidden}
.stw-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--stw-blue),var(--stw-amber));transform:scaleX(0);transform-origin:left;transition:.3s}
.stw-card:hover{transform:translateY(-4px);box-shadow:var(--stw-shadow);border-color:transparent}
.stw-card:hover::after{transform:scaleX(1)}
.stw-card-icon{width:54px;height:54px;border-radius:14px;background:var(--stw-mist);color:var(--stw-blue);display:inline-flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:6px}
.stw-card-title{font-weight:800;font-size:19px;color:var(--stw-navy);line-height:1.25}
.stw-card-text{color:var(--stw-slate);font-size:15.5px;line-height:1.6;flex:1}
.stw-card-more{color:var(--stw-blue);font-weight:700;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;margin-top:6px}
.stw-card-compact{padding:22px 20px;text-align:center;align-items:center}
.stw-card-compact .stw-card-text{font-size:14.5px}

/* Testimonials */
.stw-testimonial{margin:0;padding:28px;background:#fff;border:1px solid var(--stw-line);border-radius:var(--stw-radius);display:flex;flex-direction:column;gap:14px}
.stw-stars{color:var(--stw-amber);font-size:14px;display:flex;gap:3px}
.stw-testimonial blockquote{margin:0;padding:0;border:0;font-size:16.5px;line-height:1.65;color:var(--stw-ink);font-style:normal}
.stw-testimonial figcaption{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:auto}
.stw-testimonial figcaption img{width:44px;height:44px;object-fit:contain;border-radius:8px;border:1px solid var(--stw-line)}
.stw-testimonial figcaption strong{color:var(--stw-navy)}
.stw-testimonial figcaption span{color:var(--stw-slate);font-size:14px;width:100%}

/* Related + CTA */
.stw-related{background:var(--stw-mist);padding:64px 0}
.stw-related h2{color:var(--stw-navy);font-size:clamp(24px,3vw,32px);margin:0 0 26px}
.stw-cta{background:linear-gradient(135deg,var(--stw-navy),var(--stw-blue));color:#fff;padding:72px 0;text-align:center}
.stw-cta h2{color:#fff;font-size:clamp(26px,3.4vw,38px);margin:0 0 12px}
.stw-cta p{max-width:640px;margin:0 auto 26px;opacity:.92;font-size:17px;line-height:1.6}

/* Calculator */
.stw-calc{background:#fff;border:1px solid var(--stw-line);border-radius:var(--stw-radius);padding:30px;box-shadow:var(--stw-shadow)}
.stw-calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}
@media (max-width:640px){.stw-calc-grid{grid-template-columns:1fr}}
.stw-calc label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:var(--stw-navy);font-size:14.5px}
.stw-calc input,.stw-calc select{font:inherit;font-weight:400;padding:12px 14px;border:1px solid var(--stw-line);border-radius:10px;background:var(--stw-mist);color:var(--stw-ink)}
.stw-calc-result{margin-top:24px;padding:22px;border-radius:12px;background:var(--stw-mist);border-left:5px solid var(--stw-amber)}
.stw-calc-total{font-size:34px;font-weight:800;color:var(--stw-navy)}
.stw-calc-result p{margin:8px 0 0;color:var(--stw-slate);line-height:1.6}
.stw-calc-note{margin:18px 0 0;font-size:13.5px;color:var(--stw-slate);line-height:1.6}
.stw-calc-note a{color:var(--stw-blue)}
.stw-map iframe{width:100%;height:380px;border:0;border-radius:var(--stw-radius)}
.stw-link{color:inherit;text-decoration:none}
