/*
 Theme Name:   Astra Starter Child
 Theme URI:    https://yoursite.com
 Description:  A minimal, reusable child theme for Astra. Built as a clean starter template for new WordPress projects.
 Author:       Your Name
 Author URI:   https://yoursite.com
 Template:     astra
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  astra-starter-child
*/

@media screen and (min-width: 921px) {.ast-theme-transparent-header #masthead{position:inherit;}}
.page .site-content .ast-container{margin-top: -26px;margin-bottom: -26px;}
ol, ul{margin:inherit;}
.site-logo-img .transparent-custom-logo img, .ast-theme-transparent-header .site-logo-img img{filter: none;}
.ast-mobile-header-wrap .ast-primary-header-bar, .ast-primary-header-bar .site-primary-header-wrap {min-height: 90px;}
.ast-primary-header-bar.main-header-bar{padding-block:0;}
.footer-brand img{width:50%;}



/* ==========================================================================
                                    FOOTER
   ========================================================================== */
.site-footer {
    background: var(--bg-dark);
    color: var(--on-dark);
    padding: clamp(3.5rem, 7vw, 5.5rem) 0 2rem;
}
.footer-top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: clamp(2rem, 5vw, 4rem);
    padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
    border-bottom: 1px solid var(--line-dark);
}
.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 26rem;
}
.footer-logo { width: auto; }
.footer-tagline {
    font-size: var(--fs-sm);
    line-height: var(--lh-base);
    color: var(--on-dark-muted);
}
.footer-contact {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-top: .25rem;
    font-family: var(--display);
    font-size: var(--fs-sm);
}
.footer-contact a { color: var(--on-dark); transition: color .25s var(--ease); }
.footer-contact a:hover { color: var(--brand-bright); }

/* Single-line quick links */
.footer-links {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 25px;
    max-width: 34rem;
}
.footer-links strong{font-weight:600;}
.footer-links a {
    font-family: var(--display);
    font-weight: var(--fw-med);
    font-size: var(--fs-sm);
    color: var(--on-dark-muted);
    transition: color .25s var(--ease);
}
.footer-links a:hover { color: var(--brand-bright); }
.footer-links .links {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 25px;
    margin-top: 3px;
}
.footer-bottom {
    padding-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    font-size: var(--fs-sm);
    color: var(--on-dark-muted);
}
.footer-address { line-height: var(--lh-base); }
.footer-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}
.footer-legal a { color: inherit; transition: color .25s var(--ease); }
.footer-legal a:hover { color: var(--on-dark); }
.footer-divider { color: rgba(255,255,255,.35); }

