
  :root{
    --navy:#1a2640;
    --navy-deep:#111a2e;
    --gold:#b8952a;
    --gold-light:#d4b658;
    --cream:#f4f1ea;
    --ink:#26314a;
    --line:rgba(184,149,42,0.35);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Jost',sans-serif;
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,.crest-word{
    font-family:'Cinzel',serif;
    letter-spacing:0.04em;
  }
  .lede, blockquote, .accent-serif{
    font-family:'Cormorant Garamond',serif;
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:var(--navy);
    border-bottom:1px solid var(--line);
  }
  .nav-wrap{
    max-width:1180px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    color:var(--cream); text-decoration:none;
  }
  .brand-mark{
    width:34px; height:34px;
    border:1px solid var(--gold);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-family:'Cinzel',serif; font-weight:700; color:var(--gold);
    font-size:0.85rem;
  }
  .brand-name{font-family:'Cinzel',serif; font-size:1rem; letter-spacing:0.12em;}
  nav ul{list-style:none; display:flex; gap:28px;}
  nav a{
    color:var(--cream); text-decoration:none; font-size:0.82rem;
    letter-spacing:0.08em; text-transform:uppercase; opacity:0.85;
    transition:opacity .2s, color .2s; position:relative; padding-bottom:4px;
  }
  nav a:hover{opacity:1; color:var(--gold-light);}
  .nav-cta{
    border:1px solid var(--gold); padding:8px 18px; border-radius:2px;
    font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--gold-light); text-decoration:none; white-space:nowrap;
  }
  .nav-cta:hover{background:var(--gold); color:var(--navy-deep);}
  .burger{display:none; background:none; border:none; color:var(--cream); font-size:1.4rem; cursor:pointer;}

  /* ---------- Hero ---------- */
  .hero{
    background:
      radial-gradient(ellipse at 20% -10%, rgba(184,149,42,0.18), transparent 55%),
      linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
    color:var(--cream);
    padding:96px 24px 110px;
    position:relative;
    overflow:hidden;
  }
  .hero::after{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(184,149,42,0.05) 0px, rgba(184,149,42,0.05) 1px, transparent 1px, transparent 90px);
    pointer-events:none;
  }
  .hero-inner{
    max-width:900px; margin:0 auto; text-align:center; position:relative; z-index:2;
  }
  .crown{
    width:34px; margin:0 auto 22px; opacity:0.9;
  }
  .eyebrow{
    text-transform:uppercase; letter-spacing:0.28em; font-size:0.72rem;
    color:var(--gold-light); margin-bottom:22px; display:block;
  }
  .hero h1{
    font-size:clamp(2.1rem, 5vw, 3.4rem);
    font-weight:600;
    line-height:1.18;
    margin-bottom:20px;
  }
  .hero h1 em{
    font-style:normal; color:var(--gold-light);
  }
  .hero .lede{
    font-size:clamp(1.15rem, 2vw, 1.4rem);
    color:rgba(244,241,234,0.82);
    max-width:620px; margin:0 auto 38px;
    font-style:italic;
  }
  .hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
  .btn{
    display:inline-block; padding:14px 30px; text-decoration:none;
    font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;
    border-radius:2px; transition:all .25s;
  }
  .btn-gold{background:var(--gold); color:var(--navy-deep); font-weight:600;}
  .btn-gold:hover{background:var(--gold-light); transform:translateY(-2px);}
  .btn-ghost{border:1px solid rgba(244,241,234,0.4); color:var(--cream);}
  .btn-ghost:hover{border-color:var(--gold-light); color:var(--gold-light);}

  .hero-strip{
    margin-top:56px; padding-top:36px; border-top:1px solid rgba(244,241,234,0.15);
    display:flex; justify-content:center; gap:48px; flex-wrap:wrap;
  }
  .hero-stat{text-align:center;}
  .hero-stat .num{font-family:'Cinzel',serif; font-size:1.7rem; color:var(--gold-light); display:block;}
  .hero-stat .lbl{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.7;}

  /* ---------- Section shell ---------- */
  section{padding:88px 24px;}
  .section-inner{max-width:1180px; margin:0 auto;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .eyebrow{color:var(--gold); }
  .section-head h2{font-size:clamp(1.7rem,3vw,2.3rem); color:var(--navy); margin-top:14px;}
  .section-head p{font-size:1.1rem; color:#5a6178; margin-top:14px;}

  /* ---------- Trust bar ---------- */
  .trust{background:#fff; border-bottom:1px solid #e7e2d5;}
  .trust .section-inner{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:28px; padding:0;
  }
  .trust-item{display:flex; gap:14px; align-items:flex-start;}
  .trust-item .mark{
    font-family:'Cinzel',serif; color:var(--gold); font-size:1.1rem;
    border:1px solid var(--line); width:32px; height:32px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .trust-item h4{font-size:0.95rem; color:var(--navy); margin-bottom:4px;}
  .trust-item p{font-size:0.87rem; color:#6b7188;}

  /* ---------- Services ---------- */
  .services{background:var(--cream);}
  .service-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2px; background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--cream); padding:40px 34px; position:relative;
  }
  .service-card.featured{background:var(--navy); color:var(--cream);}
  .service-card .badge{
    position:absolute; top:24px; right:24px;
    font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gold-light); border:1px solid var(--gold); padding:3px 10px; border-radius:20px;
  }
  .service-card .num{
    font-family:'Cinzel',serif; font-size:0.8rem; color:var(--gold);
    letter-spacing:0.1em; display:block; margin-bottom:18px;
  }
  .service-card h3{font-size:1.35rem; margin-bottom:14px; color:inherit;}
  .service-card.featured h3{color:var(--cream);}
  .service-card:not(.featured) h3{color:var(--navy);}
  .service-card ul{list-style:none; margin-top:18px;}
  .service-card li{
    padding:9px 0; border-top:1px solid rgba(38,49,74,0.1);
    font-size:0.95rem; display:flex; gap:10px;
  }
  .service-card.featured li{border-top:1px solid rgba(244,241,234,0.15);}
  .service-card li::before{content:"—"; color:var(--gold);}

  /* ---------- Why / about ---------- */
  .about{background:var(--navy); color:var(--cream); position:relative; overflow:hidden;}
  .about::before{
    content:"BV"; position:absolute; right:-40px; top:-40px;
    font-family:'Cinzel',serif; font-size:16rem; color:rgba(244,241,234,0.03);
    font-weight:700; pointer-events:none;
  }
  .about-inner{
    max-width:1180px; margin:0 auto; position:relative; z-index:2;
    display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center;
  }
  .about h2{font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:20px;}
  .about .accent-serif{font-size:1.25rem; color:rgba(244,241,234,0.82); margin-bottom:28px; font-style:italic;}
  .about-points{list-style:none;}
  .about-points li{
    padding:14px 0; border-top:1px solid rgba(244,241,234,0.15);
    display:flex; gap:14px; align-items:baseline; font-size:0.98rem;
  }
  .about-points li:first-child{border-top:none;}
  .about-points strong{color:var(--gold-light); font-family:'Cinzel',serif; font-size:0.78rem; letter-spacing:0.06em; min-width:120px; text-transform:uppercase;}
  .about-card{
    border:1px solid var(--line); padding:36px; background:rgba(244,241,234,0.03);
  }
  .about-card .years{font-family:'Cinzel',serif; font-size:3.4rem; color:var(--gold-light); line-height:1;}
  .about-card .years-lbl{font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.7; margin-top:8px;}
  .about-card hr{border:none; border-top:1px solid rgba(244,241,234,0.15); margin:26px 0;}

  /* ---------- Zone ---------- */
  .zone{background:#fff;}
  .zone .section-inner{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  .zone-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
  .zone-tags span{
    border:1px solid var(--line); padding:8px 16px; border-radius:20px;
    font-size:0.85rem; color:var(--navy);
  }
  .zone-visual{
    border:1px solid var(--line); aspect-ratio:1/1; border-radius:50%;
    display:flex; align-items:center; justify-content:center; position:relative;
    background:radial-gradient(circle, rgba(184,149,42,0.08), transparent 70%);
  }
  .zone-visual::before, .zone-visual::after{
    content:""; position:absolute; border:1px solid var(--line); border-radius:50%;
  }
  .zone-visual::before{inset:14%;}
  .zone-visual::after{inset:28%;}
  .zone-visual .center-dot{
    width:14px; height:14px; background:var(--gold); border-radius:50%;
    box-shadow:0 0 0 6px rgba(184,149,42,0.15);
  }

  /* ---------- CTA / Contact ---------- */
  .contact{
    background:linear-gradient(180deg, var(--navy-deep), var(--navy));
    color:var(--cream); text-align:center;
  }
  .contact .section-inner{max-width:720px;}
  .contact h2{font-size:clamp(1.8rem,4vw,2.6rem); margin-bottom:18px;}
  .contact p.lede{color:rgba(244,241,234,0.8); margin-bottom:36px;}
  .contact-methods{
    display:flex; justify-content:center; gap:20px; flex-wrap:wrap; margin-top:40px;
  }
  .contact-method{
    border:1px solid var(--line); padding:22px 28px; min-width:220px;
    text-decoration:none; color:var(--cream); transition:border-color .2s, background .2s;
  }
  .contact-method:hover{border-color:var(--gold); background:rgba(184,149,42,0.06);}
  .contact-method .lbl{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-light); display:block; margin-bottom:8px;}
  .contact-method .val{font-size:1.15rem; font-family:'Cinzel',serif;}
  .cesu-note{
    margin-top:34px; font-size:0.85rem; opacity:0.75; font-style:italic; font-family:'Cormorant Garamond',serif;
  }

  footer{
    background:var(--navy-deep); color:rgba(244,241,234,0.55);
    padding:32px 24px; text-align:center; font-size:0.8rem;
    border-top:1px solid var(--line);
  }
  footer strong{color:var(--gold-light);}

  @media (max-width: 780px){
    .nav-wrap{flex-wrap:wrap;}
    nav{
      order:3; width:100%;
      max-height:0; overflow:hidden;
      transition:max-height .35s ease;
    }
    nav ul{
      display:flex; flex-direction:column; gap:0;
      padding:12px 0 6px;
      border-top:1px solid var(--line);
      margin-top:14px;
    }
    nav ul li{width:100%;}
    nav a{
      display:block; padding:14px 4px; font-size:0.85rem;
      border-bottom:1px solid rgba(244,241,234,0.08);
    }
    header.nav-open nav{max-height:320px;}
    .burger{display:block; font-size:1.6rem; line-height:1;}
    .nav-cta{padding:8px 14px; font-size:0.72rem;}
    .brand-name{font-size:0.88rem;}

    .about-inner, .zone .section-inner, .contact-grid{grid-template-columns:1fr;}
    .zone .section-inner{gap:36px;}
    .zone-visual{max-width:220px; margin:0 auto;}

    section{padding:64px 20px;}
    .hero{padding:72px 20px 80px;}
    .hero-strip{gap:28px;}

    .service-grid, .presta-detail .service-grid{grid-template-columns:1fr !important;}
    .process-grid{grid-template-columns:1fr;}

    .compare-wrap{aspect-ratio:4/5;}
    .game-wrap{min-height:340px;}
    .clutter-item{font-size:1.7rem;}
  }

  @media (max-width: 480px){
    .hero-stat .num{font-size:1.3rem;}
    .hero-stat .lbl{font-size:0.62rem;}
    .game-wrap{min-height:300px;}
  }

/* ---------- Sub-page hero ---------- */
.page-hero{
  background:
    radial-gradient(ellipse at 80% -10%, rgba(184,149,42,0.16), transparent 55%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:var(--cream);
  padding:72px 24px 64px;
  text-align:center;
}
.page-hero .eyebrow{color:var(--gold-light);}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem); font-weight:600; margin-top:14px;}
.page-hero p{max-width:560px; margin:16px auto 0; color:rgba(244,241,234,0.8); font-size:1.05rem; font-family:'Cormorant Garamond',serif; font-style:italic;}

nav a.active{color:var(--gold-light); opacity:1;}
nav a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:var(--gold);
}

/* ---------- Prestations detail page ---------- */
.presta-detail{background:var(--cream);}
.presta-detail .service-grid .service-card{padding:44px 36px;}
.presta-detail .service-card p.desc{
  font-size:0.95rem; color:#5a6178; margin-top:6px; margin-bottom:6px;
}
.presta-detail .service-card.featured p.desc{color:rgba(244,241,234,0.75);}

/* ---------- Contact page ---------- */
.contact-page{background:#fff;}
.contact-page .section-inner{max-width:1000px;}
.contact-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; margin-top:8px;
}
.contact-block h3{color:var(--navy); font-size:1.15rem; margin-bottom:16px;}
.contact-block .zone-tags span{font-size:0.82rem;}
.contact-card-list{display:flex; flex-direction:column; gap:14px;}
.contact-card-list a{
  border:1px solid var(--line); padding:18px 22px; text-decoration:none;
  display:flex; justify-content:space-between; align-items:center;
  color:var(--navy); transition:border-color .2s, background .2s;
}
.contact-card-list a:hover{border-color:var(--gold); background:rgba(184,149,42,0.05);}
.contact-card-list .lbl{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:4px;}
.contact-card-list .val{font-family:'Cinzel',serif; font-size:1rem;}
.hours-list{list-style:none; margin-top:8px;}
.hours-list li{
  display:flex; justify-content:space-between; padding:10px 0; border-top:1px solid #e7e2d5; font-size:0.92rem; color:var(--ink);
}
.hours-list li:first-child{border-top:none;}
.hours-list li span:last-child{color:#5a6178;}

@media (max-width:780px){
  .contact-grid{grid-template-columns:1fr;}
}

/* ================= ENHANCED MOTION & FLAIR ================= */

/* Scroll reveal */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}

/* Animated gradient hero background */
.hero{
  background-size:200% 200%;
  animation:heroShift 14s ease infinite;
}
@keyframes heroShift{
  0%{background-position:0% 0%;}
  50%{background-position:100% 100%;}
  100%{background-position:0% 0%;}
}
.hero, .page-hero{background-image:
  radial-gradient(ellipse at 15% -10%, rgba(184,149,42,0.22), transparent 50%),
  radial-gradient(ellipse at 90% 110%, rgba(184,149,42,0.14), transparent 50%),
  linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
}

/* Floating gold particles in hero */
.hero-particles{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1;}
.particle{
  position:absolute; width:4px; height:4px; background:var(--gold-light);
  border-radius:50%; opacity:0; animation:floatUp 8s ease-in infinite;
}
@keyframes floatUp{
  0%{opacity:0; transform:translateY(0) scale(0.6);}
  10%{opacity:0.7;}
  90%{opacity:0.5;}
  100%{opacity:0; transform:translateY(-260px) scale(1.1);}
}

/* Crown micro-interaction */
.crown{animation:crownFloat 4s ease-in-out infinite;}
@keyframes crownFloat{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-6px) rotate(-3deg);}
}

