/* ============================================================
   LosAngeles Wallpaper Installation Team — Design System
   Pacific-modern editorial palette: bone, ink, sunlit ochre,
   eucalyptus, deep sea
   ============================================================ */

:root{
  /* Palette */
  --bone:#f4efe7;
  --bone-2:#ebe3d4;
  --paper:#fbf8f1;
  --ink:#101417;
  --ink-2:#1d242a;
  --ink-3:#3e4a52;
  --muted:#7c8891;
  --line:#dfd6c3;
  --line-2:#e8e0cf;

  --accent:#0e3a3a;          /* deep eucalyptus */
  --accent-2:#0a2c2c;
  --gold:#c8a25a;            /* sunlit California ochre */
  --gold-soft:#e6cf95;
  --coral:#d3704a;
  --sage:#7d8c6c;
  --sky:#3e6776;

  /* Tokens */
  --shadow-1: 0 1px 2px rgba(16,20,23,.04), 0 6px 18px rgba(16,20,23,.06);
  --shadow-2: 0 14px 38px rgba(16,20,23,.10);
  --shadow-3: 0 28px 70px rgba(16,20,23,.20);
  --shadow-gold: 0 14px 36px rgba(200,162,90,.28);

  --r-xs:4px; --r-sm:8px; --r-md:14px; --r-lg:22px; --r-xl:32px;

  /* Type */
  --serif: "Fraunces","Libre Baskerville", Georgia, serif;
  --sans:  "Inter","Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

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

/* ===== Reset ===== */
*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--sans);
  font-size:16.5px; line-height:1.7; color:var(--ink-2);
  background:var(--bone); -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
}
img{max-width:100%;height:auto;display:block}
a{color:inherit; text-decoration:none}
button{font-family:inherit; cursor:pointer}
ul{margin:0; padding-left:20px}
h1,h2,h3,h4{font-family:var(--serif); font-weight:400; color:var(--ink); letter-spacing:-.012em; margin:0 0 .55em}
h1{font-size:clamp(38px,5.6vw,72px); line-height:1.02; letter-spacing:-.025em; font-weight:300}
h2{font-size:clamp(30px,4vw,50px); line-height:1.08; font-weight:400}
h3{font-size:clamp(20px,2vw,24px); line-height:1.25; font-weight:500}
h4{font-size:18px; line-height:1.35}
p{margin:0 0 1em}
::selection{ background:var(--gold); color:var(--ink) }

.container{max-width:var(--container); margin:0 auto; padding:0 var(--gutter)}

