/* ═══════════════════════════════════════════════════════════════
   ITS ÉCO ÉNERGIE — Design System PRO 2026
   Plomberie · Chauffage · Climatisation · Orléans La Source / RN20
   ═══════════════════════════════════════════════════════════════ */

/* ─── Reset ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ─── Design Tokens ─── */
:root {
  --bg-primary:   #06060d;
  --bg-secondary: #0e0e18;
  --bg-tertiary:  #141422;
  --bg-card:      rgba(255,255,255,0.03);
  --bg-glass:     rgba(255,255,255,0.04);
  --bg-glass-2:   rgba(255,255,255,0.065);
  --border-glass:  rgba(255,255,255,0.09);
  --border-subtle: rgba(255,255,255,0.06);
  --border-accent: rgba(79,124,255,0.28);
  --text-primary:   #f2f2f8;
  --text-secondary: #9898b4;
  --text-muted:     #5a5a74;
  --accent:       #4f7cff;
  --accent-hover: #6b92ff;
  --accent-glow:  rgba(79,124,255,0.28);
  --accent-soft:  rgba(79,124,255,0.10);
  --accent-2:     #38bdf8;
  --accent-2-glow:rgba(56,189,248,0.20);
  --accent-2-soft:rgba(56,189,248,0.08);
  --gradient-brand: linear-gradient(135deg, #4f7cff 0%, #f97316 70%, #ea580c 100%);
  --gradient-warm:  linear-gradient(135deg, #f97316 0%, #ea580c 100%);
  --gradient-cool:  linear-gradient(135deg, #4f7cff 0%, #38bdf8 100%);
  --gradient-card:  linear-gradient(135deg, rgba(79,124,255,0.05), rgba(249,115,22,0.08));
  --gradient-card-hover: linear-gradient(135deg, rgba(79,124,255,0.08), rgba(249,115,22,0.12));
  --space-xs:  0.5rem; --space-sm: 0.75rem; --space-md:  1rem;
  --space-lg:  1.5rem; --space-xl: 2rem;    --space-2xl: 3rem;
  --space-3xl: 4rem;   --space-4xl:6rem;
  --font-display: 'Space Grotesk', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --text-xs:  clamp(0.7rem,  0.8vw,  0.75rem);
  --text-sm:  clamp(0.8rem,  0.9vw,  0.875rem);
  --text-base:clamp(0.9rem,  1vw,    1rem);
  --text-lg:  clamp(1rem,    1.2vw,  1.125rem);
  --text-xl:  clamp(1.15rem, 1.5vw,  1.25rem);
  --text-2xl: clamp(1.4rem,  2vw,    1.75rem);
  --text-3xl: clamp(1.8rem,  3vw,    2.5rem);
  --text-4xl: clamp(2.2rem,  4vw,    3.5rem);
  --text-5xl: clamp(2.8rem,  5.5vw,  4.5rem);
  --radius-sm:  6px; --radius-md: 12px; --radius-lg: 16px;
  --radius-xl:  24px; --radius-2xl:32px; --radius-pill:100px;
  --grid-max: 1200px;
  --grid-gap: clamp(1rem, 2vw, 1.5rem);
  --shadow-sm:  0 2px 8px rgba(0,0,0,0.25);
  --shadow-md:  0 8px 24px rgba(0,0,0,0.35);
  --shadow-lg:  0 16px 48px rgba(0,0,0,0.40);
  --shadow-xl:  0 24px 64px rgba(0,0,0,0.50);
}

/* ─── Base ─── */
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: var(--font-body); background: var(--bg-primary); color: var(--text-primary); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.container { width: min(var(--grid-max), 100% - 2rem); margin-inline: auto; }
.gradient-text { background: var(--gradient-brand); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* ─── Noise ─── */
body::before { content:''; position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E"); pointer-events:none; z-index:0; }

/* ─── Orbs ─── */
.orb { position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; animation:float 22s ease-in-out infinite; }
.orb-1{width:480px;height:480px;background:var(--accent);top:-120px;left:-120px;opacity:.18;}
.orb-2{width:380px;height:380px;background:var(--accent-2);top:180px;right:-160px;animation-delay:-8s;opacity:.16;}
.orb-3{width:320px;height:320px;background:rgba(249,115,22,.6);bottom:-60px;left:28%;animation-delay:-15s;opacity:.13;}
@keyframes float{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(28px,-18px) scale(1.04);}66%{transform:translate(-18px,20px) scale(.96);}}

/* ─── Loader ─── */
#page-loader{position:fixed;inset:0;z-index:99999;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;transition:opacity .4s,visibility .4s;}
#page-loader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.loader-inner{text-align:center;}
.loader-logo{font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:white;letter-spacing:-.02em;animation:loader-text 1.5s ease-in-out infinite;}
.loader-logo span{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
@keyframes loader-text{0%,100%{opacity:.6;transform:scale(.97);}50%{opacity:1;transform:scale(1);}}
.loader-bar{width:120px;height:3px;margin:1.5rem auto 0;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;}
.loader-bar-fill{height:100%;border-radius:3px;background:var(--gradient-brand);animation:loader-bar 1.3s ease-in-out infinite;}
@keyframes loader-bar{0%{width:0%;margin-left:0;}50%{width:100%;margin-left:0;}100%{width:0%;margin-left:100%;}}

/* ─── Top Bar ─── */
.top-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding:.45rem 0;font-size:var(--text-xs);color:var(--text-muted);position:relative;z-index:100;}
.top-bar .container{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-xs);padding:0 12px;width:100%;max-width:100%;}
.top-bar .container>span:first-child{text-align:left;}
.top-bar-right{display:flex;align-items:center;gap:.5rem;justify-self:end;}
.top-bar-center{display:flex;align-items:center;gap:.4rem;}
.top-bar-stars{color:#f59e0b;font-size:var(--text-sm);white-space:nowrap;}
.top-bar-google{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;color:var(--text-muted);}
.top-bar-google svg{width:14px;height:14px;}
@media(max-width:640px){.top-bar-text{display:none;}.top-bar-google-label{display:none;}.top-bar .container{grid-template-columns:auto 1fr;padding:0 10px;}.top-bar .container>span:first-child{display:none;}.top-bar-center{justify-self:start;}}
@media(max-width:768px){.top-bar{display:none;}}
.top-bar a{color:var(--accent);text-decoration:none;font-weight:600;transition:color .2s;display:inline-flex;align-items:center;gap:.35rem;}
.top-bar a:hover{color:var(--text-primary);}
.top-bar-sep{color:var(--border-glass);}
.top-bar-lang{font-size:var(--text-xs)!important;font-weight:700!important;color:var(--text-muted)!important;padding:.15rem .4rem;border-radius:3px;transition:all .2s;}
.top-bar-lang:hover{color:var(--accent)!important;background:var(--accent-soft);}

/* ─── Header ─── */
.header{position:sticky;top:0;z-index:99;background:rgba(6,6,13,.88);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-bottom:1px solid var(--border-subtle);transition:box-shadow .3s;}
.header.scrolled{box-shadow:0 4px 32px rgba(0,0,0,.45);border-bottom-color:rgba(255,255,255,.08);}
.header .container{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:.6rem var(--space-xl);}
.logo{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--text-primary);text-decoration:none;display:flex;align-items:flex-start;gap:.55rem;flex-shrink:0;}
.logo-mark{width:38px;height:38px;background:var(--gradient-brand);border-radius:10px;display:grid;place-items:center;flex-shrink:0;box-shadow:0 4px 14px var(--accent-glow);}
.logo-mark svg{width:20px;height:20px;stroke:white;fill:none;}
.logo-img{height:40px;width:auto;display:block;flex-shrink:0;}
.logo span{color:white;font-weight:500;font-size:0.82rem;margin-top:18px;line-height:1;letter-spacing:.01em;white-space:nowrap;}
@media(max-width:640px){.logo span{display:none;}}
.nav{display:flex;align-items:center;gap:.1rem;}
.header.scrolled .nav{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-pill);padding:.25rem;}
.nav a,.nav button{font-size:var(--text-sm);color:var(--text-secondary);text-decoration:none;padding:.5rem .85rem;border-radius:var(--radius-sm);transition:all .2s;background:none;border:none;cursor:pointer;font-family:inherit;white-space:nowrap;}
.nav a:hover,.nav button:hover{color:var(--text-primary);background:var(--bg-glass-2);}
.nav-active{color:var(--text-primary)!important;font-weight:600;}
.nav-cta{background:var(--accent)!important;color:white!important;font-weight:600;padding:.5rem 1.25rem!important;border-radius:var(--radius-pill)!important;}
.nav-cta:hover{background:#3d6ae6!important;}
.lang-switch{font-size:var(--text-xs)!important;font-weight:700!important;color:var(--accent)!important;padding:.35rem .6rem!important;border:1px solid rgba(249,115,22,.35)!important;border-radius:var(--radius-sm)!important;margin-left:.25rem;}
.lang-switch:hover{background:var(--accent)!important;color:white!important;}
.theme-toggle{display:none;}
.theme-toggle-btn{background:none;border:1px solid var(--border-glass);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin-left:.3rem;transition:background .2s,border-color .2s;}
.theme-toggle-btn:hover{background:var(--bg-glass-2);border-color:rgba(255,255,255,.15);}
.theme-toggle-btn svg{stroke:var(--text-secondary);}
.theme-toggle-btn .theme-icon-moon{display:none;}
.light-mode .theme-toggle-btn .theme-icon-sun{display:none;}
.light-mode .theme-toggle-btn .theme-icon-moon{display:inline;}
.mobile-theme-toggle{display:flex;align-items:center;gap:.6rem;width:100%;padding:.9rem 0;margin-top:.5rem;background:none;border:none;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-family:inherit;font-size:var(--text-lg);cursor:pointer;transition:color .2s;}
.mobile-theme-toggle:hover{color:var(--accent);}
.mobile-theme-toggle svg{stroke:var(--text-secondary);flex-shrink:0;}
.mobile-theme-toggle .theme-icon-moon{display:none;}
.light-mode .mobile-theme-toggle .theme-icon-sun{display:none;}
.light-mode .mobile-theme-toggle .theme-icon-moon{display:inline;}
.mobile-theme-toggle span{font-size:var(--text-base);}
.nav-dropdown{position:relative;}
.nav-dropdown-menu{position:absolute;top:100%;left:0;margin-top:8px;min-width:240px;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transition:all .2s cubic-bezier(.2,0,0,1);box-shadow:0 24px 64px rgba(0,0,0,.55);}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.nav-dropdown-menu a{display:block;padding:.55rem .75rem;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);text-decoration:none;transition:all .15s;}
.nav-dropdown-menu a:hover{background:var(--bg-glass-2);color:var(--text-primary);padding-left:1rem;}
.mobile-toggle{display:none;background:none;border:none;color:var(--text-primary);padding:.5rem;cursor:pointer;}
.mobile-toggle svg{width:24px;height:24px;}
.mobile-menu{display:none;position:fixed;inset:0;background:rgba(6,6,13,.97);backdrop-filter:blur(20px);padding:90px var(--space-lg) var(--space-lg);z-index:200;overflow-y:auto;}
.mobile-menu.open{display:block;}
.mobile-menu-close{position:absolute;top:20px;right:20px;width:40px;height:40px;background:var(--bg-glass-2);border:none;border-radius:50%;color:white;font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:201;transition:background .2s;}
.mobile-menu-close:hover{background:rgba(255,255,255,.12);}
body.menu-open{overflow:hidden;}
.mobile-menu a{display:block;padding:.9rem 0;color:var(--text-secondary);text-decoration:none;font-size:var(--text-lg);transition:color .2s;border-bottom:1px solid var(--border-subtle);}
.mobile-menu a:hover{color:var(--accent);}
.mobile-menu-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);padding:1.5rem 0 .4rem;}
@media(max-width:768px){.nav{display:none;}.mobile-toggle{display:block;}
  .header .container{padding:.6rem 0;}
  .header .container .logo{padding-left:5px;}
  .header .container .mobile-toggle{padding-right:5px;}
  .header.scrolled .logo-img{height:30px;}
  .header.scrolled .container{padding:.4rem 20px;}
}