/* Hero heading shimmer on the accent word */
.hero h1 em{
  background:linear-gradient(90deg, var(--gold-light), #f2e2ad, var(--gold-light));
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 4.5s linear infinite;
}
@keyframes shimmer{
  0%{background-position:0% center;}
  100%{background-position:200% center;}
}

/* Buttons */
.btn{position:relative; overflow:hidden;}
.btn-gold::before{
  content:""; position:absolute; inset:0; background:rgba(255,255,255,0.35);
  transform:translateX(-120%) skewX(-15deg); transition:transform .55s ease;
}
.btn-gold:hover::before{transform:translateX(120%) skewX(-15deg);}
.btn-gold:hover{box-shadow:0 8px 24px rgba(184,149,42,0.35);}
.btn-ghost:hover{box-shadow:0 0 0 1px var(--gold-light) inset;}

/* Header shrink + shadow on scroll */
header{transition:padding .3s ease, box-shadow .3s ease;}
header.scrolled{box-shadow:0 8px 24px rgba(0,0,0,0.25);}
header.scrolled .nav-wrap{padding:10px 24px;}

nav a{transition:opacity .2s, color .2s, transform .2s;}
nav a:hover{transform:translateY(-1px);}
nav a::after{
  content:""; position:absolute; left:0; bottom:-4px; height:1px; width:0;
  background:var(--gold-light); transition:width .3s ease;
}
nav a:hover::after{width:100%;}

/* Trust items */
.trust-item{transition:transform .3s ease;}
.trust-item:hover{transform:translateY(-4px);}
.trust-item:hover .mark{background:var(--gold); color:var(--navy-deep); border-color:var(--gold); transform:rotate(8deg);}
.trust-item .mark{transition:all .3s ease;}

/* Service cards — lift, glow, gold top-bar reveal */
.service-card{
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
  position:relative;
}
.service-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--gold), var(--gold-light));
  transform:scaleX(0); transform-origin:left; transition:transform .45s ease;
}
.service-card:hover::before{transform:scaleX(1);}
.service-card:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 48px -18px rgba(17,26,46,0.35);
  z-index:3;
}
.service-card.featured:hover{box-shadow:0 24px 48px -18px rgba(184,149,42,0.35);}
.service-card li{transition:padding-left .25s ease, color .25s ease;}
.service-card:hover li{padding-left:4px;}
.service-card .num{transition:transform .4s ease, color .4s ease;}
.service-card:hover .num{transform:scale(1.15); color:var(--gold-light);}

