/*
Theme Name: Human Quality BPO
Theme URI: https://humanquality.com.mx/
Author: Human Quality
Description: Landing page corporativa para servicios BPO, nearshoring y remote staffing.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: human-quality-bpo
*/

/* ==========================================================================
   Fonts (official Human Quality typography)
   ========================================================================== */
@font-face {
  font-family:"Neo Sans HQ";
  src:url('assets/fonts/neo-sans-pro-bold.woff2') format('woff2'),url('assets/fonts/neo-sans-pro-bold.ttf') format('truetype');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face {
  font-family:"Myriad Pro HQ";
  src:url('assets/fonts/myriad-pro-regular.woff2') format('woff2'),url('assets/fonts/myriad-pro-regular.otf') format('opentype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:"Myriad Pro HQ";
  src:url('assets/fonts/myriad-pro-bold.woff2') format('woff2'),url('assets/fonts/myriad-pro-bold.otf') format('opentype');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}

/* ==========================================================================
   Tokens. Mobile-first: spacing grows at 640px, 900px and 1100px.
   ========================================================================== */
:root {
  --ink:#10263d; --navy:#08233f; --paper:#fbfaf7; --line:#d8d5ce; --muted:#596779; --blue:#157dab; --magenta:#b42369;
  --black:#0c0d12; --dark:#11131a; --canvas:#f7f7f8; --violet:#7354d6; --violet-soft:#a9a2ff;
  --font-body:"Myriad Pro HQ",Arial,sans-serif;
  --font-display:"Neo Sans HQ",Arial,sans-serif;
  --card-shadow:0 14px 40px rgba(26,32,50,.05);
  --header-h:64px;
  --gutter:16px;
  --stack:16px;
  --card-pad-y:48px;
  --card-pad-x:22px;
  --radius:22px;
}
@media (min-width:640px) { :root { --gutter:24px; --stack:24px; --card-pad-y:64px; --card-pad-x:44px; --radius:26px; } }
@media (min-width:900px) { :root { --header-h:84px; --card-pad-y:80px; --card-pad-x:56px; } }
@media (min-width:1100px) { :root { --gutter:36px; --stack:34px; --card-pad-y:96px; --card-pad-x:72px; } }

/* ==========================================================================
   Base
   ========================================================================== */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
body { margin:0; background:#e9ecf3; color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.5; }
img { max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
:focus-visible { outline:2px solid var(--violet); outline-offset:3px; }
.site-header :focus-visible,.hero :focus-visible,.model :focus-visible,.experience :focus-visible,.case-summary :focus-visible,.site-footer :focus-visible { outline-color:var(--violet-soft); }

/* Orphan control: balanced headings, "pretty" paragraphs (script.js adds a no-break space as a cross-browser fallback). */
p,li { text-wrap:pretty; }
h1,h2,h3,h4,label,.hero-stats span,.case-marker span,.metrics span,.service-list p,.process p,.benefits li { text-wrap:balance; }

h2 { margin:0; font-family:var(--font-display); font-size:clamp(1.625rem,1rem + 2.8vw,3.625rem); font-weight:700; line-height:1.08; letter-spacing:-.035em; }
.eyebrow { margin:0 0 16px; color:var(--violet); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow.light { color:var(--violet-soft); }
.section-heading>p:last-child { max-width:520px; margin:20px 0 0; color:var(--muted); font-size:17px; line-height:1.7; }
.inverse>p:last-child { color:#b9c6d0; }

.skip-link { position:fixed; top:-100px; left:16px; z-index:100; padding:12px 18px; border-radius:999px; background:#fff; color:var(--black); font-weight:700; }
.skip-link:focus { top:12px; }
main:focus { outline:none; }

/* ==========================================================================
   Layout
   ========================================================================== */
.site { width:min(1480px,100%); margin:0 auto; background:var(--canvas); box-shadow:0 0 70px rgba(15,20,40,.08); overflow:clip; }
.section-shell { width:min(1220px,calc(100% - 2 * var(--gutter))); margin-inline:auto; }
.card { margin-top:var(--stack); padding:var(--card-pad-y) var(--card-pad-x); border-radius:var(--radius); background:#fff; box-shadow:var(--card-shadow); }

/* ==========================================================================
   Header and navigation
   ========================================================================== */
.site-header { position:sticky; top:0; z-index:30; display:flex; align-items:center; justify-content:space-between; gap:16px; height:var(--header-h); padding:0 var(--gutter); background:var(--black); color:#eef0f5; border-bottom:1px solid rgba(255,255,255,.09); }
.brand { display:flex; flex:0 0 auto; align-items:center; min-height:44px; }
.brand img { display:block; width:156px; height:auto; }

.site-nav { display:flex; align-items:center; gap:32px; min-width:0; font-size:14px; font-weight:700; }
.site-nav a:not(.nav-cta) { display:none; }
.nav-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 18px; border:1px solid rgba(255,255,255,.5); border-radius:999px; color:#fff; font-size:13px; line-height:1.2; text-align:center; transition:background-color .2s ease,color .2s ease; }
.nav-cta:hover { background:#fff; color:var(--dark); }

/* Mobile menu (enabled by script.js; without JavaScript the header keeps the call to action only). */
.menu-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-right:-10px; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; }
.menu-toggle[hidden] { display:none; }
.menu-toggle-icon,.menu-toggle-icon::before,.menu-toggle-icon::after { display:block; width:22px; height:2px; border-radius:2px; background:currentColor; transition:transform .2s ease,background-color .2s ease; }
.menu-toggle-icon { position:relative; }
.menu-toggle-icon::before,.menu-toggle-icon::after { content:""; position:absolute; left:0; }
.menu-toggle-icon::before { top:-7px; }
.menu-toggle-icon::after { top:7px; }
.is-open .menu-toggle-icon { background:transparent; }
.is-open .menu-toggle-icon::before { transform:translateY(7px) rotate(45deg); }
.is-open .menu-toggle-icon::after { transform:translateY(-7px) rotate(-45deg); }
.has-menu .site-nav { position:absolute; top:100%; right:0; left:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:8px var(--gutter) 24px; background:var(--black); border-bottom:1px solid rgba(255,255,255,.09); box-shadow:0 24px 40px rgba(0,0,0,.28); font-size:16px; }
.has-menu.is-open .site-nav { display:flex; }
.has-menu .site-nav a:not(.nav-cta) { display:block; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.has-menu .site-nav .nav-cta { min-height:48px; margin-top:20px; font-size:15px; }

@media (min-width:900px) {
  .site-header { margin:0 22px; padding:0 32px; }
  .brand img { width:216px; }
  .menu-toggle,.menu-toggle[hidden] { display:none; }
  .site-nav,.has-menu .site-nav { position:static; display:flex; flex-direction:row; align-items:center; gap:32px; padding:0; background:none; border:0; box-shadow:none; font-size:14px; }
  .site-nav a:not(.nav-cta),.has-menu .site-nav a:not(.nav-cta) { display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; transition:color .2s ease; }
  .site-nav a:not(.nav-cta):hover { color:var(--violet-soft); }
  .nav-cta,.has-menu .site-nav .nav-cta { min-height:44px; margin:0; padding:10px 20px; font-size:13px; }
}
@media (min-width:1100px) { .site-header { padding:0 42px; } }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero { position:relative; overflow:hidden; background:var(--dark); color:#fff; }
.hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(rgba(17,19,26,.82),rgba(17,19,26,.92)),radial-gradient(circle at 80% 40%,rgba(91,72,255,.5),transparent 35%); }
.hero-image { position:absolute; inset:0; background:url('assets/hero-small.jpg') 77% center/cover no-repeat; filter:saturate(.72) contrast(1.04) brightness(.76); }
.hero-copy { position:relative; z-index:2; padding:56px var(--gutter) 48px; }
.hero h1 { max-width:950px; margin:18px 0 22px; font-family:var(--font-display); font-size:clamp(1.75rem,8.4vw,3.5rem); font-weight:700; line-height:1.02; letter-spacing:-.045em; }
.hero-lede { max-width:590px; margin:0; color:#c7cad4; font-size:16px; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px; margin-top:28px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 26px; border:0; border-radius:999px; font-size:14px; font-weight:700; line-height:1.2; text-align:center; cursor:pointer; transition:background-color .2s ease; }
.button-light { background:#fff; color:var(--navy); box-shadow:0 8px 28px rgba(0,0,0,.18); }
.button-light:hover { background:#eeeafe; }
.text-link { display:inline-flex; align-items:center; gap:6px; min-height:44px; color:#fff; font-size:14px; font-weight:700; transition:color .2s ease; }
.text-link:hover { color:var(--violet-soft); }
.hero-stats { display:grid; gap:14px; margin-top:40px; padding-top:24px; border-top:1px solid rgba(255,255,255,.22); }
.hero-stats div { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:12px; }
.hero-stats strong { color:#8d86ff; font-family:var(--font-display); font-size:28px; font-weight:700; line-height:1; }
.hero-stats span { max-width:190px; color:#aeb3bf; font-size:12px; line-height:1.35; letter-spacing:.08em; text-transform:uppercase; }

@media (min-width:640px) {
  .hero-copy { padding:88px 40px 64px; }
  .hero-lede { font-size:17px; line-height:1.75; }
  .hero-stats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; max-width:720px; margin-top:56px; padding-top:28px; }
  .hero-stats div { grid-template-columns:none; align-items:start; gap:8px; }
  .hero-stats strong { font-size:30px; }
}
@media (min-width:900px) {
  .hero { min-height:760px; margin:0 22px; border-radius:0 0 28px 28px; }
  .hero::before { background:radial-gradient(circle at 82% 60%,rgba(91,72,255,.64),transparent 31%),radial-gradient(circle at 66% 80%,rgba(176,47,168,.22),transparent 28%),linear-gradient(90deg,#11131a 0%,#11131a 44%,rgba(17,19,26,.82) 63%,rgba(17,19,26,.28)); }
  .hero-image { background-image:url('assets/hero-large.jpg'); }
  .hero-copy { width:72%; padding:118px 6.5% 68px; }
  .hero h1 { margin:20px 0 28px; font-size:clamp(3rem,5.6vw,5.25rem); line-height:.98; }
  .hero-actions { margin-top:38px; }
  .hero-stats { margin-top:64px; }
}

/* ==========================================================================
   Intro
   ========================================================================== */
.intro { display:grid; gap:24px; }
.intro-copy { color:var(--muted); font-size:17px; line-height:1.75; }
.intro-copy p { margin:0 0 1em; }
.intro-copy p:last-child { margin-bottom:0; }
@media (min-width:900px) {
  .intro { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(48px,7vw,100px); }
  .intro h2 { max-width:510px; }
}

/* ==========================================================================
   Services
   ========================================================================== */
.service-list { display:grid; gap:12px; margin-top:32px; }
.service-list article { padding:20px 22px 22px; border:1px solid #e2e4ea; border-radius:18px; background:linear-gradient(145deg,#fff,#f7f6fb); }
.service-list span { display:block; margin-bottom:12px; color:#765de0; font-size:13px; }
.service-list h3 { margin:0 0 8px; font-size:18px; font-weight:700; line-height:1.3; text-transform:capitalize; }
.service-list p { margin:0; color:var(--muted); line-height:1.6; }
@media (hover:hover) {
  .service-list article { transition:transform .2s ease,box-shadow .2s ease; }
  .service-list article:hover { transform:translateY(-4px); box-shadow:0 18px 38px rgba(37,28,78,.1); }
}
@media (min-width:640px) {
  .service-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .service-list article { min-height:205px; padding:28px; }
  .service-list span { margin-bottom:36px; }
  .service-list h3 { margin-bottom:12px; }
}
@media (min-width:900px) {
  .services .section-heading { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:end; column-gap:64px; }
  .services .section-heading .eyebrow { grid-column:1/-1; }
  .services .section-heading>p:last-child { margin:0; }
  .service-list { margin-top:56px; }
}
@media (min-width:1100px) { .service-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; } }

/* ==========================================================================
   Operating model
   ========================================================================== */
.model { margin-top:var(--stack); padding:var(--card-pad-y) var(--card-pad-x); overflow:hidden; border-radius:var(--radius); background:radial-gradient(circle at 88% 38%,rgba(94,72,255,.56),transparent 32%),linear-gradient(135deg,#11131a,#19162f 65%,#2c2462); color:#fff; }
.model-inner { display:grid; gap:36px; }
.process { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.17); }
.process li { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:baseline; gap:6px 12px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.process span { color:#a8a2ff; font-size:13px; }
.process strong { font-size:18px; font-weight:700; }
.process p { grid-column:2; margin:0; color:#b9c6d0; line-height:1.6; }
@media (min-width:640px) {
  .process li { grid-template-columns:58px 150px minmax(0,1fr); gap:18px; padding:30px 0; }
  .process p { grid-column:auto; }
}
@media (min-width:1100px) { .model-inner { grid-template-columns:.8fr 1.2fr; gap:90px; } }

/* ==========================================================================
   Benefits
   ========================================================================== */
.benefits { display:grid; gap:28px; }
.benefits ul { margin:0; padding:0; list-style:none; counter-reset:item; }
.benefits li { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:baseline; padding:18px 0; border-bottom:1px solid #e0e2e7; font-size:19px; line-height:1.35; counter-increment:item; }
.benefits li::before { content:'0' counter(item); color:var(--violet); font-size:13px; }
@media (min-width:640px) { .benefits li { grid-template-columns:62px minmax(0,1fr); padding:21px 0; font-size:21px; } }
@media (min-width:900px) { .benefits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(48px,8vw,120px); } }

/* ==========================================================================
   Experience (why Mexico)
   ========================================================================== */
.experience { display:grid; margin-top:var(--stack); overflow:hidden; border-radius:var(--radius); background:#12141b; color:#fff; }
.experience-photo { aspect-ratio:4/3; margin:12px 12px 0; border-radius:14px; background:linear-gradient(rgba(8,35,63,.2),rgba(8,35,63,.2)),url('assets/experience-small.jpg') center 25%/cover no-repeat; filter:saturate(.75); }
.experience-copy { padding:36px var(--card-pad-x) 44px; }
.experience-copy h2 { max-width:650px; }
.experience-intro { max-width:650px; margin:20px 0 0; color:#c7d0d8; font-size:16px; line-height:1.65; }
.metrics { margin-top:28px; border-top:1px solid rgba(255,255,255,.16); }
.metrics article { display:grid; gap:8px; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.metrics strong { color:#938dff; font-family:var(--font-display); font-size:34px; font-weight:700; line-height:1; white-space:nowrap; }
.metrics span { color:#dce4ea; font-size:16px; line-height:1.45; }
.experience-sources { margin:18px 0 0; color:#8e99a6; font-size:12px; line-height:1.6; }
.experience-sources a { color:#b7b2ff; text-decoration:underline; text-underline-offset:3px; }
@media (min-width:640px) {
  .experience-photo { aspect-ratio:16/9; margin:18px 18px 0; border-radius:18px; }
  .experience-copy { padding:56px var(--card-pad-x); }
  .metrics article { grid-template-columns:145px minmax(0,1fr); align-items:center; gap:28px; padding:22px 0; }
  .metrics strong { font-size:clamp(34px,3vw,42px); }
  .metrics span { font-size:17px; }
}
@media (min-width:1100px) {
  .experience { grid-template-columns:repeat(2,minmax(0,1fr)); min-height:620px; }
  .experience-photo { aspect-ratio:auto; margin:26px; background-image:linear-gradient(rgba(8,35,63,.2),rgba(8,35,63,.2)),url('assets/experience-large.jpg'); }
  .experience-copy { align-self:center; padding:74px var(--card-pad-x); }
  .metrics { margin-top:34px; }
}

/* ==========================================================================
   Clients
   ========================================================================== */
.clients-heading { max-width:720px; margin-bottom:32px; }
.client-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; padding:0; list-style:none; border-top:1px solid #e0e2e7; border-left:1px solid #e0e2e7; }
.client-logo { display:flex; align-items:center; justify-content:center; min-height:84px; padding:14px; border-right:1px solid #e0e2e7; border-bottom:1px solid #e0e2e7; background:#fff; }
.client-logo img { display:block; width:100%; max-width:175px; height:44px; object-fit:contain; filter:grayscale(1); opacity:.72; }
@media (hover:hover) {
  .client-logo img { transition:filter .2s ease,opacity .2s ease,transform .2s ease; }
  .client-logo:hover img { filter:grayscale(0); opacity:1; transform:scale(1.03); }
}
@media (min-width:640px) {
  .clients-heading { margin-bottom:44px; }
  .client-logo { min-height:120px; padding:22px; }
  .client-logo img { height:60px; }
}
@media (min-width:900px) {
  .clients-heading { margin-bottom:52px; }
  .client-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media (min-width:1100px) {
  .client-logo { min-height:142px; padding:28px; }
  .client-logo img { height:76px; }
}

/* ==========================================================================
   Success stories carousel
   ========================================================================== */
.case-studies { margin-top:var(--stack); padding:56px 0; background:#fff; }
.case-heading { display:flex; flex-direction:column; align-items:flex-start; gap:24px; margin-bottom:32px; }
.case-heading h2 { max-width:760px; }
.carousel-controls { display:flex; flex:0 0 auto; align-items:center; gap:18px; }
.carousel-controls button { display:grid; place-items:center; width:46px; height:46px; padding:0; border:1px solid #aab3ba; border-radius:50%; background:transparent; color:var(--navy); font-size:20px; cursor:pointer; transition:background-color .2s ease,color .2s ease,border-color .2s ease; }
.carousel-controls button:hover,.carousel-controls button:focus-visible { border-color:var(--navy); background:var(--navy); color:#fff; }
.carousel-controls span { min-width:58px; color:var(--muted); font-size:12px; letter-spacing:.08em; text-align:center; }
.carousel-controls strong { color:var(--ink); }

/* All slides share one grid cell, so the carousel keeps the height of the tallest story and the page never jumps. */
.case-track { display:grid; touch-action:pan-y pinch-zoom; }
.case-slide { display:grid; grid-area:1/1; grid-template-rows:auto 1fr; overflow:hidden; border-radius:20px; background:var(--paper); box-shadow:0 22px 60px rgba(24,23,39,.12); }
.case-slide:not(.is-active) { visibility:hidden; }
@media (prefers-reduced-motion:no-preference) { .case-slide.is-active { animation:caseReveal .35s ease; } }
@keyframes caseReveal { from { opacity:.25; transform:translateY(6px); } to { opacity:1; transform:none; } }

.case-summary { display:flex; flex-direction:column; padding:32px var(--card-pad-x); background:radial-gradient(circle at 20% 100%,rgba(110,77,255,.55),transparent 38%),linear-gradient(145deg,#11131a,#211c42); color:#fff; }
.case-number { color:#8bc8e0; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.case-summary h3 { margin:20px 0 32px; font-family:var(--font-display); font-size:clamp(1.5rem,.9rem + 1.8vw,2.5rem); font-weight:700; line-height:1.1; }
.case-marker { display:flex; flex-wrap:wrap; align-items:center; gap:8px 22px; margin-top:auto; padding-top:24px; border-top:1px solid #61788d; }
.case-marker strong { color:#9c96ff; font-family:var(--font-display); font-size:40px; font-weight:700; line-height:1.1; white-space:nowrap; }
.case-marker span { flex:1 1 150px; max-width:240px; color:#d9e1e7; font-size:14px; line-height:1.5; }
.case-narrative { display:grid; align-content:start; padding:8px var(--card-pad-x) 16px; background:#fafafa; }
.case-narrative>div { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:baseline; gap:6px 12px; padding:22px 0; border-bottom:1px solid var(--line); }
.case-narrative>div:last-child { border-bottom:0; }
.case-narrative span { color:var(--blue); font-size:12px; }
.case-narrative h4 { margin:0; font-size:15px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.case-narrative p { grid-column:2; margin:0; color:var(--muted); font-size:16px; line-height:1.65; }

.carousel-dots { display:flex; justify-content:center; gap:4px; margin-top:12px; }
.carousel-dots button { position:relative; width:46px; height:44px; padding:0; border:0; background:none; cursor:pointer; }
.carousel-dots button::before { content:""; position:absolute; top:50%; right:2px; left:2px; height:3px; margin-top:-1.5px; background:#aeb7bd; transition:background-color .2s ease; }
.carousel-dots button:hover::before { background:#7d878f; }
.carousel-dots button[aria-current="true"]::before { background:var(--magenta); }

@media (min-width:640px) {
  .case-studies { padding:80px 0; }
  .case-heading { flex-direction:row; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:44px; }
  .case-summary { padding:48px var(--card-pad-x); }
  .case-marker strong { font-size:46px; }
  .case-narrative { padding:16px var(--card-pad-x); }
  .case-narrative>div { grid-template-columns:42px 140px minmax(0,1fr); gap:18px; padding:28px 0; }
  .case-narrative h4 { font-size:16px; }
  .case-narrative p { grid-column:auto; }
  .carousel-dots { margin-top:16px; }
}
@media (min-width:1100px) {
  .case-studies { padding:96px 0; }
  .case-heading { margin-bottom:56px; padding:0 18px; }
  .case-slide { grid-template-columns:.86fr 1.14fr; grid-template-rows:none; min-height:560px; border-radius:24px; }
  .case-summary { padding:64px; }
  .case-summary h3 { margin:30px 0 48px; }
  .case-marker { padding-top:28px; }
  .case-marker strong { font-size:54px; }
  .case-narrative { align-content:center; padding:42px 64px; }
}

/* ==========================================================================
   Contact
   ========================================================================== */
.contact { display:grid; gap:36px; margin-bottom:var(--stack); }
.contact-copy { max-width:680px; }
.contact-copy>p:last-child { margin:20px 0 0; color:var(--muted); font-size:17px; line-height:1.7; }
@media (min-width:1100px) {
  .contact { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(56px,6vw,96px); }
  .contact-copy { max-width:none; }
}

/* HubSpot form (HubSpot injects high-specificity layout rules, hence the !important) */
.hq-contact-form { min-width:0; }
.hq-contact-form form { display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:22px; }
.hq-contact-form .hs_message,.hq-contact-form .hs_submit,.hq-contact-form .hs_error_rollup { grid-column:1/-1; }
.hq-contact-form label { display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hq-contact-form .hs-form-field>label { margin-bottom:8px; }
.hq-contact-form .hs-form-required { margin-left:3px; color:var(--magenta); }
.hq-contact-form .hs-field-desc { margin:0 0 8px; color:var(--muted); font-size:13px; }
.hq-contact-form input.hs-input:not([type="checkbox"]):not([type="radio"]),.hq-contact-form textarea.hs-input,.hq-contact-form select { width:100%; border:0; border-bottom:1px solid #c7cad1; border-radius:0; background:transparent; color:inherit; font-size:16px; outline:none; transition:border-color .2s ease,box-shadow .2s ease; }
.hq-contact-form input.hs-input,.hq-contact-form select.hs-input { min-height:0 !important; padding:12px 2px !important; }
.hq-contact-form textarea.hs-input { min-height:120px; padding:12px !important; border:1px solid #c7cad1; border-radius:4px; resize:vertical; }
.hq-contact-form input.hs-input:focus,.hq-contact-form select:focus { border-color:var(--blue); box-shadow:0 1px 0 var(--blue); }
.hq-contact-form textarea.hs-input:focus { border-color:var(--blue); box-shadow:0 0 0 1px var(--blue); }
.hq-contact-form .hs-fieldtype-intl-phone.hs-input { display:flex; gap:14px; }
.hq-contact-form .hs-fieldtype-intl-phone.hs-input::after { display:none; }
.hq-contact-form .hs-fieldtype-intl-phone select { flex:0 0 38%; min-width:0; }
.hq-contact-form .hs-fieldtype-intl-phone input { flex:1 1 0; min-width:0; }
.hq-contact-form .hs-input.invalid,.hq-contact-form .hs-input.error { border-color:var(--magenta); }
.hq-contact-form .hs-error-msgs { margin:6px 0 0; padding:0; list-style:none; }
.hq-contact-form .hs-error-msgs label { display:block; color:var(--magenta); font-size:12px; font-weight:400; letter-spacing:0; text-transform:none; }
.hq-contact-form .hs_error_rollup .hs-error-msgs { margin:0; padding:14px 18px; border:1px solid var(--magenta); border-radius:12px; background:#fbeef4; }
.hq-contact-form .hs-button { width:100%; min-height:48px; padding:15px 25px; border:0; border-radius:999px; background:linear-gradient(90deg,#6547d6,#8552d9); color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.hq-contact-form .hs-button:disabled { opacity:.6; cursor:wait; }
.hq-contact-form .submitted-message { padding:18px 22px; border:1px solid #2e9e6a; border-radius:12px; background:#eef8f3; color:#1d6b47; font-size:15px; line-height:1.6; }
@media (min-width:640px) {
  .hq-contact-form form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hq-contact-form .hs-button { width:auto; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:36px var(--gutter) 40px; background:var(--black); color:#aeb9c3; font-size:13px; line-height:1.5; }
.site-footer img { display:block; width:170px; height:auto; margin-bottom:6px; }
.site-footer p { margin:0; }
@media (min-width:900px) {
  .site-footer { flex-direction:row; align-items:center; justify-content:space-between; gap:24px; padding:32px clamp(24px,6vw,92px); }
  .site-footer img { width:190px; margin-bottom:0; }
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