/* ─── Buttons ─── */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:var(--text-base);font-weight:600;padding:.85rem 1.75rem;border-radius:var(--radius-md);text-decoration:none;transition:all .25s;cursor:pointer;border:none;position:relative;overflow:hidden;}
.btn svg{width:18px;height:18px;flex-shrink:0;}
.btn::after{content:'';position:absolute;top:-50%;left:-60%;width:60%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transform:skewX(-20deg);transition:left .5s ease;}
.btn:hover::after{left:140%;}
.btn-primary{background:var(--gradient-warm);color:white;box-shadow:0 4px 20px var(--accent-glow);}
.btn-primary:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 10px 32px var(--accent-glow);}
.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border-glass);}
.btn-ghost:hover{background:var(--bg-glass-2);border-color:rgba(255,255,255,.15);}
.btn-cta{background:var(--gradient-warm);color:white;font-size:var(--text-lg);padding:1rem 2rem;border-radius:var(--radius-md);box-shadow:0 6px 28px var(--accent-glow);display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-weight:700;font-family:inherit;transition:all .25s;position:relative;overflow:hidden;}
.btn-cta::after{content:'';position:absolute;top:-50%;left:-60%;width:60%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transform:skewX(-20deg);transition:left .5s ease;}
.btn-cta:hover::after{left:140%;}
.btn-cta:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 12px 36px var(--accent-glow);}
.btn-cta svg{width:22px;height:22px;}

