/* ═══════════════════════════════════════════════════════════════
   GOLCO AUTOMOTIVE — Modern Rebuild v2
   Responsive: 320px → 3440px+  |  ADA/WCAG 2.1 AA
   ═══════════════════════════════════════════════════════════════ */
:root {
  --red:#C41E24;--red-dark:#9A181D;--red-light:#E8353B;
  --charcoal:#1A1A1A;--charcoal-mid:#2C2C2C;--graphite:#3A3A3A;
  --slate:#6B6B6B;--silver:#9A9A9A;--mist:#D4D4D4;
  --cream:#F5F0EB;--off-white:#FAFAFA;--white:#FFFFFF;
  --text-primary:var(--charcoal);--text-muted:var(--slate);
  --accent:var(--red);--accent-hover:var(--red-dark);--accent-light:var(--red-light);
  --border-color:rgba(0,0,0,0.08);--border-light:rgba(255,255,255,0.1);
  --fs-hero:clamp(2.5rem,5vw + 1rem,6.5rem);
  --fs-h1:clamp(2rem,3.5vw + 0.5rem,5rem);
  --fs-h2:clamp(1.75rem,2.5vw + 0.5rem,3.5rem);
  --fs-h3:clamp(1.25rem,1.5vw + 0.3rem,2.25rem);
  --fs-h4:clamp(1.1rem,1vw + 0.3rem,1.75rem);
  --fs-body:clamp(1rem,0.5vw + 0.75rem,1.375rem);
  --fs-body-lg:clamp(1.05rem,0.6vw + 0.75rem,1.5rem);
  --fs-small:clamp(0.85rem,0.4vw + 0.6rem,1.125rem);
  --fs-xs:clamp(0.75rem,0.3vw + 0.55rem,1rem);
  --fs-nav:clamp(0.9rem,0.4vw + 0.65rem,1.15rem);
  --sp-section:clamp(60px,8vw,160px);
  --sp-block:clamp(32px,4vw,80px);
  --sp-gutter:clamp(16px,2vw,32px);
  --container-max:1280px;
  --container-pad:clamp(20px,4vw,60px);
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --duration:0.4s;--duration-fast:0.2s;
  --radius-sm:6px;--radius-md:12px;--radius-lg:20px;
  --shadow-card:0 2px 12px rgba(0,0,0,0.06);
  --shadow-md:0 4px 20px rgba(0,0,0,0.1);
  --shadow-lg:0 12px 40px rgba(0,0,0,0.15);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:var(--fs-body);line-height:1.65;color:var(--text-primary);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
body.loading{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3,h4,h5,h6{font-family:'Outfit','DM Sans',sans-serif;font-weight:700;line-height:1.15;letter-spacing:-0.02em}

/* ADA */
.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--white);padding:12px 24px;font-weight:700;font-size:var(--fs-small);border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:10000;transition:top 0.3s var(--ease-out)}
.skip-link:focus{top:0;outline:3px solid var(--white);outline-offset:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
:focus:not(:focus-visible){outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1 !important;transform:none !important}
  .preloader{display:none !important}
  .hero__bg img{transform:none !important}
  .ticker__track{animation:none !important}
}

/* PRELOADER */
.preloader{position:fixed;inset:0;z-index:9999;background:var(--charcoal);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 0.6s var(--ease-out),visibility 0.6s var(--ease-out)}
.preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.preloader__wrench{width:64px;height:64px;animation:wrenchSpin 1.2s ease-in-out infinite}
@keyframes wrenchSpin{0%{transform:rotate(0)}25%{transform:rotate(-30deg)}50%{transform:rotate(15deg)}75%{transform:rotate(-10deg)}100%{transform:rotate(0)}}
.preloader__bar-track{width:120px;height:3px;background:rgba(255,255,255,0.1);border-radius:4px;margin-top:28px;overflow:hidden}
.preloader__bar{width:0;height:100%;background:var(--accent);border-radius:4px;transition:width 0.3s var(--ease-out)}
.preloader__text{font-size:var(--fs-xs);color:rgba(255,255,255,0.35);margin-top:16px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}