/* About stat card */
.about-card{transition:transform .4s ease, border-color .4s ease;}
.about-card:hover{transform:translateY(-6px); border-color:var(--gold);}
.about-card .years{transition:transform .4s ease;}
.about-card:hover .years{transform:scale(1.08);}

/* Zone visual pulsing rings */
.zone-visual::before{animation:ringPulse 3.5s ease-in-out infinite;}
.zone-visual::after{animation:ringPulse 3.5s ease-in-out infinite .6s;}
@keyframes ringPulse{
  0%,100%{opacity:0.5; transform:scale(1);}
  50%{opacity:1; transform:scale(1.04);}
}
.center-dot{animation:dotGlow 2.4s ease-in-out infinite;}
@keyframes dotGlow{
  0%,100%{box-shadow:0 0 0 6px rgba(184,149,42,0.15);}
  50%{box-shadow:0 0 0 12px rgba(184,149,42,0.25);}
}
.zone-tags span{transition:all .25s ease;}
.zone-tags span:hover{background:var(--gold); color:var(--navy-deep); border-color:var(--gold); transform:translateY(-2px);}

/* Contact methods */
.contact-method, .contact-card-list a{transition:transform .3s ease, box-shadow .3s ease;}
.contact-method:hover, .contact-card-list a:hover{transform:translateY(-4px); box-shadow:0 16px 32px -16px rgba(0,0,0,0.4);}