/* ─── Page Hero (subpages) ─── */
.page-hero{background:var(--bg-secondary);padding:var(--space-2xl) 0;border-bottom:1px solid var(--border-subtle);position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(249,115,22,.4),transparent);}
.page-hero .container{max-width:1050px;}
.page-hero-breadcrumb{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-sm);color:var(--accent);text-decoration:none;margin-bottom:var(--space-md);transition:color .2s;}
.page-hero-breadcrumb:hover{color:var(--text-primary);}
.page-hero-breadcrumb svg{width:16px;height:16px;}
.page-hero-badge{display:inline-block;background:var(--accent-soft);border:1px solid var(--border-accent);color:var(--accent);font-size:var(--text-xs);font-weight:700;padding:.3rem .85rem;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm);}
.page-hero h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin-bottom:var(--space-md);}
.page-hero h1 .gradient-text{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.page-hero p{font-size:var(--text-lg);color:var(--text-secondary);max-width:640px;line-height:1.75;margin-bottom:var(--space-xl);}
.page-hero-cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--gradient-warm);color:white;font-weight:700;font-size:var(--text-base);padding:.9rem 1.8rem;border-radius:var(--radius-md);text-decoration:none;box-shadow:0 4px 24px var(--accent-glow);transition:all .25s;}
.page-hero-cta:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 8px 36px var(--accent-glow);}
.page-hero-cta svg{width:18px;height:18px;}
.page-hero-inner{display:flex;align-items:center;gap:var(--space-2xl);}
.page-hero-text{flex:1;min-width:0;}
@media(max-width:640px){.page-hero-inner{flex-direction:column-reverse;text-align:center;}.page-hero-photo{width:200px;height:200px;}}
.page-hero-photo{width:280px;height:280px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--border-glass);box-shadow:0 8px 32px rgba(0,0,0,.3);}
.ville-map{width:300px;height:300px;border-radius:50%!important;flex-shrink:0;border:3px solid var(--border-glass)!important;box-shadow:0 8px 32px rgba(0,0,0,.25);overflow:hidden;clip-path:circle(50% at 50% 50%);}

