/* services.css: /services page styles. Matches the /blog listing pattern:
   left-aligned section-label + section-title + section-subtitle, then body
   content below at the same left origin. Piggybacks on common.css for
   .section, .section-label, .section-title, .section-subtitle, .btn,
   .contact-box. */


.svc-cta-row{
    display:flex;flex-wrap:wrap;
    gap:.8rem;
    margin-top:1.8rem
}

.svc-block{scroll-margin-top:120px;max-width:1100px}
.svc-header{margin-bottom:2.5rem}
.svc-header .section-title{font-size:2rem;margin-bottom:.8rem}
.svc-header .section-subtitle{max-width:1000px}

.svc-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-5);
    margin-bottom:var(--space-6)}
.svc-sub{
    padding:1.6rem 1.8rem
}
.svc-sub h3{
    font-family:var(--font-display);
    font-size:1.05rem;
    font-weight:700;
    color:var(--text-bright);
    margin-bottom:.8rem
}
.svc-sub ul{
    list-style:none;padding:0;margin:0;
    display:flex;flex-direction:column;gap:var(--space-2)}
.svc-sub ul li{
    color:var(--text-secondary);
    font-size:.92rem;
    line-height:1.5;
    padding-left:1.2rem;
    position:relative
}
.svc-sub ul li::before{
    content:'→';
    position:absolute;left:0;
    color:var(--accent);
    font-family:var(--font-mono)
}

/* Starting price in the hero. Buyers were being asked to book a call before
   anything told them the order of magnitude. */
.svc-price{
    font-family:var(--font-mono);
    font-size:.9rem;
    color:var(--text-secondary);
    margin:1.6rem 0 0;
    line-height:1.6
}
.svc-price strong{color:var(--accent);font-weight:700}

/* The homepage hero is centre-aligned, so the strip is centred there. These
   heroes are left-aligned, so centring the figures floats them off the text
   axis; they line up with the h1 instead. The strip also carries its own
   bottom padding for the homepage, which doubles up with the section padding
   here. */
.svc-hero .proof-strip{
    justify-content:flex-start;
    margin-top:2.5rem;
    padding:2rem 0 0
}

/* Included / Good fit / Not a fit reads as three columns. */
.svc-grid-3{grid-template-columns:repeat(3,1fr)}

/* Disqualifying list. Same card, but the accent arrow would read as approval,
   so the marker and the border change instead of the copy shouting. */
.svc-sub-neg{border-color:rgba(136,146,176,.28)}
.svc-sub-neg ul li::before{content:'×';color:var(--text-secondary)}
.svc-sub-neg ul li a{color:var(--accent);text-decoration:none;border-bottom:1px dotted rgba(100,255,218,.4)}
.svc-sub-neg ul li a:hover{border-bottom-style:solid}

/* Sample report and testimonial sit above the closing CTA on /pentest. */
.svc-block .cp-report-box,.svc-block .cp-quote{max-width:900px;margin:0 auto var(--space-5)}

/* "You receive" panel: concrete artifacts the buyer gets, sitting under
   the Process / Fit grid. Visually distinct from .svc-sub: an accent
   stripe and a tinted background so the deliverables read as the payoff
   of the section instead of more list copy. */
.svc-deliverables{
    margin-bottom:var(--space-6);
    padding:1.3rem 1.6rem;
    background:var(--accent-dim);
    border-left:3px solid var(--accent);
    border-radius:var(--radius)}
.svc-deliverables-title{
    font-family:var(--font-mono);
    font-size:.72rem;
    font-weight:700;
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:1.4px;
    margin-bottom:.85rem
}
.svc-deliverables-list{
    list-style:none;padding:0;margin:0;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:.5rem 1.4rem
}
.svc-deliverables-list li{
    color:var(--text-secondary);
    font-size:.92rem;
    line-height:1.55;
    padding-left:1.4rem;
    position:relative
}
.svc-deliverables-list li::before{
    content:'\2713';
    position:absolute;left:0;
    color:var(--accent);
    font-weight:700
}
.svc-deliverables-list li strong{color:var(--text-bright);font-weight:700}