@media (max-width: 720px) {
    .footer-top { flex-direction: column; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
}


/* ==========================================================================
								CONTACT FORM
   ========================================================================== */
.contact__form{position:relative;background:#fff;border:1px solid #c9d4df;padding:clamp(26px,3vw,44px);box-shadow:0 30px 70px -34px rgba(13,27,42,.3);}
.contact__form .main-form h4{font-family:"Montserrat",system-ui,sans-serif;font-weight:600;color:#0D1B2A;font-size:1.3rem;margin:0 0 22px;}
.contact__form p{margin:0 0 14px;}
.contact__form .wpcf7-form-control-wrap{display:block;}
.contact__form input,.contact__form select,.contact__form textarea{width:100%;font-family:"Source Sans Pro",system-ui,sans-serif;font-size:1rem;color:#16202e;background:#fff;border: 1px solid #1e5c223d;box-shadow: inherit;line-height:1.4;border-radius:0;transition:border-color .2s ease,box-shadow .2s ease;}
.contact__form textarea{height:120px;min-height:120px;resize:vertical;}
.contact__form input:focus,
.contact__form select:focus,
.contact__form textarea:focus{outline:none;border-color:#071cdd;box-shadow:0 0 0 3px rgba(7,28,221,.16);}
.contact__form ::placeholder{color:#90a0b0;opacity:1;}
.contact__form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.6em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230D1B2A' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.05em center;background-size:12px 8px;}
.contact__form .nw-sbmt-btn{display:inline-flex;align-items:center;gap:.6em;font-family:"Montserrat",system-ui,sans-serif;font-weight:600;font-size:.95rem;background:#1E5C22;color:#fff;border:0;padding:1.05em 1.9em;cursor:pointer;transition:background .25s ease,transform .25s ease;margin-top:4px;}
.contact__form .nw-sbmt-btn:hover{background:#1e5c22a1;transform:translateY(-2px);}
.contact__form .nw-sbmt-btn svg{width:16px;height:16px;fill:currentColor;}
.bnft-frm-sub p{display:flex;flex-direction:column;gap:8px;margin-top:20px;}
.bnft-frm-sub span{display:inline-flex;align-items:center;gap:10px;color:#586a7b;font-size:.92rem;}
.bnft-frm-sub em{width:20px;height:20px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:#1e5c2230;color:#1e5c22;border-radius:50%;font-style:normal;font-size:.66rem;font-weight:700;}
.contact__form .wpcf7-response-output{margin:18px 0 0!important;padding:.8em 1em!important;font-size:.92rem;border-radius:0;}
.contact__form .wpcf7-not-valid-tip{color:#c0392b;font-size:.82rem;margin-top:5px;}
.contact__form .wpcf7-spinner{margin:0 0 0 12px;}
/* ==========================================================================
								CONTACT FORM
   ========================================================================== */

/* ==========================================================================
   ASTRA OVERRIDES (full-bleed content)
   ========================================================================== */
@media screen and (min-width: 921px) { .ast-theme-transparent-header #masthead { position: inherit; } }
.main-container, .ast-container, .site-content .ast-container { max-width: 100%; padding: 0; margin: 0; }
.ast-page-builder-template .site-content > .ast-container { max-width: 100%; padding: 0; }
.site-logo-img .transparent-custom-logo img, .ast-theme-transparent-header .site-logo-img img { filter: none; }
 
/* ==========================================================================
   1. TOKENS  (brand values shared with the practice)
   ========================================================================== */
:root {
    --bg:#FFFFFF; --bg-soft:#FAFAF6; --bg-tint:#F1F6EF; --bg-tint-2:#E6EFE3;
    --bg-dark:#0A1F12; --bg-dark-2:#10291A;
 
    --brand:#2E8B33; --brand-deep:#1E5C22; --brand-bright:#4FAE56; --brand-soft:#C7DFC9;
 
    --ink:#0E1F14; --ink-2:#3D4A41; --ink-muted:#6B776F;
    --on-brand:#FFFFFF; --on-dark:#F5F2EA; --on-dark-muted:#9CA89E;
 
    --line:#E4E3DC; --line-soft:#EEEDE7; --line-dark:rgba(255,255,255,0.12);
 
    --display:'Montserrat', system-ui, sans-serif;
    --body:'Source Sans Pro', Georgia, serif;
 
    --fs-mega:clamp(2.75rem, 7vw, 6.5rem);
    --fs-d1:clamp(2.25rem, 4.6vw, 4rem);
    --fs-d2:clamp(1.75rem, 3vw, 2.75rem);
    --fs-d3:clamp(1.3rem, 1.9vw, 1.75rem);
    --fs-lede:clamp(1.125rem, 1.4vw, 1.375rem);
    --fs-body:1.0625rem; --fs-sm:0.9375rem; --fs-label:0.75rem;
    --fs-index:clamp(3rem, 6vw, 5.5rem);
 
    --fw-light:300; --fw-reg:400; --fw-med:500; --fw-semi:600; --fw-bold:700;
    --lh-tight:1.04; --lh-snug:1.18; --lh-base:1.58; --lh-relaxed:1.68;
    --tr-tight:-0.025em; --tr-tighter:-0.045em; --tr-wide:0.06em; --tr-widest:0.24em;
 
    --s4:1rem; --s5:1.5rem; --s6:2rem; --s7:3rem;
    --section-py:clamp(5rem, 10vw, 8.5rem);
    --container:1360px; --pad:clamp(1.25rem, 5vw, 5rem);
    --ease:cubic-bezier(0.16, 1, 0.3, 1); --ease-io:cubic-bezier(0.65, 0, 0.35, 1);
    --pill:999px; --radius-4:4px;
}
 
/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { margin: 0; font-family: var(--body); font-size: var(--fs-body); line-height: var(--lh-base); color: var(--ink); background: var(--bg); overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .25s var(--ease); }
h1,h2,h3,h4 { margin: 0; font-family: var(--display); font-weight: var(--fw-med); line-height: var(--lh-tight); letter-spacing: var(--tr-tight); }
p { margin: 0; }
::selection { background: var(--brand); color: #fff; }
 
/* ==========================================================================
   3. PRIMITIVES
   ========================================================================== */
.sc-wrap { width: 100%; max-width: var(--container); margin: 0 auto; padding-inline: var(--pad); }
 
.eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--display); font-size: var(--fs-label); font-weight: var(--fw-semi); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--brand); }
.eyebrow::before { content: ""; width: 1.75rem; height: 1px; background: var(--brand); opacity: .6; }
.eyebrow.on-dark { color: var(--brand-bright); }
.eyebrow.on-dark::before { background: var(--brand-bright); }
.eyebrow.on-brand { color: #fff; }
.eyebrow.on-brand::before { background: rgba(255,255,255,.7); }
 
.btn { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); letter-spacing: .01em; padding: .95rem 1.5rem; border-radius: var(--pill); transition: transform .35s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.btn .arw { transition: transform .35s var(--ease); }
.btn:hover .arw { transform: translateX(4px); }
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-deep); transform: translateY(-2px);color: #fff; }
.btn-ghost { border: 1px solid var(--line); color: var(--ink); }
.btn-ghost:hover { border-color: var(--brand); color: var(--brand); }
.btn-on-dark { background: var(--brand-bright); color: #072012; }
.btn-on-dark:hover { background: #fff; transform: translateY(-2px); }
.btn-lg { padding: 1.15rem 2rem; font-size: var(--fs-body); }
 
/* .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity: 1; transform: none; } */
@media (prefers-reduced-motion: reduce) {
/*     .reveal { opacity: 1 !important; transform: none !important; transition: none; } */
    html { scroll-behavior: auto; }
    .sc-path-draw { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; animation: none !important; }
}
 
/* ==========================================================================
   4. HERO â€” the trajectory
   ========================================================================== */
.sc-hero { position: relative; padding: clamp(7rem, 11vw, 9rem) 0; background: var(--bg-soft); overflow: hidden; border-bottom: 1px solid var(--line-soft); }
.sc-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: center; }
.sc-hero-copy { max-width: 40rem; }
.sc-hero h1 {font-weight: var(--fw-semi); letter-spacing: var(--tr-tighter); margin: 1.25rem 0 0; color: var(--ink); }
.sc-hero h1 .grn { color: var(--brand); }
.sc-hero-lede { font-size: var(--fs-lede); color: var(--ink-2); margin-top: 1.5rem; line-height: var(--lh-relaxed); max-width: 34rem; }
.sc-hero-lede strong { color: var(--ink); font-weight: var(--fw-semi); }
.sc-hero-cta { margin-top: 2.25rem; display: flex; gap: 1rem; flex-wrap: wrap; }
 
.sc-verbs { display: flex; gap: 0; margin-top: 3rem; border-top: 1px solid var(--line); }
.sc-verb { flex: 1; padding: 1.1rem 0 0; position: relative; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink); }
.sc-verb::before { content: ""; position: absolute; top: -1px; left: 0; width: 34%; height: 2px; background: var(--brand); }
.sc-verb span { display: block; font-family: var(--body); text-transform: none; letter-spacing: 0; font-weight: var(--fw-reg); font-size: var(--fs-label); color: var(--ink-muted); margin-top: .35rem; }
 
.sc-traj { position: relative; }
.sc-traj svg { width: 100%; height: auto; overflow: visible; }
.sc-path { fill: none; stroke: var(--brand); stroke-width: 3; stroke-linecap: round; }
.sc-path-draw { stroke-dasharray: 1200; stroke-dashoffset: 1200; animation: draw 1.8s var(--ease) .3s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.sc-area { fill: url(#scFade); }
.sc-node { fill: var(--brand); }
.sc-node-ring { fill: none; stroke: var(--brand); stroke-width: 2; opacity: .35; }
.sc-traj-label { font-family: var(--display); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; fill: var(--ink-muted); }
.sc-traj-label.zero { fill: var(--brand-deep); }
 /* ==========================================================================
   FEATURE IMAGE BAND  (placeholder - client supplies image)
   ========================================================================== */
.sc-feature { background: var(--bg); }
.sc-feature-media { position: relative; margin: 0; width: 100%; aspect-ratio: 21 / 8; max-height: 60vh; overflow: hidden; background: var(--bg-tint); border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: center; }
.sc-feature-media::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to bottom,
        rgba(13,27,42,.15),
        rgba(13,27,42,.65)
    );
    z-index:1;
    pointer-events:none;
}

.sc-feature-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sc-feature-ph { position: relative; z-index: 1; display: inline-flex; flex-direction: column; align-items: center; gap: .5rem; text-align: center; padding: 1rem; color: var(--ink-muted); }
.sc-feature-ph svg { width: 2.25rem; height: 2.25rem; stroke: var(--brand); opacity: .65; }
.sc-feature-ph strong { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand-deep); }
.sc-feature-ph span { font-family: var(--display); font-size: var(--fs-label); letter-spacing: .04em; }
@media (max-width: 720px) { .sc-feature-media { aspect-ratio: 4 / 3; } }
/* ==========================================================================
   5. MANDATE â€” why now
   ========================================================================== */
.sc-mandate { padding: var(--section-py) 0; background: var(--bg); }
.sc-mandate-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem,5vw,5rem); align-items: start; }
.sc-mandate-statement { font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-d2); letter-spacing: var(--tr-tighter); line-height: var(--lh-snug); color: var(--ink); }
.sc-mandate-statement .grn { color: var(--brand); }
.sc-mandate-body { font-size: var(--fs-lede); color: var(--ink-2); line-height: var(--lh-relaxed); }
.sc-mandate-body .kicker { margin-top: 1.5rem; font-family: var(--display); font-weight: var(--fw-semi); color: var(--ink); font-size: var(--fs-body); }
.sc-pressures { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.sc-pressures li { background: var(--bg); padding: 1.1rem 1.25rem; display: flex; align-items: center; gap: .75rem; font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--ink); }
.sc-pressures li::before { content: ""; flex: none; width: .5rem; height: .5rem; border-radius: 50%; background: var(--brand); }
 
/* ==========================================================================
   6. LIFECYCLE â€” services as one journey
   ========================================================================== */
.sc-life { padding: var(--section-py) 0; background: var(--bg-tint); }
.sc-life-head { max-width: 42rem; margin-bottom: clamp(2.5rem,5vw,4rem); }
.sc-life-head h2 { font-size: var(--fs-d1); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-life-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }
.sc-stage { display: grid; grid-template-columns: auto minmax(8rem, 14rem) 1fr; gap: clamp(1rem,3vw,3rem); align-items: start; padding: clamp(1.75rem,3.5vw,2.75rem) 0; border-top: 1px solid var(--brand-soft); }
.sc-stage:last-child { border-bottom: 1px solid var(--brand-soft); }
.sc-stage-idx { font-family: var(--display); font-weight: var(--fw-light); font-size: var(--fs-index); line-height: 1; color: var(--brand); letter-spacing: var(--tr-tighter); transition: transform .4s var(--ease);width:110px; }
.sc-stage-verb .v { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink); }
.sc-stage-verb .svc { display: block; margin-top: .35rem; font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--brand-deep); }
.sc-stage-desc { color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); max-width: 40rem; }
.sc-stage-desc strong { color: var(--ink); font-weight: var(--fw-semi); }
.sc-stage:hover .sc-stage-idx { transform: translateX(5px); }
 
/* ==========================================================================
   7. PLATFORM â€” dark AI/data band
   ========================================================================== */
.sc-platform { padding: clamp(5rem,10vw,9rem) 0; background: var(--bg-dark); color: var(--on-dark); position: relative; overflow: hidden; }
.sc-platform::before { content: ""; position: absolute; top: -30%; right: -10%; width: 45rem; height: 45rem; background: radial-gradient(circle, rgba(79,174,86,.14), transparent 62%); pointer-events: none; }
.sc-platform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; position: relative; }
.sc-platform h2 { font-size: var(--fs-d1); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; color: var(--on-dark); }
.sc-platform h2 .grn { color: var(--brand-bright); }
.sc-platform-body { margin-top: 1.5rem; color: var(--on-dark-muted); font-size: var(--fs-lede); line-height: var(--lh-relaxed); max-width: 34rem; }
.sc-platform-note { margin-top: 1.5rem; font-size: var(--fs-sm); color: var(--on-dark-muted); }
 
.sc-scopes { display: flex; flex-direction: column; gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); border-radius: var(--radius-4); overflow: hidden; }
.sc-scope { background: var(--bg-dark-2); padding: 1.5rem 1.75rem; }
.sc-scope-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.sc-scope-tag { display: block; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand-bright); }
.sc-scope-name { font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-d3); color: var(--on-dark); margin-top: .4rem; }
.sc-scope-desc { color: var(--on-dark-muted); font-size: var(--fs-sm); margin-top: .4rem; line-height: var(--lh-base); }
.sc-scope-bar { margin-top: 1rem; height: 4px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; }
.sc-scope-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--brand), var(--brand-bright)); border-radius: 4px; transform-origin: left; transform: scaleX(0); transition: transform 1s var(--ease); }
.sc-scope.in .sc-scope-bar i { transform: scaleX(var(--w, .6)); }
 