/* Counting stat numbers pop-in */
.hero-stat .num{animation:popIn .7s ease backwards;}
.hero-stat:nth-child(1) .num{animation-delay:.3s;}
.hero-stat:nth-child(2) .num{animation-delay:.45s;}
.hero-stat:nth-child(3) .num{animation-delay:.6s;}
@keyframes popIn{
  0%{opacity:0; transform:scale(0.6);}
  70%{opacity:1; transform:scale(1.08);}
  100%{transform:scale(1);}
}

/* Page hero fade-in */
.page-hero *{animation:fadeUp .7s ease backwards;}
.page-hero .eyebrow{animation-delay:.05s;}
.page-hero h1{animation-delay:.15s;}
.page-hero p{animation-delay:.28s;}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}

/* Footer link hover */
footer strong{transition:letter-spacing .3s ease;}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}

/* ================= PRESTATIONS PAGE — layout fix + extra sections ================= */

/* Force a clean 2-column grid on the prestations page so it never leaves gaps */
.presta-detail .service-grid{
  grid-template-columns:repeat(2, 1fr);
}
@media (max-width:780px){
  .presta-detail .service-grid{grid-template-columns:1fr;}
}

/* Icon badge above each service title */
.service-icon{
  width:52px; height:52px; border:1px solid var(--gold);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin-bottom:20px; color:var(--gold);
  transition:transform .4s ease, background .4s ease, color .4s ease;
}
.service-card.featured .service-icon{border-color:var(--gold-light); color:var(--gold-light);}
.service-card:hover .service-icon{background:var(--gold); color:var(--navy-deep); transform:rotate(8deg) scale(1.08);}
.service-icon svg{width:24px; height:24px;}

