/* ============================================================
   Al's Tree Services — North Georgia
   Design system. All component classes prefixed .als-
   ============================================================ */

/* ---- Design tokens ---- */
:root {
  --als-bg:           #f5f1e8;
  --als-bg-2:         #ece5d5;
  --als-bg-3:         #ffffff;
  --als-ink:          #1a2620;
  --als-ink-2:        #3a4a42;
  --als-muted:        #6b7770;
  --als-line:         #d8d2c2;
  --als-primary:      #1f3a2a;
  --als-primary-2:    #2d5a3f;
  --als-primary-soft: #e3ebe3;
  --als-accent:       #c1531c;
  --als-sky:          #6b8aa3;

  --als-font-display: "Instrument Serif", "Source Serif 4", Georgia, serif;
  --als-font-body:    "Geist", -apple-system, BlinkMacSystemFont, sans-serif;
  --als-font-mono:    "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;

  --als-radius:    4px;
  --als-radius-lg: 12px;
  --als-shadow-sm: 0 1px 2px rgba(26,38,32,.06);
  --als-shadow-md: 0 8px 24px -8px rgba(26,38,32,.18);
  --als-shadow-lg: 0 24px 60px -20px rgba(26,38,32,.25);

  --als-container: 1280px;
  --als-gutter:    clamp(20px, 4vw, 56px);
}

/* ---- Base ---- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--als-bg); color: var(--als-ink); font-family: var(--als-font-body); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--als-font-display); font-weight: 400; letter-spacing: -0.01em; margin: 0; line-height: 1.05; }
p  { margin: 0; }
a  { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ---- Layout ---- */
.als-container { max-width: var(--als-container); margin: 0 auto; padding: 0 var(--als-gutter); }
.als-section   { padding: clamp(64px,9vw,140px) 0; position: relative; }
.als-section-tight { padding: clamp(48px,6vw,88px) 0; }
.als-eyebrow   { display:inline-flex; align-items:center; gap:10px; font-family:var(--als-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--als-muted); }
.als-eyebrow::before { content:""; width:24px; height:1px; background:currentColor; display:inline-block; }

/* ---- Reveal animations ---- */
.als-reveal { opacity:0; transform:translateY(24px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay:var(--als-delay,0ms); }
.als-reveal.in { opacity:1; transform:translateY(0); }
.als-reveal-fade { opacity:0; transition:opacity 1.1s ease; transition-delay:var(--als-delay,0ms); }
.als-reveal-fade.in { opacity:1; }

/* ---- Buttons ---- */
.als-btn { display:inline-flex; align-items:center; gap:10px; padding:14px 22px; font-family:var(--als-font-body); font-size:14px; font-weight:500; letter-spacing:.01em; border-radius:999px; border:1px solid transparent; cursor:pointer; transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .25s; white-space:nowrap; text-decoration:none; }
.als-btn:hover { transform:translateY(-1px); }
.als-btn:active { transform:translateY(0); }
.als-btn-primary { background:var(--als-primary); color:var(--als-bg); }
.als-btn-primary:hover { background:var(--als-primary-2); box-shadow:var(--als-shadow-md); color:var(--als-bg); }
.als-btn-ghost { background:transparent; color:var(--als-ink); border-color:var(--als-line); }
.als-btn-ghost:hover { border-color:var(--als-ink); background:var(--als-bg-2); }
.als-btn-accent { background:var(--als-accent); color:#fff; }
.als-btn-accent:hover { filter:brightness(1.08); box-shadow:var(--als-shadow-md); }
.als-btn-arrow { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.18); transition:transform .25s; }
.als-btn:hover .als-btn-arrow { transform:translateX(3px); }

/* ---- Emergency banner ---- */
.als-emergency-banner { background:var(--als-ink); color:var(--als-bg); padding:10px 0; font-size:13px; position:relative; z-index:51; }
.als-emergency-banner-inner { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }
.als-emergency-pulse { width:8px; height:8px; border-radius:50%; background:var(--als-accent); display:inline-block; animation:als-pulse 2s infinite; flex-shrink:0; }
@keyframes als-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(193,83,28,.6); } 50% { box-shadow:0 0 0 8px transparent; } }
.als-banner-phone { font-family:var(--als-font-mono); letter-spacing:.08em; font-weight:600; }
.als-banner-phone:hover { text-decoration:underline; }
.als-banner-close { background:none; border:none; color:var(--als-bg); cursor:pointer; opacity:.6; font-size:16px; padding:0 4px; line-height:1; margin-left:8px; }
.als-banner-close:hover { opacity:1; }

