
:root{--bg:#0c0d0e;--panel:#171819;--gold:#e6b94b;--light:#f8f6ef;--muted:#c6c4bd;--line:#373229}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--light);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.65}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.container{max-width:1160px;margin:auto;padding:0 24px}.skip{position:absolute;top:-100px;left:12px;background:#fff;color:#111;padding:10px;z-index:50}.skip:focus{top:10px}.topline{background:#211b10;text-align:center;color:#f1dca9;font-size:.85rem;padding:6px}.header{position:sticky;top:0;z-index:10;background:rgba(10,10,10,.97);border-bottom:1px solid #3d3424}.nav{display:flex;align-items:center;gap:20px;justify-content:space-between;min-height:80px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:850;letter-spacing:.035em;line-height:1.05}.mark{font-size:2rem;color:var(--gold);line-height:1}.brand small{display:block;color:var(--gold);font-size:.66rem;letter-spacing:.24em;margin-top:5px}.links{display:flex;align-items:center;gap:16px}.links a{font-size:.88rem;text-decoration:none;color:#f3eee2}.links a:hover,.foot a:hover{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:linear-gradient(135deg,#ffe18a,#c88b18);color:#15100a;border-radius:10px;padding:13px 19px;font-weight:800;line-height:1.25;box-shadow:0 5px 23px #c88b182b}.button.secondary{background:transparent;color:var(--light);border:1px solid #a99059;box-shadow:none}.button:hover{filter:brightness(1.08)}.menu-toggle{display:none;background:transparent;border:1px solid #7c6a48;color:white;border-radius:8px;padding:8px 12px;font-size:1.3rem}.hero{position:relative;min-height:550px;display:flex;align-items:center;background:linear-gradient(90deg,#08090af7 0%,#090a0bdc 42%,#090a0b30 100%),url('serrurerie-lyon-atelier-outillage.webp') center 45%/cover no-repeat}.hero-inner{padding-top:80px;padding-bottom:80px;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--gold);font-size:.8rem;font-weight:800}.hero h1{font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.08;letter-spacing:-.04em;max-width:790px;margin:15px 0 22px}.gold{color:var(--gold)}.lead{font-size:1.18rem;color:#e6e4df;max-width:650px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.note{font-size:.8rem;color:#d1c5ae}.section{padding:76px 0}.section.alt{background:#131415}.section h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.2;margin:8px 0 14px;letter-spacing:-.025em}.intro{max-width:750px;color:var(--muted);margin-bottom:30px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:25px}.card h3{margin:12px 0 8px;font-size:1.18rem}.card p{color:var(--muted);margin:0 0 16px}.card a{color:var(--gold);font-weight:700}.symbol{color:var(--gold);font-size:2rem}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.photo{width:100%;height:auto;border-radius:16px;display:block;border:1px solid var(--line)}.checklist{padding-left:20px}.checklist li{margin:10px 0}.checklist li::marker{color:var(--gold)}.band{background:linear-gradient(100deg,#34250e,#181612);border-top:1px solid #71551e;border-bottom:1px solid #71551e;padding:35px 0}.band-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.band h2{margin:0 0 5px}.band p{margin:0;color:#ddd0b2}.breadcrumb{padding:24px 0;color:#d7c6a1;font-size:.85rem}.breadcrumb a{color:#d7c6a1}.pagehead{padding:48px 0 60px;background:radial-gradient(ellipse at 85% 0%,#49320c 0%,transparent 45%),#111}.pagehead h1{font-size:clamp(2.3rem,4vw,3.9rem);line-height:1.1;margin:10px 0 16px;max-width:900px}.prose{max-width:800px}.prose h2{font-size:1.75rem;margin-top:35px}.prose h3{font-size:1.23rem;margin-top:24px}.prose p,.prose li{color:#d3d0c9}.faq details{border-bottom:1px solid var(--line);padding:15px 0}.faq summary{cursor:pointer;font-weight:700}.faq p{color:var(--muted)}.foot{padding:45px 0 25px;background:#070808;border-top:1px solid #373229}.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.foot a{display:block;color:#d2cec3;text-decoration:none;margin:8px 0}.foot small{color:#9e998c}.legal{border-top:1px solid #282828;margin-top:30px;padding-top:20px;color:#a8a398;font-size:.8rem}.form label{display:block;font-weight:700;margin-top:18px}.form input,.form textarea{width:100%;background:#222;color:#fff;border:1px solid #6b5c3f;padding:13px;border-radius:8px;font:inherit}.form button{margin-top:18px;cursor:pointer;border:0}.alert{background:#332a17;border-left:3px solid var(--gold);padding:16px;border-radius:6px;color:#e7d8b4}.phone-float{display:none}@media(max-width:900px){.menu-toggle{display:block}.links{display:none;position:absolute;top:100%;left:0;right:0;background:#111;flex-direction:column;align-items:stretch;padding:22px 25px;border-bottom:1px solid #6d582d}.links.open{display:flex}.nav{min-height:72px}.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.hero{background-position:60% center}}@media(max-width:600px){.container{padding:0 19px}.hero{min-height:600px;background:linear-gradient(90deg,#090a0aeb,#090a0ac9),url('serrurerie-lyon-atelier-outillage.webp') center/cover}.hero-inner{padding:55px 0}.grid,.footgrid{grid-template-columns:1fr}.section{padding:54px 0}.band-inner{display:block}.band .button{margin-top:20px}.phone-float{display:block;position:fixed;bottom:12px;left:14px;right:14px;text-align:center;z-index:11}.foot{padding-bottom:90px}}

/* Identité iLYGO SERVICE : noir, or et Lyon */
:root{--gold:#ffd044;--panel:#14110c;--line:#554017}
.brand-logo{height:63px;width:58px;object-fit:cover;object-position:center;border-radius:7px;filter:drop-shadow(0 0 7px #eebc4680)}
.brand-name{font-size:1.15rem}.brand-name small{font-size:.57rem}
.hero{background:linear-gradient(90deg,#070707f8 0%,#070707e5 43%,#0707078c 100%),url('lyon-or.webp') center center/cover no-repeat}
.hero h1{ text-shadow:0 2px 15px #000 }
.card{box-shadow:0 8px 30px #0005}.card:hover{border-color:#cda03e;transform:translateY(-2px);transition:.18s ease}
.quote-form{max-width:780px;background:#16130e;border:1px solid #816327;padding:28px;border-radius:18px;margin:28px 0}
.quote-form label{display:block;margin:13px 0 5px;font-weight:700}.quote-form input,.quote-form select,.quote-form textarea{width:100%;border:1px solid #78643e;border-radius:8px;padding:12px;background:#090909;color:white;font:inherit}.quote-form textarea{min-height:110px}.quote-form .consent{display:flex;align-items:flex-start;gap:10px;font-size:.9rem}.quote-form .consent input{width:auto;margin-top:7px}.quote-form button{border:0;cursor:pointer;margin-top:15px}.form-note{color:#d3c7ac;font-size:.9rem}
@media(max-width:600px){.brand-logo{height:50px;width:45px}.brand-name{font-size:1rem}.hero{background-position:62% center}.quote-form{padding:18px}}

/* Compact, accessible local service design */
.availability-strip{background:#111a12;border-block:1px solid #2d4c31;padding:10px 0}.availability-inner{max-width:1160px;margin:auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.availability-text{font-size:.94rem;color:#e4f7e7}.availability-dot{display:inline-block;width:10px;height:10px;background:#43d46d;border-radius:50%;margin-right:9px;box-shadow:0 0 0 3px #43d46d22;animation:gentlePulse 2.5s ease-in-out infinite}.availability-action{display:inline-flex;background:#177b39;color:white;text-decoration:none;font-weight:750;border-radius:99px;padding:8px 17px;min-height:42px;align-items:center}.availability-action:hover{background:#0e6330}@keyframes gentlePulse{50%{box-shadow:0 0 0 7px #43d46d10;opacity:.7}}@media(prefers-reduced-motion:reduce){.availability-dot{animation:none}}.local-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.local-gallery figure{margin:0;border:1px solid #423726;background:#151515;border-radius:14px;overflow:hidden}.local-gallery img{width:100%;height:190px;object-fit:cover;display:block}.local-gallery figcaption{padding:10px 14px;color:#e8dfc8;font-size:.87rem}.local-note{background:#181714;border-left:3px solid #e6b94b;padding:12px 16px;border-radius:5px;margin:18px 0;color:#e6dfce}.local-cta{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.local-cta a{display:inline-flex;align-items:center;text-decoration:none;background:#e6b94b;color:#16130c;padding:11px 18px;border-radius:9px;font-weight:750}.local-cta a.secondary{background:#27221a;color:#fff;border:1px solid #766036}@media(max-width:600px){.local-gallery{grid-template-columns:1fr}.local-gallery img{height:170px}.availability-inner{justify-content:center;text-align:center}}

/* Information devis, assurance et fabricants — sans logo tiers trompeur */
.trust-insurance{padding-top:50px;padding-bottom:50px}
.trust-head{max-width:860px;margin-bottom:22px}
.trust-head h2{margin:10px 0 12px}
.trust-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.trust-panel{background:#151617;border:1px solid #635331;border-radius:14px;padding:22px}
.trust-panel h3{color:#f3d386;margin:0 0 12px}
.trust-chips{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}
.trust-chips span{display:inline-block;border:1px solid #8e7540;background:#24231f;color:#f4e1ad;padding:7px 12px;border-radius:8px;font-weight:700;font-size:.9rem}
.fineprint{font-size:.82rem;opacity:.82;line-height:1.6}
.trust-link{color:#f2cc78;text-underline-offset:4px}
.trust-cta{display:inline-block;margin-top:20px;padding:13px 21px;background:#e6b94b;color:#17120a!important;text-decoration:none;border-radius:9px;font-weight:800}
@media(max-width:700px){.trust-columns{grid-template-columns:1fr}.trust-panel{padding:18px}}

/* Logos typographiques sobres : noms de marques sans reproduction d'emblèmes officiels. */
.trust-chips .assurance-name,.trust-chips .marque-name{background:#fff;color:#202020;border:1px solid #d6d6d6;border-radius:7px;min-width:105px;text-align:center;font-weight:800;letter-spacing:.015em;box-shadow:0 2px 8px #0002}
.trust-chips .marque-name{background:#181818;color:#f2d28b;border-color:#776238}
.header .links>a.button{white-space:nowrap;font-weight:800}
@media(max-width:700px){.trust-chips .assurance-name,.trust-chips .marque-name{min-width:90px;font-size:.82rem}}

/* Photographies thématiques légères et responsive */
.service-card-photo{width:100%;height:auto;aspect-ratio:18/11;object-fit:cover;display:block;border-radius:11px;margin-bottom:16px;background:#282828}
.service-feature-photo{margin-top:22px;margin-bottom:25px;max-width:980px}
.service-feature-photo img{display:block;width:100%;max-height:410px;height:auto;aspect-ratio:18/11;object-fit:cover;border-radius:15px;background:#252525}
@media(max-width:600px){.service-feature-photo img{max-height:250px}}

/* Lightweight navigation and consistent business wordmark */
.brand-name{white-space:nowrap;letter-spacing:.01em}
.seo-footer-nav{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:center;padding:16px 12px}
.seo-footer-nav a{color:#dcb96e;text-decoration:underline;text-underline-offset:3px;font-size:.9rem}
@media(max-width:480px){.brand-name{font-size:clamp(.85rem,3.4vw,1.2rem);white-space:normal}}

/* Editorial navigation and service imagery */
.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:26px 0 36px}.editorial-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(202,167,88,.35);border-radius:14px;background:#151515;color:#f5f1e7;text-decoration:none;transition:transform .2s,border-color .2s}.editorial-card:hover{transform:translateY(-3px);border-color:#d6ae5a}.editorial-card img{width:100%;height:185px;object-fit:cover;display:block}.editorial-card-body{padding:18px;display:grid;gap:9px}.editorial-card-body strong{font-size:1.13rem}.editorial-card-body span{font-size:.95rem}.editorial-more{color:#e8bd68}.editorial-figure{margin:26px 0 34px;max-width:850px}.editorial-figure img{width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:14px}.editorial-figure figcaption{font-size:.82rem;opacity:.75;margin-top:8px}@media(max-width:850px){.editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.editorial-grid{grid-template-columns:1fr}.editorial-card img{height:210px}}

/* Menu des prestations : accessible au clic, clavier et mobile */
.nav-dropdown{position:relative;color:#f3eee2;font-size:.88rem}
.nav-dropdown>summary{list-style:none;cursor:pointer;font-weight:700;white-space:nowrap;padding:8px 2px}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown>summary::after{content:' ▾';color:var(--gold)}
.nav-dropdown[open]>summary,.nav-dropdown>summary:hover{color:var(--gold)}
.nav-dropdown-panel{position:absolute;top:100%;left:0;z-index:100;min-width:260px;max-height:min(75vh,650px);overflow-y:auto;display:flex;flex-direction:column;gap:3px;background:#141414;border:1px solid #71551e;border-radius:12px;padding:14px;box-shadow:0 16px 35px #0009}
.nav-dropdown-panel strong{color:var(--gold);font-size:.8rem;margin:8px 8px 4px}
.links .nav-dropdown-panel a{display:block;padding:7px 9px;border-radius:6px;white-space:normal;line-height:1.35}
.links .nav-dropdown-panel a:hover,.links .nav-dropdown-panel a[aria-current=page]{background:#302719;color:var(--gold)}
@media(max-width:900px){.nav-dropdown{width:100%}.nav-dropdown-panel{position:static;max-height:none;box-shadow:none;width:100%;min-width:0;margin-top:8px}.nav-dropdown>summary{padding:6px 0}}

/* V17 — Global responsive stabilization and visual hierarchy */
:root{--gold:#f2c766;--panel:#18191b;--line:#594728;--light:#f9f4e9;--muted:#d3cbbd}
html{scroll-padding-top:116px}
body{overflow-x:clip;color:var(--light);font-variant-ligatures:common-ligatures}
img,svg,video,iframe{max-width:100%}
img{height:auto}
.container{width:min(100%,1180px);margin-inline:auto}
*:where(h1,h2,h3,h4,p,li,a,summary,small){overflow-wrap:break-word}
:where(a,button,input,select,textarea,summary){-webkit-tap-highlight-color:rgba(242,199,102,.18)}
:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.header{z-index:50;box-shadow:0 5px 28px rgba(0,0,0,.3)}
.header .nav{max-width:1220px}
.header .links{gap:clamp(9px,1.15vw,16px)}
.header .links>a,.header .links summary{font-size:.85rem}
.header .brand{flex:0 0 auto;min-width:0}
.brand-name{max-width:210px;line-height:1.2}
.nav-dropdown-panel{z-index:300}
.nav-dropdown summary:focus-visible{outline-offset:5px}
.header .links>a.button{font-size:.8rem;padding:12px 14px;color:#12100a;min-height:46px}
.topline{font-weight:600;line-height:1.45}
.availability-strip{background:#151711!important;border-color:#4e4935!important}
.availability-dot{background:var(--gold);box-shadow:0 0 0 3px #e5be5b22}
.availability-text{color:#efe0bd}
.availability-inner{max-width:1200px}
.trust-insurance{width:min(calc(100% - 48px),1120px);margin:0 auto;padding-inline:0}
.trust-head{max-width:910px}
.trust-head p{line-height:1.7}
.trust-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.trust-panel{min-width:0}
.trust-chips{gap:8px}
.hero{background-image:linear-gradient(90deg,rgba(6,6,8,.97) 0%,rgba(6,6,8,.92) 42%,rgba(6,6,8,.52) 100%),url('lyon-or.webp');background-position:center center;background-size:cover;min-height:clamp(430px,48vw,560px)}
.hero-inner{padding-block:clamp(60px,6vw,95px)}
.hero h1{max-width:840px;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1.12;letter-spacing:-.035em;text-wrap:balance}
.hero .lead{font-size:clamp(1.03rem,1.5vw,1.18rem);max-width:670px}
.service-card-photo{aspect-ratio:16/10;object-fit:cover;height:auto}
.grid,.editorial-grid{align-items:stretch}
.card{min-width:0;display:flex;flex-direction:column}
.card p{flex:1}
.card a{align-self:flex-start}
.photo{height:auto;max-height:440px;object-fit:cover}
.service-feature-photo img{max-height:480px;object-fit:cover}
.faq details{border-color:#5b4b30;max-width:900px}
.faq summary{padding:5px 2px;cursor:pointer;line-height:1.55}
.faq details[open] summary{color:var(--gold)}
.pagehead .container,.breadcrumb{max-width:1180px}
.pagehead h1{font-size:clamp(2rem,4.2vw,3.7rem);text-wrap:balance}
.section h2{font-size:clamp(1.65rem,3vw,2.4rem);text-wrap:pretty}
.prose h2{font-size:clamp(1.4rem,2.35vw,1.95rem)}
.prose h3{font-size:clamp(1.1rem,2vw,1.35rem)}
.local-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.local-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.local-links a{display:inline-flex;padding:8px 13px;text-decoration:none;border:1px solid #816535;border-radius:999px;color:#f0d7a0;font-weight:700;font-size:.88rem}
.local-links a:hover{background:#2a241b}
.local-detail{background:#121418;border-top:1px solid #584a30}
.local-detail-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.local-detail-layout figure{margin:0;min-width:0}
.local-detail-layout img{display:block;width:100%;max-height:380px;object-fit:cover;border:1px solid #5a4d33;border-radius:17px}
.local-detail-layout figcaption{font-size:.82rem;color:#bcb5a8;margin-top:9px}
.local-detail-layout h3{font-size:1.12rem;color:#f4d592}
.local-detail-layout p{color:#d0c8bb}
.google-footer-link{grid-column:1/-1;margin:4px 0}
.footgrid{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr))}
.footgrid>div{min-width:0}
.seo-footer-nav{padding-bottom:0}
.legal{line-height:1.7}
.quote-form{max-width:780px}
.quote-form :is(input,textarea,select){min-height:46px;max-width:100%}
.quote-form :is(input,textarea,select):focus-visible{outline:3px solid var(--gold)}
@media(max-width:1179px){
 .menu-toggle{display:flex;align-items:center;justify-content:center;min-width:48px;min-height:46px;font-size:1.4rem;cursor:pointer;flex-shrink:0}
 .nav{min-height:76px;position:relative}
 .links{display:none!important;position:absolute!important;top:100%;left:0;right:0;max-height:min(80dvh,720px);overflow-y:auto;overflow-x:hidden;z-index:550;background:#101114!important;border-bottom:1px solid #9d803f;box-shadow:0 22px 42px #000b;flex-direction:column;gap:3px!important;align-items:stretch!important;padding:16px max(20px,env(safe-area-inset-left)) 22px!important}
 .links.open{display:flex!important}
 .header .links>a,.header .links summary{padding:11px 8px;font-size:1rem;width:100%;line-height:1.5}
 .header .links>a.button{width:100%;font-size:1rem;justify-content:center;margin-top:9px}
 .nav-dropdown{width:100%;position:static}
 .nav-dropdown>summary{padding:11px 8px!important}
 .nav-dropdown-panel{position:static;display:flex;max-height:none;overflow:visible;min-width:0;width:100%;padding:9px;background:#1b1c1d;border-radius:10px;box-shadow:none}
 .links .nav-dropdown-panel a{padding:10px 12px}
 .header .links>a[aria-current=page]{color:#f2c766}
}
@media(max-width:900px){
 .hero{background-position:54% center}
 .trust-columns,.local-detail-layout{grid-template-columns:1fr}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .split{grid-template-columns:1fr;gap:28px}
 .footgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .local-detail-layout img{max-height:330px}
}
@media(max-width:650px){
 html{scroll-padding-top:93px}
 .container{padding-inline:18px}
 .nav{min-height:68px}
 .brand-logo{width:45px;height:49px;object-fit:contain}
 .brand-name{font-size:clamp(.98rem,4vw,1.2rem);white-space:normal}
 .topline{font-size:.78rem;padding:7px 14px}
 .availability-inner{padding:8px 18px!important}
 .availability-text{font-size:.85rem}
 .availability-strip{padding:0}
 .hero{min-height:440px;background-image:linear-gradient(90deg,rgba(6,6,8,.93),rgba(6,6,8,.80)),url('lyon-or.webp');background-position:center center}
 .hero-inner{padding-block:50px 62px}
 .hero h1{font-size:clamp(2rem,8vw,2.85rem);letter-spacing:-.03em}
 .hero .actions{align-items:stretch;display:flex;flex-direction:column}
 .hero .actions .button{width:100%}
 .section{padding:48px 0}
 .pagehead{padding:30px 0 38px}
 .trust-insurance{width:calc(100% - 36px);padding-block:44px}
 .trust-panel{padding:18px}
 .grid,.editorial-grid,.footgrid,.local-gallery{grid-template-columns:1fr}
 .card{padding:19px}
 .card .service-card-photo{height:210px}
 .band-inner{display:flex;flex-direction:column;align-items:flex-start}
 .band .button{margin-top:8px}
 .phone-float{display:flex;align-items:center;justify-content:center;bottom:calc(11px + env(safe-area-inset-bottom));left:14px;right:14px;padding:14px;text-align:center;z-index:650;box-shadow:0 9px 40px #050505bb}
 body{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
 .foot{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 .brand-name{max-width:180px}
 .local-detail-layout{gap:20px}
 .breadcrumb{padding-block:16px}
}
@media(max-width:365px){
 .container{padding-inline:14px}
 .brand{gap:6px}
 .brand-name{font-size:.92rem}
 .header .brand-logo{height:44px;width:41px}
 .hero h1{font-size:1.9rem}
 .trust-insurance{width:calc(100% - 28px)}
 .button{max-width:100%;font-size:.94rem}
 .trust-chips span{min-width:0;font-size:.79rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.editorial-card{transition:none}}

/* V17 — one shared navigation shell across all 37 pages */
.local-page{width:100%;max-width:none;padding:0;margin:0}
.local-page-content{padding-top:36px;padding-bottom:54px;line-height:1.75}
.local-page-content>h1{font-size:clamp(1.85rem,3.8vw,3rem);line-height:1.16;text-wrap:balance;margin:15px 0 20px;color:#fff}
.local-page-content>h2{font-size:clamp(1.4rem,2.65vw,2rem);line-height:1.28;margin-top:38px;color:#f5ddaa}
.local-page-content h3{font-size:clamp(1.13rem,1.8vw,1.35rem)}
.local-page-content a:not(.button):not(.btn){color:#e9c77e;text-underline-offset:3px}
.local-page-content .btn{display:inline-flex;padding:9px 14px;border-radius:8px;background:#e6b94b;color:#18120b;font-weight:800;text-decoration:none}
.local-page-content>ul{padding-left:24px;max-width:890px}
.local-page-content>ul li{margin:9px 0}
.local-page-content>p{max-width:900px}
.local-page-content .section .container{padding:0}
.local-page-content .section{padding:10px 0 35px}
.local-page-content .local-gallery{margin:20px 0}
.local-page-content .local-gallery img{width:100%;height:clamp(180px,26vw,260px);object-fit:cover}
.local-page-content .local-gallery figure{min-width:0}
@media(max-width:650px){.local-page-content{padding-top:24px;padding-bottom:42px}.local-page-content .local-gallery{grid-template-columns:1fr}}

/* Editorial advice block replacing misleading storefront visual */
.process-card{min-width:0;padding:clamp(22px,4vw,38px);border-radius:20px;background:radial-gradient(circle at 95% 5%,#49361e 0%,transparent 55%),linear-gradient(135deg,#1c1c1f,#100f11);border:1px solid #826637;box-shadow:0 18px 42px #0005}
.process-card h3{font-size:clamp(1.45rem,2.4vw,2rem);margin:14px 0;color:#f7e2b6;line-height:1.2}
.process-card ol{padding-left:22px;margin:12px 0 24px}
.process-card li{margin:15px 0;color:#ddd4c3}
.process-card li::marker{color:#f2c766;font-weight:800}
.process-card strong{color:#fff}

/* V18 final visual remediation: prevents huge service photos and gigantic titles */
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden;line-height:1.62}
main{min-width:0}main *{min-width:0}
main h1,main h2,main h3,main h4{max-width:100%;hyphens:auto;letter-spacing:-.018em;text-wrap:pretty}
main h1,.pagehead h1,.local-page-content>h1{font-size:clamp(1.8rem,3.15vw,2.75rem)!important;line-height:1.17!important;max-width:880px;margin-block:10px 17px!important}
.hero h1{font-size:clamp(2rem,4vw,3.5rem)!important;max-width:780px}
main h2,.section h2,.local-page-content>h2,.prose h2{font-size:clamp(1.32rem,2.15vw,1.88rem)!important;line-height:1.27!important;margin-block:18px 12px}
main h3,.section h3,.local-page-content h3,.card h3{font-size:clamp(1.05rem,1.55vw,1.23rem)!important;line-height:1.38!important;margin-block:12px 8px}
main h4{font-size:1.06rem!important;line-height:1.45}
.pagehead{padding:28px 0 32px}.pagehead .lead{font-size:clamp(1rem,1.55vw,1.12rem);max-width:780px}
/* Service image: keep it in a properly centered compact landscape viewport, no intrinsic-size expansion */
figure.service-feature-photo.compact-feature{display:block;box-sizing:border-box;width:min(calc(100% - 36px),740px)!important;max-width:740px!important;margin:22px auto 20px!important;padding:0!important;overflow:hidden;border-radius:13px}
figure.service-feature-photo.compact-feature img{display:block;width:100%!important;height:clamp(180px,28vw,290px)!important;max-height:290px!important;aspect-ratio:16/7!important;object-fit:cover!important;object-position:50% 49%;border-radius:12px}
.section .split{gap:clamp(20px,4vw,42px)}.section .split .prose{min-width:0}
.section .split>.photo,.section .split>.contained-photo{display:block;width:100%!important;max-width:480px!important;height:clamp(200px,25vw,310px)!important;object-fit:cover!important;object-position:center;border-radius:12px;margin-inline:auto}
.service-card-photo,.card .service-card-photo{display:block;width:100%!important;height:clamp(138px,17vw,195px)!important;aspect-ratio:16/10;object-fit:cover!important;border-radius:10px}
.card h2{font-size:1.17rem!important}.card{padding:clamp(16px,1.8vw,23px)}.card .symbol{font-size:1.2rem;line-height:1}
.editorial-card img{height:clamp(140px,19vw,195px);object-fit:cover}
.editorial-figure,.service-feature-photo{overflow:hidden}
.editorial-figure img,.editorial-image,.contained-photo{max-height:350px!important;object-fit:cover!important;object-position:center}
.local-gallery img{height:240px!important;object-fit:cover}
.section{padding-block:clamp(32px,5.2vw,58px)}
.container{width:min(100%,1160px);padding-inline:clamp(16px,3vw,24px)}
/* Official Rhône directory: scannable, no doorway spam */
.geo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0 30px}
.geo-grid a{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #695332;background:#1a1b1e;color:#f2d58c;text-decoration:none;padding:14px 16px;border-radius:9px;font-weight:700}
.geo-grid a:hover{border-color:#edc676;background:#25221c}.geo-grid a span{color:#cba357}
.geo-search-label{display:block;color:#eacf8c;font-weight:750;margin:24px 0 7px}
#geo-search{width:min(100%,600px);height:48px;padding:12px 15px;border-radius:10px;border:1px solid #a28855;background:#111;color:#fff;font:inherit}
.geo-count{color:#c9c2b3;font-size:.9rem}
.geo-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 16px;padding:0;list-style:none;margin-top:20px}
.geo-list li{border-bottom:1px solid #423b2e;padding:6px 3px;color:#cfc7b8;font-size:.89rem;overflow-wrap:anywhere}
.geo-list li[hidden]{display:none!important}
.geo-list li a{color:#f3d386!important;font-weight:750;text-decoration:none}
@media(max-width:900px){.geo-grid,.geo-list{grid-template-columns:repeat(3,minmax(0,1fr))}.section .split>.photo{max-width:600px}}
@media(max-width:650px){.geo-grid,.geo-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:clamp(1.75rem,6.8vw,2.35rem)!important}.pagehead{padding:22px 0 24px}.pagehead h1,main h1{font-size:clamp(1.7rem,6.1vw,2.25rem)!important}.section .split>.photo,.section .split>.contained-photo{height:220px!important}.service-card-photo,.card .service-card-photo{height:180px!important}figure.service-feature-photo.compact-feature{width:min(calc(100% - 32px),560px)!important}figure.service-feature-photo.compact-feature img{height:195px!important}.band h2{font-size:1.32rem!important}}
@media(max-width:370px){.geo-grid,.geo-list{grid-template-columns:1fr}.card .service-card-photo{height:158px!important}}

/* V19 — readable, user-first design: simple navigation and consistent photo cropping */
.availability-strip{padding:0!important;background:#16241a!important;border-block:1px solid #37553f!important}
.availability-inner{max-width:1160px;margin:auto;padding:0 20px!important}
.availability-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;width:100%;text-align:center;color:#e6f5e8;text-decoration:none;font-size:clamp(.78rem,1.4vw,.94rem);line-height:1.3}
.availability-link strong{color:#a6f1af;font-weight:800}
.availability-link:hover,.availability-link:focus-visible{background:#1d3423}
.availability-dot{display:inline-block;flex:none;background:#4cda78!important;box-shadow:0 0 0 3px #49d6712a;animation:gentlePulse 2.6s ease-in-out infinite}
.simple-hero{min-height:440px!important}.simple-hero .hero-inner{padding-block:clamp(42px,6vw,74px)!important}
.simple-hero h1{font-size:clamp(2rem,4.2vw,3.5rem)!important;line-height:1.14!important;max-width:770px!important}
.simple-hero .lead{max-width:680px;font-size:clamp(1rem,1.4vw,1.13rem)}
.simple-services{background:#0f1113}.simple-services h2,.simple-transparent h2,.simple-local h2,.simple-reviews h2,.simple-end h2{font-size:clamp(1.48rem,2.5vw,2.1rem)!important;margin:12px 0 22px!important}
.simple-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.simple-service{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#1a1b1e;border:1px solid #4b4133;border-radius:14px;text-decoration:none;color:#f8f3e7;transition:border-color .2s}
.simple-service:hover{border-color:#ddb868}.simple-service img{display:block;width:100%;height:170px!important;object-fit:cover!important;object-position:center;aspect-ratio:16/10}
.simple-service-copy{display:grid;gap:8px;padding:19px}.simple-service-copy strong{font-size:1.06rem;line-height:1.35;color:#f5dfaa}.simple-service-copy small{font-size:.91rem;line-height:1.5;color:#c8c5bd}.simple-read{font-size:.89rem;color:#e8c16c;font-weight:750}
.simple-link{margin:22px 0 0}.simple-link a{color:#e8c16c;font-weight:750}
.simple-transparent{background:#151515}.simple-price-grid{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:clamp(26px,5vw,65px)}
.simple-transparent p,.simple-local p,.simple-reviews p,.simple-end p{color:#d0cbc1;line-height:1.65;max-width:730px}.simple-steps{padding:24px;border-radius:14px;background:#202124;border:1px solid #5e513b}.simple-steps h3{color:#edce87;margin:0 0 12px}.simple-steps ol{padding-left:23px;margin:10px 0 21px}.simple-steps li{margin:9px 0}.simple-steps li::marker{color:#eac16b;font-weight:800}
.simple-local{background:#0c0d0e}.simple-local-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,5vw,60px)}.simple-local-list{align-self:center;border-left:2px solid #806740;padding-left:23px}.simple-local-list h3{color:#efd9a3}
.simple-reviews{background:#141516}.simple-reviews .container{text-align:center}.simple-reviews p{margin:0 auto 22px}
.simple-end{background:linear-gradient(110deg,#28200f,#101012);text-align:center}.simple-end p{margin:0 auto 18px}
/* A large unconstrained photo should never crowd out the text or the quote action */
main img.bounded-content-image:not(.service-card-photo){display:block;width:100%!important;max-width:100%!important;max-height:295px!important;object-fit:cover!important;object-position:center!important;border-radius:12px}
main figure.service-feature-photo,main figure.service-feature-photo.compact-feature{width:min(calc(100% - 32px),650px)!important;max-width:650px!important;margin:20px auto!important;overflow:hidden}
main figure.service-feature-photo img,main figure.service-feature-photo.compact-feature img{width:100%!important;height:clamp(165px,25vw,245px)!important;max-height:245px!important;object-fit:cover!important;object-position:center!important}
main .service-card-photo{height:clamp(145px,17vw,185px)!important;object-fit:cover!important}
main .pagehead h1,main h1{font-size:clamp(1.65rem,3vw,2.5rem)!important;line-height:1.19!important}
main h2,.section h2{font-size:clamp(1.32rem,2.1vw,1.82rem)!important;line-height:1.28!important}
main h3,.section h3{font-size:clamp(1.06rem,1.6vw,1.25rem)!important;line-height:1.34!important}
.service-cost-note{max-width:760px;margin:12px 0 0;color:#e7d8b6;font-size:.94rem}.service-cost-note a{color:#f3d385}
.section{padding-block:clamp(34px,5vw,58px)}.trust-insurance{box-shadow:none!important}
@media(max-width:900px){.simple-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-price-grid,.simple-local-grid{grid-template-columns:1fr}.simple-local-list{max-width:690px}}
@media(max-width:650px){.simple-hero{min-height:400px!important}.simple-hero .hero-inner{padding-block:43px!important}.simple-service-grid{grid-template-columns:1fr}.simple-service img{height:176px!important}.simple-service-copy{padding:16px}.simple-price-grid{gap:25px}.simple-steps{padding:19px}.availability-link{padding:5px 0;flex-wrap:wrap}.pagehead{padding-block:23px!important}main img.bounded-content-image{max-height:220px!important}main figure.service-feature-photo img{max-height:190px!important;height:190px!important}}
@media(prefers-reduced-motion:reduce){.availability-dot{animation:none!important}}

/* V20 — pages locales légères, bloc Google à connecter sans faux avis */
.geo-city-page {max-width:1040px;margin-inline:auto;}
.geo-city-intro{padding:30px 0 18px;}
.geo-city-page h1{font-size:clamp(1.75rem,3.2vw,2.6rem)!important;line-height:1.2;}
.geo-city-page h2{font-size:clamp(1.4rem,2.4vw,1.85rem)!important;line-height:1.25;margin-top:1.7em;}
.geo-city-page h3{font-size:clamp(1.09rem,1.65vw,1.27rem)!important;line-height:1.35;}
.geo-city-photo{max-width:780px;margin:24px auto 36px;}
.geo-city-photo img{display:block;width:100%;height:clamp(190px,29vw,300px);object-fit:cover;border-radius:13px;}
.geo-city-photo figcaption{font-size:.79rem;opacity:.75;margin-top:8px;}
.geo-service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;}
.geo-service-list article{min-width:0;border:1px solid #51472e;border-radius:13px;padding:19px;background:#18191c;}
.geo-service-list p{font-size:.94rem;line-height:1.55;}
.geo-final-call{padding:25px;background:#17191d;border:1px solid #78603b;border-radius:14px;margin-bottom:30px;}
.google-trust-header{display:flex;gap:18px;justify-content:space-between;align-items:center;}
.google-trust-header>div{max-width:650px;}.google-trust-header .button{flex-shrink:0;}
.ilygo-google-carousel{display:flex;align-items:center;gap:19px;border:1px solid #4d4535;border-radius:14px;padding:18px 24px;margin-top:19px;background:#161719;}
.ilygo-google-carousel .google-initial{font-size:2rem;font-weight:800;color:#4285f4;}
.ilygo-google-carousel p{display:grid;gap:3px;margin:0;flex:1;}.ilygo-google-carousel p span{font-size:.87rem;color:#b9b9b9;}
.ilygo-google-carousel>a{color:#e4c182;font-weight:700;text-decoration:underline;}
@media(max-width:750px){.geo-service-list{grid-template-columns:1fr;}.google-trust-header,.ilygo-google-carousel{flex-direction:column;align-items:flex-start;}.google-trust-header .button{flex-shrink:1;}.geo-city-page{padding:0 4px;}}

/* V21 – service utilisateur confirmé 24 h/24 et 7 j/7; doux clignotement accessible */
.availability-link.v21-available{display:flex;gap:7px;align-items:center;justify-content:center;flex-direction:column;text-align:center;cursor:pointer;background:linear-gradient(112deg,#113d28,#17693c)!important;color:#fff!important;border:1px solid #57cc81!important;box-shadow:0 0 0 0 rgba(46,192,98,.32);animation:v21Pulse 2.5s ease-in-out infinite;white-space:normal;padding:10px 16px;border-radius:12px;}
.availability-link.v21-available strong{font-size:clamp(.91rem,1.1vw,1rem)!important;line-height:1.3;color:#fff!important;letter-spacing:0!important}
.availability-link.v21-available span{font-size:.79rem!important;color:#e4f9ea!important;line-height:1.3;}
.availability-link.v21-available:focus-visible{outline:3px solid #ffd684;outline-offset:3px}
@keyframes v21Pulse{0%,100%{box-shadow:0 0 0 0 rgba(45,204,104,.28)}50%{box-shadow:0 0 0 7px rgba(45,204,104,0)}}
@media(prefers-reduced-motion:reduce){.availability-link.v21-available{animation:none!important}}
.v21-commune{max-width:1080px;margin:0 auto}
.v21-commune .geo-city-intro h1{font-size:clamp(1.85rem,3.7vw,2.9rem)!important;line-height:1.13!important;max-width:22ch}
.v21-commune h2{font-size:clamp(1.3rem,2.5vw,1.72rem)!important;line-height:1.25!important}
.v21-commune h3{font-size:clamp(1.02rem,1.6vw,1.18rem)!important;line-height:1.35!important}
.v21-commune .geo-city-photo{max-width:760px}.v21-commune .geo-city-photo img{height:clamp(165px,26vw,285px)!important;object-fit:cover}
.v21-commune .geo-service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.v21-commune .geo-service-list article{min-width:0;overflow-wrap:anywhere}
.v21-checklist{padding-left:1.5rem;line-height:1.75}.v21-checklist li+li{margin-top:7px}
#geo-list li>a{display:block;padding:6px 8px;color:inherit;text-decoration:none;border-radius:7px}
#geo-list li>a:hover,#geo-list li>a:focus-visible{text-decoration:underline;background:rgba(210,174,102,.12)}
.v21-service-proof{padding:14px 18px;border:1px solid #a37a40;border-radius:10px;line-height:1.5}
@media(max-width:760px){.v21-commune .geo-service-list{grid-template-columns:1fr}.v21-commune .geo-city-intro h1{max-width:none}.availability-link.v21-available{padding:10px}}

/* V22 — Avis Google Elfsight intégrés sur l’accueil : contenu léger et responsive. */
.simple-reviews .google-trust-header {align-items:center;gap:1rem;}
.ilygo-google-carousel[data-status="widget-elfsight"] {display:block;width:100%;min-width:0;max-width:100%;overflow:visible;box-sizing:border-box;padding:10px 0;background:transparent;border:0;}
.ilygo-google-carousel[data-status="widget-elfsight"] .elfsight-app-aab0e825-5c7c-4512-a7a1-91a325671e7d {width:100%;max-width:100%;min-height:140px;}
.google-reviews-fallback {margin-top:.7rem;font-size:.91rem;text-align:center;}
.google-reviews-fallback a {text-decoration:underline;text-underline-offset:3px;}
@media(max-width:640px){.ilygo-google-carousel[data-status="widget-elfsight"]{padding:4px 0}.simple-reviews .google-trust-header{display:flex;flex-direction:column;align-items:flex-start}.simple-reviews .google-trust-header .button{max-width:100%;white-space:normal;text-align:center}}

/* V23 Tarifs serrurier Lyon: compacité et clarté mobile */
.price-pagehead h1{font-size:clamp(1.9rem,4vw,3.15rem)!important;line-height:1.13;max-width:25ch}
.price-pagehead .lead{max-width:740px}
.price-content,.ilygo-price-seo{overflow-x:clip}
.price-content .container,.ilygo-price-seo .container{max-width:1090px}
.price-section-intro{max-width:800px;margin-bottom:25px}
.price-section-intro h2,.ilygo-home-prices h2,.ilygo-price-seo h2{font-size:clamp(1.42rem,2.7vw,2rem)!important;line-height:1.25}
.ilygo-tariff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:20px 0}
.ilygo-tariff-card{min-width:0;padding:24px;border:1px solid rgba(174,150,100,.37);border-radius:15px;background:#fff;color:#24272b;box-shadow:0 7px 26px rgba(0,0,0,.04)}
.ilygo-tariff-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#f4ebdb;font-size:1.45rem;margin-bottom:10px}
.ilygo-tariff-card h3{color:#191b1e!important;font-size:clamp(1.06rem,2vw,1.36rem)!important;line-height:1.3!important;margin:4px 0 7px}
.ilygo-tariff-sub{color:#5c626b;min-height:2.6em;margin:0 0 14px}
.ilygo-tariff-value{font-size:clamp(1.85rem,4vw,2.65rem)!important;line-height:1.15;font-weight:800;letter-spacing:-.035em;color:#825f22!important;margin:0 0 14px!important;font-variant-numeric:tabular-nums}
.ilygo-tariff-value span{font-size:.6em;font-weight:500}
.ilygo-tariff-card a{color:#554019;text-decoration:underline;text-underline-offset:3px}
.ilygo-surcharge{display:flex;gap:17px;align-items:flex-start;border:1px solid #d9ad54;background:#fff8e9;color:#302719;border-radius:14px;padding:20px;margin:24px 0}
.ilygo-surcharge h3,.ilygo-tariff-example h3{font-size:clamp(1.05rem,1.8vw,1.3rem)!important;line-height:1.35;margin:0 0 8px}
.ilygo-surcharge p{margin:0}.ilygo-surcharge-icon{font-size:1.5rem;line-height:1.3}
.ilygo-tariff-example{padding:20px 0;max-width:850px}.ilygo-tariff-example .actions{margin-top:18px}
.ilygo-price-seo{background:#f8f7f4;color:#222}.ilygo-price-seo .container{max-width:950px}.ilygo-price-seo a{color:#604716;text-decoration:underline}
.ilygo-price-faq{display:grid;gap:10px;margin-top:18px}.ilygo-price-faq h3{font-size:clamp(1.03rem,1.7vw,1.17rem)!important;line-height:1.35;margin:12px 0 0}.ilygo-price-faq p{margin:2px 0 9px}
.ilygo-home-price-header{max-width:750px}.ilygo-home-price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.ilygo-home-price-item{display:flex;align-items:flex-start;flex-direction:column;gap:8px;min-width:0;padding:18px;border-radius:14px;border:1px solid rgba(174,150,100,.35);background:#fff;color:#222!important;text-decoration:none!important}
.ilygo-home-price-item span{font-size:1.7rem}.ilygo-home-price-item strong{font-size:.97rem;line-height:1.3}.ilygo-home-price-item b{font-size:clamp(1.23rem,2.3vw,1.65rem);line-height:1.2;color:#775320}
.ilygo-home-price-disclosure{font-size:.93rem;max-width:900px}.ilygo-home-prices .actions{margin-top:18px}
@media(max-width:850px){.ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ilygo-tariff-grid{grid-template-columns:1fr;gap:12px}.ilygo-tariff-card{padding:19px}.ilygo-tariff-sub{min-height:0}.ilygo-surcharge{padding:15px;gap:11px}.ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ilygo-home-price-item{padding:12px;gap:7px}.ilygo-home-price-item strong{font-size:.85rem}.ilygo-home-price-item b{font-size:1.23rem}.ilygo-home-prices .actions{flex-direction:column}.ilygo-home-prices .actions .button{width:100%}.price-content .container,.ilygo-price-seo .container{padding-inline:16px}}

/* iLYGO V24: mobile-first clear home section order and quote form */
.ilygo-home-prices{padding-block:clamp(28px,4.5vw,56px)!important;scroll-margin-top:95px}
.ilygo-home-price-header p{max-width:760px;margin-bottom:22px}
.ilygo-home-price-grid{gap:clamp(9px,2vw,17px)!important}
.ilygo-home-price-item{min-width:0!important;padding:clamp(14px,2vw,23px)!important;overflow-wrap:break-word}
.ilygo-home-price-item strong{font-size:clamp(.92rem,1.4vw,1.12rem)!important;line-height:1.28}
.ilygo-home-price-item b{font-size:clamp(1.34rem,2.7vw,2rem)!important;white-space:normal}
.ilygo-home-price-disclosure{font-size:clamp(.89rem,1.5vw,1.03rem)!important;line-height:1.55!important}
.ilygo-service-price{display:block;color:#f3d087;font-size:.95rem;line-height:1.48;margin:9px 0 2px}
.ilygo-service-price strong{color:#ffde96}
.ilygo-home-contact{background:#111214;scroll-margin-top:95px;padding-block:clamp(30px,5vw,65px)!important}
.ilygo-home-contact h2{font-size:clamp(1.6rem,2.8vw,2.3rem)!important;margin:.5rem 0!important}
.ilygo-contact-intro{max-width:730px;color:#e0dcd1;font-size:clamp(.97rem,1.5vw,1.1rem)}
.ilygo-quote-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(235px,.85fr);gap:clamp(20px,4vw,45px);align-items:start}
.ilygo-quote-main,.ilygo-quote-aside{min-width:0}
.ilygo-quote-main .quote-form{margin:12px 0 6px!important;max-width:none;padding:clamp(18px,3vw,30px)}
.ilygo-quote-main .quote-form label{font-size:.95rem}
.ilygo-quote-main .quote-form input,.ilygo-quote-main .quote-form select,.ilygo-quote-main .quote-form textarea{font-size:16px}
.ilygo-quote-aside{background:#191711;border:1px solid #685428;border-radius:16px;padding:clamp(17px,2.6vw,26px)}
.ilygo-quote-aside h3{font-size:1.15rem;line-height:1.3;margin:0}
.ilygo-quote-aside p{font-size:.93rem;line-height:1.55;color:#ded9d0}
.ilygo-quote-aside .button{width:100%;font-size:.92rem}
.ilygo-quote-aside a:not(.button){color:#f0cc78}
.ilygo-form-status{font-size:.9rem;color:#f0cc78;min-height:1.5em}
@media(max-width:740px){.ilygo-quote-layout{grid-template-columns:1fr}.ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ilygo-home-price-item{gap:5px!important}.ilygo-home-prices .actions{gap:9px}.ilygo-home-prices .actions .button{min-height:44px;font-size:.91rem}.ilygo-quote-main .quote-form{padding:17px}.ilygo-quote-aside{padding:19px}.phone-float{left:clamp(12px,3vw,24px)!important;right:clamp(12px,3vw,24px)!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;max-width:430px;margin-inline:auto;padding:11px 14px!important;min-height:46px;font-size:.92rem!important;line-height:1.3!important}.foot{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}main{overflow-x:clip}}
@media(max-width:360px){.ilygo-home-price-item{padding:12px!important}.ilygo-home-price-item b{font-size:1.18rem!important}.ilygo-home-price-item strong{font-size:.85rem!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.ilygo-price-guide{max-width:890px;margin:28px 0 34px;padding:clamp(18px,3vw,32px);border:1px solid #5b4d34;border-radius:15px;background:#191817}
.ilygo-price-guide h2{font-size:clamp(1.35rem,2vw,1.75rem)}
.ilygo-price-guide h3{font-size:clamp(1.06rem,1.8vw,1.25rem);margin:20px 0 5px}
.ilygo-price-guide p{color:#e3dfd5;line-height:1.7;margin:8px 0 13px}
.ilygo-price-guide a{color:#efca75}

/* V25: responsive tariff cards, price starts from and pricing clarity */
.ilygo-v25-all{background:#101114}.ilygo-v25-all .container{max-width:1130px}.ilygo-v25-all h2{font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.22}.ilygo-v25-all h3{font-size:clamp(1rem,1.8vw,1.23rem);line-height:1.35}.ilygo-v25-context,.ilygo-v25-terms,.ilygo-v25-scope{line-height:1.7;max-width:950px;color:#e8e5dc}.ilygo-v25-context,.ilygo-v25-terms{margin:14px 0 24px}.ilygo-v25-terms{padding:20px;border:1px solid #ab8951;border-radius:16px;background:#1c1b18}.ilygo-v25-group{margin:28px 0}.ilygo-v25-group>h3{color:#edc875;margin-bottom:15px}.ilygo-v25-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.ilygo-v25-card{background:#fdfcf8;color:#1a1a1b;border-radius:14px;padding:19px;min-width:0;display:flex;flex-direction:column;gap:9px}.ilygo-v25-card h3{color:#202124;margin:0;font-size:1.05rem}.ilygo-v25-card p{color:#555;font-size:.91rem;line-height:1.47;margin:0}.ilygo-v25-icon{font-size:1.45rem}.ilygo-v25-card p.ilygo-v25-from{font-weight:600;color:#29211a}.ilygo-v25-from strong{color:#82541b;font-size:1.46rem;white-space:nowrap}.ilygo-v25-from small{font-size:.76rem}.ilygo-v25-card a{color:#765016;margin-top:auto;font-weight:700;font-size:.85rem;text-decoration:underline;text-underline-offset:3px}.ilygo-v25-cta{display:flex;gap:12px;flex-wrap:wrap}.ilygo-v25-home-additions{margin:20px 0 10px}.ilygo-v25-home-additions h3{font-size:clamp(1.1rem,2.4vw,1.45rem);margin:0 0 12px}.ilygo-v25-home-additions>p{font-size:.9rem;line-height:1.6;margin:12px 0;color:#ddd}.ilygo-v25-short-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ilygo-v25-short-grid a{border:1px solid #b08b4e;padding:12px;border-radius:12px;display:flex;gap:8px;flex-direction:column;text-decoration:none;color:#eee}.ilygo-v25-short-grid strong{color:#e5bd72}.ilygo-v25-service-prices .container{max-width:1100px}.ilygo-v25-service-prices h2{font-size:clamp(1.4rem,2.7vw,2.15rem)}.ilygo-v25-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:19px 0}.ilygo-v25-mini-price{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #98773d;border-radius:12px;padding:13px;background:#1b1a18;line-height:1.45}.ilygo-v25-mini-price span{min-width:0}.ilygo-v25-mini-price strong{color:#f2ce81;white-space:nowrap}.ilygo-v25-service-prices p{line-height:1.7}.ilygo-home-price-item b small{font-size:.68em}
@media(max-width:950px){.ilygo-v25-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ilygo-v25-short-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ilygo-v25-card{padding:15px}.ilygo-v25-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ilygo-v25-card h3{font-size:.94rem}.ilygo-v25-from strong{font-size:1.18rem}.ilygo-v25-card p{font-size:.84rem}.ilygo-v25-mini-grid{grid-template-columns:1fr}.ilygo-v25-mini-price strong{font-size:.95rem}.ilygo-v25-short-grid a{padding:10px;font-size:.9rem}.ilygo-v25-home-additions>p{font-size:.85rem}}
@media(max-width:370px){.ilygo-v25-grid{grid-template-columns:1fr}}


/* V26: universal contrast, consistent tariffs, footer and mobile framing */
:root{--gold:#e5bc70;--light:#f7f7f5;--muted:#d3d0c9}
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;font-size:16px;line-height:1.6}
main{min-width:0}
main h1, main h2, main h3, main h4{overflow-wrap:break-word;text-wrap:pretty}
main :is(h1,h2,h3,h4){line-height:1.26}
main :is(.ilygo-price-guide,.ilygo-v25-terms,.ilygo-v25-all,.geo-final-call,.quote-form,.ilygo-quote-aside,.card,.service-card,.simple-steps,.ilygo-quote-main) :is(h1,h2,h3,h4){color:#f7f3eb!important}
main :is(.ilygo-price-guide,.ilygo-v25-terms,.ilygo-v25-all,.geo-final-call,.quote-form,.ilygo-quote-aside,.card,.service-card,.simple-steps,.ilygo-quote-main) :is(p,li,small){color:#e3dfd6}
main :is(.ilygo-tariff-card,.ilygo-v25-card,.ilygo-home-price-item) :is(h2,h3,h4,strong){color:#222125!important}
main :is(.ilygo-tariff-card,.ilygo-v25-card,.ilygo-home-price-item) :is(p,small){color:#4e5054}
.ilygo-price-guide{background:#181a1e!important;color:#f6f3eb!important}
.ilygo-price-guide h2,.ilygo-price-guide h3,.ilygo-price-guide h4{color:#f4d18c!important}
.ilygo-price-guide p{color:#e8e6e0!important}
.ilygo-price-seo{background:#f8f7f5!important;color:#27292d!important}
.ilygo-price-seo :is(h2,h3,h4,p,li,strong){color:#27292d!important}
.ilygo-price-seo .ilygo-price-guide :is(h2,h3,h4){color:#f4d18c!important}
.ilygo-price-seo .ilygo-price-guide :is(p,li,strong){color:#f3efe5!important}
.ilygo-v25-all .ilygo-v25-card :is(h3,p){color:#24262a!important}
.ilygo-tariff-value,.ilygo-home-price-item b,.ilygo-v25-from strong{font-size:clamp(1.30rem,2.6vw,1.9rem)!important;line-height:1.25!important;font-weight:800!important;letter-spacing:-.02em!important;font-variant-numeric:tabular-nums}
.ilygo-home-price-item b{display:block;color:#815c27!important;white-space:normal!important}
.ilygo-home-price-item b small,.ilygo-tariff-value span,.ilygo-v25-from small{display:inline!important;font-size:1em!important;font-weight:800!important;line-height:inherit!important;color:inherit!important;letter-spacing:inherit!important}
.ilygo-home-price-grid{align-items:stretch}
.ilygo-home-price-item{justify-content:flex-start;min-width:0;overflow-wrap:anywhere}
.ilygo-home-price-item strong{font-size:clamp(.98rem,1.5vw,1.1rem)!important;line-height:1.4!important;min-height:2.8em}
.ilygo-home-prices .ilygo-v25-home-additions{margin-top:26px}
.simple-services .simple-service-copy{gap:9px}
.simple-service-copy .ilygo-service-price{font-size:.95rem!important;color:#f6d587!important}
.simple-reviews{padding-block:clamp(28px,4vw,50px)!important}
.simple-reviews .google-trust-header{gap:16px}
.simple-reviews .ilygo-google-carousel{margin-top:12px!important;min-height:0!important;padding:0!important}
.simple-reviews .elfsight-app-aab0e825-5c7c-4512-a7a1-91a325671e7d{min-height:0!important}
.simple-reviews .google-reviews-fallback{margin:10px auto 0!important;line-height:1.45!important}
.foot{padding-top:clamp(25px,4vw,42px)!important;padding-bottom:100px!important;background:#141516;color:#efebe5}
.foot .container{max-width:1120px}
.footgrid{display:grid;gap:24px!important}
.footgrid>div{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.footgrid p{margin:3px 0 8px;color:#ddd8cc}
.footgrid a{display:block;color:#edcb88;font-size:.93rem;line-height:1.6;text-decoration:none}
.footgrid strong{color:#fff}
.foot :is(.legal,small){color:#cfc9bc;font-size:.85rem}
.foot nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px 23px!important;margin:18px 0!important;padding:0!important}
.foot nav a{font-size:.9rem;line-height:1.4;text-decoration:none}
.foot>p,.foot .container>p{margin:10px 0!important;line-height:1.6}
.foot .container>h2,.foot h2{font-size:clamp(1.1rem,2vw,1.35rem)!important}
.foot .container>:last-child{margin-bottom:0!important}
.phone-float{position:fixed!important;z-index:80!important;max-width:300px!important;right:18px!important;left:auto!important;bottom:calc(13px + env(safe-area-inset-bottom))!important;padding:10px 15px!important;min-height:46px!important;font-size:.9rem!important;border-radius:12px!important;white-space:nowrap!important}
main img, main video{max-width:100%}
main .photo,main .service-feature-photo img,main .bounded-content-image{object-position:center}
@media(max-width:950px){.footgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){
 .container{padding-left:18px!important;padding-right:18px!important}
 .header .nav{min-height:65px}
 .section{padding-block:34px!important}
 .footgrid{grid-template-columns:1fr!important;gap:22px!important}
 .foot nav{gap:10px 18px!important}
 .foot{padding-bottom:calc(115px + env(safe-area-inset-bottom))!important}
 .simple-reviews .google-trust-header{flex-direction:column;align-items:stretch}
 .simple-reviews .google-trust-header .button{width:100%}
 .phone-float{left:auto!important;right:13px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:210px!important;min-height:44px!important;padding:10px 12px!important;font-size:.78rem!important;line-height:1.2!important;box-shadow:0 5px 15px #0008!important}
 main h1{font-size:clamp(1.65rem,7.3vw,2.25rem)!important}
 main h2{font-size:clamp(1.3rem,5.6vw,1.65rem)!important}
 main h3{font-size:clamp(1.06rem,4.7vw,1.25rem)!important}
 .ilygo-home-price-item{padding:13px!important;gap:7px!important}
 .ilygo-home-price-item strong{min-height:0;font-size:.91rem!important}
 .ilygo-home-price-item b{font-size:clamp(1.14rem,4vw,1.42rem)!important}
 .ilygo-home-price-item b small{font-size:1em!important}
 .ilygo-v25-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ilygo-v25-card{padding:13px!important}
 .ilygo-v25-from strong{font-size:1.17rem!important;white-space:normal!important}
 .ilygo-v25-from small{font-size:1em!important}
 .ilygo-price-guide{padding:19px!important}
}
@media(max-width:365px){.ilygo-home-price-grid,.ilygo-v25-grid{grid-template-columns:1fr 1fr!important}.phone-float{font-size:.73rem!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* V27: image review issue -- strict narrow-screen price cards, legible sections */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
main :is(.ilygo-v25-service-prices,.ilygo-price-seo,.simple-reviews,.ilygo-v25-all) :is(.container,article,div){min-width:0}
/* Price + HT must NEVER share a compressed horizontal flex row with long title */
.ilygo-v25-mini-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.ilygo-v25-mini-price{display:grid!important;grid-template-columns:minmax(0,1fr)!important;justify-content:stretch!important;align-content:start!important;gap:10px!important;padding:18px!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;background:#fffdfa!important;color:#212326!important;border:1px solid #c2a36d!important;box-shadow:0 2px 8px #00000009}
.ilygo-v25-mini-price span{display:block!important;font-size:clamp(.96rem,1.8vw,1.08rem)!important;line-height:1.45!important;color:#24272c!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
.ilygo-v25-mini-price strong{display:block!important;width:100%!important;max-width:100%!important;font-size:clamp(1.04rem,2vw,1.3rem)!important;line-height:1.35!important;color:#74511c!important;white-space:normal!important;overflow-wrap:break-word!important;text-wrap:balance!important}
.ilygo-v25-service-prices{background:#f7f5f0!important;color:#22262c!important}
.ilygo-v25-service-prices :is(h2,h3,h4,p){color:#282b30!important}
.ilygo-v25-service-prices a{color:#674516!important}
.ilygo-v25-service-prices .ilygo-v25-mini-price strong{color:#74511c!important}
/* Alternating bright panels as requested */
.ilygo-price-seo{background:#f8f7f4!important;color:#212327!important}
.ilygo-price-seo :is(h2,h3,h4){color:#202329!important}
.ilygo-price-seo :is(p,li){color:#373a3e!important}
.ilygo-price-seo .ilygo-price-guide{background:#fff!important;color:#282a2d!important;border:1px solid #ddd3be!important;box-shadow:0 8px 24px #0000000b!important}
.ilygo-price-seo .ilygo-price-guide :is(h2,h3,h4){color:#27272a!important}
.ilygo-price-seo .ilygo-price-guide :is(p,li,strong){color:#383b40!important}
.simple-reviews{background:#f8f7f3!important;color:#23252a!important;padding-block:38px!important}
.simple-reviews :is(h2,h3,p,strong){color:#23252a!important}
.simple-reviews .google-trust-header{max-width:1080px;margin:auto}
.simple-reviews .google-reviews-fallback{margin-top:12px!important;margin-bottom:0!important}
.simple-reviews .ilygo-google-carousel{min-height:0!important;margin-block:14px!important}
/* Avoid a misleading blank rectangle while remote widget is loading */
.simple-reviews .elfsight-app-aab0e825-5c7c-4512-a7a1-91a325671e7d{min-height:0!important}
.foot{padding:36px 0 calc(80px + env(safe-area-inset-bottom))!important}
.foot .seo-footer-nav{justify-content:flex-start!important;padding:9px 0!important;margin:9px 0!important;gap:12px 22px!important}
.foot>p{margin:8px auto!important;max-width:1120px!important;padding-inline:20px!important}
.foot>p a{color:#e7cb8f!important}
.foot .footgrid{gap:20px!important}
.foot .legal{margin-top:14px!important}
.ilygo-v25-card,.ilygo-home-price-item{min-width:0!important;overflow:hidden!important}
.ilygo-v25-card .ilygo-v25-from strong,.ilygo-home-price-item b{display:block!important;white-space:normal!important;overflow-wrap:anywhere!important}
.ilygo-v25-card .ilygo-v25-from small,.ilygo-home-price-item b small{display:inline!important;font-size:.76em!important;vertical-align:baseline!important;white-space:nowrap!important}
@media(max-width:740px){
 .ilygo-v25-mini-grid{grid-template-columns:1fr!important;gap:11px!important}
 .ilygo-v25-mini-price{padding:17px!important;gap:8px!important}
 .ilygo-v25-mini-price strong{font-size:1.2rem!important}
 .ilygo-v25-service-prices .container{padding-inline:16px!important}
 .simple-reviews{padding-block:27px!important}
 .ilygo-v25-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ilygo-v25-card{padding:13px!important}
 .ilygo-v25-card .ilygo-v25-from strong{font-size:1.12rem!important}
 .foot{padding-bottom:calc(90px + env(safe-area-inset-bottom))!important}
}
@media(max-width:390px){.ilygo-v25-grid{grid-template-columns:1fr!important}.ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* V28: lightweight official reviews link; no third-party review script. */
.simple-reviews{background:#f8f7f3!important;color:#202329!important;padding-block:clamp(28px,4vw,48px)!important}
.simple-reviews :is(h2,h3,p,strong,.eyebrow){color:#202329!important}
.simple-reviews .google-trust-header{align-items:flex-start!important}
.ilygo-google-lightweight{max-width:950px;margin:20px auto 0;padding:clamp(18px,3vw,26px);background:#fff;border:1px solid #e0d6bb;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.05);text-align:center}
.ilygo-google-lightweight p{margin:0 0 15px!important;color:#31363e!important;line-height:1.5}
.ilygo-google-lightweight-link{display:inline-flex;justify-content:center;align-items:center;min-height:48px;border-radius:10px;padding:10px 18px;background:#18191b;color:#f9e0a9!important;text-decoration:none;font-weight:700;max-width:100%;white-space:normal;text-align:center}
.ilygo-google-lightweight-link:hover,.ilygo-google-lightweight-link:focus-visible{background:#383023;color:#fff!important}
@media(max-width:640px){.ilygo-google-lightweight{margin-top:12px}.ilygo-google-lightweight-link{width:100%}}

/* V29 — Reviews: one actionable link, no empty iframe or duplicate button. */
.simple-reviews { background:#f7f7f3!important; padding:clamp(28px,5vw,56px) 0!important; }
.simple-reviews .ilygo-google-compact { box-sizing:border-box; width:100%; max-width:980px; margin:0 auto; padding:clamp(20px,3.5vw,36px); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:clamp(16px,3vw,32px); background:#fff; border:1px solid #e4dcc7; border-radius:20px; box-shadow:0 4px 16px rgba(15,15,15,.04); }
.simple-reviews .ilygo-google-compact-copy { min-width:0; }
.simple-reviews .ilygo-google-compact .eyebrow { color:#866329!important; letter-spacing:.11em; }
.simple-reviews .ilygo-google-compact h2 { color:#181a1e!important; font-size:clamp(1.25rem,2.7vw,1.8rem)!important; line-height:1.2!important; margin:10px 0!important; overflow-wrap:break-word; }
.simple-reviews .ilygo-google-compact p { color:#3e4349!important; font-size:clamp(.95rem,1.7vw,1.05rem)!important; line-height:1.55!important; max-width:54ch; margin:0!important; }
.simple-reviews .ilygo-google-compact-link { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px; width:auto; max-width:100%; min-height:48px; padding:12px 20px; background:#171717; color:#f6d995!important; border-radius:12px; border:1px solid #685329; font-weight:750; text-align:center; text-decoration:none; line-height:1.4; white-space:normal; }
.simple-reviews .ilygo-google-compact-link:hover,.simple-reviews .ilygo-google-compact-link:focus-visible{background:#342a1a;color:#fff!important;outline-offset:3px;}
@media (max-width:750px) { .simple-reviews .ilygo-google-compact { grid-template-columns:minmax(0,1fr); gap:20px; } .simple-reviews .ilygo-google-compact-link { width:100%; } }
@media (max-width:380px) { .simple-reviews .ilygo-google-compact {padding:18px;} }


/* V31 | Unified design system: strong mobile readability, no overflow and coherent sections */
:root{--ilygo-black:#111214;--ilygo-gold:#bd9344;--ilygo-cream:#faf9f6;--ilygo-body:#27292b;--ilygo-line:#e2d9c7;--ilygo-radius:16px}
html{scroll-padding-top:94px}*,*::before,*::after{box-sizing:border-box}
body{overflow-x:clip;overflow-wrap:break-word}
main{min-width:0}main :is(h1,h2,h3,h4){overflow-wrap:break-word;hyphens:auto;text-wrap:pretty}
main :is(p,li){max-width:100%;overflow-wrap:break-word}
main img{max-width:100%;height:auto}
a,button,input,textarea,select{font:inherit}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #f1b94e;outline-offset:3px}
.ilygo-breadcrumb{padding-block:12px!important;font-size:.85rem!important;color:#e5c989!important;line-height:1.5;min-height:45px}
.ilygo-breadcrumb a{color:#e5c989!important;text-underline-offset:3px}
.ilygo-breadcrumb span{color:#e5e5e5}
.ilygo-footer-essentials{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 20px;margin:20px auto 0!important;padding:16px 20px 0;border-top:1px solid #514732;max-width:1120px}
.ilygo-footer-essentials a{color:#e9d6aa!important;font-size:.92rem;line-height:1.6;text-decoration:underline;text-underline-offset:3px}
.foot{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}
/* Price cards: label above complete price; avoid fixed columns and awkward HT separation */
.ilygo-v25-mini-price,.ilygo-v25-card,.ilygo-home-price-item,.ilygo-v25-short-grid a{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}
.ilygo-v25-mini-price{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:10px!important}
.ilygo-v25-mini-price :is(strong,b,.ilygo-price-value){max-width:100%;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.35!important}
.ilygo-v25-mini-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important;gap:14px!important}
.ilygo-home-price-item b{font-size:clamp(1.12rem,2.2vw,1.65rem)!important;line-height:1.3!important}
.ilygo-home-price-item .price-tax{font-size:.75em!important;display:inline!important;white-space:nowrap!important}
.ilygo-tariff-summary{background:#f5ecd9;border-left:4px solid #b79046;color:#242321;margin:14px 0 22px;padding:12px 16px;border-radius:8px;font-size:.94rem;line-height:1.55}
/* High contrast on dark service and FAQ cards, no invisible dark-on-dark headings */
:is(.ilygo-price-seo,.price-content,.ilygo-v25-all) :is(h2,h3,h4){color:inherit}
:is(.ilygo-price-seo,.price-content,.ilygo-v25-all) .dark-card :is(h2,h3,h4),
:is(.ilygo-price-seo,.price-content,.ilygo-v25-all) [style*="background:#1"] :is(h2,h3,h4){color:#fff!important}
/* visually separate high intent sections in site-wide consistent rhythm */
main .section{scroll-margin-top:105px}
.ilygo-home-prices{background:var(--ilygo-cream)!important;color:var(--ilygo-body)!important}
.ilygo-home-prices :is(h2,h3,p){color:var(--ilygo-body)!important}
.ilygo-home-prices .ilygo-home-price-item{background:#fff!important;color:#222!important;border:1px solid #d6c6a1!important}
.ilygo-home-prices .ilygo-home-price-item strong{color:#252525!important}
.ilygo-home-prices .ilygo-home-price-item b{color:#785622!important}
.simple-services .simple-service-copy{padding:clamp(14px,3vw,22px)!important}
.simple-services .simple-service img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:center}
.ilygo-home-contact .quote-form{max-width:100%}
.ilygo-home-contact :is(input,select,textarea){max-width:100%;min-width:0;width:100%}
/* Tight, discreet fixed phone; no large obstruction of content */
.phone-float{position:fixed!important;inset:auto 12px calc(12px + env(safe-area-inset-bottom)) auto!important;
 width:auto!important;max-width:min(48vw,185px)!important;min-width:118px!important;min-height:44px!important;
 padding:9px 15px!important;font-size:.91rem!important;line-height:1.2!important;border-radius:999px!important;z-index:30!important}
@media(max-width:760px){
 .container{width:100%;max-width:100%;padding-inline:clamp(16px,4vw,24px)!important}
 .simple-service-grid{grid-template-columns:1fr!important}
 .ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
 .ilygo-v25-grid{grid-template-columns:1fr!important;gap:12px!important}
 .ilygo-v25-card{display:flex!important;flex-direction:column!important;gap:10px!important;align-items:flex-start!important;padding:16px!important}
 .ilygo-v25-card .ilygo-v25-from{width:100%!important;max-width:100%!important;text-align:left!important}
 .ilygo-v25-card .ilygo-v25-from strong{font-size:clamp(1.1rem,5vw,1.4rem)!important;white-space:normal!important}
 main :is(h1){font-size:clamp(1.75rem,8vw,2.65rem)!important;line-height:1.14!important}
 main :is(h2){font-size:clamp(1.35rem,6vw,2rem)!important;line-height:1.22!important}
 main :is(h3){font-size:clamp(1.1rem,4.6vw,1.45rem)!important;line-height:1.28!important}
 main :is(p,li){font-size:clamp(.95rem,3.8vw,1.075rem)!important;line-height:1.65!important}
 .ilygo-footer-essentials{gap:9px 16px!important}
 .phone-float{bottom:calc(10px + env(safe-area-inset-bottom))!important}
}
@media(max-width:355px){.ilygo-home-price-grid{grid-template-columns:1fr!important}.phone-float{font-size:.84rem!important}}
@media(prefers-reduced-motion:reduce){.v21-available,.availability-link,.phone-float{animation:none!important;transition:none!important}}

/* V32 CRITICAL REPAIR — contrast-safe component styling, no CSS-dependent invisible text */
:root{--v32-ink:#242424;--v32-gold:#75531f;--v32-muted:#41454c;--v32-paper:#faf9f6;--v32-border:#d7c6a0}
/* Dark on pale pricing cards: reset inherited light theme text on all descendants */
.ilygo-home-prices :is(.ilygo-v25-short-grid a,.ilygo-home-price-item),
.ilygo-home-prices .ilygo-v25-short-grid a :is(span,strong,b,small),
.ilygo-home-prices .ilygo-home-price-item :is(span,strong,b,small),
.ilygo-v25-short-grid a,.ilygo-v25-short-grid a span{color:var(--v32-ink)!important}
.ilygo-v25-short-grid a{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:10px!important;background:#fff!important;border:1px solid var(--v32-border)!important;text-decoration:none!important;border-radius:16px!important;padding:clamp(14px,2vw,22px)!important;min-width:0!important}
.ilygo-v25-short-grid a strong,.ilygo-home-price-item b{color:var(--v32-gold)!important;font-weight:800!important;overflow-wrap:normal!important;word-break:normal!important;white-space:normal!important}
.ilygo-home-prices .eyebrow{color:#75531f!important}
.ilygo-home-prices :is(.ilygo-v25-home-additions h3,.ilygo-v25-home-additions p,.ilygo-home-price-disclosure){color:#23262a!important}
.ilygo-home-prices .ilygo-v25-short-grid a :is(span,strong){text-shadow:none!important;opacity:1!important}
/* On-page tariff list and quote cards */
.ilygo-v25-all .ilygo-v25-card{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:8px!important;min-width:0!important;overflow:hidden!important;padding:clamp(16px,2vw,24px)!important}
.ilygo-v25-all .ilygo-v25-card :is(h3,p,a,span){max-width:100%;overflow-wrap:break-word;word-break:normal}
.ilygo-v25-all .ilygo-v25-card h3{font-size:clamp(1.05rem,1.6vw,1.26rem)!important;line-height:1.3!important}
.ilygo-v25-all .ilygo-v25-card .ilygo-v25-from{width:100%!important;max-width:100%!important;margin:4px 0!important;text-align:left!important;display:block!important;white-space:normal!important;line-height:1.4!important}
.ilygo-v25-all .ilygo-v25-card .ilygo-v25-from strong{display:inline!important;font-size:clamp(1.12rem,2vw,1.35rem)!important;white-space:normal!important;color:#eac477!important}
.ilygo-v25-all .ilygo-v25-card .ilygo-v25-from small{font-size:.74em!important;white-space:nowrap!important;color:inherit!important}
/* Readable buttons irrespective of inherited dark/white text */
body a.button:not(.secondary),body .actions a.button:not(.secondary),body a.phone-float{color:#1b1711!important;background:linear-gradient(120deg,#fce39a,#dba82b)!important;text-shadow:none!important}
body .actions a.button.secondary,body .hero a.button.secondary,body a.button.secondary{color:#f9e7bd!important;background:#202124!important;border:1px solid #b99555!important;text-shadow:none!important}
/* light background articles: readable headings, links and callouts */
main :is(.ilygo-price-seo,.price-content,.section-light,.light-section,.price-section-intro) :is(h2,h3,h4){color:#242424!important}
main :is(.ilygo-price-seo,.price-content) a:not(.button){color:#674714!important}
main .eyebrow{line-height:1.4!important}
main .section .container{min-width:0}
.pagehead .container :is(p,.lead,.note),.hero .container :is(p,.lead,.note){max-width:68ch!important;margin-inline:0!important}
.pagehead :is(h1,h2),.hero h1{font-size:clamp(2rem,3.6vw,3.15rem)!important;line-height:1.14!important}
.pagehead .note,.pagehead .price-note,.hero .note{max-width:68ch!important}
/* readable article width — no huge stretched paragraphs on desktop */
main article :is(p,li),main .prose :is(p,li),main .article-content :is(p,li){max-width:82ch}
main .section :is(h2,h3,h4){text-wrap:balance}
/* fix fixed header masking anchor destinations */
html{scroll-padding-top:110px!important} main [id]{scroll-margin-top:110px}
/* prevent phone button hiding controls, without huge wide sticky bars */
a.phone-float{min-height:44px!important;max-width:190px!important;white-space:normal!important;line-height:1.25!important}
@media(max-width:740px){
 .ilygo-v25-short-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ilygo-home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ilygo-home-price-item{min-height:0!important}
 .ilygo-home-price-item b,.ilygo-v25-short-grid a strong{font-size:clamp(1.05rem,4vw,1.45rem)!important}
 .ilygo-v25-short-grid a{padding:14px!important}
 main .pagehead h1,main .hero h1{font-size:clamp(1.82rem,7vw,2.35rem)!important}
 .pagehead .container :is(p,.lead,.note),.hero .container :is(p,.lead,.note){margin-inline:0!important}
}
@media(max-width:360px){.ilygo-v25-short-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}


/* ==== FIX-PC-2026-11-02 START : alignements, pied de page, contrastes (bloc réversible) ==== */
.container,.pagehead .container,.foot .container{width:min(100%,1160px)!important;max-width:1160px!important;margin-inline:auto!important}
.pagehead>.service-cost-note{box-sizing:border-box;width:min(100%,1160px);max-width:1160px;margin:12px auto 0;padding-inline:clamp(16px,3vw,24px)}
main figure.service-feature-photo,main figure.service-feature-photo.compact-feature{box-sizing:border-box!important;width:min(calc(100% - 2*clamp(16px,3vw,24px)),760px)!important;max-width:760px!important;margin:22px 0 24px max(clamp(16px,3vw,24px),calc((100% - 1160px)/2 + clamp(16px,3vw,24px)))!important}
@media (max-width:650px){main figure.service-feature-photo,main figure.service-feature-photo.compact-feature{width:calc(100% - 36px)!important;max-width:none!important;margin-left:18px!important}}
@media (max-width:365px){main figure.service-feature-photo,main figure.service-feature-photo.compact-feature{width:calc(100% - 28px)!important;margin-left:14px!important}}
.foot>nav,.foot>p{box-sizing:border-box;width:min(100%,1160px);margin-inline:auto!important;padding-inline:clamp(16px,3vw,24px)!important}
.foot .ilygo-footer-essentials{margin:14px 0 0!important}
@media (min-width:741px){.foot{padding-bottom:36px!important}}
.ilygo-v25-mini-price{background:#fff!important;border-color:#d6c6a1!important}
.ilygo-v25-mini-price strong,.ilygo-home-price-item b,.ilygo-v25-short-grid a strong{color:#7a4f00!important}
/* ==== FIX-PC-2026-11-02 END ==== */

/* ==== PHOTO-BADGE-2026-11-02 START ==== */
figure.seo-photo{position:relative;margin:22px 0 26px;max-width:760px}
figure.seo-photo img{display:block;width:100%;height:auto;border-radius:14px;aspect-ratio:1200/896;object-fit:cover}
figure.seo-photo::after{content:attr(data-badge);position:absolute;top:12px;left:12px;background:rgba(12,13,14,.82);color:#f3d27a;font:600 13px/1 system-ui,sans-serif;letter-spacing:.04em;padding:7px 11px;border-radius:999px;pointer-events:none}
figure.seo-photo figcaption{font-size:.88rem;opacity:.8;margin-top:8px}
/* ==== PHOTO-BADGE-2026-11-02 END ==== */

/* ==== PHOTO-BADGE2-2026-11-02 START ==== */
main figure:has(> img[src*="static.wixstatic.com"]){position:relative}
main figure:has(> img[src*="static.wixstatic.com"])::after{content:"Serrurier Lyon";position:absolute;top:12px;left:12px;background:rgba(12,13,14,.82);color:#f3d27a;font:600 13px/1 system-ui,sans-serif;letter-spacing:.04em;padding:7px 11px;border-radius:999px;pointer-events:none}
/* ==== PHOTO-BADGE2-2026-11-02 END ==== */