/* SCROLL PROGRESS */
.scroll-progress{position:fixed;top:0;left:0;z-index:1001;width:0;height:3px;background:var(--accent);transition:width 0.05s linear;pointer-events:none}

/* CONTAINER */
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad)}

/* GRAIN OVERLAY */
.grain{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'DM Sans',sans-serif;font-weight:600;font-size:var(--fs-small);padding:clamp(14px,1.2vw,20px) clamp(28px,2.5vw,48px);border-radius:var(--radius-sm);transition:all var(--duration) var(--ease-out);min-height:48px;cursor:pointer;text-align:center;white-space:nowrap;position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);transition:left 0.5s var(--ease-out);pointer-events:none}
.btn:hover::before{left:100%}
.btn--primary{background:var(--accent);color:var(--white);border:2px solid var(--accent)}
.btn--primary:hover,.btn--primary:focus-visible{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 24px rgba(196,30,36,0.35)}
.btn--outline{background:transparent;color:var(--accent);border:2px solid var(--accent)}
.btn--outline:hover,.btn--outline:focus-visible{background:var(--accent);color:var(--white);transform:translateY(-2px)}
.btn--outline-white{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,0.35)}
.btn--outline-white:hover,.btn--outline-white:focus-visible{background:var(--white);color:var(--charcoal);border-color:var(--white)}
.btn--dark{background:var(--charcoal);color:var(--white);border:2px solid var(--charcoal)}
.btn--dark:hover,.btn--dark:focus-visible{background:var(--graphite);border-color:var(--graphite);transform:translateY(-2px)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(26,26,26,0.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-light);transition:background var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out)}
.nav.scrolled{background:rgba(26,26,26,0.98);box-shadow:0 2px 20px rgba(0,0,0,0.3)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:clamp(64px,5vw,90px);gap:20px}
.nav__logo{flex-shrink:0}
.nav__logo img{height:clamp(32px,3vw,50px);width:auto}
.nav__links{display:flex;align-items:center;gap:clamp(20px,2.5vw,40px)}
.nav__link{font-size:var(--fs-nav);font-weight:500;color:rgba(255,255,255,0.7);padding:8px 0;position:relative;min-height:48px;display:inline-flex;align-items:center;transition:color var(--duration-fast) var(--ease-out)}
.nav__link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent);transition:width var(--duration) var(--ease-out)}
.nav__link:hover,.nav__link:focus-visible,.nav__link.active{color:var(--white)}
.nav__link:hover::after,.nav__link:focus-visible::after,.nav__link.active::after{width:100%}
.nav__phone{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--white);font-size:var(--fs-nav);min-height:48px;padding:8px 0}
.nav__phone svg{width:18px;height:18px;color:var(--accent);flex-shrink:0}
.nav__phone:hover{color:var(--accent)}
.nav__hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;padding:12px;z-index:1001}
.nav__hamburger span{display:block;width:100%;height:2px;background:var(--white);border-radius:2px;transition:all var(--duration) var(--ease-out);transform-origin:center}
.nav__hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav__hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav__hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.nav__mobile{position:fixed;inset:0;background:rgba(26,26,26,0.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;opacity:0;visibility:hidden;transition:opacity var(--duration) var(--ease-out),visibility var(--duration) var(--ease-out)}
.nav__mobile.open{opacity:1;visibility:visible}
.nav__mobile-link{font-family:'Outfit',sans-serif;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:600;color:rgba(255,255,255,0.6);padding:16px 32px;transition:color var(--duration-fast) var(--ease-out),transform var(--duration) var(--ease-out);transform:translateY(20px);opacity:0;min-height:48px;display:flex;align-items:center}
.nav__mobile.open .nav__mobile-link{transform:translateY(0);opacity:1}
.nav__mobile.open .nav__mobile-link:nth-child(1){transition-delay:0.1s}
.nav__mobile.open .nav__mobile-link:nth-child(2){transition-delay:0.15s}
.nav__mobile.open .nav__mobile-link:nth-child(3){transition-delay:0.2s}
.nav__mobile.open .nav__mobile-link:nth-child(4){transition-delay:0.25s}
.nav__mobile.open .nav__mobile-link:nth-child(5){transition-delay:0.3s}
.nav__mobile-link:hover,.nav__mobile-link:focus-visible{color:var(--white)}
.nav__mobile-phone{margin-top:32px;font-size:var(--fs-h3);font-weight:700;color:var(--accent);transform:translateY(20px);opacity:0;transition:all var(--duration) var(--ease-out) 0.35s;min-height:48px;display:flex;align-items:center}
.nav__mobile.open .nav__mobile-phone{transform:translateY(0);opacity:1}

/* HERO */
.hero{position:relative;min-height:clamp(550px,80vh,950px);display:flex;align-items:center;background:var(--charcoal);overflow:hidden;padding-top:clamp(64px,5vw,90px)}
.hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__bg img{width:100%;height:120%;object-fit:cover;object-position:center;opacity:0.3;filter:grayscale(30%);will-change:transform}
.hero__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,26,26,0.94) 0%,rgba(26,26,26,0.65) 50%,rgba(26,26,26,0.88) 100%)}
.hero__grid-lines{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero__grid-lines::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px);background-size:80px 80px}
.hero__content{position:relative;z-index:2;padding:var(--sp-section) 0}