/* ==========================================================================
   8. TRUST STRIP
   ========================================================================== */
.sc-trust { padding: clamp(2.5rem,5vw,3.5rem) 0; background: var(--bg); border-bottom: 1px solid var(--line-soft); }
.sc-trust-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; }
.sc-trust-lead { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.sc-trust-item { display: inline-flex; align-items: center; gap: .55rem; font-size: var(--fs-sm); color: var(--ink-2); }
.sc-trust-item::before { content: "âœ“"; color: var(--brand); font-weight: 700; }
 
/* ==========================================================================
   9. SECTORS
   ========================================================================== */
.sc-sectors { padding: var(--section-py) 0; background: var(--bg-soft); }
.sc-sectors-head { max-width: 40rem; }
.sc-sectors-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-sectors-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }
.sc-sector-list { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.sc-sector { display: inline-flex; align-items: center; gap: .6rem; padding: .7rem 1.15rem; border: 1px solid var(--line); border-radius: var(--pill); font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--ink); background: var(--bg); transition: border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.sc-sector:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.sc-sector .n { font-variant-numeric: tabular-nums; color: var(--brand); font-weight: var(--fw-semi); }
 
/* ==========================================================================
   10. ALIGNMENT â€” green conviction band
   ========================================================================== */
.sc-align { padding: clamp(4.5rem,9vw,8rem) 0; background: var(--brand); color: var(--on-brand); position: relative; overflow: hidden; }
.sc-align::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 14px); opacity: .5; pointer-events: none; }
.sc-align-inner { position: relative; max-width: 54rem; }
.sc-align h2 { font-size: var(--fs-d1); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; color: #fff; }
.sc-align p { margin-top: 1.25rem; font-size: var(--fs-lede); color: rgba(255,255,255,.85); line-height: var(--lh-relaxed); }
.sc-anchors { display: flex; flex-wrap: wrap; gap: 1px; margin-top: 2.5rem; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.22); }
.sc-anchor { flex: 1 1 12rem; background: var(--brand); padding: 1.1rem 1.35rem; font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: #fff; }
.sc-anchor small { display: block; font-family: var(--body); font-weight: 400; color: rgba(255,255,255,.7); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; margin-bottom: .4rem; }
 
/* ==========================================================================
   11. CONTACT
   ========================================================================== */
.sc-contact { padding: var(--section-py) 0; background: var(--bg); }
.sc-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem,5vw,5rem); align-items: start; }
.sc-contact h2 { font-size: var(--fs-d1); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; }
.sc-contact h2 .grn { color: var(--brand); }
.sc-contact-lede { margin-top: 1.25rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); max-width: 30rem; }
.sc-contact-form { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 6px; padding: clamp(1.5rem,3vw,2.25rem); }
.sc-contact-form input:not([type=submit]), .sc-contact-form textarea { width: 100%; font-family: var(--body); font-size: var(--fs-body); color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 4px; padding: .85rem 1rem; margin-bottom: 1rem; transition: border-color .2s var(--ease); }
.sc-contact-form input:focus, .sc-contact-form textarea:focus { outline: none; border-color: var(--brand); }
.sc-contact-form textarea { min-height: 8rem; resize: vertical; }
.sc-contact-form input[type=submit], .sc-contact-form .wpcf7-submit { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-body); background: var(--brand); color: #fff; border: 0; border-radius: var(--pill); padding: 1rem 2rem; cursor: pointer; transition: background .25s var(--ease); }
.sc-contact-form input[type=submit]:hover, .sc-contact-form .wpcf7-submit:hover { background: var(--brand-deep); }
 