/* FAQ accordion: aligned to the same 900px left column as the service
   blocks above, so label / title / list all share the same left edge. */
.svc-faq{max-width:1100px}
.svc-faq .section-title{font-size:2rem;margin-bottom:.8rem}
.faq-list{
    max-width:760px;
    margin-top:var(--space-6);
    display:flex;flex-direction:column;gap:.6rem
}
.faq-list details{
    background:var(--bg-surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    transition:border-color .2s
}
.faq-list details[open]{border-color:var(--accent)}
.faq-list summary{
    padding:1rem 1.2rem;
    color:var(--text-bright);
    font-family:var(--font-display);
    font-size:.98rem;
    font-weight:600;
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-4)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
    content:'+';
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:1.2rem;
    line-height:1;
    flex-shrink:0;
    transition:transform .2s
}
.faq-list details[open] summary::after{content:'\2212'}
.faq-list p{
    padding:0 1.2rem 1.1rem;
    color:var(--text-secondary);
    font-size:.94rem;
    line-height:1.65;
    margin:0
}

@media(max-width:1000px){
    .svc-grid-3{grid-template-columns:1fr}
}

@media(max-width:780px){
    .svc-grid{grid-template-columns:1fr}
    .svc-h2{font-size:1.55rem}
    .svc-anchors{padding:.5rem 1rem;gap:.3rem}
    .svc-anchors a{font-size:.66rem;padding:.2rem .55rem}
}

/* Cross-links out of /services into the two closing pages (compliance
   pentest, technical partner). /services is what the nav points at and what
   ranks, but the pricing and the sample report live on /compliance-pentest:    before this there was no path between them. Mirrors .home-svc-hint. */
.svc-hint{
    margin-top:1.2rem;
    font-size:.92rem;
    color:var(--text-secondary)
}
.svc-hint a{color:var(--accent);text-decoration:none;border-bottom:1px dotted rgba(100,255,218,.4);transition:border-color .2s}
.svc-hint a:hover{border-bottom-color:var(--accent)}

/* Back link on the individual service pages. /services is the router now,
   so every service page needs a one-click way home to the fork. */
.svc-back{
    display:inline-block;
    font-family:var(--font-mono);font-size:.82rem;
    color:var(--text-secondary);text-decoration:none;
    margin-bottom:1.2rem;transition:color .2s
}
.svc-back:hover{color:var(--accent)}

/* ═══ Service router ═══
   Three doors, one per buyer, each with its own accent. The colour is not
   decoration: it is the only thing that tells you at a glance whether a card
   is for your company, for a firm reselling the work, or for a person. Mint
   is the organisation (it is the brand colour and the main business), amber
   the consultancy (already the colour of the partner block on
   /compliance-pentest), purple the person learning.

   The top rule and the icon chip are lifted from .path-card, the treatment the
   homepage used for its audience split, so the router looks like it belongs to
   this site rather than to a component library. Unlike .path-card the rule is
   always visible: with three cards side by side the colour coding has to be
   readable without hovering. */
.svc-routes{padding-top:var(--space-4)}
.svc-route-grid{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:1.2rem;margin-top:2.5rem
}
.svc-route{
    --route:var(--accent);
    --route-dim:var(--accent-dim);
    position:relative;display:flex;flex-direction:column;
    padding:1.7rem 1.5rem 1.5rem;
    text-decoration:none;overflow:hidden;
    transition:border-color .25s,transform .25s,background .25s
}
.svc-route::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--route),transparent 85%);
    opacity:.55;transition:opacity .25s
}
.svc-route:hover{
    border-color:color-mix(in srgb,var(--route) 45%,transparent);
    background:var(--bg-surface-hover);
    transform:translateY(-3px)
}
.svc-route:hover::before{opacity:1}
.svc-route:focus-visible{outline:2px solid var(--route);outline-offset:3px}