/* ===== Top Bar ===== */
.top-bar{
  background:var(--ink); color:var(--bone); font-size:12.5px; letter-spacing:.06em;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.top-bar .container{ padding-top:11px; padding-bottom:11px; }
.top-bar-left{ display:flex; flex-wrap:wrap; gap:10px 32px; align-items:center }
.top-bar a{ color:var(--bone); opacity:.92; transition:color .2s, opacity .2s }
.top-bar a:hover{ opacity:1; color:var(--gold) }
.top-bar span{ opacity:.65 }

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50; background:rgba(244,239,231,.86);
  backdrop-filter:saturate(140%) blur(18px); -webkit-backdrop-filter:saturate(140%) blur(18px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px; gap:24px;
}
.logo{ display:flex; align-items:center; gap:14px; min-width:0 }
.logo img{
  width:42px; height:42px; border-radius:10px; object-fit:cover;
  box-shadow:0 4px 14px rgba(14,58,58,.16); border:1px solid var(--line);
}
.logo div{
  font-family:var(--serif); font-size:17px; line-height:1.18; color:var(--ink);
  letter-spacing:-.015em; max-width:260px; font-weight:500;
}
.nav-links{ display:flex; align-items:center; gap:32px }
.nav-links a{ font-size:14px; color:var(--ink-2); transition:color .2s; position:relative; letter-spacing:.01em; font-weight:500 }
.nav-links a:not(.btn):hover{ color:var(--accent) }
.nav-links a:not(.btn)::after{
  content:""; position:absolute; left:0; right:0; bottom:-7px; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:right; transition:transform .35s ease;
}
.nav-links a:not(.btn):hover::after{ transform:scaleX(1); transform-origin:left }
.hamburger{ display:none; background:transparent; border:0; padding:8px; gap:5px; flex-direction:column }
.hamburger span{ display:block; width:24px; height:2px; background:var(--ink); transition:all .25s }

.mobile-nav{
  position:fixed; inset:0; background:var(--accent); color:var(--bone);
  z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:24px; transform:translateX(100%); transition:transform .35s ease;
}
.mobile-nav.open{ transform:translateX(0) }
.mobile-nav a{ font-family:var(--serif); font-size:30px; color:var(--bone); font-weight:400 }
.mobile-nav a:hover{ color:var(--gold) }
.close-nav{ position:absolute; top:24px; right:24px; background:transparent; border:0; color:var(--bone); font-size:32px }

/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:999px; font-weight:500; font-size:14px;
  letter-spacing:.06em; border:1px solid transparent; transition:all .25s ease;
  white-space:nowrap; text-transform:uppercase;
}
.btn-sm{ padding:11px 20px; font-size:12.5px }
.btn-primary{
  background:var(--accent); color:#fff;
  box-shadow:0 8px 22px rgba(14,58,58,.22);
}
.btn-primary:hover{ background:var(--accent-2); transform:translateY(-2px); box-shadow:0 14px 32px rgba(14,58,58,.32) }
.btn-white{ background:var(--gold); color:var(--ink); border-color:var(--gold) }
.btn-white:hover{ background:#b89148; border-color:#b89148; color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-gold) }
.btn-outline-white{ background:transparent; color:var(--ink); border-color:var(--ink) }
.btn-outline-white:hover{ background:var(--ink); color:var(--bone) }
.btn-dark{ background:var(--gold); color:var(--ink); border-color:var(--gold) }
.btn-dark:hover{ background:var(--ink); border-color:var(--ink); color:var(--bone) }
.btn:active{ transform:scale(.98) }
.btn-secondary{ background:transparent; color:var(--ink); border-color:rgba(16,20,23,.35) }
.btn-secondary:hover{ background:var(--ink); color:var(--bone); border-color:var(--ink) }
.btn-tertiary{ background:transparent; color:var(--bone); border-color:rgba(255,255,255,.4) }
.btn-tertiary:hover{ border-color:var(--gold); color:var(--gold) }
.btn-ghost{ background:transparent; color:var(--accent); border-color:var(--accent) }
.btn-ghost:hover{ background:var(--accent); color:#fff }

/* ===== Hero ===== */
.hero{
  position:relative; min-height:90vh; display:flex; align-items:center;
  padding:150px 0 120px; overflow:hidden; background:var(--ink);
}
.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.78; filter:saturate(.95) contrast(1.05);
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(115deg, rgba(10,28,28,.84) 0%, rgba(16,20,23,.55) 50%, rgba(16,20,23,.20) 100%),
    radial-gradient(70% 60% at 0% 100%, rgba(200,162,90,.22), transparent 60%),
    radial-gradient(40% 50% at 100% 0%, rgba(14,58,58,.45), transparent 70%);
}
.hero .container{ position:relative; z-index:2; color:var(--bone); max-width:1040px }
.hero h1{ color:#fff; font-weight:300; max-width:19ch }
.hero-text{ font-size:clamp(17px,1.4vw,21px); color:rgba(244,239,231,.84); max-width:62ch; margin:22px 0 38px; line-height:1.65 }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px }
.hero .btn-secondary{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55) }
.hero .btn-secondary:hover{ background:#fff; color:var(--ink); border-color:#fff }

/* eyebrow on hero */
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--sans); font-size:11.5px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin-bottom:22px; font-weight:600;
}
.hero-eyebrow::before{ content:""; width:42px; height:1px; background:var(--gold) }