/* Hero two-column grid */
.hero__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4vw,80px);align-items:center}
.hero__image{position:relative;z-index:2}
.hero__image-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.4)}
.hero__image-frame img{width:100%;height:auto;display:block}
.hero__image-accent{position:absolute;inset:0;border:2px solid rgba(196,30,36,0.3);border-radius:var(--radius-lg);pointer-events:none}
.hero__image-caption{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:var(--fs-small);color:rgba(255,255,255,0.5);font-weight:500}
.hero__image-caption svg{color:var(--accent);flex-shrink:0}
.hero__badge{display:inline-flex;align-items:center;gap:8px;background:rgba(196,30,36,0.12);border:1px solid rgba(196,30,36,0.25);color:var(--accent-light);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;padding:8px 16px;border-radius:100px;margin-bottom:clamp(20px,2vw,32px)}
.hero__badge svg{width:14px;height:14px}
.hero__title{font-size:var(--fs-hero);color:var(--white);margin-bottom:clamp(16px,2vw,28px);font-weight:800;letter-spacing:-0.03em;line-height:1.05}
.hero__title .accent{color:var(--accent)}
.hero__subtitle{font-size:var(--fs-body-lg);color:rgba(255,255,255,0.65);line-height:1.7;margin-bottom:clamp(28px,3vw,48px);max-width:560px}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px}
.hero__info-bar{display:flex;flex-wrap:wrap;gap:clamp(24px,3vw,48px);margin-top:clamp(32px,4vw,64px);padding-top:clamp(24px,3vw,40px);border-top:1px solid rgba(255,255,255,0.08)}
.hero__info-item{display:flex;align-items:flex-start;gap:12px}
.hero__info-icon{width:20px;height:20px;color:var(--accent);flex-shrink:0;margin-top:2px}
.hero__info-text{font-size:var(--fs-small);color:rgba(255,255,255,0.55);line-height:1.5}
.hero__info-text strong{display:block;color:var(--white);font-weight:600}

/* SECTIONS */
.section{padding:var(--sp-section) 0;position:relative}
.section--dark{background:var(--charcoal);color:var(--white)}
.section--cream{background:var(--cream)}
.section__label{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--accent);margin-bottom:clamp(12px,1.5vw,20px)}
.section__label::before{content:'';width:32px;height:2px;background:var(--accent);flex-shrink:0}
.section__title{font-size:var(--fs-h1);margin-bottom:clamp(12px,1.5vw,20px)}
.section__subtitle{font-size:var(--fs-body-lg);color:var(--text-muted);line-height:1.7}
.section--dark .section__subtitle{color:rgba(255,255,255,0.6)}
.section__header{margin-bottom:var(--sp-block)}