/* Fallback static preview form (not used in WP) */
.sc-form-field { margin-bottom: 1rem; }
.sc-form-field label { display: block; font-family: var(--display); font-size: var(--fs-label); font-weight: var(--fw-semi); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink-muted); margin-bottom: .4rem; }
.sc-form-field input, .sc-form-field textarea { width: 100%; font-family: var(--body); font-size: var(--fs-body); color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 4px; padding: .85rem 1rem; }
.sc-form-field textarea { min-height: 7rem; resize: vertical; }
 
/* Why-us reasons row, merged into the dark platform band */
.sc-why { margin-top: clamp(2.5rem,5vw,4rem); padding-top: 2.5rem; border-top: 1px solid var(--line-dark); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem 2.5rem; }
.sc-why-item { display: flex; align-items: flex-start; gap: .6rem; font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--on-dark); }
.sc-why-item::before { content: "✓"; color: var(--brand-bright); font-weight: 700;}
 
/* ==========================================================================
   CLOSING CTA green band with white form card
   ========================================================================== */
.sc-cta { padding: clamp(4.5rem,9vw,8rem) 0; background: var(--brand); color: #fff; position: relative; overflow: hidden; }
.sc-cta::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 14px); opacity: .5; pointer-events: none; }
.sc-cta-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; }
.sc-cta-copy h2 { font-size: var(--fs-d1); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; color: #fff; }
.sc-cta-copy .grn { color: #EAF6EB; }
.sc-cta-lede { margin-top: 1.25rem; font-size: var(--fs-lede); color: rgba(255,255,255,.9); line-height: var(--lh-relaxed); max-width: 30rem; }
.sc-cta-reassure { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .55rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); color: #fff; }
.sc-cta-reassure::before { content: "âœ“"; display: inline-flex; align-items: center; justify-content: center; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: rgba(255,255,255,.18); }
.sc-cta-card { background: #fff; border-radius: 8px; padding: clamp(1.5rem,3vw,2.25rem); box-shadow: 0 24px 60px rgba(7,32,18,.28); }
.sc-cta-card .sc-cta-card-title { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); color: var(--ink); margin-bottom: 1.25rem; letter-spacing: var(--tr-tight); }
 
/* ==========================================================================
   FOCUS / A11Y
   ========================================================================== */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, .btn:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 3px; }
 
/* ==========================================================================
   RESPONSIVE  (brand breakpoints: 1024, 720)
   ========================================================================== */
@media (max-width: 1024px) {
    .sc-hero-grid { grid-template-columns: 1fr; }
    .sc-traj { order: 2; max-width: 34rem; }
    .sc-mandate-grid, .sc-platform-grid, .sc-contact-grid, .sc-cta-grid { grid-template-columns: 1fr; }
    .sc-stage { grid-template-columns: auto 1fr; }
    .sc-stage-desc { grid-column: 2; }
    .sc-why { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .sc-verbs { flex-wrap: wrap; }
    .sc-verb { flex: 1 1 45%; padding-bottom: 1rem; }
    .sc-pressures { grid-template-columns: 1fr; }
    .sc-stage { grid-template-columns: 1fr; gap: .5rem; }
    .sc-stage-idx { font-size: 2.75rem; }
    .sc-anchor { flex: 1 1 100%; }
    .sc-trust-inner { gap: .75rem 1.5rem; }
    .sc-why { grid-template-columns: 1fr; }
}
 

/* ==========================================================================
   INNER PAGES  (About / Contact / Privacy) - additive, reuses your tokens
   ========================================================================== */

/* Shared page header */
.sc-page-hero { background: var(--bg-soft); padding: clamp(7rem, 11vw, 9rem) 0; border-bottom: 1px solid var(--line-soft); }
.sc-page-hero-inner { max-width: 66rem; }
.sc-page-hero h1 { font-size: var(--fs-d1); font-weight: var(--fw-semi); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; color: var(--ink); }
.sc-page-hero h1 .grn { color: var(--brand); }
.sc-page-hero-lede { margin-top: 1.5rem; font-size: var(--fs-lede); color: var(--ink-2); line-height: var(--lh-relaxed); max-width: 42rem; }

/* Values grid (light) */
.sc-values { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: clamp(2rem,4vw,3rem); }
.sc-value { background: var(--bg); padding: clamp(1.5rem,3vw,2rem); }
.sc-value .vnum { font-family: var(--display); font-size: var(--fs-sm); font-weight: var(--fw-semi); color: var(--brand); }
.sc-value h3 { font-family: var(--display); font-weight: var(--fw-semi); letter-spacing: var(--tr-tight); margin-top: .5rem; }
.sc-value p { margin-top: .6rem; color: var(--ink-2); font-size: var(--fs-sm); line-height: var(--lh-base); }

/* Simple CTA button wrapper (green band without form) */
.sc-cta-actions { margin-top: 2rem; display: flex; gap: 1rem; flex-wrap: wrap; }

/* Contact info list */
.sc-contact-info { display: flex; flex-direction: column; gap: 1.75rem; margin-top: 2rem; }
.sc-contact-info .lbl { font-family: var(--display); font-size: var(--fs-label); font-weight: var(--fw-semi); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand); margin-bottom: .4rem; }
.sc-contact-info .val { font-size: var(--fs-body); color: var(--ink); line-height: var(--lh-base); }
.sc-contact-info .val a { color: var(--ink); border-bottom: 1px solid var(--line); transition: border-color .2s var(--ease), color .2s var(--ease); }
.sc-contact-info .val a:hover { color: var(--brand); border-color: var(--brand); }
.sc-contact-page-section { padding: var(--section-py) 0; background: var(--bg-soft); }
.sc-contact-page-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem,5vw,5rem); align-items: start; }