/* ---- Nav ---- */
.als-nav { position:fixed; top:0; left:0; right:0; z-index:50; padding:18px 0; transition:background .3s,padding .3s,border-color .3s,backdrop-filter .3s; border-bottom:1px solid transparent; }
.als-nav.als-scrolled { background:rgba(245,241,232,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:10px 0; border-bottom-color:var(--als-line); }
.als-nav-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.als-nav-links { display:flex; gap:4px; align-items:center; }
.als-nav-link { padding:10px 16px; font-size:14px; border-radius:999px; cursor:pointer; transition:background .2s,color .2s; color:var(--als-ink-2); text-decoration:none; }
.als-nav-link:hover { background:var(--als-bg-2); color:var(--als-ink); }
.als-nav-link.als-active { background:var(--als-primary); color:var(--als-bg); }
.als-nav-cta { display:flex; gap:10px; align-items:center; }

/* Logo */
.als-logo { display:flex; align-items:center; gap:12px; cursor:pointer; text-decoration:none; }
.als-logo-mark { width:38px; height:38px; border-radius:50%; background:var(--als-primary); display:grid; place-items:center; flex-shrink:0; transition:transform .4s cubic-bezier(.2,.7,.2,1); }
.als-logo:hover .als-logo-mark { transform:rotate(-8deg); }
.als-logo-text { display:flex; flex-direction:column; line-height:1.05; }
.als-logo-text-1 { font-family:var(--als-font-display); font-size:18px; letter-spacing:-.01em; color:var(--als-ink); }
.als-logo-text-2 { font-family:var(--als-font-mono); font-size:9px; letter-spacing:.18em; color:var(--als-muted); text-transform:uppercase; }

/* Mobile menu */
.als-mobile-menu-btn { background:none; border:1px solid var(--als-line); border-radius:8px; cursor:pointer; padding:6px 8px; color:var(--als-ink); display:flex; align-items:center; justify-content:center; }
.als-mobile-menu { position:fixed; inset:0; background:var(--als-bg); z-index:100; padding:40px var(--als-gutter); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.als-mobile-menu.als-open { transform:translateX(0); }
.als-mobile-menu-close { background:none; border:none; font-size:24px; cursor:pointer; align-self:flex-end; color:var(--als-ink); padding:4px; }
.als-mobile-nav-link { font-family:var(--als-font-display); font-size:clamp(32px,8vw,48px); color:var(--als-ink); text-decoration:none; display:block; padding:8px 0; border-bottom:1px solid var(--als-line); }
.als-mobile-nav-link:hover { color:var(--als-accent); }

/* ---- Hero ---- */
.als-hero { padding:clamp(120px,14vw,180px) 0 clamp(60px,8vw,120px); position:relative; overflow:hidden; background:var(--als-bg); }
.als-hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,80px); align-items:end; }
.als-hero-headline { font-size:clamp(48px,8vw,116px); letter-spacing:-.025em; line-height:.94; font-weight:400; }
.als-hero-headline em { font-style:italic; color:var(--als-accent); }
.als-hero-sub { font-size:18px; color:var(--als-ink-2); margin-top:28px; max-width:480px; line-height:1.55; }
.als-hero-meta { display:flex; gap:36px; margin-top:36px; flex-wrap:wrap; }
.als-hero-meta-item { display:flex; flex-direction:column; }
.als-hero-meta-num { font-family:var(--als-font-display); font-size:36px; color:var(--als-primary); line-height:1; }
.als-hero-meta-label { font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-muted); margin-top:6px; }
.als-hero-actions { display:flex; gap:12px; margin-top:40px; flex-wrap:wrap; }
.als-hero-image-wrap { position:relative; height:clamp(380px,50vw,560px); }
.als-hero-image { position:absolute; inset:0; border-radius:var(--als-radius-lg); overflow:hidden; }
.als-hero-image img { width:100%; height:100%; object-fit:cover; }
.als-hero-badge { position:absolute; bottom:-28px; left:-28px; background:var(--als-bg-3); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); padding:20px 24px; box-shadow:var(--als-shadow-md); max-width:280px; z-index:2; }
.als-hero-badge-stars { font-family:var(--als-font-display); font-size:22px; color:var(--als-accent); letter-spacing:.1em; }
.als-hero-badge-text { font-size:13px; color:var(--als-ink-2); margin-top:6px; line-height:1.4; }