/* ─── Cities Tags ─── */
.cities-tags{margin-top:var(--space-xl);}
.cities-tags-label{display:block;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:var(--space-sm);}
.cities-tags-list{display:flex;flex-wrap:wrap;gap:.45rem;}
.city-tag{display:inline-block;padding:.3rem .8rem;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-pill);text-decoration:none;transition:all .2s;}
.city-tag:hover{color:var(--accent);border-color:var(--border-accent);background:var(--accent-soft);transform:translateY(-1px);}

/* ─── Gallery ─── */
.gallery-carousel{display:flex;gap:var(--space-sm);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:var(--space-sm);-ms-overflow-style:none;scrollbar-width:none;cursor:grab;user-select:none;}
.gallery-carousel:active{cursor:grabbing;}
.gallery-carousel::-webkit-scrollbar{display:none;}
.gallery-carousel img{height:230px;width:auto;border-radius:var(--radius-lg);scroll-snap-align:start;cursor:pointer;flex-shrink:0;transition:transform .3s,box-shadow .3s,filter .3s;border:1px solid var(--border-glass);}
.gallery-carousel img:hover{transform:scale(1.04) translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.4);filter:brightness(1.06);}
.gallery-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10000;align-items:center;justify-content:center;cursor:pointer;}
.gallery-lightbox.open{display:flex;}
.gallery-lightbox img{max-width:90vw;max-height:90vh;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);}

