/* ============================================================
   KY-PRO PAINTING v4 — Complete stylesheet
   ============================================================ */

:root {
  --cream:         #F5F0E8;
  --warm-white:    #FAF7F2;
  --charcoal:      #1C1917;
  --charcoal-soft: #2E2A27;
  --terra:         #C4622D;
  --terra-light:   #D97944;
  --muted:         #7A7169;
  --border:        rgba(28,25,23,.12);
  --font-display:  'Cormorant Garant', Georgia, serif;
  --font-body:     'DM Sans', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--warm-white);
  color: var(--charcoal);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.7;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a   { color: inherit; text-decoration: none; }

/* ── Animations ─────────────────────────────────────────── */
@keyframes fadeUp  { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:none} }
@keyframes fadeIn  { from{opacity:0} to{opacity:1} }
@keyframes ticker  { from{transform:translateX(0)} to{transform:translateX(-50%)} }

.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .75s ease, transform .75s ease;
}
.reveal.visible            { opacity:1; transform:none; }
.reveal-delay-1            { transition-delay:.10s; }
.reveal-delay-2            { transition-delay:.20s; }
.reveal-delay-3            { transition-delay:.30s; }
.reveal-delay-4            { transition-delay:.40s; }
.reveal-delay-5            { transition-delay:.50s; }

/* ─────────────────────────────────────────────────────────
   NAVIGATION
───────────────────────────────────────────────────────── */
#kypro-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5vw;
  height: 76px;
  transition: background .35s, box-shadow .35s;
}

/* Homepage: transparent until scrolled */
#kypro-nav.nav-transparent            { background: transparent; }
#kypro-nav.nav-transparent.scrolled   { background: rgba(250,247,242,.96); backdrop-filter:blur(10px); box-shadow:0 1px 0 var(--border); }

/* Inner pages: always solid */
#kypro-nav.nav-solid { background: var(--warm-white); box-shadow: 0 1px 0 var(--border); }

/* Logo */
.nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.nav-logo-img {
  height: 58px;
  width: auto;
  max-width: 280px;
  display: block;
  transition: filter .3s;
}
/* Homepage at top: force logo fully white (handles grey 'ET' text too) */
#kypro-nav.nav-transparent .nav-logo-img { filter: brightness(0) invert(1); }
/* Homepage scrolled: restore original black */
#kypro-nav.nav-transparent.scrolled .nav-logo-img { filter: brightness(1) invert(0); }
/* Inner pages: original black */
#kypro-nav.nav-solid .nav-logo-img { filter: brightness(1) invert(0); }

/* Links */
.nav-links { display:flex; gap:2.5rem; list-style:none; align-items:center; }
.nav-links a {
  font-size: .8rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  transition: opacity .2s, color .2s, background .2s;
}

/* Transparent state */
.nav-transparent .nav-links a         { color: rgba(245,240,232,.7); }
.nav-transparent .nav-links a:hover   { color: var(--cream); opacity:1; }
.nav-transparent.scrolled .nav-links a      { color: rgba(28,25,23,.6); }
.nav-transparent.scrolled .nav-links a:hover { color: var(--charcoal); }

/* Solid state */
.nav-solid .nav-links a              { color: rgba(28,25,23,.6); }
.nav-solid .nav-links a:hover        { color: var(--charcoal); }
.nav-solid .nav-links a.nav-active   { color: var(--terra); }
.nav-solid .nav-links [aria-current="page"] { color: var(--terra); }

/* CTA button in nav */
.nav-links .nav-cta,
.nav-links a.nav-cta {
  background: var(--terra) !important;
  color: #fff !important;
  padding: 10px 22px !important;
  border-radius: 2px;
  opacity: 1 !important;
  transition: background .2s !important;
}
.nav-links .nav-cta:hover,
.nav-links a.nav-cta:hover { background: var(--terra-light) !important; }

/* Hamburger */
.nav-hamburger {
  display: none; flex-direction: column; gap:5px;
  background:none; border:none; cursor:pointer; padding:4px;
}
.nav-hamburger span {
  display:block; width:24px; height:1.5px;
  transition: background .3s;
}
.nav-transparent .nav-hamburger span  { background: var(--cream); }
.nav-transparent.scrolled .nav-hamburger span { background: var(--charcoal); }
.nav-solid .nav-hamburger span        { background: var(--charcoal); }