/* ---- Marquee ---- */
.als-marquee { border-top:1px solid var(--als-line); border-bottom:1px solid var(--als-line); overflow:hidden; padding:22px 0; background:var(--als-bg); }
.als-marquee-track { display:flex; gap:64px; animation:als-scroll 40s linear infinite; width:max-content; }
.als-marquee:hover .als-marquee-track { animation-play-state:paused; }
.als-marquee-item { font-family:var(--als-font-display); font-size:28px; color:var(--als-ink); display:inline-flex; align-items:center; gap:64px; white-space:nowrap; }
.als-marquee-item::after { content:"✦"; color:var(--als-accent); font-size:18px; }
@keyframes als-scroll { to { transform:translateX(-50%); } }

/* ---- Services grid ---- */
.als-services-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--als-line); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); overflow:hidden; margin-top:56px; }
.als-service-card { background:var(--als-bg); padding:40px; position:relative; overflow:hidden; cursor:pointer; transition:background .4s; min-height:320px; display:flex; flex-direction:column; justify-content:space-between; text-decoration:none; color:inherit; }
.als-service-card:hover { background:var(--als-primary); color:var(--als-bg); }
.als-service-num { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.18em; color:var(--als-muted); transition:color .4s; }
.als-service-card:hover .als-service-num { color:var(--als-bg); }
.als-service-title { font-size:clamp(28px,3.5vw,42px); margin-top:14px; letter-spacing:-.02em; }
.als-service-desc { font-size:15px; color:var(--als-ink-2); margin-top:14px; max-width:460px; line-height:1.55; transition:color .4s; }
.als-service-card:hover .als-service-desc { color:var(--als-bg); }
.als-service-meta { margin-top:24px; display:flex; gap:16px; flex-wrap:wrap; font-family:var(--als-font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--als-muted); transition:color .4s; }
.als-service-card:hover .als-service-meta { color:rgba(245,241,232,.75); }
.als-service-meta-item { display:inline-flex; align-items:center; gap:6px; }
.als-service-arrow { position:absolute; top:36px; right:36px; width:40px; height:40px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; transition:transform .35s,color .4s; color:var(--als-ink-2); }
.als-service-card:hover .als-service-arrow { color:var(--als-bg); transform:translate(4px,-4px); }

/* ---- Trust band ---- */
.als-trust-band { background:var(--als-primary); color:var(--als-bg); padding:clamp(72px,9vw,120px) 0; }
.als-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.als-trust-col { padding:0 32px; border-right:1px solid rgba(245,241,232,.18); }
.als-trust-col:first-child { padding-left:0; }
.als-trust-col:last-child { border-right:none; padding-right:0; }
.als-trust-num { font-family:var(--als-font-display); font-size:clamp(64px,8vw,120px); line-height:.95; color:var(--als-bg); letter-spacing:-.03em; }
.als-trust-num sup { font-size:.4em; vertical-align:super; color:var(--als-accent); }
.als-trust-label { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,241,232,.6); margin-top:12px; }
.als-trust-desc { font-size:15px; margin-top:16px; color:rgba(245,241,232,.8); line-height:1.55; max-width:280px; }

/* ---- Section header ---- */
.als-section-header { display:grid; grid-template-columns:1fr 1.2fr; gap:48px; align-items:end; margin-bottom:16px; }
.als-section-title { font-size:clamp(36px,5.5vw,76px); letter-spacing:-.02em; margin-top:16px; line-height:1; }
.als-section-title em { font-style:italic; color:var(--als-accent); }
.als-section-intro { font-size:17px; color:var(--als-ink-2); line-height:1.55; max-width:520px; }