/* breadcrumb */
.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(244,239,231,.65); margin-bottom:22px;
}
.breadcrumb a{ color:rgba(244,239,231,.85) }
.breadcrumb a:hover{ color:var(--gold) }
.breadcrumb span{ opacity:.4 }

/* ===== Sections ===== */
.section{ padding:clamp(80px,9vw,140px) 0; position:relative }
.section-light{ background:var(--bone) }
.section-paper{ background:var(--paper) }
.section-cream-2{ background:var(--bone-2) }
.section-dark{
  background:var(--accent); color:var(--bone);
  background-image:
    radial-gradient(60% 80% at 0% 0%, rgba(200,162,90,.12), transparent 60%),
    radial-gradient(40% 60% at 100% 100%, rgba(255,255,255,.05), transparent 60%);
}
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4{ color:#fff }
.section-darker{
  background:var(--ink); color:var(--bone);
  background-image:
    radial-gradient(60% 70% at 100% 0%, rgba(200,162,90,.10), transparent 60%);
}
.section-darker h2,.section-darker h3{ color:#fff }
.section-white{ background:#fff }
.section-label{
  display:inline-flex; align-items:center; gap:12px;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--accent); margin:0 0 22px; font-weight:600;
}
.section-label::before{ content:""; width:32px; height:1px; background:var(--gold) }
.section-dark .section-label,
.section-darker .section-label{ color:var(--gold) }
.section-dark .section-label::before,
.section-darker .section-label::before{ background:var(--gold) }
.section-title{ max-width:24ch; margin-left:auto; margin-right:auto }
.text-center{ text-align:center }
.text-center .section-label{ justify-content:center }
.section-subtitle{ max-width:64ch; margin:0 auto; color:var(--ink-3); font-size:17px; line-height:1.7 }
.section-dark .section-subtitle,
.section-darker .section-subtitle{ color:rgba(244,239,231,.78) }

/* fade-in */
.fade-in{ opacity:0; transform:translateY(28px); transition:opacity 1s ease, transform 1s ease }
.fade-in.visible{ opacity:1; transform:none }
@media (prefers-reduced-motion: reduce){ .fade-in{ opacity:1; transform:none } }
.no-js .fade-in{ opacity:1; transform:none }

/* ===== Split layouts ===== */
.split{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(40px,5vw,90px); align-items:center }
.split-reverse .split-content{ order:2 }
.split-content h2{ margin-bottom:.45em }
.split-content ul{ list-style:none; padding:0; margin-top:22px }
.split-content ul li{
  position:relative; padding:14px 0 14px 36px; border-bottom:1px solid var(--line); font-size:15.5px;
}
.split-content ul li::before{
  content:""; position:absolute; left:0; top:22px; width:22px; height:1px; background:var(--gold);
}
.split-content ul li::after{
  content:""; position:absolute; left:8px; top:18px; width:8px; height:8px; border-radius:50%;
  background:var(--accent); border:1px solid var(--gold);
}
.section-dark .split-content ul li{ border-color:rgba(255,255,255,.10) }
.section-dark .split-content ul li::before{ background:var(--gold) }
.section-dark .split-content ul li::after{ background:var(--bone); border-color:var(--gold) }
.split-image{ position:relative }
.split-image img{
  width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-md);
  box-shadow:var(--shadow-2);
}
.split-image::after{
  content:""; position:absolute; left:-22px; bottom:-22px; width:120px; height:120px;
  border:1px solid var(--gold); border-radius:var(--r-sm); z-index:0;
}
.split-image::before{
  content:""; position:absolute; right:-14px; top:-14px; width:60px; height:60px;
  background:var(--gold-soft); border-radius:var(--r-xs); opacity:.55; z-index:0;
}
.split-image img{ position:relative; z-index:1; }

/* ===== Cards ===== */
.cards-grid{ display:grid; gap:24px }
.cards-grid-2{ grid-template-columns:repeat(2,1fr) }
.cards-grid-3{ grid-template-columns:repeat(3,1fr) }
.cards-grid-4{ grid-template-columns:repeat(4,1fr) }
.card{
  background:#fff; border:1px solid var(--line-2); border-radius:var(--r-md);
  padding:36px 30px; transition:transform .35s ease, box-shadow .35s ease, border-color .35s, background .35s;
  position:relative; overflow:hidden;
}
.card::before{
  content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold);
  transition:width .35s ease;
}
.card:hover::before{ width:100% }
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--gold) }
.card-icon{
  width:56px; height:56px; border-radius:14px;
  background:linear-gradient(135deg, rgba(14,58,58,.10), rgba(200,162,90,.18));
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
}
.card-icon svg{ width:26px; height:26px; stroke:var(--accent); fill:none; stroke-width:1.5 }
.card h3{ margin-bottom:10px; color:var(--ink) }
.card p{ color:var(--ink-3); font-size:15px; margin:0; line-height:1.65 }
.card .card-link{
  display:inline-flex; align-items:center; gap:8px; margin-top:18px; font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent); font-weight:600;
  transition:gap .25s, color .25s;
}
.card:hover .card-link{ gap:14px; color:var(--gold) }
.card-dark{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.10); color:var(--bone);
  backdrop-filter:blur(4px);
}
.card-dark p{ color:rgba(244,239,231,.74) }
.card-dark .card-icon{
  background:linear-gradient(135deg, rgba(200,162,90,.18), rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.10);
}
.card-dark .card-icon svg{ stroke:var(--gold) }
.card-dark:hover{ border-color:var(--gold) }
.card-dark .card-link{ color:var(--gold) }
.card-dark::before{ background:var(--gold) }