/* Admin bar offset */
.admin-bar #kypro-nav { top:32px; }
@media screen and (max-width:782px) { .admin-bar #kypro-nav { top:46px; } }

/* Mobile menu */
.mobile-menu {
  display:none; position:fixed; inset:0;
  background:var(--warm-white); z-index:199;
  flex-direction:column; align-items:center; justify-content:center; gap:2rem;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  font-family:var(--font-display); font-size:2.5rem; font-weight:300;
  color:var(--charcoal); transition:color .2s;
}
.mobile-menu a:hover { color:var(--terra); }
.mobile-cta-btn {
  background:var(--terra) !important; color:#fff !important;
  padding:14px 36px; border-radius:2px;
  font-size:.8rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  font-family:var(--font-body);
  transition:background .2s !important;
}
.mobile-cta-btn:hover { background:var(--terra-light) !important; }
.mobile-close {
  position:absolute; top:24px; right:5vw;
  font-size:1.5rem; cursor:pointer; color:var(--muted);
  background:none; border:none; line-height:1;
}

/* ─────────────────────────────────────────────────────────
   BUTTONS
───────────────────────────────────────────────────────── */
.btn-primary {
  display:inline-block; background:var(--terra); color:#fff;
  padding:15px 36px; font-family:var(--font-body); font-size:.8rem;
  font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  border-radius:2px; border:none; cursor:pointer;
  transition:background .25s, transform .2s;
}
.btn-primary:hover { background:var(--terra-light); color:#fff; transform:translateY(-2px); }

.btn-ghost {
  display:inline-block; border:1px solid rgba(245,240,232,.3);
  color:var(--cream); padding:15px 36px; font-size:.8rem;
  letter-spacing:.1em; text-transform:uppercase; border-radius:2px;
  transition:border-color .25s, background .25s;
}
.btn-ghost:hover { border-color:rgba(245,240,232,.8); background:rgba(245,240,232,.07); color:var(--cream); }

.btn-outline-dark {
  display:inline-block; border:1px solid var(--border);
  color:var(--charcoal); padding:13px 32px; font-size:.78rem;
  letter-spacing:.1em; text-transform:uppercase; border-radius:2px;
  transition:border-color .2s, background .2s;
}
.btn-outline-dark:hover { border-color:var(--terra); color:var(--terra); }

/* ─────────────────────────────────────────────────────────
   HERO (homepage full-screen)
───────────────────────────────────────────────────────── */
#hero {
  min-height:100vh; background:var(--charcoal);
  position:relative; display:grid; place-items:center; overflow:hidden;
}
/* Video fills entire hero */
.hero-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
/* Dark overlay — ensures white text is always legible */
.hero-overlay {
  position:absolute; inset:0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.45) 60%,
    rgba(0,0,0,.65) 100%
  );
  z-index:1;
}
.hero-bg-texture { display:none; }
.hero-grain {
  position:absolute; inset:0; opacity:.04; z-index:2;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
}
.hero-content {
  position:relative; z-index:3; text-align:center;
  padding:0 5vw; max-width:900px;
  animation: fadeUp 1.1s ease both;
}
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:14px;
  font-size:.85rem; letter-spacing:.25em; text-transform:uppercase;
  color:#fff; margin-bottom:2rem; font-weight:400;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
  opacity:0; animation:fadeIn 1.2s .2s ease forwards;
}
.hero-eyebrow::before,.hero-eyebrow::after {
  content:''; display:block; width:52px; height:1.5px;
  background:var(--terra-light); opacity:1;
}
.hero-title {
  font-family:var(--font-display); font-size:clamp(3.2rem,7vw,6.5rem);
  font-weight:300; line-height:1.05; color:var(--cream);
  letter-spacing:-.01em; margin-bottom:1.5rem;
  opacity:0; animation:fadeUp 1s .3s ease forwards;
}
.hero-title em { font-style:italic; color:var(--terra-light); }
.hero-subtitle {
  font-size:1rem; color:rgba(245,240,232,.55);
  max-width:520px; margin:0 auto 2.8rem;
  opacity:0; animation:fadeUp 1s .5s ease forwards;
}
.hero-actions {
  display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;
  opacity:0; animation:fadeUp 1s .7s ease forwards;
}
.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(245,240,232,.35); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase;
  opacity:0; animation:fadeIn 1s 1.2s ease forwards; z-index:3;
}
.hero-scroll-line { width:1px; height:48px; background:linear-gradient(to bottom,rgba(245,240,232,.3),transparent); }