/* ---- Process ---- */
.als-process-row { display:grid; grid-template-columns:.18fr .35fr 1fr .1fr; gap:32px; padding:32px 0; border-bottom:1px solid var(--als-line); align-items:center; transition:padding-left .25s; }
.als-process-row:first-child { border-top:1px solid var(--als-line); }
.als-process-row:hover { padding-left:12px; }
.als-process-step { font-family:var(--als-font-mono); font-size:12px; letter-spacing:.18em; color:var(--als-accent); }
.als-process-title { font-size:clamp(22px,2.6vw,32px); letter-spacing:-.01em; }
.als-process-body { font-size:15px; color:var(--als-ink-2); line-height:1.6; max-width:540px; }
.als-process-arrow { text-align:right; color:var(--als-muted); font-size:24px; }

/* ---- Testimonials ---- */
.als-testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:56px; }
.als-testimonial-card { background:var(--als-bg-3); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); padding:32px; transition:transform .3s,box-shadow .3s,border-color .3s; }
.als-testimonial-card:hover { transform:translateY(-6px); box-shadow:var(--als-shadow-lg); border-color:var(--als-primary); }
.als-testimonial-stars { color:var(--als-accent); font-size:16px; letter-spacing:.15em; }
.als-testimonial-quote { font-family:var(--als-font-display); font-size:22px; line-height:1.35; margin-top:18px; }
.als-testimonial-author { display:flex; align-items:center; gap:12px; margin-top:28px; padding-top:24px; border-top:1px solid var(--als-line); }
.als-testimonial-avatar { width:40px; height:40px; border-radius:50%; background:var(--als-primary-soft); color:var(--als-primary); display:grid; place-items:center; font-family:var(--als-font-display); font-size:16px; flex-shrink:0; }
.als-testimonial-name { font-size:14px; font-weight:500; }
.als-testimonial-loc { font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-muted); margin-top:4px; }

/* ---- Gallery ---- */
.als-gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; margin-top:48px; }
.als-gallery-item { border-radius:var(--als-radius-lg); overflow:hidden; position:relative; transition:transform .4s cubic-bezier(.2,.7,.2,1); }
.als-gallery-item:hover { transform:scale(1.01); }
.als-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; }
.als-gallery-tall  { grid-column:span 5; aspect-ratio:4/5; }
.als-gallery-wide  { grid-column:span 7; aspect-ratio:7/4; }
.als-gallery-sq    { grid-column:span 4; aspect-ratio:1/1; }
.als-gallery-wide2 { grid-column:span 8; aspect-ratio:8/5; }
.als-gallery-tag { position:absolute; top:16px; left:16px; background:rgba(0,0,0,.6); backdrop-filter:blur(8px); color:#fff; font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:6px 10px; border-radius:999px; }

/* ---- Counties ---- */
.als-counties-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:40px; }
.als-county-pill { padding:8px 16px; border:1px solid var(--als-line); border-radius:999px; background:var(--als-bg-3); font-size:13px; color:var(--als-ink-2); transition:all .25s; cursor:default; }
.als-county-pill:hover { background:var(--als-primary); color:var(--als-bg); border-color:var(--als-primary); transform:translateY(-2px); }

/* ---- CTA block ---- */
.als-cta-block { background:var(--als-primary); color:var(--als-bg); border-radius:var(--als-radius-lg); padding:clamp(48px,7vw,88px); display:grid; grid-template-columns:1.2fr .8fr; gap:48px; align-items:center; position:relative; overflow:hidden; }
.als-cta-headline { font-size:clamp(36px,5vw,64px); line-height:1; letter-spacing:-.02em; }
.als-cta-headline em { color:var(--als-accent); font-style:italic; }
.als-cta-form-box { background:var(--als-bg); color:var(--als-ink); border-radius:var(--als-radius-lg); padding:32px; }