/* SERVICE CARDS — 3D TILT */
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--sp-gutter)}
.service-card{position:relative;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card);border:1px solid var(--border-color);transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out);transform-style:preserve-3d;will-change:transform}
.service-card:hover{box-shadow:0 20px 50px rgba(0,0,0,0.12)}
.service-card__shine{position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:var(--radius-md);background:radial-gradient(circle at 50% 50%,rgba(255,255,255,0.1),transparent 60%);opacity:0;transition:opacity 0.3s}
.service-card:hover .service-card__shine{opacity:1}
.service-card__img{width:100%;aspect-ratio:4/3;overflow:hidden}
.service-card__img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease-out)}
.service-card:hover .service-card__img img{transform:scale(1.06)}
.service-card__body{padding:clamp(20px,2vw,32px)}
.service-card__name{font-size:var(--fs-h4);font-weight:700;margin-bottom:8px}
.service-card__desc{font-size:var(--fs-small);color:var(--text-muted);line-height:1.6}
.service-card__link{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-small);font-weight:600;color:var(--accent);margin-top:12px;min-height:48px;transition:gap var(--duration) var(--ease-out)}
.service-card__link:hover{gap:12px}
.service-card__link svg{width:16px;height:16px;transition:transform var(--duration) var(--ease-out)}
.service-card__link:hover svg{transform:translateX(4px)}

/* ABOUT — card layout */
.about__header{margin-bottom:clamp(16px,2vw,24px)}
.about__intro{margin-bottom:var(--sp-block)}
.about__intro p{font-size:var(--fs-body-lg);color:var(--text-muted);line-height:1.8}
.about__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-gutter)}
.about__card{background:var(--off-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:clamp(28px,3vw,48px);transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out),border-color var(--duration) var(--ease-out)}
.about__card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(196,30,36,0.2)}
.about__card-icon{width:clamp(52px,4vw,64px);height:clamp(52px,4vw,64px);background:rgba(196,30,36,0.08);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:clamp(20px,2vw,28px);transition:background 0.3s var(--ease-out),transform 0.3s var(--ease-out)}
.about__card:hover .about__card-icon{background:var(--accent);transform:scale(1.06)}
.about__card-icon svg{width:28px;height:28px;color:var(--accent);transition:color 0.3s}
.about__card:hover .about__card-icon svg{color:var(--white)}
.about__card-title{font-size:var(--fs-h3);margin-bottom:12px}
.about__card-text{font-size:var(--fs-body);color:var(--text-muted);line-height:1.7}

