@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap');
:root{--color-primary:#334155;--color-secondary:#0F172A;--color-accent: #E2E8F0;--color-background: #f7f7f8;--color-surface: #eff0f1;--color-text: #1A1A22;--color-muted: #6B7280;--nav-fg: #ffffff;--logo-filter: brightness(0) invert(1);--font-heading: Sora, Arial, sans-serif;--font-body: 'Source Sans 3', Arial, sans-serif;--section-padding:84px 20px;--max-width:1160px;--border-radius:20px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;scroll-behavior:smooth}body{overflow-x:clip;font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-background)}p,li,a,span,label,input,textarea,button{font-family:var(--font-body)}p{margin-bottom:1rem}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:650;line-height:1.15}.container{max-width:var(--max-width);margin:auto;padding:0 24px}.site-header{position:sticky;top:0;z-index:1000;background:var(--color-primary);box-shadow:0 5px 20px #0f172a25}.nav-inner{max-width:var(--max-width);margin:auto;padding:8px 24px;display:flex;justify-content:space-between;align-items:center;min-height:70px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.logo{max-height:50px;max-width:170px;filter:var(--logo-filter)}.brand-name{color:#fff;font-family:var(--font-heading);font-size:1.15rem;font-weight:700}.primary-nav{display:flex;align-items:center}.primary-nav ul{display:flex;list-style:none;gap:22px;align-items:center}.primary-nav a{color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;min-height:44px;display:flex;align-items:center}.primary-nav a:hover{color:#99f6e4}#hamburger{display:none;background:none;border:0;color:#fff;font-size:1.6rem;cursor:pointer}.section{padding:var(--section-padding)}.section-heading{text-align:center;margin-bottom:24px}.eyebrow{display:block;color:#0f766e;font-size:.72rem;letter-spacing:.16em;font-weight:700;margin-bottom:12px}.section-heading h2{font-size:clamp(1.7rem,3vw,2.5rem);color:var(--color-primary)}.section-heading h2:after{content:'';display:block;width:52px;height:3px;background:#0f766e;margin:14px auto 0;border-radius:4px}.hero-split{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 70px)}.hero-split-text{background:var(--color-primary);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:70px clamp(28px,7vw,100px)}.hero-split-text .eyebrow{color:#99f6e4}.hero-split h1{font-size:clamp(2.4rem,5vw,5rem);max-width:650px;margin-bottom:24px}.hero-split-text p{font-size:1.2rem;max-width:550px;color:#e2e8f0}.hero-split-image{background:linear-gradient(#0f172a40,#0f172a40),url('hero-800x400.jpg?v=1787041872148') center/cover}.cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 27px;border:2px solid var(--color-secondary);border-radius:var(--border-radius);background:transparent;color:var(--color-secondary);font-weight:700;text-decoration:none;transition:.25s}.hero-split .cta-button{border-color:#99f6e4;color:#fff;margin-top:12px}.cta-button:hover{background:var(--color-secondary);color:#fff;transform:translateY(-2px)}#about{background:#fff}#about p{max-width:900px;margin:0 auto 18px}#about .about-photo{display:block;width:100%;max-height:380px;object-fit:cover;border-radius:var(--border-radius);margin:30px auto 0;box-shadow:0 12px 35px #0f172a20}.section>p{max-width:760px;margin:0 auto 25px;text-align:center}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:30px}.card{background:#fff;border:0;border-radius:var(--border-radius);padding:0 24px 26px;overflow:hidden;text-align:center;box-shadow:0 4px 20px #0000001a;transition:.3s}.card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #0000002e}.card-photo{width:100%;height:180px;object-fit:cover;border-radius:var(--border-radius) var(--border-radius) 0 0;margin-bottom:20px;display:block}.card-icon{width:58px;height:58px;border-radius:50%;background:#ccfbf1;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}.card-icon i{color:#0f766e;font-size:1.35rem}.card h3{font-size:1.15rem;margin-bottom:10px;color:var(--color-primary)}.card p{font-size:.95rem;color:#334155}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-item{margin:0}.gallery-item img{width:100%;height:250px;object-fit:cover;border-radius:var(--border-radius);display:block;box-shadow:0 6px 18px #0f172a18}.contact-details-row{display:flex;flex-wrap:wrap;justify-content:center;gap:25px;margin:28px auto 0}.contact-item{display:flex;align-items:center;gap:10px;max-width:360px}.contact-icon-circle{width:42px;height:42px;flex:none;border-radius:50%;background:#0f766e;display:flex;align-items:center;justify-content:center;color:#fff}.contact-item a{color:var(--color-text);text-decoration:none}.social-links{display:flex;justify-content:center;margin:22px 0}.social-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0f766e;color:#fff;text-decoration:none}.map-wrapper{margin:30px 0;border-radius:var(--border-radius);overflow:hidden}.form-wrapper{overflow:hidden;border-radius:var(--border-radius);border:1px solid #e5e7eb;box-shadow:0 4px 20px #00000012}footer,.sh-ftr{background:var(--color-secondary);color:#fff;padding:38px 20px}.sh-ftr-inner{max-width:var(--max-width);margin:auto}.sh-ftr-cols{display:flex;justify-content:space-between;gap:30px}.sh-ftr-name{font:650 1.3rem var(--font-heading)}.sh-ftr-col h4{margin-bottom:12px}.sh-ftr ul{list-style:none}.sh-ftr a{color:#cbd5e1;text-decoration:none}.sh-ftr a:hover{color:#99f6e4}.sh-ftr-bar{border-top:1px solid #ffffff22;margin-top:30px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:.9rem}.section-heading+.cards-grid{margin-top:34px}@media(max-width:767px){.nav-inner{padding:8px 16px}.primary-nav ul{display:none;position:absolute;top:70px;left:0;right:0;background:var(--color-primary);flex-direction:column;gap:0;padding:10px 20px}.primary-nav ul.open{display:flex}.primary-nav li{width:100%;border-bottom:1px solid #ffffff22}.primary-nav a{font-size:1rem}.primary-nav #hamburger{display:block}.hero-split{grid-template-columns:1fr;min-height:auto}.hero-split-text{min-height:65vh;padding:55px 24px}.hero-split-image{min-height:42vh}.section{padding:58px 16px}.container{padding:0 8px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item img{height:180px}.contact-details-row{flex-direction:column;align-items:flex-start}.sh-ftr-cols,.sh-ftr-bar{flex-direction:column}.sh-ftr-bar{gap:8px}.card-photo{height:190px}}@media(min-width:768px) and (max-width:1050px){.primary-nav ul{gap:10px}.primary-nav a{font-size:.78rem}}
/* ── SiteHub nav token enforcement (post-processed) ── */
:root{--sitehub-header-nav-fg:#334155;--sitehub-on-primary-fg:#ffffff;}

/* ── SiteHub canvas enforcement (post-processed) ── */
body{background:var(--color-background) !important;}

/* ── SiteHub global navigation enforcement (post-processed) ── */
header{position:sticky;top:0;z-index:1000;background:var(--sitehub-header-bg,rgba(255,255,255,.98)) !important;border-bottom:1px solid rgba(0,0,0,.1) !important;box-shadow:0 10px 24px rgba(15,23,42,.08) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}header .nav-inner{max-width:min(1380px,calc(100vw - 32px));margin:0 auto;padding:0 18px;display:flex !important;justify-content:space-between;align-items:center;gap:22px;min-height:84px}header img.logo{max-height:72px;max-width:min(260px,34vw);width:auto;height:auto;display:block;object-fit:contain;filter:none !important;background:transparent !important;padding:0 !important;border-radius:0 !important;box-shadow:none !important;position:relative;z-index:1}.brand{display:flex;align-items:center;gap:14px;min-width:0;text-decoration:none;position:relative}.brand-name{color:var(--sitehub-header-nav-fg,var(--nav-fg,var(--color-primary,#111827)));font-family:var(--font-heading);font-size:1.02rem;font-weight:700;white-space:normal;letter-spacing:.01em;max-width:clamp(180px,32vw,360px);line-height:1.12;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1}nav{display:flex;align-items:center;justify-content:flex-end;flex:1 1 auto;min-width:0}nav #nav-links{display:flex !important;flex-direction:row !important;align-items:center;justify-content:flex-end;flex-wrap:nowrap;list-style:none !important;gap:22px;padding:0;margin:0;background:transparent !important;position:static !important}nav #nav-links li{padding:0;border:none;flex:0 0 auto}nav #nav-links a,nav #nav-links .nav-more-trigger{color:var(--sitehub-header-nav-fg,var(--nav-fg,var(--color-primary,#111827)));text-decoration:none;font-weight:600;font-family:var(--font-body);font-size:.83rem;letter-spacing:.015em;white-space:nowrap;line-height:1.1}nav #nav-links a:hover,nav #nav-links .nav-more-trigger:hover{opacity:.78}nav #nav-links li.nav-more{position:relative;padding-bottom:14px;margin-bottom:-14px}nav #nav-links .nav-more::after{content:'';position:absolute;left:0;right:0;top:100%;height:16px}nav #nav-links .nav-more-trigger{background:transparent;border:0;cursor:pointer;padding:0}nav #nav-links .nav-more-trigger::after{content:' ▾';font-size:.78em}nav #nav-links .sub-nav{display:none;list-style:none;position:absolute;top:calc(100% + 2px);right:0;min-width:200px;padding:14px 16px;margin:0;background:rgba(255,255,255,.98) !important;border:1px solid rgba(0,0,0,.1);border-radius:14px;box-shadow:0 18px 36px rgba(15,23,42,.12);z-index:1002}nav #nav-links .sub-nav li+li{margin-top:10px}nav #nav-links .sub-nav a{display:block;white-space:nowrap;color:var(--sitehub-menu-panel-fg,#1f2937) !important}nav #nav-links .nav-more:hover .sub-nav,nav #nav-links .nav-more:focus-within .sub-nav,nav #nav-links .nav-more.open .sub-nav{display:block}header+section,header+main,header+main>section:first-of-type{margin-top:0 !important;padding-top:0 !important}#hamburger{display:none;background:none;border:none;color:var(--sitehub-header-nav-fg,var(--nav-fg,var(--color-primary,#111827)));font-size:1.5rem;cursor:pointer;font-family:inherit}@media (max-width:1320px){header .nav-inner{padding:0 16px;gap:16px}nav #nav-links{gap:16px}nav #nav-links a,nav #nav-links .nav-more-trigger{font-size:.79rem}}@media (max-width:1024px){#hamburger{display:block !important}header .nav-inner{min-height:78px}nav{position:static !important}header img.logo{max-height:64px;max-width:min(230px,52vw)}nav #nav-links{display:none !important;flex-direction:column !important;justify-content:flex-start !important;align-items:stretch;gap:0 !important;position:absolute !important;top:78px;left:0 !important;right:0 !important;width:auto !important;max-width:none !important;min-width:0 !important;box-sizing:border-box !important;background:rgba(255,255,255,.99) !important;padding:10px 20px calc(env(safe-area-inset-bottom, 0px) + 24px);z-index:999;border-top:1px solid rgba(0,0,0,.1);box-shadow:0 16px 32px rgba(15,23,42,.12);max-height:calc(100dvh - 78px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}nav #nav-links.open{display:flex !important}nav #nav-links li{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}nav #nav-links li.nav-more{padding-bottom:10px;margin-bottom:0}nav #nav-links .nav-more::after{display:none}nav #nav-links a{font-size:1rem;padding:8px 0;display:flex;align-items:center;min-height:44px;color:var(--sitehub-menu-panel-fg,#1f2937) !important}nav #nav-links .nav-more-trigger{width:100%;min-height:44px;text-align:left;padding:8px 0;color:var(--sitehub-menu-panel-fg,#1f2937) !important}nav #nav-links .sub-nav{display:none;position:static;min-width:0;padding:0 0 0 14px;margin-top:6px;background:transparent;border:0;border-radius:0;box-shadow:none}nav #nav-links .nav-more.open .sub-nav{display:block}nav #nav-links .nav-more.open .nav-more-trigger::after{transform:rotate(180deg);display:inline-block}nav #nav-links .sub-nav li{border-bottom:0;padding:6px 0}nav #nav-links .sub-nav a{min-height:36px;font-size:.98rem;opacity:.92;color:var(--sitehub-menu-panel-fg,#1f2937) !important}}@media (max-width:520px){.cards-grid,.card-grid,.cards,.services-grid,.service-grid,.services-cards,.features-grid,.feature-grid,.value-cards,.info-cards,[class*="cards-grid"],[class*="services-grid"],[class*="features-grid"]{grid-template-columns:1fr !important}}
/* ── SiteHub font enforcement (post-processed) ── */
body, p, li, a, span, div, button, input, textarea, label, select, td, th, blockquote, figcaption, nav, ul, ol, dl, dt, dd, address, small, strong, em, b, footer, header, main, section, article, aside, figure, details, summary { font-family: 'Source Sans 3', Arial, sans-serif !important; }
h1, h2, h3, h4, h5, h6, .brand-name, .stat-number { font-family: Sora, Arial, sans-serif !important; }

/* ── SiteHub layout polish (post-processed) ── */
html{scroll-behavior:smooth}body{overflow-x:clip}main>section:not(#hero),body>section:not(#hero),main>.section:not(#hero),body>.section:not(#hero){margin-top:0 !important;margin-bottom:0 !important;padding-top:clamp(30px,3.6vw,54px) !important;padding-bottom:clamp(30px,3.6vw,54px) !important}main>section:not(#hero) .container,body>section:not(#hero) .container,main>.section:not(#hero) .container,body>.section:not(#hero) .container{width:min(1140px,calc(100% - 32px));margin-inline:auto}section h2,.section h2{margin:0 0 .8rem;line-height:1.08;text-wrap:balance}section:not(#hero) h1{margin-bottom:clamp(.5rem,1.4vw,1rem)}section h3,.section h3{line-height:1.14}section p:last-child,.section p:last-child{margin-bottom:0}.sitehub-section-intro,.section-intro,section .lead,.section .lead{max-width:58rem;margin:0 auto 1rem;line-height:1.6}.about-grid,.cards-grid,.gallery-grid,.testimonials-grid,.shop-showcase-grid{row-gap:clamp(14px,2vw,24px) !important}.about-grid{align-items:center}.about-photo,.card img,.shop-showcase-card img,.team-photo,.team-card img,.team-card .team-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(180px,240px)) !important;justify-content:center;gap:14px !important}.gallery-item{margin:0 !important}.gallery-item img{display:block;width:100%;height:170px !important;object-fit:cover;border-radius:var(--border-radius)}section .card,section .shop-showcase-shell,section .testimonial-card,section .blog-card{margin-top:0 !important}@media (max-width:767px){main>section:not(#hero),body>section:not(#hero),main>.section:not(#hero),body>.section:not(#hero){padding-top:30px !important;padding-bottom:30px !important}.sitehub-section-intro,.section-intro,section .lead,.section .lead{margin-bottom:.9rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.gallery-item img{height:150px !important}.about-photo,.card img,.shop-showcase-card img,.team-photo,.team-card img{aspect-ratio:16/10}}.card>.card-icon:first-child{margin-top:clamp(14px,1.8vw,22px) !important}header,.site-header,header .nav-inner,header .sh-hdr-tools,header .sh-site-search{overflow:visible !important}header{position:sticky;z-index:1200 !important}nav #nav-links .sub-nav,.sh-site-search-results{z-index:1300 !important}.sh-timeline{list-style:none;margin:2rem auto;padding:0;position:relative;max-width:820px}.sh-timeline::before{content:"";position:absolute;left:114px;top:10px;bottom:12px;width:2px;background:linear-gradient(var(--color-primary,#0a7),transparent);opacity:.35}.sh-tl-item{position:relative;display:grid;grid-template-columns:100px 1fr;gap:36px;padding:0 0 26px}.sh-tl-year{font-weight:800;color:var(--color-primary,#0a7);text-align:right;font-size:1.02rem;line-height:1.4;position:relative}.sh-tl-year::after{content:"";position:absolute;right:-20px;top:7px;width:13px;height:13px;border-radius:50%;background:var(--color-primary,#0a7);box-shadow:0 0 0 4px #fff,0 0 0 5px rgba(0,0,0,.06)}.sh-tl-title{margin:.1rem 0 .45rem;font-size:1.1rem}.sh-tl-content>*{margin-top:0}@media(max-width:640px){.sh-timeline::before{left:7px}.sh-tl-item{grid-template-columns:1fr;gap:6px}.sh-tl-year{text-align:left;padding-left:26px}.sh-tl-year::after{right:auto;left:1px;top:7px}}article.section p{line-height:1.75;margin:0 0 1.15em;max-width:70ch}article.section>.container{max-width:min(760px,calc(100% - 32px))}article.section figure{margin:1.6rem auto !important;max-width:min(100%,760px);border-radius:12px;overflow:hidden}article.section figure img{width:100%;height:auto;display:block}article.section h2,article.section h3{margin:1.5em 0 .55em;line-height:1.2;text-wrap:balance}.sitehub-blog-landing p{line-height:1.7}.sitehub-cta-band{background:color-mix(in srgb,var(--color-primary,#0a7) 8%,#fff);text-align:center;padding:clamp(38px,5vw,66px) 0}.sitehub-cta-band h2{margin:0 0 1rem;line-height:1.1;text-wrap:balance}.sitehub-cta-band-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.sitehub-cta-band .cta-button{background:var(--color-cta-bg,var(--color-primary,#0a7)) !important;color:#fff !important;border:1px solid transparent !important;text-decoration:none}#hero .hero-actions .btn-secondary,.hero .hero-actions .btn-secondary,.hero-actions a.btn-secondary,#hero .hero-actions .btn.btn-secondary{color:#fff !important;background:rgba(15,15,15,.34) !important;border:2px solid rgba(255,255,255,.9) !important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-decoration:none;font-weight:600}#hero .hero-actions .btn-secondary:hover,.hero .hero-actions .btn-secondary:hover,.hero-actions a.btn-secondary:hover{background:#fff !important;color:var(--color-primary,#0a7) !important;border-color:#fff !important}html #hero.hero-split .hero-split-text .hero-content .hero-actions>.btn.btn-secondary,html #hero.hero-split .hero-actions>.btn.btn-secondary{background:rgba(15,15,15,.6) !important;color:#fff !important;border:2px solid rgba(255,255,255,.92) !important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:var(--border-radius,8px) !important}html #hero.hero-split .hero-split-text .hero-content .hero-actions>.btn.btn-secondary:hover,html #hero.hero-split .hero-actions>.btn.btn-secondary:hover{background:#fff !important;color:var(--color-primary,#0a7) !important;border-color:#fff !important}.sh-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.1rem 0}.sh-table-scroll table{width:100%;border-collapse:collapse}@media(max-width:767px){.sh-table-scroll table{min-width:460px}.sh-table-scroll th,.sh-table-scroll td{white-space:normal;word-break:normal;overflow-wrap:break-word}}#page-hero h1,#page-hero h2,#page-hero h3,#page-hero h4,#page-hero p,#page-hero li,#page-hero .eyebrow,#page-hero [class*=eyebrow]{color:#fff !important}#page-hero .cta-button{background:var(--color-primary,#0a7) !important;color:#fff !important;border:1px solid transparent !important}#page-hero .btn-secondary{color:#fff !important;background:rgba(15,15,15,.34) !important;border:2px solid rgba(255,255,255,.9) !important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#hero .hero-content,#hero>.hero-content.container{margin-left:auto !important;margin-right:auto !important}


/* ── SiteHub enrichment components (art-directed, Phase 2) ── */
.sh-enrichment { padding: var(--section-padding, 72px) 0; }
.sh-enrichment .container { max-width: var(--max-width, 1160px); margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.sh-enrichment .section-title { font-family: var(--font-heading, inherit); color: var(--color-text, #1a1a1a); margin-bottom: 28px; }

/* Tables (comparison + spec) */
.sh-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sh-table { width: 100%; border-collapse: collapse; background: var(--color-surface, #fff); border-radius: var(--border-radius, 10px); overflow: hidden; font-family: var(--font-body, inherit); }
.sh-table th, .sh-table td { padding: 14px 18px; text-align: left; border-bottom: 1px solid color-mix(in srgb, var(--color-muted, #888) 28%, transparent); vertical-align: top; }
.sh-table thead th { background: var(--color-primary, #222); color: var(--sitehub-on-primary-fg, #fff); font-family: var(--font-heading, inherit) !important; font-weight: 600; }
.sh-table tbody th[scope="row"] { font-weight: 600; color: var(--color-text, #1a1a1a); }
.sh-table tbody tr:last-child th, .sh-table tbody tr:last-child td { border-bottom: 0; }
.sh-table.sh-table-2col th[scope="row"] { width: 38%; background: color-mix(in srgb, var(--color-primary, #222) 6%, var(--color-surface, #fff)); }

/* Stat band */
.sh-stat-band { background: var(--color-primary, #222); }
.sh-stat-band .sh-stats { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-around; }
.sh-stat { flex: 1 1 160px; text-align: center; color: var(--sitehub-on-primary-fg, #fff); }
.sh-stat-num { display: block; font-family: var(--font-heading, inherit) !important; font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; line-height: 1.05; color: var(--color-accent, #fff); }
.sh-stat-label { display: block; margin-top: 6px; font-size: 0.95rem; opacity: 0.9; letter-spacing: 0.02em; }

/* Process steps */
.sh-process { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); counter-reset: sh-step; }
.sh-step { background: var(--color-surface, #fff); border-radius: var(--border-radius, 10px); padding: 26px 22px; border: 1px solid color-mix(in srgb, var(--color-muted, #888) 22%, transparent); }
.sh-step-num { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--color-primary, #222); color: var(--sitehub-on-primary-fg, #fff); font-family: var(--font-heading, inherit) !important; font-weight: 700; margin-bottom: 14px; }
.sh-step h3 { font-family: var(--font-heading, inherit); color: var(--color-text, #1a1a1a); margin: 0 0 8px; }
.sh-step p { color: var(--color-muted, #555); margin: 0; }

/* FAQ */
.sh-faq-list { display: grid; gap: 12px; max-width: 820px; }
.sh-faq-item { background: var(--color-surface, #fff); border: 1px solid color-mix(in srgb, var(--color-muted, #888) 22%, transparent); border-radius: var(--border-radius, 10px); padding: 4px 20px; }
.sh-faq-item summary { cursor: pointer; padding: 16px 0; font-family: var(--font-heading, inherit) !important; font-weight: 600; color: var(--color-text, #1a1a1a); list-style: none; position: relative; padding-right: 28px; }
.sh-faq-item summary::-webkit-details-marker { display: none; }
.sh-faq-item summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); color: var(--color-accent, var(--color-primary, #222)); font-size: 1.4rem; line-height: 1; }
.sh-faq-item[open] summary::after { content: "\2212"; }
.sh-faq-item p { color: var(--color-muted, #555); margin: 0 0 16px; }

/* Pricing tiers */
.sh-pricing { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.sh-tier { background: var(--color-surface, #fff); border: 1px solid color-mix(in srgb, var(--color-muted, #888) 22%, transparent); border-radius: var(--border-radius, 10px); padding: 28px 24px; display: flex; flex-direction: column; }
.sh-tier h3 { font-family: var(--font-heading, inherit); color: var(--color-text, #1a1a1a); margin: 0 0 8px; }
.sh-tier-price { font-family: var(--font-heading, inherit) !important; font-size: 1.9rem; font-weight: 700; color: var(--color-primary, #222); margin: 0 0 16px; }
.sh-tier-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sh-tier-list li { color: var(--color-muted, #555); padding-left: 24px; position: relative; }
.sh-tier-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--color-accent, var(--color-primary, #222)); font-weight: 700; }

/* Featured testimonial */
.sh-testimonial-feature .container { max-width: 900px; text-align: center; }
.sh-feature-quote { font-family: var(--font-heading, inherit) !important; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.35; color: var(--color-text, #1a1a1a); margin: 0 0 18px; quotes: "\201C" "\201D"; }
.sh-feature-cite { color: var(--color-muted, #555); font-style: normal; font-weight: 600; }

/* Bar chart — CSS-only; fill heights are % of the largest value */
.sh-bars { display: flex; align-items: flex-end; justify-content: space-around; gap: 14px; height: 260px; padding: 26px 4px 0; border-bottom: 2px solid color-mix(in srgb, var(--color-muted, #94a3b8) 30%, transparent); }
.sh-bar { flex: 1 1 0; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
.sh-bar-fill { position: relative; width: 66%; max-width: 78px; min-height: 4px; max-height: 100%; background: linear-gradient(180deg, var(--color-primary, #222), color-mix(in srgb, var(--color-primary, #222) 78%, var(--color-background, #fff))); border-radius: 10px 10px 0 0; }
.sh-bar-value { position: absolute; top: -24px; left: 50%; transform: translateX(-50%); font-family: var(--font-heading, inherit) !important; font-weight: 700; font-size: .95rem; color: var(--color-text, #1a1a1a); white-space: nowrap; }
.sh-bar-label { margin-top: 12px; font-size: .85rem; color: var(--color-muted, #555); text-align: center; line-height: 1.2; }

/* Donut chart — conic-gradient ring + legend */
.sh-donut-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(24px, 5vw, 56px); }
.sh-donut { position: relative; width: clamp(160px, 40vw, 220px); aspect-ratio: 1; border-radius: 50%; flex: 0 0 auto; }
.sh-donut::after { content: ""; position: absolute; inset: 27%; background: var(--color-background, #fff); border-radius: 50%; }
.sh-donut-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sh-donut-legend li { display: flex; align-items: center; gap: 10px; color: var(--color-text, #1a1a1a); font-size: .95rem; }
.sh-donut-legend .sh-dot { width: 14px; height: 14px; border-radius: 4px; flex: 0 0 auto; }

/* Progress bars — labelled horizontal % bars */
.sh-progress-list { display: grid; gap: 20px; max-width: 720px; }
.sh-progress-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.sh-progress-head span:first-child { color: var(--color-text, #1a1a1a); font-weight: 600; }
.sh-progress-num { font-family: var(--font-heading, inherit) !important; font-weight: 700; color: var(--color-primary, #222); }
.sh-progress-track { height: 12px; border-radius: 999px; background: color-mix(in srgb, var(--color-muted, #94a3b8) 24%, transparent); overflow: hidden; }
.sh-progress-fill { height: 100%; max-width: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--color-primary, #222), var(--color-accent, var(--color-primary, #222))); }

@media (max-width: 640px) {
  .sh-stat-band .sh-stats { gap: 16px; }
  .sh-stat { flex-basis: 40%; }
  /* A 2-col spec table in a horizontal scroller hides its value column off-screen on a phone — stack each
     row (label above value, full width) instead so both are readable without sideways scrolling. */
  .sh-table.sh-table-2col, .sh-table.sh-table-2col tbody, .sh-table.sh-table-2col tr { display: block; width: 100%; }
  .sh-table.sh-table-2col th[scope="row"] { display: block; width: auto; background: transparent; border-bottom: 0; padding: 12px 16px 2px; color: var(--color-primary, #222); }
  .sh-table.sh-table-2col td { display: block; width: auto; padding: 0 16px 14px; border-bottom: 1px solid color-mix(in srgb, var(--color-muted, #888) 22%, transparent); }
  .sh-table.sh-table-2col tr:last-child td { border-bottom: 0; }
}


/* ── SiteHub content-grid resilience (post-processed) ── */
.content-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr)}
.content-grid>*{min-width:0}
.content-grid table,.content-grid .sh-table{width:100%;max-width:100%;table-layout:fixed}
.content-grid table td,.content-grid table th,.content-grid .sh-table td,.content-grid .sh-table th{overflow-wrap:anywhere;word-break:normal}
@media(max-width:820px){.content-grid{grid-template-columns:1fr}}

/* ── SiteHub mobile nav enforcement (post-processed) ── */
@media (max-width: 767px) {
  nav #nav-links, #nav-links { background: rgba(255,255,255,.99) !important; }
  nav #nav-links a, #nav-links a { color: #4b2e1f !important; }
}


/* ── SiteHub Art-Director corrective overrides (post-build, self-checked) ── */
.section-heading{margin-bottom:32px}.section-heading h2{letter-spacing:-.02em}.section>p{line-height:1.7}.hero-split-text{min-width:0;padding-inline:clamp(32px,6vw,88px)}.hero-split h1{letter-spacing:-.035em;max-width:11ch}.hero-split-text p{line-height:1.55}.cards-grid{gap:28px;margin-top:36px}.card{padding:0 26px 30px}.card h3{line-height:1.25}.card p{line-height:1.55}.gallery-grid{gap:22px}.gallery-item,.gallery-item img,.card,.card-photo{min-width:0}.contact-item{min-width:0}.contact-item a{overflow-wrap:anywhere}@media(max-width:767px){.hero-split-text{min-height:58vh;padding:64px 24px}.hero-split h1{max-width:12ch;font-size:clamp(2.35rem,11vw,3.6rem);margin-bottom:20px}.hero-split-text p{font-size:1.08rem}.section-heading{margin-bottom:26px}.cards-grid{gap:22px;margin-top:30px}.card{padding-inline:22px}.gallery-grid{gap:14px}.gallery-item img{height:175px}}@media(min-width:768px) and (max-width:1050px){.hero-split-text{padding-inline:clamp(28px,4vw,56px)}.hero-split h1{font-size:clamp(2.3rem,5vw,4rem)}}

/* === SITEHUB ART-DIRECTOR HERO FIT === */
@media (min-width: 861px) {
  #hero.hero-split .hero-split-text .hero-content > h1,
  #hero.hero-split .hero-split-text .hero-content > .sitehub-hero-heading,
  #hero.hero-split .hero-split-text .hero-content > .hero-title,
  #hero.hero-split .hero-split-text h1,
  #hero:not(.hero-split) .hero-content h1,
  #hero:not(.hero-split) h1 {
    font-size: clamp(1.23rem, 1.75vw, 2.06rem) !important;
    line-height: 1.03 !important;
    text-wrap: balance !important;
  }
}
/* === END ART-DIRECTOR HERO FIT === */


/* ===== SiteHub premium refinements (auto-appended) ===== */
:root{--sh-shadow:0 8px 20px rgba(15,23,42,.13);--sh-shadow-hover:0 14px 30px rgba(15,23,42,.2)}
html{-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img{max-width:100%}
a{transition:color .15s ease,opacity .15s ease}
:where(a,button,[role="button"]):focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:4px}
::selection{background:color-mix(in srgb,var(--color-primary,#0ea5e9) 20%,#ffffff)}
.cta-button,a.cta-button,button.cta-button,.btn,button.btn,a.btn{
  border-radius:clamp(10px,var(--border-radius,12px),16px);
  box-shadow:var(--sh-shadow);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.cta-button:hover,.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-shadow-hover);filter:brightness(1.04)}
.cta-button:active,.btn:active{transform:translateY(0);box-shadow:0 6px 16px rgba(15,23,42,.16)}
@media(prefers-reduced-motion:reduce){.cta-button,.btn,a{transition:none}.cta-button:hover,.btn:hover{transform:none}}
/* Split hero: STACK to a single column on phones/tablets. The generated split-hero rule sets a 2-column grid
   with !important, which overrides the non-!important stack rule — so on a ~412px phone each column is ~198px
   and long headings clip. This mobile-only override (loaded last, also !important) restores the stack. */
@media(max-width:860px){#hero.hero-split{grid-template-columns:1fr !important}#hero.hero-split .hero-split-text .hero-content{width:min(100%,32rem) !important}}
/* Angled section edges: the AI sometimes clips sections with clip-path:polygon() for a diagonal look. The %
   offsets are relative to the section's OWN height, so on a tall+narrow phone the slant becomes STEEP and slices
   into the section's heading/first line (headings appear "covered"). Flatten these decorative clips on small
   screens so nothing is cut off. Loaded last + !important so it beats the generated (non-!important) clip. */
@media(max-width:768px){section,[class*="hero"],[class*="banner"],[class*="cta-section"],[class*="angle"],[class*="slant"],[class*="diagonal"]{clip-path:none !important}}

/* === SITEHUB HEADER FIT === */
@media (min-width:1025px){
header .nav-inner{flex-wrap:nowrap}
header nav #nav-links{flex-wrap:nowrap !important}
header .sh-hdr-tools{flex:0 1 auto;min-width:0}
header .sh-site-search{flex:0 1 auto;min-width:0}
header .sh-site-search form{min-width:0}
header .sh-site-search input{min-width:0}
}
/* === END SITEHUB HEADER FIT === */
/* === SITEHUB COLOURS === */
:root{--font-heading:Helvetica, sans-serif !important;--heading-font:Helvetica, sans-serif !important;--font-body:'Roboto', sans-serif !important;--body-font:'Roboto', sans-serif !important}
main img:not(.logo), section img:not(.logo), article img:not(.logo), .gallery-item img, .card img, .product-card img, .hero-split-image, .sh-bg-layer { filter: saturate(1.45) contrast(1.12) !important; }
/* === END SITEHUB COLOURS === */