/* ---- Forms ---- */
.als-form-row { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.als-form-label { font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-muted); }
.als-form-input, .als-form-textarea, .als-form-select { font-family:inherit; font-size:15px; padding:12px 14px; border:1px solid var(--als-line); border-radius:8px; background:var(--als-bg-3); color:var(--als-ink); transition:border-color .2s,box-shadow .2s; width:100%; }
.als-form-input:focus, .als-form-textarea:focus, .als-form-select:focus { outline:none; border-color:var(--als-primary); box-shadow:0 0 0 3px rgba(31,58,42,.12); }
.als-form-textarea { resize:vertical; min-height:90px; }
.als-form-2col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.als-service-toggle { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.als-service-toggle button, .als-urgency-toggle button { padding:10px 14px; border-radius:8px; border:1px solid var(--als-line); background:var(--als-bg-3); color:var(--als-ink); font-family:inherit; font-size:13px; cursor:pointer; transition:all .2s; }
.als-service-toggle button:hover, .als-urgency-toggle button:hover { border-color:var(--als-primary); }

/* ---- Footer ---- */
.als-footer { background:var(--als-ink); color:var(--als-bg); padding:clamp(64px,8vw,96px) 0 32px; }
.als-footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; }
.als-footer-tagline { font-family:var(--als-font-display); font-size:32px; line-height:1.05; margin-top:24px; max-width:360px; }
.als-footer-col-title { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,241,232,.55); margin-bottom:16px; }
.als-footer-link { display:block; font-size:14px; color:rgba(245,241,232,.85); padding:4px 0; cursor:pointer; transition:color .2s,transform .2s; text-decoration:none; }
.als-footer-link:hover { color:var(--als-bg); transform:translateX(4px); }
.als-footer-bottom { margin-top:64px; padding-top:24px; border-top:1px solid rgba(245,241,232,.15); display:flex; justify-content:space-between; align-items:center; font-family:var(--als-font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(245,241,232,.55); flex-wrap:wrap; gap:16px; }

/* ---- Services page rows ---- */
.als-service-row { display:grid; grid-template-columns:.4fr .6fr 1fr; gap:32px; padding:48px 0; border-bottom:1px solid var(--als-line); align-items:start; transition:background .3s; }
.als-service-row:hover { background:var(--als-bg-2); }
.als-service-row:hover .als-service-row-num { color:var(--als-accent); }
.als-service-row-num { font-family:var(--als-font-mono); font-size:12px; letter-spacing:.18em; color:var(--als-muted); transition:color .3s; }
.als-service-row-num-accent { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.16em; color:var(--als-accent); margin-top:8px; }
.als-service-row-title { font-size:clamp(28px,3.5vw,44px); letter-spacing:-.02em; }
.als-service-row-body { font-size:15px; color:var(--als-ink-2); line-height:1.6; }
.als-service-row-list { list-style:none; padding:0; margin:16px 0 0; }
.als-service-row-list li { padding:6px 0; font-size:14px; color:var(--als-ink-2); border-bottom:1px dashed var(--als-line); }
.als-service-row-list li::before { content:"→"; margin-right:12px; color:var(--als-accent); }
.als-service-row-price { font-family:var(--als-font-display); font-size:24px; color:var(--als-primary); }
.als-service-row-foot { margin-top:24px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }

/* ---- Equipment grid ---- */
.als-equipment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--als-line); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); overflow:hidden; margin-top:56px; }
.als-equipment-cell { background:var(--als-bg); padding:32px; display:flex; flex-direction:column; gap:12px; min-height:200px; transition:background .3s; }
.als-equipment-cell:hover { background:var(--als-bg-3); }
.als-equipment-num { font-family:var(--als-font-display); font-size:32px; color:var(--als-primary); letter-spacing:-.01em; line-height:1; }
.als-equipment-label { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-muted); }
.als-equipment-desc { font-size:14px; color:var(--als-ink-2); margin-top:auto; }