/* STATS + TICKER */
.stats{background:var(--charcoal);padding:clamp(40px,4vw,72px) 0;position:relative;overflow:hidden}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-gutter);text-align:center;position:relative;z-index:2}
.stats__item{padding:clamp(16px,2vw,24px)}
.stats__number{font-family:'Outfit',sans-serif;font-size:var(--fs-h1);font-weight:800;color:var(--accent);line-height:1;margin-bottom:8px}
.stats__label{font-size:var(--fs-small);color:rgba(255,255,255,0.55);font-weight:500}
.ticker{position:relative;z-index:1;overflow:hidden;padding:clamp(16px,2vw,28px) 0;margin-top:clamp(20px,2vw,32px);border-top:1px solid rgba(255,255,255,0.05)}
.ticker__track{display:flex;gap:clamp(32px,4vw,60px);animation:ticker 30s linear infinite;width:max-content}
.ticker__item{font-family:'Outfit',sans-serif;font-size:clamp(0.9rem,1.2vw,1.3rem);font-weight:700;color:rgba(255,255,255,0.07);text-transform:uppercase;letter-spacing:0.12em;white-space:nowrap;flex-shrink:0;user-select:none}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* REVIEWS */
.reviews__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:var(--sp-gutter)}
.review-card{background:var(--white);border-radius:var(--radius-md);padding:clamp(24px,3vw,40px);box-shadow:var(--shadow-card);border:1px solid var(--border-color);display:flex;flex-direction:column;transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out)}
.review-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.review-card__header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.review-card__avatar{width:40px;height:40px;border-radius:50%;background:var(--cream);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent);font-size:1rem}
.review-card__avatar img{width:100%;height:100%;object-fit:cover}
.review-card__stars{color:#F59E0B;font-size:var(--fs-body);letter-spacing:3px;margin-bottom:16px}
.review-card__quote{font-size:var(--fs-body);line-height:1.7;color:var(--text-primary);flex:1;margin-bottom:20px}
.review-card__author{font-weight:700;font-size:var(--fs-small)}
.review-card__role{font-size:var(--fs-xs);color:var(--text-muted)}
.reviews__google-link{display:inline-flex;align-items:center;gap:8px;margin-top:var(--sp-block);font-size:var(--fs-small);font-weight:600;color:var(--accent)}
.reviews__google-link:hover{text-decoration:underline}
.reviews__rating-summary{display:flex;align-items:center;gap:16px;margin-bottom:var(--sp-block);flex-wrap:wrap}
.reviews__rating-big{font-family:'Outfit',sans-serif;font-size:var(--fs-h1);font-weight:800;color:var(--text-primary);line-height:1}
.reviews__rating-stars{color:#F59E0B;font-size:clamp(1.2rem,1.5vw,1.6rem);letter-spacing:2px}
.reviews__rating-count{font-size:var(--fs-small);color:var(--text-muted)}

/* BRANDS */
.brands__grid{display:flex;flex-wrap:wrap;gap:clamp(12px,1.5vw,20px);justify-content:center}
.brand-tag{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.65);font-size:var(--fs-small);font-weight:600;padding:clamp(10px,1vw,14px) clamp(18px,2vw,28px);border-radius:var(--radius-sm);letter-spacing:0.04em;transition:all 0.3s var(--ease-out)}
.brand-tag:hover{background:rgba(196,30,36,0.12);border-color:rgba(196,30,36,0.3);color:var(--white);transform:translateY(-2px)}

/* HOURS */
.hours{width:100%;max-width:400px}
.hours__row{display:flex;justify-content:space-between;align-items:center;padding:clamp(10px,1vw,14px) 0;border-bottom:1px solid rgba(255,255,255,0.06);font-size:var(--fs-small)}
.hours__row:last-child{border-bottom:none}
.hours__day{font-weight:500;color:rgba(255,255,255,0.65)}
.hours__time{font-weight:600;color:var(--white)}
.hours__time--closed{color:var(--accent)}
.hours__row--today{background:rgba(196,30,36,0.1);border-radius:var(--radius-sm);padding-left:12px;padding-right:12px;border-bottom-color:transparent}
.hours__row--today .hours__day{color:var(--white);font-weight:700}

/* CTA */
.cta{position:relative;background:var(--accent);color:var(--white);text-align:center;padding:var(--sp-section) 0;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,0.08) 0%,transparent 50%),radial-gradient(circle at 80% 30%,rgba(0,0,0,0.1) 0%,transparent 50%)}
.cta__content{position:relative;z-index:1}
.cta__title{font-size:var(--fs-h1);font-weight:800;margin-bottom:16px}
.cta__text{font-size:var(--fs-body-lg);opacity:0.9;margin-bottom:clamp(28px,3vw,48px);max-width:560px;margin-left:auto;margin-right:auto}
.cta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.cta__phone{font-family:'Outfit',sans-serif;font-size:var(--fs-h2);font-weight:800;display:block;margin-top:clamp(20px,2vw,32px);color:var(--white)}