/* Legal / prose (Privacy, Terms) */
.sc-legal { padding: clamp(3rem,6vw,5rem) 0 var(--section-py); background: var(--bg); }
.sc-legal-inner { max-width: 66rem; }
.sc-legal .updated { font-family: var(--display); font-size: var(--fs-sm); color: var(--ink-muted); margin-bottom: 2rem; }
.sc-legal .notice { background: var(--bg-tint); border: 1px solid var(--brand-soft); border-radius: 6px; padding: 1.1rem 1.35rem; font-size: var(--fs-sm); color: var(--ink-2); line-height: var(--lh-base); margin-bottom: 2.5rem; }
.sc-legal .notice strong { color: var(--brand-deep); }
.sc-legal h2 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin: 2.5rem 0 .85rem; color: var(--ink); }
.sc-legal h2:first-of-type { margin-top: 0; }
.sc-legal p { color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); margin-bottom: 1rem; }
.sc-legal ul { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.sc-legal li { color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); margin-bottom: .5rem; }
.sc-legal a { color: var(--brand); border-bottom: 1px solid var(--brand-soft); }

/* Inner-page responsive */
@media (max-width: 1024px) { .sc-contact-page-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .sc-values { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sc-values { grid-template-columns: 1fr; } }


/* ==========================================================================
   SERVICE PAGES - distinct layout (split hero, image rows, timeline, FAQ)
   Additive; reuses your tokens. Different rhythm from the editorial pages.
   ========================================================================== */

/* Reusable image placeholder (any ratio) */
.sc-imgph { position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--bg-tint); border: 1px solid var(--brand-soft); display: flex; align-items: center; justify-content: center; }
.sc-imgph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sc-imgph-ph { position: relative; z-index: 1; display: inline-flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center; padding: 1rem; color: var(--ink-muted); }
.sc-imgph-ph svg { width: 2rem; height: 2rem; stroke: var(--brand); opacity: .6; }
.sc-imgph-ph strong { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand-deep); }
.sc-imgph-ph span { font-family: var(--display); font-size: var(--fs-label); letter-spacing: .03em; }