.card-num{
  font-family:var(--serif); font-size:42px; color:var(--gold); line-height:1; margin-bottom:20px;
  font-weight:300; letter-spacing:-.02em;
}
.card-dark .card-num{ color:var(--gold) }

/* ===== Stats / KPI ===== */
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px }
.stat{
  padding:32px 24px; border:1px solid rgba(255,255,255,.10); border-radius:var(--r-md);
  background:rgba(255,255,255,.03); position:relative; overflow:hidden;
}
.stat::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--gold), transparent);
}
.section-light .stat,.section-paper .stat{ background:#fff; border-color:var(--line-2) }
.stat .num{
  font-family:var(--serif); font-size:clamp(40px,4.4vw,60px); line-height:1; color:#fff; display:block;
  font-weight:300; letter-spacing:-.02em;
}
.section-light .stat .num,.section-paper .stat .num{ color:var(--ink) }
.section-dark .stat .num,
.section-darker .stat .num{ color:#fff }
.stat .label{ color:rgba(244,239,231,.72); font-size:13px; letter-spacing:.12em; margin-top:14px; display:block; text-transform:uppercase }
.section-light .stat .label,.section-paper .stat .label{ color:var(--ink-3) }

/* ===== Gallery ===== */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px }
.gallery-grid.gallery-2{ grid-template-columns:repeat(2,1fr) }
.gallery-grid.gallery-3{ grid-template-columns:repeat(3,1fr) }
.gallery-item{
  position:relative; overflow:hidden; border-radius:var(--r-md); aspect-ratio:4/3;
  box-shadow:var(--shadow-1);
}
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease }
.gallery-item:hover img{ transform:scale(1.08) }
.gallery-caption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 22px 18px;
  background:linear-gradient(transparent, rgba(10,28,28,.82));
  color:#fff; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
}

/* ===== Process ribbon ===== */
.process-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px; counter-reset:proc }
.process-step{ counter-increment:proc; position:relative; padding-top:80px }
.process-step::before{
  content:counter(proc,decimal-leading-zero);
  position:absolute; top:0; left:0;
  font-family:var(--serif); font-size:56px; color:var(--gold); line-height:1; font-weight:300;
}
.process-step::after{
  content:""; position:absolute; top:32px; left:60px; right:0; height:1px;
  background:linear-gradient(90deg, var(--gold), transparent);
}
.section-dark .process-step::before{ color:var(--gold) }
.process-step h3{ margin-bottom:10px; font-size:21px }
.process-step p{ color:var(--ink-3); font-size:15px; margin:0; line-height:1.65 }
.section-dark .process-step p{ color:rgba(244,239,231,.74) }