/* ─────────────────────────────────────────────────────────
   PAGE HERO (inner pages)
───────────────────────────────────────────────────────── */
.page-hero {
  background:var(--charcoal);
  position:relative; overflow:hidden;
  padding:clamp(6rem,14vw,9rem) 5vw clamp(4rem,9vw,6rem);
  margin-top:0;
}
.page-hero-bg {
  position:absolute; inset:0;
  background-image:
    radial-gradient(ellipse 70% 80% at 80% 50%, rgba(196,98,45,.11) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(181,147,90,.07) 0%, transparent 60%);
}
.page-hero-grain {
  position:absolute; inset:0; opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
}
.page-hero-content {
  position:relative; z-index:1; max-width:760px;
  animation: fadeUp .9s .1s ease both;
}
.page-hero .hero-eyebrow {
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--terra-light); display:flex; align-items:center; gap:10px;
  margin-bottom:1.4rem; opacity:1; animation:none;
}
.page-hero .hero-eyebrow::before,.page-hero .hero-eyebrow::after {
  content:''; display:block; width:32px; height:1px;
  background:var(--terra-light); opacity:.5;
}
.page-hero-title {
  font-family:var(--font-display); font-size:clamp(2rem,4vw,3.6rem);
  font-weight:300; line-height:1.08; color:var(--cream); letter-spacing:-.01em;
}
.page-hero-title em { font-style:italic; color:var(--terra-light); }

/* ─────────────────────────────────────────────────────────
   TICKER
───────────────────────────────────────────────────────── */
.ticker-wrap { background:var(--terra); overflow:hidden; padding:14px 0; }
.ticker-inner { display:flex; white-space:nowrap; animation:ticker 30s linear infinite; }
.ticker-item {
  display:inline-flex; align-items:center; gap:2rem;
  font-size:.7rem; font-weight:400; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.9); padding-right:4rem;
}
.ticker-item::before { content:'\2736'; font-size:.6rem; opacity:.7; }

/* ─────────────────────────────────────────────────────────
   SHARED SECTION HELPERS
───────────────────────────────────────────────────────── */
.kypro-section { padding:8rem 5vw; }
.section-label { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--terra); font-weight:400; margin-bottom:1.2rem; }
.section-title { font-family:var(--font-display); font-size:clamp(2.4rem,4.5vw,4rem); font-weight:300; line-height:1.1; color:var(--charcoal); letter-spacing:-.01em; }
.section-title em { font-style:italic; color:var(--terra); }

/* ─────────────────────────────────────────────────────────
   HOMEPAGE — PROCESS
───────────────────────────────────────────────────────── */
#process { background:var(--cream); }
.process-fullscreen {
  min-height: calc(100vh - 42px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.process-header { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:5rem; }
.process-intro-text { font-size:1rem; color:var(--muted); max-width:380px; line-height:1.8; }
.process-steps { display:grid; grid-template-columns:repeat(5,1fr); position:relative; }
.process-steps::before { content:''; position:absolute; top:28px; left:10%; right:10%; height:1px; background:var(--border); }
.step { display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 .5rem; }
.step-num {
  width:56px; height:56px; border-radius:50%;
  border:1px solid var(--border); background:var(--warm-white);
  display:grid; place-items:center;
  font-family:var(--font-display); font-size:1.3rem; font-weight:300;
  margin-bottom:1.5rem; position:relative; z-index:1;
  transition:background .3s, border-color .3s, color .3s;
}
.step:hover .step-num { background:var(--terra); color:#fff; border-color:var(--terra); }
.step-title { font-family:var(--font-display); font-size:1.05rem; font-weight:600; margin-bottom:.6rem; line-height:1.3; }
.step-text  { font-size:.82rem; color:var(--muted); line-height:1.65; }
.process-cta { text-align:center; margin-top:3.5rem; }

/* ─────────────────────────────────────────────────────────
   HOMEPAGE — WHY
───────────────────────────────────────────────────────── */
#why { background:var(--warm-white); }
.why-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:4rem; align-items:center; }
.why-fullscreen { min-height:100vh; padding-top:2rem !important; padding-bottom:2rem !important; }
.why-image-wrap { position:relative; width:100%; }
.why-image-wrap img { width:100%; height:70vh; max-height:600px; object-fit:cover; object-position:center top; filter:saturate(.9) contrast(1.02); border-radius:2px; }
.why-image-badge {
  position:absolute; bottom:-1.5rem; right:-1.5rem;
  background:var(--terra); color:#fff; width:130px; height:130px;
  border-radius:50%; display:grid; place-items:center; text-align:center;
  padding:1rem; font-family:var(--font-display); font-size:.9rem; line-height:1.4;
  box-shadow:0 8px 32px rgba(196,98,45,.3);
}
.why-image-badge strong { font-size:1.6rem; font-weight:600; display:block; }
.why-content .section-title { margin-bottom:1rem; }
.why-body { font-size:.9rem; color:var(--muted); line-height:1.75; margin-bottom:1.2rem; }
.why-pillars { display:grid; grid-template-columns:1fr 1fr; gap:.15rem; margin-bottom:1.4rem; }
.pillar { display:flex; align-items:flex-start; gap:.8rem; }
.pillar-icon { width:32px; height:32px; border-radius:50%; background:rgba(196,98,45,.1); display:grid; place-items:center; flex-shrink:0; }
.pillar-icon svg { width:14px; height:14px; stroke:var(--terra); }
.pillar-text { font-size:.82rem; font-weight:500; line-height:1.4; }
.why-quote { background:var(--cream); border-left:3px solid var(--terra); padding:1rem 1.2rem; margin-bottom:1.2rem; border-radius:0; }
.why-quote blockquote { font-family:var(--font-display); font-size:1.1rem; font-style:italic; font-weight:300; color:var(--charcoal-soft); line-height:1.6; margin-bottom:.5rem; }
.why-quote cite { font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--terra); font-style:normal; }

/* ─────────────────────────────────────────────────────────
   HOMEPAGE — TESTIMONIALS
───────────────────────────────────────────────────────── */
#testimonials { background:var(--charcoal); padding:8rem 5vw; }
.testimonials-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:4rem; flex-wrap:wrap; gap:2rem; }
.testimonials-header .section-title { color:var(--cream); }
.testimonials-header .section-label { color:var(--terra-light); }
.review-link { font-size:.8rem; letter-spacing:.08em; color:rgba(245,240,232,.5); border-bottom:1px solid rgba(245,240,232,.2); padding-bottom:2px; transition:color .2s,border-color .2s; }
.review-link:hover { color:var(--cream); border-color:var(--cream); }
.testimonials-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5px; }
.testi-card { background:rgba(255,255,255,.04); border:1px solid rgba(245,240,232,.08); padding:2.5rem; position:relative; overflow:hidden; transition:background .3s; }
.testi-card::before { content:'\201C'; font-family:var(--font-display); font-size:7rem; font-style:italic; color:var(--terra); opacity:.12; position:absolute; top:-1rem; left:1.5rem; line-height:1; pointer-events:none; }
.testi-card:hover { background:rgba(255,255,255,.07); }
.testi-stars { display:flex; gap:3px; margin-bottom:1.2rem; }
.testi-stars span { color:var(--terra-light); font-size:.75rem; }
.testi-text { font-family:var(--font-display); font-size:1.15rem; font-weight:300; font-style:italic; color:rgba(245,240,232,.85); line-height:1.65; margin-bottom:1.8rem; position:relative; z-index:1; }
.testi-author { display:flex; align-items:center; gap:12px; }
.testi-avatar { width:44px; height:44px; border-radius:50%; background:rgba(196,98,45,.25); display:grid; place-items:center; font-family:var(--font-display); font-size:1.1rem; font-weight:600; color:var(--terra-light); flex-shrink:0; }
.testi-name { font-size:.85rem; font-weight:500; color:var(--cream); }
.testi-city { font-size:.72rem; color:rgba(245,240,232,.35); }