/* Split hero */
.sc-svc-hero { background: var(--bg-soft); padding: clamp(7rem, 11vw, 9rem) 0; border-bottom: 1px solid var(--line-soft); }
.sc-svc-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: center; }
.sc-svc-hero-copy { max-width: 40rem; }
.sc-svc-hero h1 { font-size: clamp(2.25rem,4.4vw,3.75rem); font-weight: var(--fw-semi); letter-spacing: var(--tr-tighter); margin-top: 1.25rem; color: var(--ink); line-height: 1.05; }
.sc-svc-hero h1 .grn { color: var(--brand); }
.sc-svc-hero-lede { margin-top: 1.5rem; font-size: var(--fs-lede); color: var(--ink-2); line-height: var(--lh-relaxed); }
.sc-svc-hero .sc-cta-actions { margin-top: 2rem; }
.sc-svc-hero-media .sc-imgph { aspect-ratio: 5 / 4; }

/* Alternating image / text feature rows */
.sc-feature-rows { padding: var(--section-py) 0; background: var(--bg); }
.sc-feature-rows-head { max-width: 42rem; margin-bottom: clamp(2.5rem,5vw,4rem); }
.sc-feature-rows-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-feature-rows-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }
.sc-frow { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4.5rem); align-items: center; padding: clamp(1.5rem,3vw,2.5rem) 0; }
.sc-frow:nth-of-type(even) .sc-frow-media { order: 2; }
.sc-frow-copy .sc-frow-idx { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand); }
.sc-frow-copy h3 { font-family: var(--display); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .75rem; }
.sc-frow-copy p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); }

/* Included - checklist (two column) */
.sc-included { padding: var(--section-py) 0; background: var(--bg-tint); }
.sc-included-head { max-width: 42rem; margin-bottom: clamp(2rem,4vw,3rem); }
.sc-included-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-included-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); }
.sc-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--brand-soft); border: 1px solid var(--brand-soft); }
.sc-check { background: var(--bg-tint); padding: 1.15rem 1.4rem; display: flex; align-items: flex-start; gap: .75rem; }
.sc-check::before { content: "✓"; flex: none; color: var(--brand); font-weight: 700; line-height: 1.5; }
.sc-check div strong { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-body); color: var(--ink); display: block; }
.sc-check div span { color: var(--ink-2); font-size: var(--fs-sm); }