/* ===== Logo strip ===== */
.logo-strip{
  display:grid; grid-template-columns:repeat(6,1fr); gap:24px; align-items:center;
  padding:44px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.logo-strip img{ width:100%; max-width:140px; opacity:.45; filter:grayscale(1); transition:opacity .25s, filter .25s; margin:0 auto }
.logo-strip img:hover{ opacity:.95; filter:grayscale(0) }

/* ===== Reviews / testimonials ===== */
.reviews-header{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:18px; margin-bottom:42px; padding:26px 28px; border:1px solid var(--line);
  background:#fff; border-radius:var(--r-md); box-shadow:var(--shadow-1);
}
.reviews-header-left{ display:flex; align-items:center; gap:18px; flex-wrap:wrap }
.reviews-score{
  font-family:var(--serif); font-size:52px; line-height:1; color:var(--accent); font-weight:300;
  letter-spacing:-.02em;
}
.reviews-meta{ font-size:14px; color:var(--ink-3) }
.reviews-meta strong{ color:var(--ink); font-weight:600 }
.reviews-stars-lg{ display:inline-flex; gap:3px; color:var(--gold) }
.reviews-stars-lg svg{ width:22px; height:22px; fill:currentColor }
.reviews-source-tag{
  display:inline-flex; align-items:center; gap:10px; padding:10px 16px;
  border:1px solid var(--line); border-radius:999px; background:var(--paper);
  font-size:12px; letter-spacing:.14em; color:var(--ink-3); text-transform:uppercase; font-weight:500;
}
.reviews-source-tag::before{ content:""; width:8px; height:8px; border-radius:50%; background:#34a853; box-shadow:0 0 0 4px rgba(52,168,83,.18) }

.review-card{
  background:#fff; border:1px solid var(--line-2); border-radius:var(--r-md);
  padding:30px 28px 26px; position:relative; display:flex; flex-direction:column; gap:16px;
  box-shadow:var(--shadow-1); transition:transform .35s ease, box-shadow .35s ease, border-color .35s;
}
.review-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:var(--gold) }
.review-card::before{
  content:"\201C"; position:absolute; top:8px; right:18px;
  font-family:var(--serif); font-size:80px; color:var(--gold-soft); line-height:1; opacity:.4;
}
.review-top{ display:flex; align-items:center; gap:14px; position:relative; z-index:1 }
.review-avatar{
  width:50px; height:50px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:18px; font-weight:500; color:#fff;
  background:var(--accent); text-transform:uppercase; letter-spacing:.02em;
  border:2px solid var(--gold-soft);
}
.review-avatar.av-bronze{ background:var(--gold); color:var(--ink) }
.review-avatar.av-sage{ background:var(--sage) }
.review-avatar.av-gold{ background:var(--gold-soft); color:var(--ink) }
.review-avatar.av-clay{ background:var(--coral) }
.review-avatar.av-ink{ background:var(--ink-2) }
.review-author{ display:flex; flex-direction:column; gap:3px; min-width:0 }
.review-author-name{ font-size:15px; font-weight:600; color:var(--ink); letter-spacing:.005em }
.review-author-meta{ font-size:12.5px; color:var(--ink-3); display:flex; flex-wrap:wrap; align-items:center; gap:8px }
.review-stars{ display:inline-flex; gap:2px; color:var(--gold) }
.review-stars svg{ width:15px; height:15px; fill:currentColor }
.review-body{ font-size:15px; line-height:1.7; color:var(--ink-2); margin:0; position:relative; z-index:1 }
.review-meta-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-top:14px; border-top:1px solid var(--line-2); font-size:11.5px; color:var(--ink-3);
  letter-spacing:.1em; flex-wrap:wrap; text-transform:uppercase;
}
.review-source{ display:inline-flex; align-items:center; gap:8px; font-weight:500; color:var(--ink-2) }
.review-source-icon{
  width:20px; height:20px; border-radius:5px; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:#fff;
}
.review-source-icon.src-google{ background:#fff; border:1px solid var(--line); color:#4285f4 }
.review-source-icon.src-yelp{ background:#d32323 }
.review-source-icon.src-houzz{ background:#7ac142 }
.review-source-icon.src-thumbtack{ background:#009fd9 }
.review-source-icon.src-direct{ background:var(--accent) }

.cards-grid.reviews-grid{ gap:24px }

@media (max-width:768px){
  .reviews-header{ flex-direction:column; align-items:flex-start; padding:22px 20px }
  .review-card{ padding:26px 22px 22px }
}

/* ===== FAQ ===== */
.faq-list{ max-width:920px; margin:0 auto }
.faq-item{
  border:1px solid var(--line-2); border-radius:var(--r-md); padding:6px 24px;
  margin-bottom:14px; background:#fff; transition:border-color .3s, box-shadow .3s;
}
.faq-item:hover{ border-color:var(--gold) }
.faq-item.open{ border-color:var(--accent); box-shadow:var(--shadow-1) }
.faq-q{
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  background:transparent; border:0; padding:18px 0; width:100%; text-align:left;
  font-family:var(--serif); font-size:20px; color:var(--ink); font-weight:500;
}
.faq-q svg{ flex:0 0 auto; transition:transform .3s; color:var(--accent) }
.faq-item.open .faq-q svg{ transform:rotate(45deg); color:var(--gold) }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; color:var(--ink-3); font-size:15.5px; line-height:1.7 }
.faq-item.open .faq-a{ max-height:600px; padding:6px 0 18px }

/* ===== RFP form ===== */
.rfp-section{
  background:var(--accent); color:var(--bone);
  padding:clamp(80px,10vw,150px) 0; position:relative; overflow:hidden;
}
.rfp-section::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(50% 65% at 90% 0%, rgba(200,162,90,.20), transparent 60%),
    radial-gradient(40% 50% at 0% 100%, rgba(255,255,255,.05), transparent 60%);
  pointer-events:none;
}
.rfp-section .container{ position:relative; z-index:1 }
.rfp-section .section-label{ color:var(--gold) }
.rfp-section .section-label::before{ background:var(--gold) }
.rfp-section .section-title{ color:#fff }
.rfp-section .section-subtitle{ color:rgba(244,239,231,.78) }
.rfp-form{
  max-width:820px; margin:52px auto 0;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg); padding:46px;
  backdrop-filter:blur(8px); box-shadow:0 28px 60px rgba(10,28,28,.30);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px }
.form-group{ margin-bottom:22px }
.form-group label{
  display:block; font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:10px; font-weight:600;
}
.form-group input,.form-group select,.form-group textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.20);
  color:#fff; padding:14px 0; font-family:inherit; font-size:16px; transition:border-color .2s;
}
.form-group select{ background:transparent; appearance:none; -webkit-appearance:none; padding-right:30px }
.form-group select option{ background:var(--accent-2); color:#fff }
.form-group textarea{ min-height:120px; resize:vertical }
.form-group input::placeholder,.form-group textarea::placeholder{ color:rgba(244,239,231,.42) }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none; border-bottom-color:var(--gold);
}
.file-upload-area{
  border:1px dashed rgba(255,255,255,.24); border-radius:var(--r-md); padding:30px; text-align:center;
  position:relative; transition:border-color .2s, background .2s;
}
.file-upload-area:hover{ border-color:var(--gold); background:rgba(200,162,90,.04) }
.file-upload-area input[type=file]{
  position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer;
}
.file-upload-area p{ color:rgba(244,239,231,.7); font-size:13.5px; margin:6px 0 }
.file-list{ margin-top:10px; font-size:13px; color:var(--gold) }
.consent-group{ display:flex; gap:12px; align-items:flex-start; font-size:13px; color:rgba(244,239,231,.78); line-height:1.55 }
.consent-group input{ width:auto; margin-top:4px }
.consent-group a{ color:var(--gold); text-decoration:underline }
.form-success{ display:none; text-align:center; padding:40px 20px }
.form-success.show{ display:block }