/* ─── Sections ─── */
.section{padding:var(--space-4xl) 0;position:relative;z-index:1;}
.section-alt{background:var(--bg-secondary);}
.section-header{text-align:center;margin-bottom:var(--space-3xl);}
.section-label{display:inline-block;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:var(--space-sm);}
.section-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;letter-spacing:-.025em;margin-bottom:var(--space-md);}
.section-desc{font-size:var(--text-base);color:var(--text-secondary);max-width:560px;margin:0 auto;line-height:1.7;}

/* ─── Cards ─── */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--grid-gap);}
.card{padding:var(--space-xl);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);text-align:center;transition:all .35s cubic-bezier(.2,0,0,1);position:relative;overflow:hidden;}
.card::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(249,115,22,.5),transparent);opacity:0;transition:opacity .35s;}
.card:hover{border-color:var(--border-accent);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.35),0 0 36px rgba(249,115,22,.1);background:var(--bg-glass-2);}
.card:hover::before{opacity:1;}
.card-icon{width:52px;height:52px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--border-accent);display:grid;place-items:center;margin:0 auto var(--space-md);transition:all .35s;}
.card:hover .card-icon{background:var(--accent);box-shadow:0 4px 16px var(--accent-glow);}
.card-icon svg{width:22px;height:22px;stroke:var(--accent);fill:none;transition:stroke .35s;}
.card:hover .card-icon svg{stroke:white;}
.card h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;margin-bottom:.3rem;}
.card p{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-sm);}
.card-price{font-size:var(--text-lg);font-weight:700;color:var(--accent);}
.card-photo{width:110px;height:110px;border-radius:50%;object-fit:cover;display:block;margin:0 auto var(--space-md);border:2px solid var(--border-glass);transition:border-color .3s,transform .3s,box-shadow .3s;}
.card:hover .card-photo{border-color:var(--accent);transform:scale(1.05);box-shadow:0 4px 20px var(--accent-glow);}

/* ─── Steps ─── */
.steps-list{max-width:680px;margin:0 auto;display:grid;gap:var(--space-sm);}
.step-item{display:flex;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);transition:all .25s;}
.step-item:hover{border-color:var(--border-accent);background:var(--bg-glass-2);}
.step-check{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--border-accent);display:grid;place-items:center;flex-shrink:0;}
.step-check svg{width:14px;height:14px;stroke:var(--accent);fill:none;}
.step-item h4{font-size:var(--text-base);font-weight:600;margin-bottom:.15rem;}
.step-item p{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;}

/* ─── Content Block ─── */
.content-block{max-width:700px;margin:0 auto;padding:var(--space-2xl);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);}
.content-block h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--space-md);text-align:center;}
.content-block p{font-size:var(--text-base);color:var(--text-secondary);line-height:1.8;margin-bottom:var(--space-md);}
.content-block p:last-child{margin-bottom:0;}

/* ─── CTA Section ─── */
.cta-section{text-align:center;padding:var(--space-3xl) 0;background:var(--bg-tertiary);position:relative;overflow:hidden;}
.cta-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(249,115,22,.35),transparent);}
.cta-section h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-md);}
.cta-section p{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-xl);}