/* Horizontal step timeline */
.sc-timeline-sec { padding: var(--section-py) 0; background: var(--bg); }
.sc-timeline-head { max-width: 42rem; margin-bottom: clamp(2.5rem,5vw,3.5rem); }
.sc-timeline-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-timeline-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); }
.sc-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.25rem,3vw,2.5rem); }
.sc-tstep { position: relative; padding-top: 2rem; }
.sc-tstep::before { content: ""; position: absolute; top: 6px; left: 0; width: 100%; height: 2px; background: var(--brand-soft); }
.sc-tstep::after { content: ""; position: absolute; top: 0; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--brand); }
.sc-tstep .num { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); color: var(--brand); }
.sc-tstep h3 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .35rem; }
.sc-tstep p { margin-top: .6rem; color: var(--ink-2); font-size: var(--fs-sm); line-height: var(--lh-base); }

/* FAQ (native details/summary, no JS) */
.sc-faq-sec { padding: var(--section-py) 0; background: var(--bg-soft); }
.sc-faq-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(2rem,5vw,4rem); align-items: start; }
.sc-faq-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-faq-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); }
.sc-faq details { border-top: 1px solid var(--line); padding: 1.15rem 0; }
.sc-faq details:last-child { border-bottom: 1px solid var(--line); }
.sc-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-body); color: var(--ink); }
.sc-faq summary::-webkit-details-marker { display: none; }
.sc-faq summary::after { content: "+"; font-weight: 400; font-size: 1.5rem; color: var(--brand); transition: transform .25s var(--ease); line-height: 1; }
.sc-faq details[open] summary::after { transform: rotate(45deg); }
.sc-faq details p { margin-top: .85rem; color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); }

/* Responsive */
@media (max-width: 1024px) {
    .sc-svc-hero-grid { grid-template-columns: 1fr; }
    .sc-svc-hero-media { order: 2; max-width: 34rem; }
    .sc-faq-grid { grid-template-columns: 1fr; }
    .sc-timeline { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 720px) {
    .sc-frow { grid-template-columns: 1fr; gap: 1.5rem; }
    .sc-frow:nth-of-type(even) .sc-frow-media { order: 0; }
    .sc-checklist { grid-template-columns: 1fr; }
    .sc-timeline { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ENGAGEMENT OPTIONS (three delivery models)
   ========================================================================== */
.sc-options { padding: var(--section-py) 0; background: var(--bg-soft); }
.sc-options-head { max-width: 42rem; margin-bottom: clamp(2.5rem,5vw,3.5rem); }
.sc-options-head h2 { font-size: var(--fs-d2); font-weight: var(--fw-med); letter-spacing: var(--tr-tighter); margin-top: 1rem; }
.sc-options-head p { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }
.sc-options-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; }
.sc-option { position: relative; display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: clamp(1.5rem,3vw,2rem); transition: border-color .25s var(--ease), transform .25s var(--ease); }
.sc-option:hover { border-color: var(--brand-soft); transform: translateY(-3px); }
.sc-option.featured { border-color: var(--brand); box-shadow: 0 14px 44px rgba(7,32,18,.10); }
.sc-option-badge { position: absolute; top: -0.75rem; left: clamp(1.5rem,3vw,2rem); background: var(--brand); color: #fff; font-family: var(--display); font-size: var(--fs-label); font-weight: var(--fw-semi); letter-spacing: var(--tr-wide); text-transform: uppercase; padding: .3rem .7rem; border-radius: 999px; }
.sc-option-tag { font-family: var(--display); font-size: var(--fs-label); font-weight: var(--fw-semi); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand); }
.sc-option h3 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .6rem; }
.sc-option-desc { margin-top: 1rem; color: var(--ink-2); font-size: var(--fs-sm); line-height: var(--lh-relaxed); }
.sc-option-for { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line-soft); font-size: var(--fs-sm); color: var(--ink); }
.sc-option-for strong { font-family: var(--display); font-weight: var(--fw-semi); color: var(--brand-deep); }
@media (max-width: 900px) { .sc-options-grid { grid-template-columns: 1fr; } }

/* FEATURE (single image + points) */
.sc-fsingle { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; }
.sc-fsingle-media .sc-imgph { aspect-ratio: 4 / 5; }
.sc-fsingle-points { display: flex; flex-direction: column; gap: clamp(1.5rem,3vw,2.25rem); }
.sc-fpoint { padding-left: 1.35rem; border-left: 2px solid var(--brand-soft); }
.sc-fpoint .idx { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand); }
.sc-fpoint h3 { font-family: var(--display); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .4rem; }
.sc-fpoint p { margin-top: .5rem; color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); }
@media (max-width: 900px) { .sc-fsingle { grid-template-columns: 1fr; } .sc-fsingle-media { max-width: 24rem; } }

/* ==========================================================================
   TEMPLATE PAGES: Services hub, Blog index, Single post, 404
   Additive; uses this project's tokens.
   ========================================================================== */