.svc-route-org{--route:var(--accent);--route-dim:var(--accent-dim)}
.svc-route-partner{--route:var(--accent-warm);--route-dim:var(--accent-warm-dim)}
.svc-route-learn{--route:var(--accent-alt);--route-dim:var(--accent-alt-dim)}

.svc-route-icon{
    width:42px;height:42px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    border-radius:var(--radius-lg);
    color:var(--route);
    background:var(--route-dim);
    border:1px solid color-mix(in srgb,var(--route) 22%,transparent);
    margin-bottom:1.1rem;
    transition:transform .25s
}
.svc-route:hover .svc-route-icon{transform:scale(1.06)}
.svc-route-icon svg{width:21px;height:21px}

.svc-route-tag{
    font-family:var(--font-mono);font-size:.68rem;
    text-transform:uppercase;letter-spacing:.7px;
    color:var(--route);margin-bottom:var(--space-2)}
.svc-route-title{
    font-size:1.05rem;font-weight:500;line-height:1.4;
    color:var(--text-bright);margin-bottom:.55rem
}
.svc-route-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.6}
.svc-route-go{
    /* auto, not a fixed gap: the three descriptions differ in length and the
       arrows were landing at three different heights. */
    margin-top:auto;padding-top:1.2rem;
    color:var(--route);font-size:1.05rem;
    opacity:.65;transition:opacity .25s,transform .25s
}
.svc-route:hover .svc-route-go{opacity:1;transform:translateX(4px)}

@media(prefers-reduced-motion:reduce){
    .svc-route,.svc-route-icon,.svc-route-go{transition:none}
    .svc-route:hover{transform:none}
    .svc-route:hover .svc-route-icon{transform:none}
    .svc-route:hover .svc-route-go{transform:none}
}

@media(max-width:1024px){
    .svc-route-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
    .svc-route-grid{grid-template-columns:1fr;gap:var(--space-4)}
    .svc-route{padding:1.4rem 1.3rem 1.2rem}
}

.svc-routes-more{
    margin-top:1.4rem;color:var(--text-secondary);font-size:.92rem;line-height:1.6
}
.svc-routes-more a{color:var(--accent);text-decoration:none;border-bottom:1px dotted rgba(100,255,218,.4);transition:border-color .2s}
.svc-routes-more a:hover{border-bottom-color:var(--accent)}

/* ═══ /pentest ═══
   The scope grid replaces what used to be three separate pages. They were
   never separate products, only different agreed surfaces, so they read as
   one engagement here. */
.svc-scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:var(--space-6)}
.svc-scope{
    padding:var(--space-5)}
.svc-scope h3{font-size:1rem;color:var(--text-bright);margin:0 0 .6rem}
.svc-scope p{color:var(--text-secondary);font-size:.93rem;line-height:1.65;margin:0}

/* The certification path gets a box, not small print: it is the highest-value
   slice of this page and the one with a price already attached. */
.svc-compliance{padding-top:0}
.svc-compliance-box{
    display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap;
    /* Mint, not amber: amber now means "consultancy" across the site, and a
       company certifying is a direct client. */
    background:linear-gradient(180deg,var(--accent-dim),transparent);
    border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);
    border-radius:var(--radius-lg);
    padding:1.8rem
}
.svc-compliance-txt{flex:1;min-width:280px}
.svc-compliance-box h2{font-size:1.15rem;color:var(--text-bright);margin:0 0 .5rem}
.svc-compliance-box p{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin:0}
.svc-compliance-box .btn{white-space:nowrap}

@media(max-width:768px){
    .svc-scope-grid{grid-template-columns:1fr}
    .svc-compliance-box{flex-direction:column;align-items:stretch;padding:1.4rem}
    .svc-compliance-txt{min-width:0}
    .svc-compliance-box .btn{white-space:normal;text-align:center}
}