/* ─────────────────────────────────────────────────────────
   CTA BANNER (shared across pages)
───────────────────────────────────────────────────────── */
.cta-banner { background:var(--terra); padding:6rem 5vw; }
.cta-banner-inner { max-width:700px; margin:0 auto; text-align:center; }
.cta-banner-title { font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem); font-weight:300; color:#fff; margin-bottom:.8rem; line-height:1.15; }
.cta-banner-sub { font-size:.9rem; color:rgba(255,255,255,.7); margin-bottom:2rem; letter-spacing:.04em; }
.cta-banner .btn-primary { background:#fff; color:var(--terra); }
.cta-banner .btn-primary:hover { background:var(--cream); color:var(--terra); }

/* ─────────────────────────────────────────────────────────
   SERVICES PAGE
───────────────────────────────────────────────────────── */
/* ── SERVICES PAGE — NEW CARD GRID LAYOUT ─────────────────────────────── */
.srv-intro-section {
  background: var(--cream);
  padding: calc(76px + 4rem) 5vw 4rem;
}
.srv-intro-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
.srv-intro-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--charcoal);
  margin-bottom: 1.2rem;
}
.srv-intro-title em { font-style: italic; color: var(--terra); }
.srv-intro-text {
  font-size: .95rem;
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: 2rem;
}

