/* Shared components loaded on every page, after each page's inline styles. */

/* ── FONTS (self-hosted, latin subset) ── */
@font-face{font-family:'Outfit';font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fonts/outfit-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/cormorant-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400 600;font-display:swap;src:url(/assets/fonts/cormorant-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}


/* ── BRAND LOGO ── */
.brand-logo{display:block;object-fit:contain;}
.nav-logo img.brand-logo{height:34px;width:auto;max-width:186px;}
.footer-brand img.brand-logo{height:30px;width:auto;max-width:164px;}
@media(max-width:480px){.nav-logo img.brand-logo{height:30px;}}

/* ── FOOTER ADDITIONS ── */
.social-links{display:flex;gap:.7rem;margin-top:1rem;flex-wrap:wrap;}
.social-link{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);transition:background .2s,color .2s;text-decoration:none;flex-shrink:0;}
.social-link:hover{background:var(--teal);color:#fff;}
.social-link svg{width:14px;height:14px;}
.footer-company{font-style:normal;font-size:.76rem;line-height:1.6;color:rgba(255,255,255,.5);margin:0 0 1.4rem;padding-bottom:1.4rem;border-bottom:1px solid rgba(255,255,255,.06);}
.footer-company strong{color:rgba(255,255,255,.78);font-weight:600;}
.footer-company span{margin:0 .35rem;opacity:.5;}
.footer-legal{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center;}
.footer-legal a,.footer-link-btn{color:rgba(255,255,255,.5);text-decoration:none;font:inherit;font-size:.73rem;background:none;border:0;padding:0;cursor:pointer;transition:color .2s;}
.footer-legal a:hover,.footer-link-btn:hover{color:var(--teal);}
.footer-col ul li a{overflow-wrap:anywhere;}

/* ── ABOUT ── */
.about-section{background:var(--cream);padding:6rem 6%;}
.about-inner{display:grid;grid-template-columns:1.25fr 1fr;gap:4rem;align-items:center;max-width:1180px;margin:0 auto;}
.about-copy p{font-size:.98rem;line-height:1.8;color:var(--text);margin-bottom:1.1rem;font-weight:300;}
.about-copy .btn-ghost{margin-top:.4rem;}
.about-facts{background:#fff;border:1px solid var(--border);border-radius:18px;padding:.6rem 1.6rem;box-shadow:0 10px 36px rgba(15,40,48,.06);}
.about-fact{display:flex;flex-direction:column;gap:.25rem;padding:1rem 0;border-bottom:1px solid var(--border);}
.about-fact:last-child{border-bottom:0;}
.about-fact-k{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--teal);}
.about-fact-v{font-size:.9rem;color:var(--dark);line-height:1.5;}

/* ── REVIEWS (pure-CSS infinite marquee) ── */
.reviews-section{background:#fff;padding:6rem 0;overflow:hidden;}
.reviews-head{text-align:center;padding:0 6%;margin-bottom:2.6rem;}
.reviews-summary{font-size:.9rem;color:var(--muted);}
.reviews-summary a{color:var(--teal);font-weight:600;text-decoration:none;}
.reviews-summary a:hover{text-decoration:underline;}
.reviews-score{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:700;color:var(--dark);margin-right:.2rem;}
/* Auto-scroll is driven by scrollLeft (see index.html), not a transform animation: iOS Safari can't
   rasterise an ~8000px-wide masked, animated layer and renders it blank or static. */
.reviews-marquee{position:relative;}
.reviews-marquee::before,.reviews-marquee::after{content:'';position:absolute;top:0;bottom:0;width:6%;z-index:2;pointer-events:none;}
.reviews-marquee::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0));}
.reviews-marquee::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0));}
.reviews-track{display:flex;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;padding:.4rem 0 1.6rem;}
.reviews-track::-webkit-scrollbar{display:none;}
.reviews-group{display:flex;flex:0 0 auto;gap:1.25rem;padding-right:1.25rem;align-items:stretch;}
.reviews-group:first-child{padding-left:6vw;}
.review-card{flex:0 0 340px;margin:0;background:#fff;border:1px solid rgba(15,40,48,.08);border-radius:16px;padding:1.5rem 1.5rem 1.3rem;box-shadow:0 8px 28px rgba(15,40,48,.07);display:flex;flex-direction:column;gap:.9rem;}
.review-stars{display:flex;gap:2px;}
.review-stars .star svg{width:17px;height:17px;fill:#f5b50a;display:block;}
.review-stars .star.off svg{fill:#dfe5e7;}
.review-card blockquote{margin:0;font-size:.84rem;line-height:1.68;color:var(--text);flex:1;}
.review-card figcaption{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.88rem;color:var(--dark);}
.review-avatar{width:32px;height:32px;border-radius:50%;background:var(--teal-pale);color:var(--teal-dark);display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;}
@media (max-width:600px){
  .reviews-section{padding:4.5rem 0;}
  .review-card{flex-basis:282px;padding:1.25rem;}
}
@media (prefers-reduced-motion:reduce){
  .reviews-track{scroll-snap-type:x mandatory;}
  .reviews-group[aria-hidden="true"]{display:none;}
  .review-card{scroll-snap-align:start;}
}

/* ── GROWTH ADD-ONS ── */
.addons-section{background:var(--cream);padding:4.5rem 6%;border-top:1px solid var(--border);}
.addons-head{max-width:640px;margin-bottom:2rem;}
.addons-head .section-title{font-size:clamp(1.6rem,2.4vw,2.1rem);}
.addons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.addon-card{display:flex;gap:.85rem;align-items:flex-start;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:14px;padding:1.15rem;}
.addon-icon{font-size:1.15rem;line-height:1;margin-top:.15rem;}
.addon-card h3{font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:.25rem;}
.addon-card p{font-size:.78rem;color:var(--muted);line-height:1.55;}

/* ── FAQ ── */
.faq-section{background:#fff;padding:6rem 6%;}
.faq-head{text-align:center;margin-bottom:2.4rem;}
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:.8rem;}
.faq-item{border:1px solid var(--border);border-radius:14px;background:var(--cream);transition:background .2s,border-color .2s;}
.faq-item[open]{background:#fff;border-color:rgba(42,143,168,.35);box-shadow:0 8px 28px rgba(42,143,168,.08);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.35rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:14px;}
.faq-item summary h3{font-size:1rem;font-weight:600;color:var(--dark);line-height:1.4;}
.faq-icon{position:relative;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--teal-pale);}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;top:50%;left:50%;width:10px;height:2px;background:var(--teal-dark);border-radius:2px;transform:translate(-50%,-50%);transition:transform .25s;}
.faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);}
.faq-item[open] .faq-icon::after{transform:translate(-50%,-50%) rotate(0deg);}
.faq-answer{padding:0 1.35rem 1.25rem;}
.faq-answer p{font-size:.9rem;line-height:1.75;color:var(--muted);}