/* ─── Footer ─── */
.footer{background:var(--bg-secondary);border-top:1px solid var(--border-subtle);padding:var(--space-3xl) 0 var(--space-xl);}
.footer p{font-size:var(--text-xs);color:var(--text-muted);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-2xl);margin-bottom:var(--space-2xl);}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;}}
.footer-brand .logo{margin-bottom:var(--space-md);}
.footer-brand p{font-size:var(--text-sm);color:var(--text-muted);line-height:1.7;}
.footer-col h4{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-primary);margin-bottom:var(--space-md);}
.footer-col a{display:block;font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;padding:.3rem 0;transition:color .2s;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{border-top:1px solid var(--border-subtle);padding-top:var(--space-lg);text-align:center;font-size:var(--text-xs);color:var(--text-muted);}

/* ─── Animations ─── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s cubic-bezier(.2,0,0,1),transform .65s cubic-bezier(.2,0,0,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .6s cubic-bezier(.2,0,0,1),transform .6s cubic-bezier(.2,0,0,1);}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .6s cubic-bezier(.2,0,0,1),transform .6s cubic-bezier(.2,0,0,1);}
.reveal-scale{opacity:0;transform:scale(.94);transition:opacity .55s cubic-bezier(.2,0,0,1),transform .55s cubic-bezier(.2,0,0,1);}
.reveal-left.visible,.reveal-right.visible,.reveal-scale.visible{opacity:1;transform:translateX(0) scale(1);}
.stagger-1{transition-delay:.05s;}.stagger-2{transition-delay:.12s;}.stagger-3{transition-delay:.19s;}
.stagger-4{transition-delay:.26s;}.stagger-5{transition-delay:.33s;}.stagger-6{transition-delay:.40s;}

/* ─── WhatsApp ─── */
.whatsapp-bubble{position:fixed;bottom:28px;right:24px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.whatsapp-toast{background:white;border-radius:var(--radius-lg);padding:14px 18px;box-shadow:0 8px 32px rgba(0,0,0,.16);font-size:var(--text-sm);color:#1a1a2e;max-width:260px;opacity:0;transform:translateY(8px);transition:all .3s;pointer-events:none;}
.whatsapp-toast.visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.whatsapp-toast strong{display:block;margin-bottom:4px;font-family:var(--font-display);color:#111;}
.whatsapp-toast p{color:#555;font-size:var(--text-xs);line-height:1.4;margin:0;}
.whatsapp-btn{width:58px;height:58px;border-radius:50%;background:#25D366;display:grid;place-items:center;cursor:pointer;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,.35);transition:all .3s;animation:bounce-wa 2.5s ease-in-out infinite;}
.whatsapp-btn:hover{transform:scale(1.1)!important;box-shadow:0 6px 24px rgba(37,211,102,.45);animation-play-state:paused;}
.whatsapp-btn svg{width:30px;height:30px;fill:white;}
@keyframes bounce-wa{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@media(max-width:480px){.whatsapp-bubble{bottom:82px;right:16px;}.whatsapp-btn{width:50px;height:50px;}.whatsapp-btn svg{width:26px;height:26px;}}

/* ─── Mobile CTA Bar ─── */
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:998;background:rgba(6,6,13,.96);backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);padding:10px 12px;grid-template-columns:1fr 1fr;gap:8px;}
.mobile-cta-bar a{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1rem;border-radius:var(--radius-md);font-weight:700;font-size:var(--text-sm);text-decoration:none;transition:all .2s;}
.mobile-cta-bar a svg{width:18px;height:18px;flex-shrink:0;}
.mobile-cta-phone{background:var(--gradient-warm);color:white!important;box-shadow:0 3px 12px var(--accent-glow);}
.mobile-cta-phone svg{stroke:white;fill:none;}
.mobile-cta-whatsapp{background:#25D366;color:white!important;box-shadow:0 3px 12px rgba(37,211,102,.3);}
.mobile-cta-whatsapp svg{fill:white;}
@media(max-width:768px){.mobile-cta-bar{display:grid;}.whatsapp-bubble{bottom:90px;}}

/* ─── Legal Modals ─── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:10000;align-items:center;justify-content:center;padding:var(--space-lg);}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-xl);max-width:700px;width:100%;max-height:80vh;overflow-y:auto;padding:var(--space-2xl);position:relative;}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all .2s;}
.modal-close:hover{color:var(--text-primary);background:var(--bg-glass-2);}
.modal-box h2{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-lg);}
.modal-box h3{font-size:var(--text-base);font-weight:600;margin-top:var(--space-lg);margin-bottom:var(--space-sm);}
.modal-box p,.modal-box li{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.7;margin-bottom:var(--space-sm);}
.modal-box a{color:var(--text-primary);text-decoration:underline;}
.modal-box a:hover{color:var(--accent);}

/* ═══════════════════════════════════════════
   HOMEPAGE STYLES
   ═══════════════════════════════════════════ */

/* Hero */
.hero{position:relative;overflow:hidden;min-height:100svh;display:grid;place-items:center;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.6;}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(160deg,rgba(6,6,13,.3) 0%,rgba(6,6,13,.55) 45%,rgba(6,6,13,.92) 100%);}
.hero .orb{z-index:0;}
.hero .container{position:relative;z-index:2;padding:var(--space-4xl) 0;}
.hero-content{position:relative;z-index:2;text-align:center;max-width:920px;margin:0 auto;}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.25);border-radius:var(--radius-pill);padding:.5rem 1.2rem;font-size:var(--text-sm);font-weight:700;color:var(--accent);margin-bottom:var(--space-xl);text-transform:uppercase;letter-spacing:.08em;}
.hero-badge::before{content:'';width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0;animation:pulse-dot 2s ease-in-out infinite;}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1);box-shadow:0 0 0 0 rgba(249,115,22,.4);}50%{opacity:.7;transform:scale(1.2);box-shadow:0 0 0 4px rgba(249,115,22,0);}}
.hero h1{font-family:var(--font-display);font-size:clamp(2.5rem,5.5vw,5.8rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;margin-bottom:var(--space-lg);max-width:820px;margin-left:auto;margin-right:auto;}
.hero h1 .gradient-text{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero p{font-size:var(--text-xl);color:var(--text-secondary);max-width:620px;margin:0 auto var(--space-2xl);line-height:1.75;}
.hero-actions{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-2xl);}
.hero-stats{display:flex;justify-content:center;gap:clamp(1.5rem,4vw,3.5rem);flex-wrap:wrap;margin-bottom:var(--space-2xl);}
.hero-stat{text-align:center;}
.hero-stat strong{display:block;font-family:var(--font-display);font-size:clamp(1.6rem,2.5vw,2.4rem);font-weight:800;line-height:1;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-stat span{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;}
.hero-cities{margin-top:var(--space-xl);text-align:center;}
.hero-cities-label{display:block;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:var(--space-sm);}
.hero-cities-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;}
.hero-city-tag{display:inline-block;padding:.3rem .85rem;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);background:rgba(255,255,255,.05);border:1px solid var(--border-glass);border-radius:var(--radius-pill);text-decoration:none;transition:all .2s;}
.hero-city-tag:hover{color:var(--accent);border-color:var(--border-accent);background:var(--accent-soft);transform:translateY(-1px);}