/* --- Services hub cards --- */
.sc-svc-cards-sec { padding: var(--section-py) 0; background: var(--bg); }
.sc-svc-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.sc-svc-card { display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: clamp(1.75rem,3vw,2.5rem); transition: border-color .25s var(--ease), transform .25s var(--ease); }
.sc-svc-card:hover { border-color: var(--brand); transform: translateY(-3px); }
.sc-svc-card-num { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand); }
.sc-svc-card h2 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .6rem; }
.sc-svc-card p { margin-top: .85rem; color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); }
.sc-svc-card-link { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .5rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); color: var(--brand-deep); }
.sc-svc-card:hover .sc-svc-card-link { color: var(--brand); }

/* --- Blog index --- */
.sc-posts-sec { padding: var(--section-py) 0; background: var(--bg); }
.sc-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem,3vw,2.5rem); }
.sc-post-card { display: flex; flex-direction: column; }
.sc-post-media { display: block; position: relative; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: var(--bg-tint); border: 1px solid var(--line-soft); }
.sc-post-media img { width: 100%; height: 100%; object-fit: cover; }
.sc-post-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-label); letter-spacing: var(--tr-widest); text-transform: uppercase; color: var(--brand-deep); opacity: .55; }
.sc-post-body { padding-top: 1.1rem; display: flex; flex-direction: column; }
.sc-post-date { font-family: var(--display); font-size: var(--fs-label); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink-muted); }
.sc-post-title { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin-top: .5rem; line-height: 1.2; }
.sc-post-title a { transition: color .2s var(--ease); }
.sc-post-title a:hover { color: var(--brand); }
.sc-post-excerpt { margin-top: .75rem; color: var(--ink-2); font-size: var(--fs-sm); line-height: var(--lh-base); }
.sc-post-link { margin-top: 1rem; display: inline-flex; align-items: center; gap: .4rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); color: var(--brand); }

/* Empty state */
.sc-empty { text-align: center; max-width: 32rem; margin: 0 auto; padding: clamp(2rem,5vw,4rem) 0; }
.sc-empty h2 { font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-d2); letter-spacing: var(--tr-tighter); }
.sc-empty p { margin: 1rem 0 1.75rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }

/* Pagination (WordPress .page-numbers) */
.sc-pagination { margin-top: clamp(2.5rem,5vw,4rem); }
.sc-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.sc-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem; border: 1px solid var(--line); border-radius: 8px; font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--ink); transition: border-color .2s var(--ease), color .2s var(--ease); }
.sc-pagination a.page-numbers:hover { border-color: var(--brand); color: var(--brand); }
.sc-pagination .page-numbers.current { background: var(--brand); border-color: var(--brand); color: #fff; }

/* --- Single post --- */
.sc-post-meta { margin-top: 1rem; font-family: var(--display); font-size: var(--fs-sm); color: var(--ink-muted); letter-spacing: var(--tr-wide); }
.sc-post-hero-media { background: var(--bg); }
.sc-post-hero-fig { margin: 0; }
.sc-post-hero-fig img { width: 100%; max-height: 60vh; object-fit: cover; border-radius: 0; }
.sc-post-content h2 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d2); letter-spacing: var(--tr-tight); margin: 2.5rem 0 1rem; color: var(--ink); }
.sc-post-content h3 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d3); letter-spacing: var(--tr-tight); margin: 2rem 0 .85rem; color: var(--ink); }
.sc-post-content p { color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); margin-bottom: 1.15rem; }
.sc-post-content ul, .sc-post-content ol { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.sc-post-content li { color: var(--ink-2); font-size: var(--fs-body); line-height: var(--lh-relaxed); margin-bottom: .5rem; }
.sc-post-content a { color: var(--brand); border-bottom: 1px solid var(--brand-soft); }
.sc-post-content img { border-radius: 10px; margin: 1.5rem 0; }
.sc-post-content blockquote { margin: 1.75rem 0; padding: .5rem 0 .5rem 1.5rem; border-left: 3px solid var(--brand); font-size: var(--fs-lede); color: var(--ink); font-style: italic; }
.sc-post-back { display: inline-flex; align-items: center; gap: .5rem; margin-top: 2.5rem; font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-sm); color: var(--brand); }

/* --- 404 --- */
.sc-404 { padding: clamp(5rem,12vw,10rem) 0; background: var(--bg-soft); text-align: center; }
.sc-404-code { font-family: var(--display); font-weight: var(--fw-light); font-size: clamp(5rem,16vw,11rem); line-height: 1; letter-spacing: var(--tr-tighter); color: var(--brand-soft); display: block; }
.sc-404 h1 { font-family: var(--display); font-weight: var(--fw-semi); font-size: var(--fs-d1); letter-spacing: var(--tr-tighter); margin-top: .5rem; }
.sc-404 p { margin: 1.25rem auto 0; max-width: 34rem; color: var(--ink-2); font-size: var(--fs-lede); line-height: var(--lh-relaxed); }
.sc-404 .sc-cta-actions { justify-content: center; }
.sc-404-links { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: .85rem 1.75rem; justify-content: center; }
.sc-404-links a { font-family: var(--display); font-weight: var(--fw-med); font-size: var(--fs-sm); color: var(--ink-muted); transition: color .2s var(--ease); }
.sc-404-links a:hover { color: var(--brand); }

/* --- Responsive --- */
@media (max-width: 900px) { .sc-posts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .sc-svc-cards { grid-template-columns: 1fr; } .sc-posts { grid-template-columns: 1fr; } }