/* ===== Footer ===== */
.site-footer{
  background:var(--ink); color:rgba(244,239,231,.74);
  padding:96px 0 40px; position:relative; overflow:hidden;
}
.site-footer::before{
  content:""; position:absolute; left:0; right:0; top:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:52px }
.footer-col h3{ color:var(--bone); font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; margin-bottom:22px; position:relative; padding-bottom:14px }
.footer-col h3::after{ content:""; position:absolute; left:0; bottom:0; width:24px; height:1px; background:var(--gold) }
.footer-col p{ font-size:14.5px; line-height:1.7 }
.footer-col a{ display:block; padding:7px 0; font-size:14px; color:rgba(244,239,231,.72); transition:color .2s, padding .2s }
.footer-col a:hover{ color:var(--gold); padding-left:6px }
.footer-bottom{
  margin-top:72px; padding-top:28px; border-top:1px solid rgba(255,255,255,.08);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:13px; color:rgba(244,239,231,.55);
}

/* ===== Modals ===== */
.sticky-cta{
  position:fixed; right:18px; bottom:18px; z-index:80;
  display:flex; align-items:center; gap:10px;
  padding:8px; background:rgba(244,239,231,.92);
  border:1px solid var(--line); border-radius:999px;
  box-shadow:0 22px 50px rgba(10,28,28,.22);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.sticky-cta .btn{ cursor:pointer; min-height:42px }
.modal-overlay{
  position:fixed; inset:0; background:rgba(10,28,28,.78); backdrop-filter:blur(12px);
  display:none; align-items:center; justify-content:center; padding:20px; z-index:200;
}
.modal-overlay.open{ display:flex }
.modal-content{
  background:linear-gradient(180deg, var(--accent), var(--accent-2)); color:var(--bone);
  border:1px solid rgba(200,162,90,.30);
  border-radius:var(--r-lg); padding:46px; max-width:780px; width:100%;
  max-height:92vh; overflow-y:auto; position:relative;
  box-shadow:0 38px 100px rgba(10,28,28,.5);
}
.modal-content h2{ color:#fff; font-size:clamp(28px,3vw,40px); margin-bottom:10px }
.modal-content > p{ color:rgba(244,239,231,.78); margin-bottom:24px }
.modal-close{
  position:absolute; top:18px; right:18px; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:50%; color:var(--bone); font-size:26px; line-height:1;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.modal-close:hover{ background:rgba(255,255,255,.12); border-color:var(--gold); color:var(--gold) }
.modal-close:active{ transform:scale(.96) }
.newsletter-modal .modal-content{ max-width:520px }
.newsletter-intro{ color:rgba(244,239,231,.78); font-size:14.5px; margin-bottom:24px }

/* ===== Cookie banner ===== */
.cookie-banner{
  position:fixed; left:18px; bottom:18px; z-index:90;
  background:rgba(244,239,231,.96); color:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-md); padding:20px 22px; max-width:430px; display:none; box-shadow:var(--shadow-3);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.cookie-banner.show{ display:block }
.cookie-banner p{ font-size:13.5px; color:var(--ink-3); margin:0 0 14px; line-height:1.6 }
.cookie-banner a{ color:var(--accent); text-decoration:underline }
.cookie-actions{ display:flex; gap:10px; flex-wrap:wrap }
.cookie-actions .btn{ min-width:96px }

/* ===== Marquee tagline ===== */
.tagline-row{
  display:block; padding:26px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--paper); overflow:hidden;
}
.tagline-row .container{
  display:flex; gap:16px 32px; align-items:center; justify-content:center; flex-wrap:wrap; width:100%;
}
.tagline-row .item{
  display:inline-flex; align-items:center; gap:16px; flex:0 0 auto;
  font-family:var(--serif); font-size:clamp(17px,1.8vw,22px); color:var(--ink); white-space:nowrap;
  font-weight:400;
}
.tagline-row .dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 0 3px rgba(200,162,90,.20);
}

/* ===== Two-column body content (privacy etc) ===== */
.prose h2{ font-size:26px; margin-top:1.8em; color:var(--ink); font-weight:500 }
.prose ul{ padding-left:24px; margin-bottom:1.2em }
.prose li{ margin-bottom:8px; color:var(--ink-3) }
.prose p{ color:var(--ink-3); line-height:1.8 }

/* ===== Trust bar ===== */
.trust-bar{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  margin-top:48px; padding:28px; background:#fff; border:1px solid var(--line-2);
  border-radius:var(--r-md); box-shadow:var(--shadow-1);
}
.trust-item{ display:flex; gap:14px; align-items:flex-start }
.trust-item-icon{
  width:42px; height:42px; flex:0 0 auto; border-radius:10px;
  background:linear-gradient(135deg, rgba(14,58,58,.10), rgba(200,162,90,.18));
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line);
}
.trust-item-icon svg{ width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:1.6 }
.trust-item-text strong{ display:block; font-size:14.5px; color:var(--ink); font-weight:600; margin-bottom:2px; font-family:var(--serif) }
.trust-item-text span{ font-size:12.5px; color:var(--ink-3); letter-spacing:.04em }