/* Trust Bar */
.trust-bar{position:relative;z-index:2;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding:.85rem 0;}
.trust-bar-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1.5rem;}
.trust-item{display:flex;align-items:center;gap:.45rem;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);white-space:nowrap;}
.trust-item svg{width:16px;height:16px;flex-shrink:0;}
.trust-item.trust-accent{color:var(--accent);}
.trust-item.trust-accent svg{stroke:var(--accent);fill:none;}
.trust-item.trust-check{color:var(--accent-2);}
.trust-item.trust-check svg{stroke:var(--accent-2);fill:none;}
.trust-sep{width:1px;height:20px;background:var(--border-glass);}
@media(max-width:640px){.trust-sep{display:none;}}

/* Reviews */
.reviews-carousel-section{position:relative;z-index:2;padding:var(--space-2xl) 0;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);}
.reviews-carousel-section .container{max-width:none;padding:0;}
.reviews-carousel-header{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding:0 var(--space-lg);}
.reviews-google-logo{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);}
.reviews-google-logo svg{width:24px;height:24px;}
.reviews-rating{display:flex;align-items:center;gap:.4rem;color:#f59e0b;font-size:var(--text-base);font-weight:600;}
.reviews-rating span{color:var(--text-secondary);font-weight:400;font-size:var(--text-sm);}
.reviews-carousel{display:flex;gap:var(--space-md);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 var(--space-lg) var(--space-md);-ms-overflow-style:none;scrollbar-width:none;}
.reviews-carousel::-webkit-scrollbar{display:none;}
.review-card{flex:0 0 340px;scroll-snap-align:start;padding:var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);transition:all .3s;position:relative;overflow:hidden;}
.review-card::before{content:'"';position:absolute;top:8px;right:16px;font-size:4rem;color:var(--accent);opacity:.1;font-family:Georgia,serif;line-height:1;}
.review-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3);}
.review-card-stars{color:#f59e0b;font-size:var(--text-sm);margin-bottom:var(--space-sm);letter-spacing:.05em;}
.review-card-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.65;font-style:italic;margin-bottom:var(--space-sm);}
.review-card-author{font-size:var(--text-xs);color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.reviews-cta{text-align:center;margin-top:var(--space-lg);padding:0 var(--space-lg);}

/* Services */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--grid-gap);}
.service-card{position:relative;padding:var(--space-2xl);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);text-decoration:none;color:inherit;text-align:center;transition:all .4s cubic-bezier(.2,0,0,1);overflow:hidden;}
.service-card::before{content:'';position:absolute;inset:0;background:var(--gradient-card-hover);opacity:0;transition:opacity .4s;border-radius:inherit;}
.service-card:hover{border-color:var(--border-accent);transform:translateY(-5px);box-shadow:0 20px 56px rgba(0,0,0,.35),0 0 40px rgba(249,115,22,.1);}
.service-card:hover::before{opacity:1;}
.service-card>*{position:relative;z-index:1;}
.service-photo{width:200px;height:200px;border-radius:50%;object-fit:cover;margin:0 auto var(--space-xl);display:block;border:3px solid var(--border-glass);box-shadow:0 8px 24px rgba(0,0,0,.2);transition:border-color .35s,transform .35s,box-shadow .35s;}
.service-card:hover .service-photo{border-color:var(--accent);transform:scale(1.05);box-shadow:0 12px 36px var(--accent-glow);}
.service-card h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-xs);}
.service-card p{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-md);line-height:1.6;}
.service-price{font-size:var(--text-sm);font-weight:700;color:var(--accent);}