/* Process / how it works section */
.process{background:var(--cream); border-top:1px solid var(--line);}
.process-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:2px;
  background:var(--line); border:1px solid var(--line); counter-reset:step;
}
.process-step{
  background:var(--cream); padding:40px 32px; position:relative; counter-increment:step;
  transition:transform .35s ease, box-shadow .35s ease;
}
.process-step:hover{transform:translateY(-6px); box-shadow:0 20px 40px -20px rgba(17,26,46,0.3);}
.process-step::before{
  content:counter(step, decimal-leading-zero);
  font-family:'Cinzel',serif; font-size:0.85rem; color:var(--gold);
  letter-spacing:0.1em; display:block; margin-bottom:16px;
}
.process-step h4{color:var(--navy); font-size:1.15rem; margin-bottom:10px;}
.process-step p{color:#5a6178; font-size:0.92rem;}
.process-step .connector{
  position:absolute; top:56px; right:-1px; width:2px; height:2px;
}

/* FAQ accordion */
.faq{background:#fff;}
.faq-item{
  border-bottom:1px solid #e7e2d5;
}
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between;
  align-items:center; color:var(--navy); font-weight:500; font-size:1.02rem;
  transition:color .25s ease;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; font-family:'Cinzel',serif; font-size:1.3rem; color:var(--gold);
  transition:transform .3s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item:hover summary{color:var(--gold);}
.faq-item p{padding-bottom:22px; color:#5a6178; font-size:0.95rem; max-width:640px;}

/* ================= ORIGINAL / FUN FEATURES ================= */

/* --- Avant / Après comparison slider --- */
.compare-section{background:var(--navy-deep); color:var(--cream); overflow:hidden;}
.compare-section .section-head h2{color:var(--cream);}
.compare-section .section-head p{color:rgba(244,241,234,0.75);}
.compare-section .section-head .eyebrow{color:var(--gold-light);}
.compare-wrap{
  position:relative; max-width:820px; margin:0 auto;
  aspect-ratio:16/9; border:1px solid var(--line); border-radius:6px; overflow:hidden;
  cursor:ew-resize; user-select:none; touch-action:none;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
}
.compare-before, .compare-after{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  flex-direction:column; text-align:center; padding:24px;
}
.compare-before{
  background:
    repeating-linear-gradient(135deg, #2b2f38 0 2px, #23262e 2px 26px);
  color:#cfd2da;
}
.compare-after{
  background:linear-gradient(135deg, var(--navy) 0%, #223257 100%);
  color:var(--cream);
  clip-path:inset(0 0 0 50%);
}
.compare-tag{
  font-family:'Cinzel',serif; letter-spacing:0.12em; font-size:0.72rem;
  text-transform:uppercase; padding:6px 16px; border:1px solid currentColor; border-radius:20px;
  margin-bottom:14px; opacity:0.85;
}
.compare-before .clutter-icons{
  display:flex; gap:14px; font-size:1.8rem; opacity:0.8; margin-top:6px; flex-wrap:wrap; justify-content:center; max-width:260px;
}
.compare-after .clean-icon{font-size:2.2rem; margin-top:6px;}
.compare-handle{
  position:absolute; top:0; bottom:0; left:50%; width:0; z-index:5;
  transform:translateX(-50%);
}
.compare-handle::before{
  content:""; position:absolute; top:0; bottom:0; left:0; width:2px; background:var(--gold-light);
  box-shadow:0 0 12px rgba(212,182,88,0.7);
}
.compare-handle-grip{
  position:absolute; top:50%; left:0; transform:translate(-50%,-50%);
  width:44px; height:44px; border-radius:50%; background:var(--gold);
  display:flex; align-items:center; justify-content:center; color:var(--navy-deep);
  font-size:1rem; box-shadow:0 6px 18px rgba(0,0,0,0.4);
  transition:transform .2s ease;
}
.compare-wrap:hover .compare-handle-grip{transform:translate(-50%,-50%) scale(1.08);}
.compare-hint{
  text-align:center; margin-top:20px; font-size:0.85rem; color:rgba(244,241,234,0.55);
  font-style:italic; font-family:'Cormorant Garamond',serif;
}
.compare-hint svg{width:14px; height:14px; vertical-align:-2px; margin:0 3px;}

/* --- Mini clutter-clearing game --- */
.game-section{background:var(--cream); position:relative;}
.game-wrap{
  max-width:760px; margin:0 auto; position:relative;
  border:1.5px dashed var(--line); border-radius:8px;
  min-height:280px; background:rgba(184,149,42,0.03);
  overflow:hidden;
}
.game-progress-bar{
  position:absolute; top:0; left:0; height:4px; background:linear-gradient(90deg, var(--gold), var(--gold-light));
  width:0%; transition:width .4s ease; z-index:2;
}
.clutter-item{
  position:absolute; font-size:2.1rem; cursor:pointer; background:none; border:none;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,0.15));
}
.clutter-item:hover{transform:scale(1.15) rotate(-6deg);}
.clutter-item.gone{
  opacity:0; transform:translateY(-70px) scale(0.3) rotate(25deg);
  pointer-events:none;
}
.game-message{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; padding:24px; gap:14px;
  opacity:0; pointer-events:none; transition:opacity .5s ease;
}
.game-message.show{opacity:1; pointer-events:auto;}
.game-message .big-emoji{font-size:2.6rem;}
.game-message h4{font-family:'Cinzel',serif; color:var(--navy); font-size:1.3rem;}
.game-message p{color:#5a6178; max-width:420px;}
.game-caption{
  text-align:center; margin-top:18px; font-size:0.88rem; color:#6b7188; font-style:italic; font-family:'Cormorant Garamond',serif;
}
.game-counter{
  text-align:center; font-family:'Cinzel',serif; font-size:0.78rem; letter-spacing:0.1em;
  color:var(--gold); text-transform:uppercase; margin-bottom:14px;
}

/* --- Confetti --- */
.confetti-piece{
  position:fixed; top:0; left:0; width:8px; height:8px; z-index:9999;
  pointer-events:none; border-radius:1px;
}

@media (max-width:600px){
  .clutter-item{font-size:1.6rem;}
  .compare-tag{font-size:0.62rem; padding:4px 10px;}
  .compare-before .clutter-icons{font-size:1.3rem; max-width:190px;}
}

/* ================= COLOR HARMONY FIX — prestations page ================= */

/* Neutralize the old "featured" navy treatment specifically on the prestations detail page
   so all 4 cards share the same warm cream background */
.presta-detail .service-card{
  background:var(--cream);
  color:var(--ink);
}
.presta-detail .service-card h3{color:var(--navy) !important;}
.presta-detail .service-card .desc{color:#5a6178 !important;}
.presta-detail .service-card li{border-top:1px solid rgba(38,49,74,0.1) !important;}
.presta-detail .service-card .service-icon{
  border-color:var(--gold); color:var(--gold);
}

/* Give each card a subtle distinct accent color on its top bar + number, for rhythm without breaking harmony */
.presta-detail .service-grid > div:nth-child(1)::before{background:linear-gradient(90deg, var(--gold), var(--gold-light));}
.presta-detail .service-grid > div:nth-child(1) .num{color:var(--gold);}
.presta-detail .service-grid > div:nth-child(2)::before{background:linear-gradient(90deg, #6b8f71, #8fb597);}
.presta-detail .service-grid > div:nth-child(2) .num, .presta-detail .service-grid > div:nth-child(2) .service-icon{color:#6b8f71; border-color:#6b8f71;}
.presta-detail .service-grid > div:nth-child(3)::before{background:linear-gradient(90deg, #4a6fa5, #7695c2);}
.presta-detail .service-grid > div:nth-child(3) .num, .presta-detail .service-grid > div:nth-child(3) .service-icon{color:#4a6fa5; border-color:#4a6fa5;}
.presta-detail .service-grid > div:nth-child(4)::before{background:linear-gradient(90deg, #a5674a, #c28a6e);}
.presta-detail .service-grid > div:nth-child(4) .num, .presta-detail .service-grid > div:nth-child(4) .service-icon{color:#a5674a; border-color:#a5674a;}

.presta-detail .service-card:hover .service-icon{color:var(--cream) !important;}
.presta-detail .service-grid > div:nth-child(1):hover .service-icon{background:var(--gold);}
.presta-detail .service-grid > div:nth-child(2):hover .service-icon{background:#6b8f71;}
.presta-detail .service-grid > div:nth-child(3):hover .service-icon{background:#4a6fa5;}
.presta-detail .service-grid > div:nth-child(4):hover .service-icon{background:#a5674a;}

.presta-detail .badge{
  background:var(--gold); color:var(--navy-deep); border-color:var(--gold);
  font-weight:600;
}

/* ================= Homepage — simplified clickable services teaser ================= */
.service-links-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:2px; background:var(--line); border:1px solid var(--line);
}
.service-link-card{
  background:var(--cream); padding:32px 28px; text-decoration:none; color:var(--ink);
  display:flex; align-items:center; gap:18px; transition:background .3s ease, transform .3s ease;
  position:relative;
}
.service-link-card:hover{background:var(--navy); color:var(--cream); transform:translateY(-4px);}
.service-link-card .service-icon{margin-bottom:0; flex-shrink:0;}
.service-link-card:hover .service-icon{background:var(--gold); color:var(--navy-deep);}
.service-link-card .link-txt h3{font-size:1.05rem; margin-bottom:4px; color:inherit;}
.service-link-card .link-txt span{font-size:0.82rem; opacity:0.7;}
.service-link-card .arrow{
  margin-left:auto; font-family:'Cinzel',serif; color:var(--gold); font-size:1.1rem;
  transition:transform .3s ease;
}
.service-link-card:hover .arrow{transform:translateX(4px); color:var(--gold-light);}

/* ================= ROUND 2 — color, realism, second game, map, ambiance ================= */

/* --- 1. Colorful homepage service links --- */
.service-link-card{border-left:3px solid transparent;}
.service-link-card:nth-child(1){border-left-color:var(--gold);}
.service-link-card:nth-child(2){border-left-color:#6b8f71;}
.service-link-card:nth-child(3){border-left-color:#4a6fa5;}
.service-link-card:nth-child(4){border-left-color:#a5674a;}
.service-link-card:nth-child(1) .service-icon{border-color:var(--gold); color:var(--gold);}
.service-link-card:nth-child(2) .service-icon{border-color:#6b8f71; color:#6b8f71;}
.service-link-card:nth-child(3) .service-icon{border-color:#4a6fa5; color:#4a6fa5;}
.service-link-card:nth-child(4) .service-icon{border-color:#a5674a; color:#a5674a;}
.service-link-card:nth-child(1):hover{background:linear-gradient(120deg, var(--navy), #24365c);}
.service-link-card:nth-child(2):hover{background:linear-gradient(120deg, #2f4a35, #3d5f45);}
.service-link-card:nth-child(3):hover{background:linear-gradient(120deg, #24365c, #2f4a72);}
.service-link-card:nth-child(4):hover{background:linear-gradient(120deg, #5c3826, #714632);}
.service-link-card:nth-child(1):hover .service-icon{background:var(--gold); color:#1a2640;}
.service-link-card:nth-child(2):hover .service-icon{background:#8fb597; color:#1a2640;}
.service-link-card:nth-child(3):hover .service-icon{background:#7695c2; color:#1a2640;}
.service-link-card:nth-child(4):hover .service-icon{background:#c28a6e; color:#1a2640;}

/* --- 2. More realistic / detailed Avant-Après --- */
.compare-before{
  background:
    linear-gradient(rgba(20,22,28,0.55), rgba(20,22,28,0.75)),
    repeating-linear-gradient(135deg, #3a3f4a 0 3px, #2c3038 3px 30px);
  position:absolute; inset:0;
}
.compare-before::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:14%;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,0.4));
  border-top:2px solid rgba(255,255,255,0.06);
}
.compare-before .clutter-icons{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px 18px;
  font-size:1.7rem; opacity:0.9; margin-top:10px;
}
.compare-before .clutter-icons span{display:inline-block; animation:jiggle 3s ease-in-out infinite;}
.compare-before .clutter-icons span:nth-child(2n){animation-delay:.4s;}
.compare-before .clutter-icons span:nth-child(3n){animation-delay:.8s;}
@keyframes jiggle{
  0%,100%{transform:rotate(-4deg) translateY(0);}
  50%{transform:rotate(3deg) translateY(-3px);}
}
.compare-before .compare-tag{border-color:#e07a5f; color:#f2b8a4;}

.compare-after{
  background:
    radial-gradient(circle at 30% 20%, rgba(212,182,88,0.15), transparent 55%),
    linear-gradient(135deg, var(--navy) 0%, #223257 100%);
  position:absolute; inset:0;
  clip-path:inset(0 0 0 50%);
}
.compare-after::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:14%;
  background:linear-gradient(180deg, transparent, rgba(184,149,42,0.12));
  border-top:2px solid rgba(212,182,88,0.25);
}
.compare-after .clean-icon{position:relative;}
.compare-after .sparkle{
  position:absolute; font-size:1rem; opacity:0; animation:sparklePop 2.6s ease-in-out infinite;
}
.compare-after .sparkle.s1{top:-18px; left:-38px; animation-delay:.2s;}
.compare-after .sparkle.s2{top:-8px; right:-42px; animation-delay:1s;}
.compare-after .sparkle.s3{bottom:-14px; left:6px; animation-delay:1.8s;}
@keyframes sparklePop{
  0%,100%{opacity:0; transform:scale(0.5) rotate(0deg);}
  50%{opacity:1; transform:scale(1.1) rotate(20deg);}
}

/* --- 3. Second mini-game: scratch-to-clean (nettoyage) --- */
.clean-game-section{background:var(--cream);}
.scratch-wrap{
  max-width:640px; margin:0 auto; position:relative;
  border:1px solid var(--line); border-radius:10px; overflow:hidden;
  aspect-ratio:16/9; box-shadow:0 24px 48px -20px rgba(17,26,46,0.25);
  background:linear-gradient(135deg, #dff0e3, #eaf6ec);
}
.scratch-wrap .scratch-shine-label{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:8px; text-align:center; color:var(--navy); z-index:0;
}
.scratch-wrap .scratch-shine-label .big{font-size:2.4rem;}
.scratch-canvas{position:absolute; inset:0; z-index:2; cursor:grab; touch-action:none;}
.scratch-hint2{text-align:center; margin-top:18px; font-size:0.85rem; color:#6b7188; font-style:italic; font-family:'Cormorant Garamond',serif;}
.scratch-progress{
  text-align:center; font-family:'Cinzel',serif; font-size:0.78rem; letter-spacing:0.1em;
  color:#4a6fa5; text-transform:uppercase; margin-bottom:14px;
}
.scratch-message{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; padding:24px; gap:12px; z-index:3;
  background:linear-gradient(135deg, #eaf6ec, #dff0e3);
  opacity:0; pointer-events:none; transition:opacity .5s ease;
}
.scratch-message.show{opacity:1; pointer-events:auto;}
.scratch-message .big-emoji{font-size:2.4rem;}
.scratch-message h4{font-family:'Cinzel',serif; color:var(--navy); font-size:1.2rem;}
.scratch-message p{color:#5a6178; max-width:400px; font-size:0.92rem;}

/* --- Fix game-message completeness / spacing --- */
.game-wrap{min-height:340px;}
.game-message{padding:28px 24px;}
.game-message .btn{margin-top:4px;}
@media (max-width:600px){
  .game-wrap{min-height:380px;}
  .scratch-wrap{aspect-ratio:4/5;}
}

/* --- 4. Zone de chalandise map (SVG radius map) --- */
.chalandise-map{width:100%; max-width:340px; margin:0 auto; display:block;}
.chalandise-map .ring{fill:none; stroke:var(--line); stroke-dasharray:4 5;}
.chalandise-map .ring-solid{fill:none; stroke:rgba(184,149,42,0.35);}
.chalandise-map .km-label{font-family:'Jost',sans-serif; font-size:9px; fill:#8a8f9e;}
.chalandise-map .center-pt{fill:var(--gold);}
.chalandise-map .center-pt-pulse{fill:none; stroke:var(--gold); stroke-width:1.5; animation:mapPulse 2.6s ease-out infinite;}
@keyframes mapPulse{
  0%{r:5; opacity:0.9;}
  100%{r:22; opacity:0;}
}
.chalandise-map .commune-pt{fill:var(--navy);}
.chalandise-map .commune-label{font-family:'Cinzel',serif; font-size:8px; fill:var(--navy); letter-spacing:0.02em;}
.chalandise-map .center-label{font-family:'Cinzel',serif; font-size:10px; fill:var(--gold); font-weight:700;}

/* --- 5. Ambient gold particles & soft color washes across the whole site --- */
.particles-host{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0;}
.page-hero, .presta-detail, .process, .about, .zone, .contact, .contact-page, .compare-section, .game-section, .clean-game-section, .faq{
  position:relative;
}
.presta-detail::before, .process::before{
  content:""; position:absolute; top:-10%; right:-8%; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, rgba(184,149,42,0.10), transparent 70%);
  pointer-events:none; z-index:0;
}
.faq::before{
  content:""; position:absolute; bottom:-10%; left:-6%; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(74,111,165,0.08), transparent 70%);
  pointer-events:none; z-index:0;
}
.presta-detail .section-inner, .process .section-inner, .faq .section-inner{position:relative; z-index:1;}

/* ================= ROUND 3 fixes ================= */

/* Bigger, richer chalandise map */
.chalandise-map{
  max-width:440px;
}
.chalandise-map .ring-fill-outer{fill:rgba(184,149,42,0.03);}
.chalandise-map .ring-fill-mid{fill:rgba(184,149,42,0.05);}
.chalandise-map .ring-fill-inner{fill:rgba(184,149,42,0.08);}
.chalandise-map .ring{stroke:rgba(184,149,42,0.4); stroke-width:1;}
.chalandise-map .ring-solid{stroke:rgba(184,149,42,0.55); stroke-width:1.2;}
.chalandise-map .km-label{font-size:8.5px; fill:#9a8f6e; letter-spacing:0.04em;}
.chalandise-map .city-pt{fill:var(--navy); stroke:var(--cream); stroke-width:1.4;}
.chalandise-map .city-label{font-family:'Cinzel',serif; font-size:9.5px; fill:var(--navy); font-weight:600; letter-spacing:0.02em;}
.chalandise-map .commune-pt{fill:#8a8f9e;}
.chalandise-map .commune-label{font-family:'Jost',sans-serif; font-size:7.5px; fill:#6b7188;}
.chalandise-map .center-label-big{font-family:'Cinzel',serif; font-size:13px; fill:var(--gold); font-weight:700; letter-spacing:0.06em;}
.chalandise-map .center-pt{fill:var(--gold); stroke:var(--navy-deep); stroke-width:1.5;}
.chalandise-map .compass{font-size:9px; fill:#9a8f6e; font-family:'Cinzel',serif; letter-spacing:0.1em;}

/* More visible ambient particles on light backgrounds */
.presta-detail .particle, .process .particle, .faq .particle, .about .particle{
  background:var(--gold);
  box-shadow:0 0 6px rgba(184,149,42,0.55);
}
.page-hero{
  background-size:200% 200%;
  animation:heroShift 14s ease infinite;
}

/* Bigger, more visible decorative blobs on prestations page */
.presta-detail::before{width:420px; height:420px; background:radial-gradient(circle, rgba(184,149,42,0.14), transparent 70%);}
.process::before{width:380px; height:380px;}
.faq::before{width:340px; height:340px; background:radial-gradient(circle, rgba(74,111,165,0.12), transparent 70%);}
.presta-detail::after{
  content:""; position:absolute; bottom:-14%; left:-10%; width:360px; height:360px; border-radius:50%;
  background:radial-gradient(circle, rgba(107,143,113,0.10), transparent 70%);
  pointer-events:none; z-index:0;
}

/* ================= FINAL MOBILE OVERRIDES (kept last on purpose so nothing above can win the cascade) ================= */
@media (max-width:780px){
  .nav-wrap{flex-wrap:wrap;}
  nav{order:3; width:100%; max-height:0; overflow:hidden; transition:max-height .35s ease;}
  nav ul{display:flex; flex-direction:column; gap:0; padding:12px 0 6px; border-top:1px solid var(--line); margin-top:14px;}
  nav ul li{width:100%;}
  nav a{display:block; padding:14px 4px; font-size:0.85rem; border-bottom:1px solid rgba(244,241,234,0.08);}
  header.nav-open nav{max-height:420px;}
  .burger{display:block; font-size:1.6rem; line-height:1;}
  .nav-cta{padding:8px 14px; font-size:0.72rem;}
  .brand-name{font-size:0.88rem;}

  section{padding:56px 20px;}
  .hero{padding:72px 20px 80px;}
  .page-hero{padding:56px 20px 48px;}
  .hero-strip{gap:24px;}

  .about-inner, .zone .section-inner, .contact-grid{grid-template-columns:1fr !important;}
  .zone .section-inner{gap:32px;}
  .chalandise-map{max-width:280px;}

  .service-grid, .presta-detail .service-grid, .service-links-grid{grid-template-columns:1fr !important;}
  .process-grid{grid-template-columns:1fr !important;}
  .process-step{padding:32px 26px;}

  .compare-wrap{aspect-ratio:4/5;}
  .scratch-wrap{aspect-ratio:4/5;}
  .game-wrap{min-height:340px;}
  .clutter-item{font-size:1.7rem;}

  .presta-detail::before, .process::before, .faq::before, .presta-detail::after{
    width:220px !important; height:220px !important;
  }

  .faq .section-inner{max-width:100% !important;}
  .faq-item summary{font-size:0.92rem; padding:18px 0;}

  .service-card, .service-card.featured{padding:32px 26px;}
  .about-card{padding:28px;}
}

@media (max-width:480px){
  h1{font-size:1.8rem !important;}
  .hero-stat .num{font-size:1.3rem;}
  .hero-stat .lbl{font-size:0.62rem;}
  .game-wrap{min-height:300px;}
  .chalandise-map{max-width:230px;}
  .service-link-card{padding:22px 20px; flex-wrap:wrap;}
}

/* ================= PRESTATIONS PAGE — dynamism pass ================= */

/* Wave dividers between flat sections */
.wave-divider{display:block; width:100%; height:60px; margin-bottom:-1px;}
.wave-divider path{fill:var(--cream);}
.wave-divider.to-navy path{fill:var(--navy);}
.wave-divider.to-white path{fill:#fff;}

/* Stat ribbon on prestations page */
.presta-stats{
  background:var(--navy); color:var(--cream);
  display:flex; justify-content:center; gap:56px; flex-wrap:wrap;
  padding:26px 24px;
}
.presta-stat{display:flex; align-items:center; gap:10px; font-size:0.9rem;}
.presta-stat .ico{font-size:1.3rem;}
.presta-stat b{color:var(--gold-light); font-family:'Cinzel',serif; font-weight:600;}

/* Floating drifting icons in background of prestations sections */
.float-icons{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0;}
.float-icons span{
  position:absolute; opacity:0.09; font-size:2.6rem; color:var(--navy);
  animation:driftIcon 22s linear infinite;
}
@keyframes driftIcon{
  0%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-40px) rotate(10deg);}
  100%{transform:translateY(0) rotate(0deg);}
}

/* Give process steps a connecting animated line + numbered circle instead of flat number */
.process-step{padding-top:52px;}
.process-step::before{
  content:counter(step, decimal-leading-zero);
  width:38px; height:38px; border-radius:50%; border:1.5px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px; font-size:0.8rem; background:var(--cream);
  transition:background .35s ease, color .35s ease;
}
.process-step:hover::before{background:var(--gold); color:var(--navy-deep);}
.process-grid{position:relative;}
.process-grid::after{
  content:""; position:absolute; top:72px; left:8%; right:8%; height:1px;
  background:repeating-linear-gradient(90deg, var(--gold) 0 6px, transparent 6px 12px);
  z-index:0; opacity:0.5;
}
@media (max-width:780px){ .process-grid::after{display:none;} }

/* FAQ items get a colored left accent + icon rotate refinement */
.faq-item{position:relative; padding-left:18px; border-left:2px solid transparent; transition:border-color .3s ease;}
.faq-item:hover{border-left-color:var(--gold);}
.faq-item:nth-child(odd){}

/* subtle diagonal gold ribbon accent near hero of prestations */
.page-hero .ribbon{
  display:inline-block; margin-top:18px; padding:6px 18px; font-size:0.72rem;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--navy-deep);
  background:linear-gradient(100deg, var(--gold-light), var(--gold));
  border-radius:20px; transform:rotate(-1.5deg);
  box-shadow:0 8px 18px rgba(184,149,42,0.3);
}

/* ================= PORTRAIT PHOTO in About section ================= */
.about-inner{
  grid-template-columns:auto 1.1fr 1fr;
  gap:44px;
}
.about-photo-wrap{
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.about-photo{
  width:170px; height:170px; border-radius:50%; overflow:hidden;
  border:3px solid var(--gold); box-shadow:0 20px 40px -14px rgba(0,0,0,0.5);
  position:relative;
}
.about-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.about-photo-ring{
  position:absolute; inset:-9px; border-radius:50%; border:1px solid var(--gold-light);
  opacity:0.5; animation:ringPulseCss 3.2s ease-out infinite;
}
@keyframes ringPulseCss{
  0%{transform:scale(1); opacity:0.6;}
  100%{transform:scale(1.12); opacity:0;}
}
.about-photo-name{
  font-family:'Cinzel',serif; font-size:0.85rem; color:var(--gold-light);
  letter-spacing:0.08em; text-align:center;
}
.about-photo-role{
  font-size:0.75rem; color:rgba(244,241,234,0.6); text-align:center; letter-spacing:0.04em;
}

@media (max-width:1000px){
  .about-inner{grid-template-columns:1fr; text-align:center;}
  .about-photo-wrap{order:-1;}
}

/* ================= TRUE FINAL SAFETY PASS (this is now genuinely the last block in the file) ================= */
@media (max-width:780px){
  .about-photo{width:130px; height:130px;}
  .about-photo-ring{inset:-7px;}
  .presta-stats{gap:22px !important; padding:20px 20px !important; flex-direction:column; align-items:center;}
  .process-step{padding:32px 26px 26px !important;}
  .ribbon{font-size:0.65rem !important; padding:5px 14px !important;}
  .wave-divider{height:36px;}
}
@media (max-width:480px){
  .about-photo{width:112px; height:112px;}
  .about-photo-name{font-size:0.78rem;}
  .about-photo-role{font-size:0.68rem;}
}

/* Contrast/consistency touch-ups found during the review pass */
.service-link-card .link-txt span{opacity:0.75;}
.presta-stat b{font-weight:700;}

/* ================= Easter egg ================= */
.easter-egg{
  color:rgba(244,241,234,0.25); text-decoration:none; font-size:0.9rem;
  padding:2px 8px; transition:color .3s ease;
}
.easter-egg:hover{color:var(--gold-light);}

.brolly-page{
  min-height:100vh; background:linear-gradient(180deg, var(--navy-deep), var(--navy));
  color:var(--cream); display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; padding:60px 24px;
}
.brolly-page img{
  max-width:280px; width:100%; border-radius:8px; border:1px solid var(--line);
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6); margin-bottom:32px;
}
.brolly-page h1{
  font-family:'Cinzel',serif; font-size:2rem; color:var(--gold-light);
  letter-spacing:0.08em; margin-bottom:10px;
}
.brolly-page p.tribute{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.15rem;
  color:rgba(244,241,234,0.75); max-width:420px; margin-bottom:36px;
}
.brolly-page a.back{
  color:var(--gold); text-decoration:none; font-size:0.85rem;
  letter-spacing:0.06em; text-transform:uppercase; border-bottom:1px solid var(--gold);
  padding-bottom:2px;
}
.brolly-page a.back:hover{color:var(--gold-light); border-color:var(--gold-light);}

/* ================= Easter egg gallery ================= */
.brolly-page{padding:70px 24px 90px;}
.egg-gallery{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:36px; max-width:900px; margin:50px auto 0;
}
.egg-item{display:flex; flex-direction:column; align-items:center; gap:14px;}
.egg-item img{
  max-width:220px; width:100%; border-radius:8px; border:1px solid var(--line);
  box-shadow:0 20px 40px -16px rgba(0,0,0,0.5);
}
.egg-item p{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1rem;
  color:rgba(244,241,234,0.75); max-width:240px;
}
.egg-divider{
  width:60px; height:1px; background:var(--line); margin:56px auto 0;
}