/* Step tracker */
.srv-tracker {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1.8rem 2rem;
}
.tracker-heading {
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 1.4rem;
}
.srv-tracker-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
}
.srv-tracker-num {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--terra);
  color: var(--terra);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 300;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: #fff;
  position: relative;
  z-index: 1;
  transition: background .2s, color .2s;
}
.srv-tracker-item:hover .srv-tracker-num { background: var(--terra); color: #fff; }
.srv-tracker-label {
  font-size: .82rem;
  font-weight: 400;
  color: var(--charcoal);
}
.srv-tracker-connector {
  width: 1.5px;
  height: 22px;
  background: linear-gradient(to bottom, var(--terra), rgba(196,98,45,.2));
  margin-left: 19px;
}
.srv-tracker-line {
  position: absolute;
  left: 20px; top: 42px;
  width: 1.5px; height: 28px;
  background: linear-gradient(to bottom, var(--terra), rgba(196,98,45,.2));
  z-index: 0;
}

/* Cards grid */
.srv-grid-section {
  background: var(--warm-white);
  padding: 3rem 5vw 4rem;
}
.srv-row {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.srv-row:last-child { margin-bottom: 0; }
.srv-row-2 { grid-template-columns: 1fr 1fr; }
.srv-row-3 { grid-template-columns: 1fr 1fr 1fr; }

.srv-card {
  background: var(--warm-white);
  border: 1px solid var(--border);
  border-radius: 3px;
  overflow: hidden;
  transition: box-shadow .25s, transform .25s;
}
.srv-card:hover {
  box-shadow: 0 8px 32px rgba(28,25,23,.08);
  transform: translateY(-3px);
}
.srv-card-img {
  position: relative;
  overflow: hidden;
}
.srv-card-img img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.srv-card:hover .srv-card-img img { transform: scale(1.03); }
.srv-card-num {
  position: absolute;
  top: 12px; left: 12px;
  background: var(--terra);
  color: #fff;
  font-family: var(--font-display);
  font-size: .95rem;
  font-weight: 600;
  width: 36px; height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
}
.srv-card-body { padding: 1.4rem 1.6rem; }
.srv-card-title {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  font-weight: 600;
  line-height: 1.3;
  color: var(--charcoal);
  margin-bottom: .7rem;
}
.srv-card-text { font-size: .82rem; color: var(--muted); line-height: 1.75; }

/* keep old classes so nothing breaks if referenced elsewhere */
.services-intro { background:var(--cream); }
.services-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; }
.services-intro-text { font-size:1rem; color:var(--muted); line-height:1.85; }
.service-step { background:var(--warm-white); }
.service-step.step-even { background:var(--cream); }
.service-step-pad { padding:3.5rem 5vw; }
.service-step-inner { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.step-even .service-step-inner { direction:rtl; }
.step-even .service-step-inner > * { direction:ltr; }
.service-step-img { position:relative; }
.service-step-img img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; }
.service-step-num-bg { position:absolute; top:-1.2rem; left:-1.2rem; font-family:var(--font-display); font-size:7rem; font-weight:700; color:var(--terra); opacity:.08; line-height:1; z-index:0; pointer-events:none; user-select:none; }
.step-num-badge { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; border:1px solid var(--terra); color:var(--terra); font-family:var(--font-display); font-size:1.3rem; font-weight:300; margin-bottom:1.2rem; }
.service-step-title { font-family:var(--font-display); font-size:clamp(1.2rem,2vw,1.7rem); font-weight:300; line-height:1.2; margin-bottom:1rem; color:var(--charcoal); }
.service-step-text  { font-size:.9rem; color:var(--muted); line-height:1.8; }

/* ─────────────────────────────────────────────────────────
   RÉALISATIONS PAGE
───────────────────────────────────────────────────────── */
.gallery-intro {
  background:var(--cream);
  text-align:center;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.gallery-scroll {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:.65rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-top:2.5rem;
}
@keyframes scrollBounce {
  0%, 100% { transform:translateY(0); opacity:.5; }
  50%       { transform:translateY(6px); opacity:1; }
}
.gallery-scroll-line {
  width:1px;
  height:40px;
  background:linear-gradient(to bottom, var(--terra), transparent);
  animation:scrollBounce 1.8s ease-in-out infinite;
}
.ba-section { background:var(--warm-white); }
.ba-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }

/* Before/After slider */
.ba-card {}
.ba-slider {
  position:relative; overflow:hidden; cursor:ew-resize;
  aspect-ratio:4/3; user-select:none; border-radius:2px;
}
.ba-before, .ba-after {
  position:absolute; inset:0;
}
.ba-before img, .ba-after img { width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba-before { clip-path:inset(0 50% 0 0); }
.ba-tag {
  position:absolute; bottom:12px;
  font-size:.65rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase;
  padding:4px 12px; border-radius:2px; pointer-events:none;
}
.ba-tag-after  { right:12px; background:var(--terra); color:#fff; }
.ba-tag-before { left:12px; background:rgba(28,25,23,.7); color:#fff; }
.ba-handle {
  position:absolute; top:0; bottom:0; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; pointer-events:none;
}
.ba-handle-line { width:2px; height:100%; background:#fff; opacity:.9; }
.ba-handle-circle {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:40px; height:40px; border-radius:50%;
  background:var(--terra); box-shadow:0 2px 8px rgba(0,0,0,.3);
  display:flex; align-items:center; justify-content:center; gap:0; color:#fff;
}
.ba-label { padding:.9rem 0; font-size:.8rem; letter-spacing:.06em; color:var(--muted); }

/* Stats bar */
.stats-bar { background:var(--charcoal); padding:4rem 5vw; }
.stats-bar-inner { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0; max-width:900px; margin:0 auto; }
.stat-item { text-align:center; padding:1rem 3rem; }
.stat-num { font-family:var(--font-display); font-size:3rem; font-weight:300; color:var(--cream); line-height:1; }
.stat-num span { font-size:1.8rem; color:var(--terra); }
.stat-label { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(245,240,232,.4); margin-top:.4rem; }
.stat-divider { width:1px; height:60px; background:rgba(245,240,232,.1); }

/* FAQ */
.faq-section { background:var(--cream); }
.faq-inner { display:grid; grid-template-columns:1fr 2fr; gap:6rem; align-items:start; }
.faq-header { position:sticky; top:100px; }
.faq-list { display:flex; flex-direction:column; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-question {
  width:100%; background:none; border:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 0; gap:1rem; text-align:left;
  font-family:var(--font-body); font-size:.95rem; font-weight:400; color:var(--charcoal);
  transition:color .2s;
}
.faq-question:hover { color:var(--terra); }
.faq-question[aria-expanded="true"] { color:var(--terra); }
.faq-icon { flex-shrink:0; width:18px; height:18px; transition:transform .3s; }
.faq-icon svg { stroke:currentColor; }
.faq-question[aria-expanded="true"] .faq-icon { transform:rotate(180deg); }
.faq-answer { overflow:hidden; }
.faq-answer p { padding:0 0 1.4rem; font-size:.9rem; color:var(--muted); line-height:1.8; }

/* ── FAQ DEDICATED PAGE ──────────────────────────────────────────────────── */
.faq-page-hero {
  background: var(--charcoal);
  padding: calc(76px + 5rem) 5vw 5rem;
  position: relative;
  overflow: hidden;
}
.faq-page-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 80% at 80% 50%, rgba(196,98,45,.13) 0%, transparent 60%);
}
.faq-page-hero-inner { position: relative; z-index: 1; max-width: 680px; }
.faq-page-title {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 300; line-height: 1.1; color: var(--cream);
  letter-spacing: -.01em; margin-bottom: 1rem;
}
.faq-page-title em { font-style: italic; color: var(--terra-light); }
.faq-page-sub { font-size: .95rem; color: rgba(245,240,232,.5); max-width: 480px; line-height: 1.7; }

.faq-page-section { background: var(--cream); padding: 5rem 5vw; }
.faq-page-inner {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 5rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: start;
}
.faq-page-sidebar { position: sticky; top: 100px; }
.faq-sidebar-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  font-weight: 300; line-height: 1.15;
  color: var(--charcoal); margin-bottom: 1rem;
}
.faq-sidebar-text { font-size: .88rem; color: var(--muted); line-height: 1.75; }
.faq-sidebar-contact { margin-top: 1.2rem; }
.faq-phone-link {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .88rem; color: var(--muted); transition: color .2s;
}
.faq-phone-link:hover { color: var(--terra); }
.faq-phone-link svg { stroke: var(--terra); flex-shrink: 0; }

.faq-page-list { background: #fff; border-radius: 3px; border: 1px solid var(--border); overflow: hidden; }
.faq-page-item { border-bottom: 1px solid var(--border); }
.faq-page-item:last-child { border-bottom: none; }
.faq-page-item .faq-question { padding: 1.4rem 1.8rem; font-size: .93rem; }
.faq-page-item .faq-answer p { padding: 0 1.8rem 1.4rem; font-size: .88rem; }

/* ─────────────────────────────────────────────────────────
   NOUS REJOINDRE PAGE
───────────────────────────────────────────────────────── */
.contact-page-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:6rem; align-items:start; background:var(--warm-white); }
.contact-info-col { position:sticky; top:100px; }
.contact-info-block { margin-bottom:3rem; }
.contact-details { display:grid; gap:1.4rem; margin-top:2rem; }
.contact-item { display:flex; align-items:flex-start; gap:1rem; }
.contact-icon { width:40px; height:40px; border-radius:50%; background:var(--charcoal); display:grid; place-items:center; flex-shrink:0; }
.contact-icon svg { width:16px; height:16px; stroke:var(--cream); }
.contact-label { font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); margin-bottom:2px; }
.contact-value { font-size:.95rem; }
.contact-value a { color:var(--terra); transition:opacity .2s; }
.contact-value a:hover { opacity:.75; }

/* Zone pills */
.zones-block { background:var(--cream); padding:2rem; border-radius:4px; }
.zones-grid { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.zone-pill {
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; border:1px solid var(--border);
  padding:7px 14px; border-radius:2px; font-size:.8rem; color:var(--charcoal-soft);
}
.zone-pill svg { width:12px; height:12px; stroke:var(--terra); }

/* Contact form column */
.contact-form-col {}
.contact-form-wrap { background:var(--charcoal); padding:3rem; border-radius:4px; }
.form-heading { margin-bottom:2rem; }
.form-title   { font-family:var(--font-display); font-size:1.8rem; font-weight:300; color:var(--cream); margin-bottom:.4rem; }
.form-subtitle { font-size:.82rem; color:rgba(245,240,232,.4); }
.form-group { margin-bottom:1.2rem; }
.form-group > label:not(.project-type-option):not(.consent-label) {
  display:block; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(245,240,232,.5); margin-bottom:6px;
}
.req { color:var(--terra-light); }
.kypro-form input:not([type=radio]):not([type=checkbox]),
.kypro-form textarea,
.kypro-form select {
  width:100%; background:rgba(255,255,255,.06);
  border:1px solid rgba(245,240,232,.12); color:var(--cream);
  font-family:var(--font-body); font-size:.9rem; font-weight:300;
  padding:12px 16px; border-radius:2px; outline:none;
  -webkit-appearance:none; transition:border-color .2s, background .2s;
}
.kypro-form input::placeholder,
.kypro-form textarea::placeholder { color:rgba(245,240,232,.25); }
.kypro-form input:focus,
.kypro-form textarea:focus,
.kypro-form select:focus { border-color:var(--terra); background:rgba(255,255,255,.09); }
.kypro-form textarea { height:130px; resize:none; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* Project type radio grid */
.project-type-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.project-type-option {
  display:flex; flex-direction:column; align-items:center;
  cursor:pointer; gap:0;
}
.project-type-option input[type=radio] { display:none; }
.project-type-option span {
  display:block; width:100%; text-align:center;
  padding:10px 8px; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid rgba(245,240,232,.15); color:rgba(245,240,232,.5);
  border-radius:2px; cursor:pointer; transition:border-color .2s, color .2s, background .2s;
}
.project-type-option input[type=radio]:checked + span {
  border-color:var(--terra); color:#fff; background:rgba(196,98,45,.2);
}
.project-type-option span:hover { border-color:rgba(245,240,232,.4); color:rgba(245,240,232,.8); }

/* Consent checkbox */
.form-consent { margin-top:.5rem; }
.consent-label {
  display:flex; align-items:flex-start; gap:.8rem; cursor:pointer;
  font-size:.8rem; color:rgba(245,240,232,.5); line-height:1.6;
}
.consent-label input[type=checkbox] { margin-top:3px; flex-shrink:0; accent-color:var(--terra); }
.consent-label a { color:var(--terra-light); }

.form-submit {
  width:100%; background:var(--terra); color:#fff; border:none; cursor:pointer;
  padding:15px; font-family:var(--font-body); font-size:.8rem; font-weight:400;
  letter-spacing:.12em; text-transform:uppercase; border-radius:2px; margin-top:.8rem;
  transition:background .25s;
}
.form-submit:hover { background:var(--terra-light); }

/* ─────────────────────────────────────────────────────────
   FOOTER
───────────────────────────────────────────────────────── */
#kypro-footer { background:#120F0D; padding:3.2rem 5vw 1.6rem; }
.footer-inner {}
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2rem; padding-bottom:2rem; border-bottom:1px solid rgba(245,240,232,.08); margin-bottom:1.3rem; }
.footer-brand { font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--cream); letter-spacing:.04em; margin-bottom:.65rem; display:flex; align-items:center; gap:6px; }
.footer-dot { width:5px; height:5px; background:var(--terra); border-radius:50%; display:inline-block; }
.footer-tagline { font-size:.82rem; color:rgba(245,240,232,.35); line-height:1.7; max-width:260px; }
.footer-col-title { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,240,232,.35); margin-bottom:.8rem; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:.45rem; }
.footer-links a, .footer-links span { font-size:.75rem; color:rgba(245,240,232,.6); transition:color .2s; }
.footer-links a:hover { color:var(--cream); }
.footer-social { display:flex; gap:.6rem; margin-top:1rem; }
.social-btn { width:32px; height:32px; border-radius:50%; border:1px solid rgba(245,240,232,.15); display:grid; place-items:center; color:rgba(245,240,232,.5); transition:border-color .2s, color .2s, background .2s; font-size:.72rem; }
.social-btn:hover { border-color:var(--terra); color:var(--terra-light); background:rgba(196,98,45,.1); }
.footer-cta-btn {
  display:inline-block; margin-top:1rem; background:var(--terra); color:#fff;
  padding:7px 14px; font-size:.65rem; letter-spacing:.12em; text-transform:uppercase;
  border-radius:2px; transition:background .2s;
}
.footer-cta-btn:hover { background:var(--terra-light); color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.6rem; }
.footer-copy  { font-size:.65rem; color:rgba(245,240,232,.2); }
.footer-legal a { font-size:.65rem; color:rgba(245,240,232,.2); transition:color .2s; }
.footer-legal a:hover { color:rgba(245,240,232,.5); }

/* ─────────────────────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────────────────────── */
@media (max-width:1100px) {
  .footer-top { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .contact-page-grid { grid-template-columns:1fr; gap:4rem; }
  .contact-info-col { position:static; }
  .faq-inner { grid-template-columns:1fr; gap:3rem; }
  .faq-header { position:static; }
  .faq-categories { grid-template-columns:1fr; }
  .faq-contact-inner { flex-direction:column; gap:2rem; }
  .faq-page-inner { grid-template-columns:1fr; gap:2.5rem; }
  .faq-page-sidebar { position:static; }
}
@media (max-width:1024px) {
  .why-grid { grid-template-columns:1fr; gap:3rem; }
  .why-image-wrap { max-width:520px; }
  .why-image-badge { right:0; }
  .process-steps { grid-template-columns:repeat(3,1fr); gap:2.5rem; }
  .process-steps::before { display:none; }
  .services-intro-grid { grid-template-columns:1fr; gap:2rem; }
  .service-step-inner { grid-template-columns:1fr; gap:2rem; }
  .step-even .service-step-inner { direction:ltr; }
  .srv-intro-inner { grid-template-columns:1fr; gap:2.5rem; }
  .srv-row-2 { grid-template-columns:1fr; }
  .srv-row-3 { grid-template-columns:1fr 1fr; }
  .ba-grid { grid-template-columns:1fr; max-width:600px; margin:0 auto; }
  .stat-item { padding:.8rem 1.5rem; }
  .stat-divider { display:none; }
}
@media (max-width:768px) {
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }
  .process-header { grid-template-columns:1fr; gap:1.5rem; }
  .process-steps { grid-template-columns:1fr 1fr; gap:2rem; }
  .testimonials-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; }
  .hero-title { font-size:clamp(2.8rem,10vw,4rem); }
  .kypro-section { padding:5rem 5vw; }
  .why-pillars { grid-template-columns:1fr; }
  .contact-form-wrap { padding:2rem; }
  .project-type-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .stats-bar-inner { flex-direction:column; }
  .stat-divider { display:none; }
}
@media (max-width:480px) {
  .process-steps { grid-template-columns:1fr; }
  .hero-actions { flex-direction:column; align-items:center; }
  .testimonials-header { flex-direction:column; align-items:flex-start; }
}