/* ---- FAQ ---- */
.als-faq-row { border-top:1px solid var(--als-line); cursor:pointer; }
.als-faq-row:last-child { border-bottom:1px solid var(--als-line); }
.als-faq-head { display:grid; grid-template-columns:.1fr 1fr .1fr; gap:24px; padding:28px 0; align-items:center; }
.als-faq-n { font-family:var(--als-font-mono); font-size:12px; letter-spacing:.16em; color:var(--als-muted); }
.als-faq-q { font-size:clamp(20px,2.4vw,28px); letter-spacing:-.01em; }
.als-faq-toggle { font-size:24px; color:var(--als-accent); text-align:right; transition:transform .3s; }
.als-faq-row.als-open .als-faq-toggle { transform:rotate(45deg); }
.als-faq-body { max-height:0; overflow:hidden; transition:max-height .4s ease, padding .3s; padding-left:calc(0.1 * (100% / 1.2)); }
.als-faq-row.als-open .als-faq-body { max-height:200px; padding-bottom:28px; }
.als-faq-a { font-size:16px; line-height:1.6; color:var(--als-ink-2); max-width:720px; }

/* ---- About hero ---- */
.als-about-hero { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding:clamp(120px,14vw,180px) 0 80px; }
.als-about-image { height:clamp(420px,50vw,560px); border-radius:var(--als-radius-lg); overflow:hidden; }
.als-about-image img { width:100%; height:100%; object-fit:cover; }
.als-about-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding:56px 0; border-top:1px solid var(--als-line); border-bottom:1px solid var(--als-line); }
.als-about-stat-num { font-family:var(--als-font-display); font-size:clamp(48px,7vw,92px); color:var(--als-primary); line-height:.95; letter-spacing:-.02em; }
.als-about-stat-label { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--als-muted); margin-top:10px; }

/* ---- About values ---- */
.als-values-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:56px; }
.als-value-card { background:var(--als-bg); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); padding:36px; transition:transform .3s,box-shadow .3s; }
.als-value-card:hover { transform:translateY(-4px); box-shadow:var(--als-shadow-md); }
.als-value-num { font-family:var(--als-font-display); font-size:64px; color:var(--als-accent); line-height:1; margin-bottom:16px; opacity:.4; }
.als-value-title { font-size:clamp(22px,2.6vw,32px); letter-spacing:-.01em; }
.als-value-body { font-size:15px; line-height:1.6; color:var(--als-ink-2); margin-top:12px; max-width:440px; }

/* ---- About team ---- */
.als-team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:56px; }
.als-team-card { display:flex; flex-direction:column; gap:16px; }
.als-team-photo { aspect-ratio:4/5; border-radius:var(--als-radius-lg); overflow:hidden; background:var(--als-primary-soft); }
.als-team-photo img { width:100%; height:100%; object-fit:cover; }
.als-team-photo-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-family:var(--als-font-display); font-size:48px; color:var(--als-primary); opacity:.4; }
.als-team-name { font-size:22px; letter-spacing:-.01em; }
.als-team-role { font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-accent); margin-top:6px; }
.als-team-bio { font-size:14px; color:var(--als-ink-2); margin-top:12px; line-height:1.55; }

/* ---- About community ---- */
.als-community-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.als-community-photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.als-community-photo { background:rgba(245,241,232,.15); border-radius:var(--als-radius-lg); overflow:hidden; }
.als-community-photo img { width:100%; height:100%; object-fit:cover; }
.als-community-photo-ph { width:100%; display:flex; align-items:center; justify-content:center; font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(245,241,232,.5); padding:60px 20px; text-align:center; }

/* ---- Contact ---- */
.als-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; padding-top:40px; }
.als-contact-info-block { padding:28px 0; border-bottom:1px solid var(--als-line); }
.als-contact-info-block:first-child { padding-top:0; }
.als-contact-info-block:last-child { border-bottom:none; }
.als-contact-info-label { font-family:var(--als-font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--als-muted); }
.als-contact-info-value { font-family:var(--als-font-display); font-size:clamp(24px,3vw,36px); margin-top:8px; letter-spacing:-.01em; }
.als-contact-info-value a:hover { color:var(--als-accent); transition:color .2s; }
.als-contact-info-sub { font-size:14px; color:var(--als-ink-2); margin-top:6px; }
.als-contact-form-box { background:var(--als-bg-3); border:1px solid var(--als-line); border-radius:var(--als-radius-lg); padding:40px; align-self:start; }
.als-contact-form-title { font-size:32px; letter-spacing:-.01em; }
.als-contact-form-sub { font-size:14px; color:var(--als-ink-2); margin-top:8px; }