/* ── COOKIE BANNER & PREFERENCES ── */
.cc-banner{position:fixed;left:20px;bottom:20px;z-index:1000;max-width:410px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 50px rgba(15,40,48,.18);padding:1.2rem 1.25rem 1.1rem;font-family:'Outfit',sans-serif;animation:cc-in .35s ease;}
@keyframes cc-in{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.cc-banner h2{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--dark);margin-bottom:.35rem;}
.cc-banner p{font-size:.8rem;line-height:1.6;color:var(--muted);margin-bottom:.9rem;}
.cc-banner p a{color:var(--teal);}
.cc-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.cc-btn{flex:1 1 auto;font-family:'Outfit',sans-serif;font-size:.8rem;font-weight:600;padding:.6rem .9rem;border-radius:8px;cursor:pointer;border:1.5px solid var(--teal);background:#fff;color:var(--teal-dark);transition:background .2s,color .2s;}
.cc-btn:hover{background:var(--teal-pale);}
.cc-btn.cc-primary{background:var(--teal);color:#fff;}
.cc-btn.cc-primary:hover{background:var(--teal-dark);}
.cc-btn.cc-link{border-color:transparent;flex:0 0 auto;text-decoration:underline;}
.cc-btn:focus-visible{outline:2px solid var(--teal-dark);outline-offset:2px;}
.cc-modal-backdrop{position:fixed;inset:0;z-index:1001;background:rgba(9,27,34,.55);display:flex;align-items:center;justify-content:center;padding:1rem;}
.cc-modal{background:#fff;border-radius:18px;max-width:520px;width:100%;max-height:calc(100vh - 2rem);overflow:auto;padding:1.6rem;box-shadow:0 24px 70px rgba(0,0,0,.3);font-family:'Outfit',sans-serif;}
.cc-modal h2{font-family:'Cormorant Garamond',serif;font-size:1.55rem;color:var(--dark);margin-bottom:.4rem;}
.cc-modal > p{font-size:.84rem;color:var(--muted);line-height:1.6;margin-bottom:1rem;}
.cc-modal > p a{color:var(--teal);}
.cc-cat{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid var(--border);}
.cc-cat h3{font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:.25rem;}
.cc-cat p{font-size:.78rem;color:var(--muted);line-height:1.55;}
.cc-switch{position:relative;flex-shrink:0;width:44px;height:24px;margin-top:.15rem;}
.cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1;}
.cc-switch span{position:absolute;inset:0;border-radius:24px;background:#cfd8dc;transition:background .2s;}
.cc-switch span::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.cc-switch input:checked + span{background:var(--teal);}
.cc-switch input:checked + span::after{transform:translateX(20px);}
.cc-switch input:disabled + span{opacity:.6;}
.cc-switch input:focus-visible + span{outline:2px solid var(--teal-dark);outline-offset:2px;}
.cc-modal .cc-actions{margin-top:1rem;}
@media (max-width:560px){
  .cc-banner{left:10px;right:10px;bottom:10px;max-width:none;}
  .about-inner{grid-template-columns:1fr;gap:2rem;}
}

/* ── LEAD CAPTURE MODAL (SA Analyser) ── */
.lead-backdrop{position:fixed;inset:0;z-index:1002;background:rgba(9,27,34,.6);display:flex;align-items:center;justify-content:center;padding:1rem;animation:cc-in .25s ease both;}
.lead-modal{position:relative;background:#fff;border-radius:20px;max-width:440px;width:100%;padding:2rem 1.8rem 1.6rem;box-shadow:0 30px 80px rgba(0,0,0,.35);font-family:'Outfit',sans-serif;}
.lead-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:0;background:var(--cream);color:var(--dark);font-size:1.2rem;cursor:pointer;line-height:1;}
.lead-close:hover{background:var(--cream-dark);}
.lead-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--teal-dark);background:var(--teal-pale);padding:.3rem .7rem;border-radius:100px;margin-bottom:.9rem;}
.lead-modal h2{font-family:'Cormorant Garamond',serif;font-size:1.65rem;line-height:1.15;color:var(--dark);margin-bottom:.45rem;}
.lead-modal > p{font-size:.86rem;color:var(--muted);line-height:1.6;margin-bottom:1.2rem;}
.lead-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem;}
.lead-field label{font-size:.78rem;font-weight:600;color:var(--dark);}
.lead-field input{font-family:inherit;font-size:.92rem;padding:.75rem .9rem;border:1.5px solid #dbe3e6;border-radius:10px;color:var(--dark);background:#fff;transition:border-color .2s,box-shadow .2s;}
.lead-field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(42,143,168,.15);}
.lead-field input[aria-invalid="true"]{border-color:#c5454a;}
.lead-check{display:flex;gap:.55rem;align-items:flex-start;font-size:.76rem;color:var(--muted);line-height:1.5;margin:.2rem 0 1rem;}
.lead-check input{margin-top:.2rem;accent-color:var(--teal);}
.lead-error{display:none;font-size:.8rem;color:#c5454a;background:#fbeaea;border-radius:8px;padding:.6rem .8rem;margin-bottom:.8rem;}
.lead-error.visible{display:block;}
.lead-submit{width:100%;font-family:inherit;font-size:.95rem;font-weight:600;padding:.85rem;border-radius:10px;border:0;background:var(--teal);color:#fff;cursor:pointer;box-shadow:0 6px 22px rgba(42,143,168,.3);transition:background .2s;}
.lead-submit:hover{background:var(--teal-dark);}
.lead-submit:disabled{opacity:.7;cursor:wait;}
.lead-fine{font-size:.72rem;color:var(--muted);text-align:center;margin-top:.8rem;line-height:1.5;}
.lead-fine a{color:var(--teal);}

/* ── LEGAL / CONTENT PAGES ── */
.legal-wrap{max-width:820px;margin:0 auto;padding:8rem 6% 5rem;}
.legal-wrap h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,4vw,3.1rem);font-weight:700;color:var(--dark);line-height:1.1;margin-bottom:.6rem;}
.legal-meta{font-size:.82rem;color:var(--muted);margin-bottom:2.4rem;}
.legal-wrap h2{font-family:'Cormorant Garamond',serif;font-size:1.55rem;font-weight:700;color:var(--dark);margin:2.2rem 0 .7rem;}
.legal-wrap h3{font-size:1rem;font-weight:600;color:var(--dark);margin:1.4rem 0 .5rem;}
.legal-wrap p,.legal-wrap li{font-size:.94rem;line-height:1.8;color:var(--text);}
.legal-wrap p{margin-bottom:.9rem;}
.legal-wrap ul{padding-left:1.3rem;margin-bottom:1rem;}
.legal-wrap li{margin-bottom:.35rem;}
.legal-wrap a{color:var(--teal);}
.legal-wrap a.btn-teal{color:#fff;}
.legal-table-wrap{overflow-x:auto;margin:1rem 0 1.4rem;border:1px solid var(--border);border-radius:12px;background:#fff;}
.legal-table{width:100%;border-collapse:collapse;font-size:.84rem;min-width:560px;}
.legal-table th,.legal-table td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.55;}
.legal-table th{background:var(--cream);color:var(--teal-dark);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;}
.legal-table tr:last-child td{border-bottom:0;}
.legal-callout{background:var(--teal-pale);border:1px solid var(--border);border-radius:12px;padding:1rem 1.2rem;margin:1.2rem 0;}
.legal-callout p{margin:0;}

@media (max-width:1024px){
  .addons-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .about-section,.faq-section{padding:4.5rem 6%;}
  .about-inner{grid-template-columns:1fr;gap:2rem;}
  .footer-company span{display:none;}
  .footer-company strong{display:block;}
}
@media (max-width:520px){
  .addons-grid{grid-template-columns:1fr;}
}

@media print{
  .cc-banner,.cc-modal-backdrop,.lead-backdrop,.wa-fab,.back-to-top{display:none!important;}
}

/* ── CONTRAST (WCAG AA on dark footer / sections) ── */
footer{color:rgba(255,255,255,.62);}
.footer-tagline{color:rgba(255,255,255,.62);}
.footer-col .footer-heading{color:rgba(255,255,255,.7);}
.footer-col ul li a{color:rgba(255,255,255,.62);}
.footer-col ul li a:hover,.footer-legal a:hover,.footer-link-btn:hover{color:#7cc7d8;}
.footer-company{color:rgba(255,255,255,.62);}
.footer-legal a,.footer-link-btn{color:rgba(255,255,255,.62);}
.footer-bottom,.footer-bottom span{color:rgba(255,255,255,.62);}
.ug-tag.r2sa{color:#7cc7d8;}
.gcal-secure{color:#fff;}
.pf-pill{color:var(--muted);}
.understand .section-eyebrow,.cta-section .section-eyebrow,.blog-hero .section-eyebrow{color:#7cc7d8;}

/* ── FOOTER: 5 columns (brand + 4 link lists) ── */
@media(min-width:1025px){.footer-top{grid-template-columns:1.4fr repeat(4,1fr);gap:2rem;}}
@media(min-width:769px) and (max-width:1024px){.footer-top{grid-template-columns:repeat(3,1fr);}}
.footer-company a{color:inherit;text-decoration:none;}
.footer-company a:hover{color:#7cc7d8;}

/* ── HOMEPAGE: labels that are not headings ── */
.bi-text .bi-title{font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:.2rem;}
.addon-card .addon-title{font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:.25rem;}
.footer-col .footer-heading{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7);margin-bottom:.9rem;}

/* ── CONTACT / NAP CARD ── */
.nap-card{margin-top:1.6rem;padding:1.2rem 1.3rem;background:#fff;border:1px solid var(--border);border-radius:14px;font-size:.82rem;color:var(--muted);line-height:1.6;}
.nap-card .nap-title{font-weight:700;color:var(--dark);margin-bottom:.35rem;}
.nap-card .nap-line{margin-bottom:.15rem;}
.nap-card a{color:var(--teal);font-weight:600;text-decoration:none;}
.nap-card a:hover{text-decoration:underline;}
.nap-card .nap-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.6rem;}

/* ── UK COVERAGE ── */
.areas-section{background:var(--teal-pale);padding:5rem 6%;border-top:1px solid var(--border);}
.areas-inner{max-width:860px;margin:0 auto;text-align:center;}
.areas-inner .section-sub{max-width:760px;margin:0 auto 1rem;}
.areas-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.6rem 0 1.2rem;}
.areas-links a{background:#fff;border:1px solid var(--border);border-radius:999px;padding:.55rem 1.05rem;font-size:.84rem;font-weight:600;color:var(--teal-dark);text-decoration:none;transition:border-color .2s,box-shadow .2s;}
.areas-links a:hover{border-color:var(--teal);box-shadow:0 6px 18px rgba(34,117,138,.12);}
.areas-more{font-size:.86rem;color:var(--muted);}
.areas-more a{color:var(--teal);font-weight:600;text-decoration:none;}
.areas-more a:hover{text-decoration:underline;}

/* ── ARTICLE / LANDING PAGES ── */
.article-content a{color:var(--teal);font-weight:500;text-decoration:underline;text-decoration-color:rgba(34,117,138,.35);text-underline-offset:2px;}
.article-content a:hover{text-decoration-color:var(--teal);}
.article-content .city-list{list-style:none;margin-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;}
.article-content .city-list a{display:block;background:#fff;border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;text-decoration:none;font-weight:600;color:var(--teal-dark);}
.article-content .city-list a:hover{border-color:var(--teal);}
@media(max-width:560px){.article-content .city-list{grid-template-columns:1fr;}}
.article-cta{background:var(--dark);color:rgba(255,255,255,.78);border-radius:18px;padding:2rem 2.2rem;margin:2.5rem 0 2rem;}
.article-cta h2,.article-cta h3{font-family:'Cormorant Garamond',serif;font-size:1.65rem;font-weight:700;color:#fff;line-height:1.2;margin-bottom:.6rem;}
.article-cta p{font-size:.92rem;line-height:1.65;margin-bottom:1.3rem;color:rgba(255,255,255,.78);}
.article-cta p a{color:#7cc7d8;font-weight:600;}
.article-cta .btn-primary{display:inline-block;background:var(--teal);color:#fff;padding:.8rem 1.6rem;border-radius:8px;font-weight:600;font-size:.92rem;text-decoration:none;transition:background .2s;}
.article-cta .btn-primary:hover{background:var(--teal-dark);}
@media(max-width:560px){.article-cta{padding:1.6rem 1.3rem;}}