/* ===== Responsive ===== */
@media (max-width:1024px){
  .footer-grid{ grid-template-columns:1fr 1fr }
  .stats-grid{ grid-template-columns:repeat(2,1fr) }
  .process-grid{ grid-template-columns:repeat(2,1fr) }
  .gallery-grid{ grid-template-columns:repeat(3,1fr) }
  .logo-strip{ grid-template-columns:repeat(3,1fr) }
  .trust-bar{ grid-template-columns:repeat(2,1fr) }
}
@media (max-width:768px){
  .top-bar{ display:none }
  .nav-links{ display:none }
  .hamburger{ display:flex }
  .split, .split-reverse{ grid-template-columns:1fr }
  .split-reverse .split-content{ order:0 }
  .cards-grid-3,.cards-grid-4,.cards-grid-2{ grid-template-columns:1fr }
  .form-row{ grid-template-columns:1fr }
  .footer-grid{ grid-template-columns:1fr }
  .gallery-grid{ grid-template-columns:repeat(2,1fr) }
  .process-grid{ grid-template-columns:1fr }
  .hero{ min-height:auto; padding:120px 0 96px }
  .top-bar-left{ font-size:12px; gap:8px 18px }
  .rfp-form{ padding:30px 22px }
  .sticky-cta{ left:14px; right:14px; bottom:14px }
  .sticky-cta .btn{ flex:1; padding-left:14px; padding-right:14px }
  .cookie-banner{ left:14px; right:14px; bottom:76px; max-width:none }
  .tagline-row{ padding:18px 0 }
  .tagline-row .container{
    justify-content:center; gap:12px 24px; flex-wrap:wrap; overflow:visible;
  }
  .tagline-row .item{ gap:10px; font-size:16px }
  .trust-bar{ grid-template-columns:1fr }
  .process-step::after{ display:none }
}
@media (max-width:480px){
  .stats-grid{ grid-template-columns:1fr }
  .logo-strip{ grid-template-columns:repeat(2,1fr) }
  .gallery-grid{ grid-template-columns:1fr }
  .modal-content{ padding:30px 22px }
  .tagline-row .container{ gap:10px 18px }
  .tagline-row .item{ font-size:15px }
}

/* JS-driven helpers */
.no-scroll{ overflow:hidden !important }
.error-message{ color:#ff8b6b; font-size:12.5px; margin-top:6px; letter-spacing:.04em }
.has-error label{ color:#ff8b6b }