/* CONTACT */
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-block)}
.contact__info{display:flex;flex-direction:column;gap:clamp(24px,3vw,40px)}
.contact__item{display:flex;gap:16px;align-items:flex-start}
.contact__icon{width:clamp(48px,3.5vw,56px);height:clamp(48px,3.5vw,56px);background:rgba(196,30,36,0.08);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact__icon svg{width:22px;height:22px;color:var(--accent)}
.contact__item h3{font-size:var(--fs-h4);margin-bottom:4px}
.contact__item p,.contact__item a{font-size:var(--fs-body);color:var(--text-muted);line-height:1.5}
.contact__item a:hover{color:var(--accent)}

/* LAZY MAP */
.map-wrap{width:100%;height:clamp(280px,28vw,420px);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-color);position:relative}
.map-wrap iframe{width:100%;height:100%;border:none}
.map-placeholder{width:100%;height:100%;background:var(--charcoal-mid);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background 0.3s;gap:12px}
.map-placeholder:hover{background:var(--graphite)}
.map-placeholder svg{width:36px;height:36px;color:var(--accent)}
.map-placeholder span{font-size:var(--fs-small);color:rgba(255,255,255,0.6);font-weight:500}

/* CONTACT FORM */
.contact__form{background:var(--off-white);border-radius:var(--radius-lg);padding:clamp(24px,3vw,48px);border:1px solid var(--border-color)}
.form__group{margin-bottom:clamp(16px,1.5vw,24px)}
.form__label{display:block;font-size:var(--fs-small);font-weight:600;margin-bottom:8px;color:var(--text-primary)}
.form__input,.form__textarea{width:100%;padding:clamp(12px,1vw,16px) clamp(14px,1.2vw,20px);font-family:'DM Sans',sans-serif;font-size:var(--fs-body);color:var(--text-primary);background:var(--white);border:2px solid var(--mist);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:48px}
.form__input:focus,.form__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(196,30,36,0.1);outline:none}
.form__textarea{min-height:140px;resize:vertical}
.form__input::placeholder,.form__textarea::placeholder{color:var(--silver)}
.form__error{font-size:var(--fs-xs);color:var(--accent);margin-top:6px;display:none}
.form__group.error .form__error{display:block}
.form__group.error .form__input,.form__group.error .form__textarea{border-color:var(--accent)}
.form__success{display:none;background:#059669;color:var(--white);padding:16px 20px;border-radius:var(--radius-sm);font-weight:600;text-align:center;margin-top:16px}
.form__success.visible{display:block}

/* FOOTER */
.footer{background:var(--charcoal);color:var(--white);padding:clamp(48px,5vw,80px) 0 0}
.footer__top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-block);padding-bottom:clamp(40px,4vw,64px);border-bottom:1px solid rgba(255,255,255,0.06)}
.footer__brand img{height:clamp(36px,3vw,50px);width:auto;margin-bottom:16px}
.footer__brand p{font-size:var(--fs-small);color:rgba(255,255,255,0.45);line-height:1.7;max-width:280px}
.footer__heading{font-size:var(--fs-h4);font-weight:700;margin-bottom:clamp(16px,1.5vw,24px)}
.footer__links{display:flex;flex-direction:column;gap:10px}
.footer__link{font-size:var(--fs-small);color:rgba(255,255,255,0.45);transition:color var(--duration-fast) var(--ease-out);min-height:40px;display:inline-flex;align-items:center}
.footer__link:hover{color:var(--white)}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;padding:clamp(20px,2vw,32px) 0;font-size:var(--fs-xs);color:rgba(255,255,255,0.3)}
.footer__bottom a{color:rgba(255,255,255,0.45)}
.footer__bottom a:hover{color:var(--white)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.7s var(--ease-out),transform 0.7s var(--ease-out)}
.reveal.revealed{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* SERVICES PAGE */
.page-header{position:relative;background:var(--charcoal);padding-top:calc(clamp(64px,5vw,90px) + clamp(40px,5vw,80px));padding-bottom:clamp(40px,5vw,80px);overflow:hidden}
.page-header__title{font-size:var(--fs-h1);color:var(--white);margin-bottom:12px}
.page-header__subtitle{font-size:var(--fs-body-lg);color:rgba(255,255,255,0.6);max-width:560px}
.services-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--sp-gutter)}
.services-category{background:var(--white);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);box-shadow:var(--shadow-card);transition:transform var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out)}
.services-category:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.services-category__img{width:100%;aspect-ratio:4/3;overflow:hidden}
.services-category__img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease-out)}
.services-category:hover .services-category__img img{transform:scale(1.05)}
.services-category__body{padding:clamp(24px,2.5vw,40px)}
.services-category__icon{width:clamp(48px,3.5vw,60px);height:clamp(48px,3.5vw,60px);background:rgba(196,30,36,0.08);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:background 0.3s,transform 0.3s}
.services-category:hover .services-category__icon{background:var(--accent);transform:scale(1.05)}
.services-category__icon svg{width:26px;height:26px;color:var(--accent);transition:color 0.3s}
.services-category:hover .services-category__icon svg{color:var(--white)}
.services-category h3{font-size:var(--fs-h3);margin-bottom:16px}
.services-category ul{display:flex;flex-direction:column;gap:8px}
.services-category li{font-size:var(--fs-small);color:var(--text-muted);line-height:1.5;padding-left:18px;position:relative}
.services-category li::before{content:'';position:absolute;left:0;top:9px;width:6px;height:6px;background:var(--accent);border-radius:50%}
.services-philosophy{background:var(--charcoal);border-radius:var(--radius-lg);padding:clamp(32px,4vw,64px);color:var(--white);text-align:center;margin-top:var(--sp-block);position:relative;overflow:hidden}
.services-philosophy p{font-size:var(--fs-body-lg);color:rgba(255,255,255,0.7);max-width:700px;margin:0 auto 16px;line-height:1.7}
.services-philosophy p:last-of-type{margin-bottom:0}