/* ── LANGUAGE SWITCHER ─────────────────────────────────────────────────── */
.nav-lang-switch { list-style:none; }
.lang-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:30px;
  font-size:.68rem; font-weight:500; letter-spacing:.1em;
  border-radius:2px; border:1.5px solid currentColor;
  transition:background .2s, color .2s;
  text-decoration:none;
}
/* on dark transparent nav */
#kypro-nav.nav-transparent .lang-btn { color:rgba(245,240,232,.7); }
#kypro-nav.nav-transparent .lang-btn:hover { color:var(--cream); background:rgba(255,255,255,.1); }
#kypro-nav.nav-transparent.scrolled .lang-btn { color:rgba(28,25,23,.6); }
#kypro-nav.nav-transparent.scrolled .lang-btn:hover { color:var(--charcoal); background:rgba(28,25,23,.06); }
/* on solid nav */
#kypro-nav.nav-solid .lang-btn { color:rgba(28,25,23,.55); }
#kypro-nav.nav-solid .lang-btn:hover { color:var(--charcoal); background:rgba(28,25,23,.06); }

.lang-btn-mobile {
  display:none;
  font-size:.7rem; font-weight:500; letter-spacing:.1em;
  border:1.5px solid rgba(28,25,23,.3); border-radius:2px;
  padding:4px 8px; color:rgba(28,25,23,.6);
  transition:color .2s, border-color .2s;
  text-decoration:none;
}
#kypro-nav.nav-transparent .lang-btn-mobile { border-color:rgba(245,240,232,.4); color:rgba(245,240,232,.7); }
#kypro-nav.nav-transparent.scrolled .lang-btn-mobile { border-color:rgba(28,25,23,.3); color:rgba(28,25,23,.6); }

.mobile-lang-link {
  font-family:var(--font-body);
  font-size:1rem; color:var(--muted);
  margin-top:.5rem; text-decoration:none;
  transition:color .2s;
}
.mobile-lang-link:hover { color:var(--terra); }

@media(max-width:768px) {
  .nav-lang-switch { display:none; }
  .lang-btn-mobile { display:inline-flex; }
}