/* ---- Map ---- */
.als-map-ph { height:320px; border-radius:var(--als-radius-lg); background:radial-gradient(circle at 35% 45%, rgba(31,58,42,.2) 0%, transparent 40%), radial-gradient(circle at 70% 60%, rgba(31,58,42,.15) 0%, transparent 35%), var(--als-bg-2); border:1px solid var(--als-line); position:relative; overflow:hidden; margin-top:40px; }
.als-map-pin { position:absolute; width:14px; height:14px; border-radius:50%; background:var(--als-accent); transform:translate(-50%,-50%); animation:als-pin-pulse 2.5s infinite; }
@keyframes als-pin-pulse { 0%,100% { box-shadow:0 0 0 4px rgba(193,83,28,.25); } 50% { box-shadow:0 0 0 10px rgba(193,83,28,.08); } }
.als-map-label { position:absolute; bottom:16px; left:16px; background:var(--als-bg-3); border:1px solid var(--als-line); border-radius:999px; padding:8px 14px; font-family:var(--als-font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--als-ink-2); }

/* ---- Sticky quote ---- */
.als-sticky-quote { position:fixed; bottom:24px; right:24px; z-index:40; background:var(--als-primary); color:var(--als-bg); border-radius:999px; padding:12px 16px 12px 12px; display:flex; align-items:center; gap:12px; cursor:pointer; box-shadow:var(--als-shadow-lg); transition:transform .25s; font-size:13px; font-weight:500; text-decoration:none; border:none; }
.als-sticky-quote:hover { transform:translateY(-2px) scale(1.02); color:var(--als-bg); }
.als-sticky-quote-icon { width:32px; height:32px; background:var(--als-bg); color:var(--als-primary); border-radius:50%; display:grid; place-items:center; flex-shrink:0; }

/* ---- Page transition ---- */
.als-page-enter { animation:als-page-in .5s cubic-bezier(.2,.7,.2,1); }
@keyframes als-page-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* ---- Responsive ---- */
@media (max-width: 900px) {
  .als-hero-grid { grid-template-columns:1fr; }
  .als-about-hero { grid-template-columns:1fr; }
  .als-testimonial-grid { grid-template-columns:1fr; }
  .als-service-row { grid-template-columns:1fr; gap:16px; }
  .als-contact-grid { grid-template-columns:1fr; }
  .als-team-grid { grid-template-columns:1fr 1fr; }
  .als-community-grid { grid-template-columns:1fr; }
}
@media (max-width: 800px) {
  .als-section-header { grid-template-columns:1fr; gap:20px; }
  .als-trust-grid { grid-template-columns:1fr; gap:32px; }
  .als-trust-col { padding:0; border-right:none; border-bottom:1px solid rgba(245,241,232,.18); padding-bottom:32px; }
  .als-trust-col:last-child { border-bottom:none; padding-bottom:0; }
  .als-footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .als-cta-block { grid-template-columns:1fr; }
  .als-values-grid { grid-template-columns:1fr; }
  .als-about-stats { grid-template-columns:repeat(2,1fr); }
  .als-equipment-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 700px) {
  .als-services-grid { grid-template-columns:1fr; }
  .als-gallery-tall, .als-gallery-wide, .als-gallery-sq, .als-gallery-wide2 { grid-column:span 12; aspect-ratio:16/10; }
  .als-process-row { grid-template-columns:1fr; gap:8px; }
  .als-form-2col { grid-template-columns:1fr; }
  .als-faq-head { grid-template-columns:.1fr 1fr .1fr; }
  .als-team-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .als-hero-badge { left:12px; bottom:-20px; padding:16px 18px; }
  .als-footer-grid { grid-template-columns:1fr; }
  .als-footer-bottom { flex-direction:column; align-items:flex-start; }
  .als-community-photo-grid { grid-template-columns:1fr; }
  .als-equipment-grid { grid-template-columns:1fr; }
}

.als-hide-mobile { display:initial; }
@media (max-width: 800px) { .als-hide-mobile { display:none; } .als-hide-desktop { display:initial; } }
.als-hide-desktop { display:none; }

::selection { background:var(--als-primary); color:var(--als-bg); }