/* Cities Grid */
.cities-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:var(--grid-gap);}
.city-card{text-align:center;padding:var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);text-decoration:none;color:inherit;transition:all .3s;position:relative;overflow:hidden;}
.city-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gradient-warm);opacity:0;transition:opacity .3s;}
.city-card:hover{border-color:var(--border-accent);transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.25);}
.city-card:hover::after{opacity:1;}
.city-card svg{width:24px;height:24px;stroke:var(--accent);fill:none;margin:0 auto var(--space-sm);display:block;transition:transform .3s;}
.city-card:hover svg{transform:translateY(-2px);}
.city-code{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;display:block;margin-bottom:.1rem;}
.city-name{font-size:var(--text-sm);font-weight:600;display:block;margin-bottom:.2rem;}
.city-sub{font-size:var(--text-xs);color:var(--text-muted);}
.city-featured{background:var(--gradient-card);border-color:var(--border-accent);}
.city-featured .city-code{color:var(--accent);}

/* FAQ */
.faq-list{max-width:720px;margin:0 auto;display:grid;gap:.6rem;}
.faq-item{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s;}
.faq-item[open]{border-color:var(--border-accent);}
.faq-item summary{padding:1.1rem var(--space-lg);font-weight:500;font-size:var(--text-base);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;transition:color .2s;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{color:var(--accent);}
.faq-item summary::after{content:'+';font-size:1.3rem;color:var(--accent);line-height:1;transition:transform .3s;flex-shrink:0;margin-left:.5rem;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{padding:0 var(--space-lg) var(--space-lg);font-size:var(--text-sm);color:var(--text-muted);line-height:1.75;}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-3xl);max-width:900px;margin:0 auto;}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr;}}
.contact-info{display:grid;gap:var(--space-lg);align-content:start;}
.contact-item{display:flex;gap:var(--space-md);align-items:flex-start;}
.contact-icon{width:42px;height:42px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--border-accent);display:grid;place-items:center;flex-shrink:0;}
.contact-icon svg{width:18px;height:18px;stroke:var(--accent);fill:none;}
.contact-item strong{display:block;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem;}
.contact-item a,.contact-item p{font-size:var(--text-base);color:var(--text-primary);text-decoration:none;font-weight:600;line-height:1.5;}
.contact-item a:hover{color:var(--accent);}
.contact-form{display:grid;gap:var(--space-md);}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);}
@media(max-width:480px){.contact-form .form-row{grid-template-columns:1fr;}}
.contact-form label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:.35rem;display:block;}
.contact-form input,.contact-form textarea{width:100%;padding:.8rem 1rem;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);transition:border-color .2s,box-shadow .2s;outline:none;}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(249,115,22,.15);}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-muted);}
.contact-form textarea{resize:vertical;min-height:130px;}
.contact-form button{justify-self:start;}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3xl);align-items:center;}
@media(max-width:768px){.about-grid{grid-template-columns:1fr;}}
.about-text h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;letter-spacing:-.025em;margin-bottom:var(--space-lg);}
.about-text p{color:var(--text-secondary);font-size:var(--text-base);line-height:1.8;margin-bottom:var(--space-md);}
.features-list{display:grid;gap:var(--space-md);}
.feature-item{display:flex;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);transition:all .3s;}
.feature-item:hover{border-color:var(--border-accent);background:var(--bg-glass-2);}
.feature-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--border-accent);display:grid;place-items:center;flex-shrink:0;}
.feature-icon svg{width:20px;height:20px;stroke:var(--accent);fill:none;}
.feature-item h4{font-size:var(--text-base);font-weight:600;margin-bottom:.25rem;}
.feature-item p{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;}