/* RESPONSIVE */
@media(max-width:480px){
  .hero__actions{flex-direction:column;width:100%}
  .hero__actions .btn{width:100%}
  .hero__info-bar{flex-direction:column;gap:16px}
  .hero__grid{grid-template-columns:1fr}
  .hero__image{display:none}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .about__cards{grid-template-columns:1fr}
  .contact__grid,.footer__top{grid-template-columns:1fr}
  .footer__top{gap:32px}
  .cta__actions{flex-direction:column;align-items:center}
}
@media(max-width:768px){
  .nav__links,.nav__phone.desktop-only{display:none}
  .nav__hamburger{display:flex}
  .hero__grid{grid-template-columns:1fr}
  .hero__image{display:none}
  .about__cards{grid-template-columns:1fr}
  .contact__grid{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr;gap:32px}
  .stats__grid{grid-template-columns:repeat(2,1fr)}
  .footer__bottom{flex-direction:column;gap:8px;text-align:center}
}
@media(min-width:769px) and (max-width:1024px){
  .nav__hamburger{display:none}
  .footer__top{grid-template-columns:1fr 1fr}
  .hero__grid{grid-template-columns:1.2fr 1fr;gap:32px}
}
@media(min-width:1025px){.nav__hamburger{display:none}}
@media(min-width:1441px){
  :root{--container-max:1440px}
  .services-grid{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:3440px){
  :root{--container-max:2200px;--container-pad:80px}
  html{font-size:20px}
  .nav__inner{height:110px}
  .hero{min-height:800px}
  .hero__content{max-width:none}
  .hero__grid{gap:100px}
  .service-card__img{aspect-ratio:16/10}
  .services-grid,.reviews__grid,.services-list{grid-template-columns:repeat(4,1fr);gap:40px}
  .stats__grid{gap:60px}
  .about__cards{gap:40px}
  .contact__grid{gap:100px}
  .footer__top{gap:80px}
  .map-wrap{height:550px}
  .btn{padding:22px 52px;font-size:1.15rem;min-height:60px}
  .nav__logo img{height:56px}
  .form__input,.form__textarea{padding:18px 24px;font-size:1.1rem}
  .ticker__item{font-size:1.5rem}
}
@media print{
  .nav,.nav__mobile,.hero__bg,.cta,.footer,.preloader,.scroll-progress,.grain,.ticker{display:none}
  body{font-size:12pt;color:#000;background:#fff}
  .section{padding:20px 0}
  a{text-decoration:underline}
  .reveal{opacity:1 !important;transform:none !important}
}
