@font-face{font-family:Sans;src:url('/assets/fonts/sourcesans3-latin.ttf') format('truetype');font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:Display;src:url('/assets/fonts/sourceserif4-latin.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:Editorial;src:url('/assets/fonts/libre-baskerville-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{--paper:#f8f5ef;--white:#fff;--ink:#22241f;--muted:#54534e;--red:#b0151f;--wine:#5d151d;--rose:#f3e5e1;--line:#d6d2ca;--green:#3e6253;--radius:14px;--max:1240px;--ease:cubic-bezier(.2,.65,.25,1)}
*{box-sizing:border-box}html{scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:400 17.5px/1.72 Sans,'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}img{max-width:100%;display:block}svg{width:24px;height:24px;flex-shrink:0;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:Display,Georgia,'Times New Roman',serif;line-height:1.16;font-weight:600;letter-spacing:-.012em}h1{font-size:clamp(2.15rem,4.6vw,3.7rem);margin-bottom:20px}h2{font-size:clamp(1.7rem,2.9vw,2.5rem);margin-bottom:18px}h3{font-size:1.3rem;letter-spacing:-.005em}p{margin-bottom:18px}strong{font-weight:650}em{font-family:Editorial,Georgia,serif;font-weight:400;color:var(--red);letter-spacing:-.02em}::selection{background:var(--rose);color:var(--wine)}:focus-visible{outline:3px solid var(--red);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}.section{padding-block:46px}.muted{color:var(--muted)}.lead{font-size:1.09rem;line-height:1.75;max-width:640px;color:var(--muted)}.tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:99px;padding:7px 13px;font-size:.8125rem;font-weight:600;line-height:1.2}.tag-light{border-color:#ffffff40;color:white}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:56px;padding:15px 26px;border-radius:6px;border:1px solid transparent;background:var(--red);color:white;font-size:1rem;font-weight:600;line-height:1.4;transition:background .2s,transform .2s}.btn:hover{background:#9c1420;transform:translateY(-2px)}.btn svg{width:19px;height:19px}.btn-secondary{background:transparent;border-color:var(--line);color:var(--ink)}.btn-secondary:hover{background:white}.btn-white{background:white;color:var(--wine)}.btn-white:hover{background:var(--paper)}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:.95rem;font-weight:600;border-bottom:1px solid currentColor;padding-block:5px}.text-link:hover{color:var(--red)}.text-link svg{width:18px;height:18px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px}.skip-link{position:fixed;z-index:100;top:-100px;left:16px;padding:12px;background:white}.skip-link:focus{top:16px}.topbar{display:none;border-bottom:1px solid var(--line);font-size:.75rem;color:var(--muted)}.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:35px}.topbar-links{display:flex;gap:26px}.topbar a:hover{color:var(--red)}.site-header{position:sticky;top:0;z-index:40;background:rgba(248,245,239,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.header-inner{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{width:132px;flex-shrink:0}.brand img{width:100%;height:auto}
.site-footer img,.brand img{height:auto}.nav{display:none}.menu-toggle{border:1px solid var(--line);border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;width:44px;height:44px}.mobile-menu{position:fixed;inset:80px 0 0;background:var(--paper);padding:28px 24px;overflow-y:auto;z-index:39}.mobile-menu a{display:block;font-size:1.5rem;padding:17px 0;border-bottom:1px solid var(--line)}.mobile-menu .btn{display:flex;margin-top:24px;font-size:1rem;border-bottom:0}.mobile-menu .mobile-phone{font-size:1rem}.hero{overflow:hidden;position:relative;padding-top:30px}.hero-grid{display:grid;gap:25px}.hero-copy{position:relative;z-index:3}.hero h1{font-weight:550;line-height:1.08}.hero h1 em{display:block}.hero-copy .lead{max-width:480px;margin-bottom:30px}.hero-note{font-size:.75rem;color:var(--muted);display:flex;gap:15px;align-items:center;margin-top:22px}.hero-note span{display:flex;gap:6px;align-items:center}.hero-note svg{width:14px;height:14px;color:var(--red)}.hero-art{position:relative;isolation:isolate;align-self:end;min-height:355px;aspect-ratio:1/1;max-width:620px;width:100%;margin-inline:auto}.hero-photo{position:absolute;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;z-index:1}.hero-art:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg,var(--paper),transparent 12%)}.art-label{position:absolute;top:12%;left:0;z-index:3;background:#fffef8;border:1px solid #e9e4dc;box-shadow:0 8px 30px #24282108;border-radius:12px;padding:14px 18px;transform:rotate(-5deg);font-size:.8rem;display:flex;gap:12px;align-items:center;max-width:220px;line-height:1.5}.art-label svg{color:var(--red);width:30px;height:30px}.art-label strong{display:block}.art-caption{position:absolute;bottom:8%;right:-2%;z-index:4;background:var(--wine);color:white;border:1px solid #8f4148;border-radius:14px;padding:22px 25px;transform:rotate(4deg);font-size:1.45rem;line-height:1.2;letter-spacing:-.04em;box-shadow:0 10px 30px #68192112}.art-caption small{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin-top:9px;color:#e9c3bf}.scene-wrap{position:absolute;right:-23%;top:-19%;width:100%;height:100%;pointer-events:none;z-index:0}.scene-wrap canvas{width:100%;height:100%;display:block}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-block:24px;gap:16px;position:relative;z-index:5;font-size:.75rem}.hero-bottom .scroll-hint{display:none;gap:10px;align-items:center;color:var(--muted)}.hero-bottom svg{width:16px;height:16px}.hero-bottom strong{font-weight:600}.trust-line{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.trust-line span{display:flex;gap:7px;align-items:center}.trust-line svg{color:var(--red)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:26px}.section-head h2{margin-bottom:0}.section-head>.text-link{flex-shrink:0}.services{background:white;border-block:1px solid var(--line)}.service-grid{display:grid;gap:16px}.service-card{min-height:255px;position:relative;background:var(--paper);padding:30px;border:1px solid #e8e4df;border-radius:var(--radius);display:flex;flex-direction:column;align-items:start;transition:transform .3s var(--ease),border-color .3s}.service-card:hover{transform:translateY(-5px);border-color:#beafa5}.service-card>.icon-box{width:50px;height:50px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;margin-bottom:26px;color:var(--red)}.service-card p{font-size:.875rem;line-height:1.8;color:var(--muted);max-width:280px;margin-bottom:30px}.service-card h3{font-size:1.6rem}.service-card .card-arrow{position:absolute;bottom:27px;right:27px;width:35px;height:35px;display:grid;place-items:center;background:white;border-radius:50%}.service-card .card-label{margin-top:auto;font-size:.75rem;font-weight:600}.service-card.featured{background:var(--red);color:white;border-color:var(--red)}.service-card.featured p{color:#fff1ee}.service-card.featured>.icon-box{color:white;border-color:#ffffff60}.service-card.featured .card-arrow{background:#ffffff1c}.service-card .tag{position:absolute;right:25px;top:37px;font-size:.75rem}.service-all{margin-top:22px}.service-all>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:18px 0;border-bottom:1px solid var(--line);font-weight:600;font-size:.875rem;gap:15px}.service-all>summary::-webkit-details-marker{display:none}.service-all>summary svg{transition:transform .25s}.service-all[open]>summary svg{transform:rotate(45deg)}.catalog{display:grid;grid-template-columns:1fr;gap:0 32px;padding-top:14px}.catalog a{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #eee9e2;font-size:.85rem}.catalog a>svg:first-child{width:20px;color:var(--red)}.catalog a>svg:last-child{margin-left:auto;width:16px}.catalog a:hover{color:var(--red)}.split{display:grid;gap:32px;align-items:center}.editorial-image{border-radius:var(--radius);overflow:hidden;background:var(--rose);position:relative}.editorial-image img{width:100%;height:100%;object-fit:cover;min-height:360px}.editorial-image .photo-caption{position:absolute;inset:auto 20px 20px;background:#fffc;backdrop-filter:blur(10px);padding:16px 20px;border-radius:12px;font-size:.85rem;line-height:1.5}.steps{margin-top:22px}.step{display:grid;grid-template-columns:35px 1fr;gap:18px;padding:15px 0;border-top:1px solid var(--line)}.step-number{font-size:.75rem;color:var(--red);padding-top:3px}.step h3{font-size:1.075rem;margin-bottom:8px;letter-spacing:-.025em}.step p{font-size:.875rem;color:var(--muted);margin:0}.journal{background:#eeece6;border-block:1px solid var(--line)}.article-grid{display:grid;gap:24px}.article-card{display:block}.article-cover{height:230px;border-radius:12px;overflow:hidden;margin-bottom:22px;background:var(--rose);position:relative;display:flex;align-items:end}.article-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}.article-card:hover img{transform:scale(1.035)}.article-cover.senior-cover{background:#eed9d4}.article-cover.senior-cover img{object-fit:contain;object-position:50% 15%;height:145%;align-self:start}.article-cover.type-cover{padding:30px;background:var(--wine);color:white;align-items:center}.type-cover span{font-family:Editorial,Georgia,serif;font-size:4rem;letter-spacing:-.06em;font-style:italic}.type-cover small{display:block;font-family:Montserrat,Arial,sans-serif;font-size:.75rem;letter-spacing:.05em;margin-top:8px;font-style:normal}.article-meta{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:.75rem;margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}.article-meta span:first-child{color:var(--red)}.article-card h3{font-size:1.25rem;line-height:1.4;letter-spacing:-.035em}.article-card p{font-size:.875rem;color:var(--muted);line-height:1.8}.article-card .text-link{font-size:.75rem}.cta-band{background:radial-gradient(circle at 18% 25%,rgba(255,255,255,.16) 0%,transparent 55%),linear-gradient(135deg,#c31924 0%,#821118 100%);color:white;padding:36px 32px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;position:relative;overflow:hidden;box-shadow:0 14px 38px rgba(176,21,31,.22);border:1px solid rgba(255,255,255,.14)}.cta-band h2{font-size:clamp(2rem,3.5vw,3rem);margin-bottom:12px}.cta-band p{color:#fde8e9;font-size:.95rem;margin-bottom:0}.cta-band .btn{flex-shrink:0;font-weight:700}.cta-band .btn-white{color:#821118;background:white;box-shadow:0 4px 14px rgba(0,0,0,.10)}.cta-band .btn-white:hover{background:#fff3f4;color:#6b0b11}.site-footer{background:#efece5;border-top:1px solid var(--line);padding-top:38px}.footer-main{display:grid;gap:28px;padding-bottom:30px}.footer-brand img{width:190px;height:auto;margin-bottom:16px}.footer-brand p{font-size:.85rem;color:var(--muted);max-width:275px}.footer-heading{font-size:.75rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;margin-bottom:20px}.footer-links{display:flex;flex-direction:column;align-items:start;gap:9px;font-size:.8rem}.footer-links a:hover{color:var(--red)}.footer-contact>a:first-child{font-size:1.2rem;letter-spacing:-.04em}.footer-contact p{font-size:.8rem;color:var(--muted);margin-top:8px}.footer-bottom{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}.footer-legal{display:flex;gap:20px;flex-wrap:wrap}.page-hero{position:relative;padding:26px 0 34px;border-bottom:1px solid var(--line);overflow:hidden}.breadcrumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.8125rem;color:var(--muted);margin-bottom:22px}.breadcrumb a:hover{color:var(--red)}.breadcrumb svg{width:12px;height:12px}.page-hero h1{font-size:clamp(2.5rem,5.7vw,4.5rem);max-width:930px}.page-hero .lead{margin-bottom:0;max-width:660px}.page-title-row{display:flex;align-items:end;justify-content:space-between;gap:30px}.page-title-row .tag{margin-bottom:22px;flex-shrink:0}.blog-feature{display:grid;gap:26px;margin-bottom:44px}.blog-feature .article-cover{height:350px;margin:0;background:var(--rose)}.blog-feature .article-cover img{object-fit:contain;object-position:center top}.blog-feature-copy{align-self:center}.blog-feature h2{font-size:2.4rem;line-height:1.2}.blog-list{border-top:1px solid var(--line)}.blog-row{display:grid;grid-template-columns:35px 1fr 25px;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.blog-row:hover h3{color:var(--red)}.blog-index{font-family:Editorial,Georgia,serif;font-size:1.3rem;font-style:italic;color:#aaa49b}.blog-row h3{font-size:1.2rem;line-height:1.4;margin-bottom:10px}.blog-row p{font-size:.85rem;color:var(--muted);margin-bottom:0}.blog-row .article-meta{font-size:.75rem}.blog-row>.row-arrow{width:20px;height:20px}.article-layout{display:grid;gap:30px;position:relative}.article-body{font-size:1.09rem;line-height:1.85;min-width:0}.article-body h2{font-size:1.6rem;letter-spacing:-.01em;line-height:1.3;margin-top:34px;margin-bottom:16px;scroll-margin-top:110px}.article-body h3{font-size:1.15rem;line-height:1.5;margin-top:25px}.article-body p{margin-bottom:24px}.article-body ul,.article-body ol{padding-left:24px;margin-bottom:30px}.article-body li{margin-bottom:10px}.article-intro{font-size:1.2rem;color:var(--muted);line-height:1.85}.article-body a:not(.btn){color:var(--red);text-decoration:underline;text-underline-offset:3px}.article-body .source-note{font-size:.8rem;color:var(--muted);margin-top:-6px;line-height:1.7}.article-aside .aside-box{border:1px solid var(--line);padding:28px;border-radius:14px;background:white}.article-aside h2{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:20px}.toc{list-style:none;padding:0;margin:0}.toc li{padding-block:9px;font-size:.8rem;line-height:1.6}.toc a:hover{color:var(--red)}.aside-cta{margin-top:22px;background:linear-gradient(135deg,#c31924 0%,#821118 100%)!important;color:white;box-shadow:0 10px 28px rgba(176,21,31,.18);border:1px solid rgba(255,255,255,.12)}.aside-cta h3{font-size:1.6rem;line-height:1.2}.aside-cta p{font-size:.875rem;color:#fde8e9}.aside-cta .btn{width:100%;padding-inline:14px}.aside-cta .btn-white{color:#821118;background:white;box-shadow:0 4px 14px rgba(0,0,0,.10)}.aside-cta .btn-white:hover{background:#fff3f4;color:#6b0b11}.note-box{border-left:3px solid var(--red);padding:20px 22px;background:var(--rose);border-radius:0 10px 10px 0;margin-block:24px}.note-box p:last-child{margin-bottom:0}.article-footer{margin-top:40px;padding-top:25px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.data-table-wrap{overflow-x:auto;margin-block:25px;border:1px solid var(--line);border-radius:12px}.data-table{width:100%;border-collapse:collapse;min-width:640px;font-size:.9375rem;line-height:1.65}.data-table th,.data-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:17px 19px}.data-table th{font-size:.75rem;background:#eeece6;font-weight:650}.data-table tr:last-child td{border-bottom:0}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{cursor:pointer;font-size:1rem;line-height:1.6;font-weight:550;list-style:none;display:flex;gap:20px;justify-content:space-between}.faq summary:after{content:'+';font-size:1.4rem;font-weight:400;color:var(--red)}.faq details[open] summary:after{content:'−'}.faq details p{margin-top:15px;margin-bottom:0;font-size:.925rem;color:var(--muted)}.form-layout{display:grid;gap:30px;align-items:start}.form-card{background:white;border:1px solid var(--line);border-radius:14px;padding:22px}.form-card h2{font-size:1.65rem;margin-bottom:12px}.form-intro{font-size:1rem;color:var(--muted);margin-bottom:24px;line-height:1.7}.form-grid{display:grid;gap:22px}.field{display:flex;flex-direction:column;gap:9px}.field>label,.fieldset-title{font-size:1rem;font-weight:600}.field input:not([type="checkbox"]):not([type="radio"]),.field select,.field textarea{background:#fdfbf8;border:1px solid #b9b4aa;border-radius:6px;padding:13px 14px;width:100%;color:var(--ink);min-height:54px;font-size:1.0625rem}.field textarea{resize:vertical;min-height:150px;line-height:1.65}.field input:not([type="checkbox"]):not([type="radio"])::placeholder,.field textarea::placeholder{color:#858079}.field input:not([type="checkbox"]):not([type="radio"]):focus,.field textarea:focus,.field select:focus{outline:2px solid var(--red);outline-offset:2px}.field small{font-size:.75rem;color:var(--muted);line-height:1.65}.full{grid-column:1/-1}.form-section{border:0;border-top:1px solid var(--line);margin:30px 0 0;padding:24px 0 0;min-width:0}.form-section>legend{padding:0 10px 0 0;font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.checkbox{display:flex;align-items:flex-start;gap:12px;font-size:.9375rem;line-height:1.65;margin:14px 0}.checkbox input{accent-color:var(--red);width:21px;height:21px;flex:0 0 21px;margin:2px 0 0}.checkbox a{text-decoration:underline;text-underline-offset:3px}.check-note{font-size:.875rem;line-height:1.7;color:var(--muted);margin-bottom:14px}.form-footer{margin-top:28px}.form-footer>.btn{width:100%}.form-footer>p{font-size:.75rem;color:var(--muted);text-align:center;line-height:1.7;margin:14px 0 0}.info-panel{padding:28px 0}.info-panel h2{font-size:2rem}.contact-channel{display:flex;gap:18px;padding-block:23px;border-bottom:1px solid var(--line)}.contact-channel>.icon-box{width:43px;height:43px;border-radius:50%;background:var(--rose);color:var(--red);display:grid;place-items:center;flex-shrink:0}.contact-channel small{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;color:var(--muted);margin-bottom:7px}.contact-channel a{font-size:1rem;font-weight:600;overflow-wrap:anywhere}.contact-channel p{font-size:.75rem;color:var(--muted);margin:6px 0 0}.location-grid{display:grid;gap:18px;margin-bottom:26px}.location-card{background:white;border:1px solid var(--line);border-radius:14px;padding:28px;display:flex;flex-direction:column;align-items:start}.location-card .location-top{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:20px}.location-card .location-top svg{color:var(--red)}.location-card h3{font-size:1.75rem;margin-bottom:10px}.location-card p{font-size:.85rem;line-height:1.9;color:var(--muted)}.location-card .text-link{font-size:.75rem;margin-top:auto}.map-shell{background:#e9e9e1;min-height:260px;border:1px solid var(--line);border-radius:18px;display:grid;place-items:center;overflow:hidden;position:relative}.map-placeholder{padding:35px;text-align:center;max-width:650px}.map-placeholder>svg{color:var(--red);width:35px;height:35px;margin-inline:auto;margin-bottom:20px}.map-placeholder h3{font-size:1.5rem}.map-placeholder p{font-size:.8rem;line-height:1.8;color:var(--muted)}.map-shell iframe{width:100%;height:390px;border:0}.map-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.map-controls button{padding:10px 18px;font-size:.8rem;min-height:43px}.map-after{margin-top:10px;font-size:.75rem;color:var(--muted);display:flex;gap:20px;align-items:center;flex-wrap:wrap}.map-after button{background:transparent;border:0;padding:5px 0;text-decoration:underline;color:var(--red);font-size:.75rem}.complaint-steps{counter-reset:complaint;padding-left:0;list-style:none}.complaint-steps li{counter-increment:complaint;display:grid;grid-template-columns:28px 1fr;gap:12px;font-size:.85rem;color:var(--muted);padding:15px 0}.complaint-steps li:before{content:counter(complaint);font-size:.75rem;border:1px solid var(--line);height:26px;width:26px;border-radius:50%;display:grid;place-items:center;color:var(--red)}.complaint-steps strong{display:block;color:var(--ink);margin-bottom:5px}.small-note{font-size:.875rem;color:var(--muted);line-height:1.75}.small-note a{color:var(--red);text-decoration:underline}.form-result{background:#f4f8f3;border:1px solid #c3d2be;border-radius:12px;padding:25px;margin-top:25px;scroll-margin-top:110px}.form-result h3{font-size:1.4rem}.form-result p{font-size:.85rem;line-height:1.8}.form-result textarea{width:100%;min-height:170px;resize:vertical;display:block;margin-block:15px;font:400 .8rem/1.7 Montserrat,Arial,sans-serif;background:white;border:1px solid var(--line);border-radius:7px;padding:15px}.form-result .actions{gap:12px}.form-result .btn{font-size:.8rem;gap:12px}.copy-feedback{font-size:.75rem;min-height:1.5em;margin-top:12px}.privacy-layout{max-width:960px}.privacy-layout h2{font-size:1.55rem;margin-top:32px;line-height:1.3}.privacy-layout h3{font-size:1.2rem;line-height:1.5;margin-top:26px}.privacy-layout p,.privacy-layout li{font-size:1.03rem;line-height:1.8}.privacy-layout a{color:var(--red);text-decoration:underline;text-underline-offset:3px}.privacy-layout .data-table p{font-size:.8rem}.legal-status{border:1px solid #d9c8bc;border-radius:10px;background:#f0e8de;padding:18px 22px;font-size:.8rem;line-height:1.8;margin-bottom:30px}.not-found{text-align:center;max-width:760px;padding-block:100px}.not-found .actions{justify-content:center}.reading-progress{position:fixed;top:0;left:0;z-index:60;height:3px;background:var(--red);width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.motion-ready .reveal.visible{opacity:1;transform:none}
@media(min-width:600px){.wrap{width:min(var(--max),calc(100% - 64px))}.service-grid{grid-template-columns:repeat(3,1fr)}.service-card{padding:25px;min-height:315px}.service-card .tag{position:static;margin-bottom:20px;order:-1;min-height:24px}.service-card:not(.featured){padding-top:67px}.service-card h3{font-size:1.4rem}.service-card p{font-size:.8rem}.catalog{grid-template-columns:1fr 1fr}.article-grid{grid-template-columns:repeat(3,1fr);gap:24px}.article-cover{height:180px}.article-card h3{font-size:1.1rem}.footer-main{grid-template-columns:1.3fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.form-card{padding:36px}.hero-art{max-width:540px}.form-footer>.btn{width:auto}.form-footer>p{text-align:left}.blog-row{grid-template-columns:50px 1fr 35px}.location-grid{grid-template-columns:repeat(3,1fr)}.location-card{padding:22px}.location-card .tag{font-size:.75rem;padding:6px 9px}.page-hero{padding-bottom:40px}}
@media(min-width:1000px){.wrap{width:min(var(--max),calc(100% - 104px))}.topbar{display:block}.header-inner{height:90px}.brand{width:152px}.nav{display:flex;align-items:center;gap:29px;font-size:.775rem;font-weight:550}.nav>a:not(.btn){position:relative;padding-block:10px}.nav>a:not(.btn):after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transition:transform .2s}.nav>a:hover:after,.nav>a[aria-current=page]:after{transform:scaleX(1)}.nav .btn{min-height:46px;padding:12px 20px;font-size:.75rem;gap:20px;margin-left:10px}.menu-toggle{display:none}.hero{padding-top:32px}.hero-grid{grid-template-columns:1fr 1fr;gap:20px;align-items:center;min-height:520px}.hero-copy{padding-bottom:34px;padding-top:16px}.hero h1{font-size:clamp(4.3rem,6.2vw,5.8rem)}.hero-copy .lead{font-size:.95rem;max-width:440px}.hero-art{height:500px;max-width:none;margin-top:10px;align-self:end}.art-label{top:17%;left:-2%;font-size:.75rem;padding:15px 18px}.art-caption{bottom:11%;right:-1%;font-size:1.9rem;padding:25px 30px}.hero-bottom{padding-block:24px}.hero-bottom .scroll-hint{display:flex}.hero-note{font-size:.75rem}.trust-line{gap:40px;font-size:.75rem}.section{padding-block:62px}.service-grid{gap:22px}.service-card{padding:32px;min-height:335px}.service-card h3{font-size:1.85rem}.service-card p{font-size:.85rem;max-width:260px}.service-card .tag{position:absolute;right:28px;top:42px;font-size:.75rem}.service-card:not(.featured){padding-top:32px}.service-card>.icon-box{margin-bottom:32px}.service-card .card-arrow{right:30px;bottom:30px}.service-card .card-label{font-size:.75rem}.catalog{grid-template-columns:repeat(4,1fr)}.split{grid-template-columns:1fr 1fr;gap:52px}.editorial-image{height:420px}.editorial-image img{object-position:25% 50%}.editorial-image .photo-caption{inset:auto 30px 30px;font-size:.9rem;padding:22px 26px}.split-copy{padding:10px 0}.split-copy .lead{font-size:.9rem}.article-cover{height:240px}.article-card h3{font-size:1.3rem}.article-grid{gap:30px}.cta-band{padding:38px 46px}.footer-main{grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:40px}.footer-bottom{font-size:.75rem}.page-hero{padding:28px 0 42px}.page-hero .lead{font-size:1rem}.page-hero .breadcrumb{margin-bottom:24px}.blog-feature{grid-template-columns:1.1fr 1fr;gap:44px}.blog-feature .article-cover{height:430px}.blog-feature h2{font-size:2.8rem}.blog-row{grid-template-columns:64px 1fr 40px;gap:26px;padding:24px 0}.blog-row h3{font-size:1.45rem}.blog-row p{max-width:750px}.form-layout{gap:48px}.form-card{padding:32px}.location-grid{gap:24px}.location-card{padding:32px}.location-card .tag{font-size:.75rem}.article-layout{grid-template-columns:minmax(0,780px) 300px;gap:48px;justify-content:space-between}.article-aside{position:sticky;top:120px;align-self:start}.article-hero h1{max-width:1030px}.article-hero .lead{max-width:800px}.mobile-menu{display:none!important}.form-layout .info-panel h2{font-size:2.2rem}}
@media(min-width:1500px){.hero-grid{min-height:630px}.hero-art{height:610px}.hero h1{font-size:6rem}}
@media(max-width:599px){.section-head{display:block}.section-head>.text-link{margin-top:24px}.hero h1{font-size:2.9rem}.hero .actions{gap:16px}.hero .btn{font-size:.8rem;padding-inline:18px;gap:16px}.hero .text-link{font-size:.75rem}.art-caption{font-size:1.4rem;right:0;padding:17px 20px}.art-label{font-size:.75rem;padding:10px 13px;left:0;top:18%}.hero-art{margin-top:20px}.hero-bottom{font-size:.75rem}.hero-note{font-size:.75rem;gap:10px}.trust-line{gap:12px}.trust-line span:last-child{display:none}.section{padding-block:40px}.page-title-row{display:block}.page-title-row>.tag{margin-top:10px}.article-cover{height:250px}.blog-feature h2{font-size:2rem}.page-hero .breadcrumb{font-size:.75rem}.form-card{padding:22px}.form-card h2{font-size:1.5rem}.checkbox{font-size:.75rem}.info-panel{padding-top:0}.blog-row p{display:none}.article-layout{display:flex;flex-direction:column}.article-aside{order:-1}.article-aside .aside-cta{display:none}.article-aside .aside-box{padding:22px}.article-body{font-size:1rem}.article-body h2{font-size:1.5rem}.article-intro{font-size:1.1rem}.hero-art{min-height:0}.hero-note span svg{width:12px}.location-card .tag{font-size:.75rem}.page-hero h1{font-size:2.6rem}.footer-bottom{font-size:.75rem}.hero-copy .lead{font-size:.94rem}.cta-band{padding:35px 27px}.cta-band .btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .reveal{opacity:1;transform:none}.scene-wrap{display:none}}
@media print{.topbar,.site-header,.site-footer,.article-aside,.cta-band,.form-footer,.map-shell,.actions,.reading-progress{display:none!important}body{background:white;font-family:Arial,sans-serif;font-size:11pt;color:#000}.wrap{width:100%}.section,.page-hero{padding:20px 0}.article-layout{display:block}.article-body{font-size:11pt;line-height:1.6}h1{font-size:26pt!important}h2{font-size:18pt!important}.reveal{opacity:1!important;transform:none!important}.article-body a{color:#000;text-decoration:underline}}

.nav,.nav .btn,.footer-links{font-size:.95rem}.topbar,.footer-heading,.form-section>legend{font-size:.8125rem}.field small,.form-footer>p{font-size:.875rem}.footer-contact>a:first-of-type{font-size:1.2rem}.hero h1{letter-spacing:-.015em}.hero h1 em{display:inline}.hero h1{max-width:640px}

@media(min-width:1000px) and (max-width:1199px){.nav{gap:17px}.nav .btn{font-size:.75rem;padding-inline:14px;gap:12px}.brand{width:132px}.nav>a:not(.btn){font-size:.8rem}}

h1,h2,h3{overflow-wrap:break-word;hyphens:auto}.form-grid>*{min-width:0}.privacy-layout{overflow-wrap:anywhere}

/* ============================================================
   Refonte 2026 — lisibilité senior, densité, héros illustrés,
   formulaires alignés sur artex-assurances.com
   ============================================================ */

/* Typographie de service */
.article-body h2,.privacy-layout h2,.form-card h2,.info-panel h2{font-family:Display,Georgia,serif}
.nav,.btn,.text-link,.tag,.field>label,.checkbox,.footer-links,.article-meta,.breadcrumb{font-family:Sans,'Segoe UI',Arial,sans-serif}
.topbar{font-size:.8125rem}
.footer-links{gap:11px}
.footer-brand .tag{margin-top:14px}
.footer-contact>a:first-of-type{font-size:1.35rem;font-weight:650;font-family:Display,Georgia,serif}
.footer-bottom{font-size:.8125rem;padding:18px 0}
.footer-legal{gap:22px}
.footer-legal a{border-bottom:1px solid transparent}
.footer-legal a:hover{border-bottom-color:currentColor}
.footer-oriaslink{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:.8125rem;color:var(--muted)}
.footer-oriaslink svg{width:18px;height:18px;color:var(--red)}

/* Héros de page illustrés (toutes les pages) */
.page-hero{background:linear-gradient(180deg,#fbf9f5,var(--paper))}
.page-hero .scene-wrap{position:absolute;right:-6%;top:-38%;width:58%;height:190%;z-index:0;opacity:.5;pointer-events:none}
.page-hero .wrap{position:relative;z-index:2}
.page-hero-grid{display:grid;gap:22px;align-items:center}
.page-hero-copy{min-width:0}
.page-hero-media{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--rose);aspect-ratio:16/10;box-shadow:0 18px 44px rgba(60,40,30,.10)}
.page-hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform .8s var(--ease)}
.page-hero-media:hover img{transform:scale(1.06)}
.page-hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,rgba(93,21,29,.30),rgba(93,21,29,0) 55%)}
.page-hero-badge{position:absolute;z-index:3;left:16px;bottom:16px;background:#fffefaee;backdrop-filter:blur(8px);border:1px solid #e6e0d7;border-radius:10px;padding:11px 15px;font-size:.875rem;line-height:1.45;display:flex;gap:11px;align-items:center;max-width:82%}
.page-hero-badge svg{width:24px;height:24px;color:var(--red)}
.page-hero-badge strong{display:block}
.page-hero .lead{margin-bottom:0}
.page-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:20px;font-size:.875rem;color:var(--muted)}
.hero-facts span{display:flex;gap:8px;align-items:center}
.hero-facts svg{width:16px;height:16px;color:var(--red)}
@media(min-width:900px){
  .page-hero-grid{grid-template-columns:1.15fr .85fr;gap:44px}
  .page-hero-media{aspect-ratio:4/3;max-height:330px}
}
@media(max-width:899px){.page-hero .scene-wrap{display:none}.page-hero-media{max-height:210px}}

/* Article : héros illustré + bandeau */
.article-hero .page-hero-media{aspect-ratio:16/9;max-height:300px}
.article-cover.cover-photo{background:#eadfd8}
.article-cover.cover-photo img{object-fit:cover;object-position:center}

/* Formulaires — structure officielle ARTEX */
.form-card{box-shadow:0 12px 34px rgba(60,40,30,.05)}
.form-grid{gap:18px}
.field-note{grid-column:1/-1;font-size:.875rem;color:var(--muted);line-height:1.7;margin:0}
.field .with-unit{display:flex;align-items:stretch}
.field .with-unit input{border-radius:6px 0 0 6px}
.field .with-unit .unit{display:grid;place-items:center;min-width:52px;padding:0 14px;border:1px solid #b9b4aa;border-left:0;border-radius:0 6px 6px 0;background:#f2eee7;font-weight:600}
fieldset.civility{border:0;padding:0;margin:0;min-width:0;grid-column:1/-1}
fieldset.civility>legend{padding:0;font-size:1rem;font-weight:600;margin-bottom:10px}
.radio-row{display:flex;gap:12px;flex-wrap:wrap}
.radio-pill{display:inline-flex;align-items:center;gap:10px;border:1px solid #b9b4aa;background:#fdfbf8;border-radius:6px;padding:12px 20px;min-height:54px;font-size:1.0625rem;cursor:pointer}
.radio-pill input{accent-color:var(--red);width:20px;height:20px;margin:0}
.radio-pill:has(input:checked){border-color:var(--red);background:#fdf3f2;box-shadow:inset 0 0 0 1px var(--red)}
.more-toggle{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;background:transparent;border:1px dashed #b9b4aa;border-radius:8px;padding:14px 18px;font-size:.95rem;font-weight:600;color:var(--wine);text-align:left}
.more-toggle:hover{background:#faf6f0}
.more-toggle .more-hint{font-weight:400;color:var(--muted);font-size:.875rem}
.more-toggle svg{width:18px;height:18px;transition:transform .25s}
.more-toggle[aria-expanded=true] svg{transform:rotate(45deg)}
.more-fields{grid-column:1/-1;display:grid;gap:18px;padding-top:2px}
@media(min-width:600px){.more-fields{grid-template-columns:1fr 1fr}}
.rgpd-link{grid-column:1/-1;background:transparent;border:0;padding:4px 0;font-size:.875rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-align:left}
.rgpd-link:hover{color:var(--red)}
.consent-title{font-size:.95rem;font-weight:600;margin:0 0 6px;line-height:1.6}
.consent-group{padding-left:2px}
.expert-box{border:1px solid #c9ddd3;background:#f1f7f3;border-radius:10px;padding:16px 18px;margin-top:16px}
.expert-box .consent-title{color:var(--green)}
.expert-box .checkbox{margin-bottom:0}
.required-note{font-size:.875rem;color:var(--muted);margin:0}
.form-steps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:.8125rem;color:var(--muted)}
.form-steps span{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:99px;padding:6px 13px;background:#fdfbf8}
.form-steps b{color:var(--red)}

/* Modale d'information RGPD */
body.modal-open{overflow:hidden}
.rgpd-dialog{border:0;padding:0;border-radius:14px;max-width:680px;width:calc(100% - 32px);box-shadow:0 24px 70px rgba(40,30,25,.28);overflow:hidden;overscroll-behavior:contain}
.rgpd-dialog::backdrop{background:rgba(34,36,31,.55)}
.rgpd-dialog .rgpd-inner{padding:26px 28px 24px;max-height:min(76vh,720px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.rgpd-dialog h2{font-size:1.4rem;margin-bottom:14px;padding-right:40px}
.rgpd-dialog p{font-size:.95rem;line-height:1.75;color:var(--muted)}
.rgpd-dialog p:last-of-type{margin-bottom:0}
.rgpd-dialog a{color:var(--red);text-decoration:underline}
.rgpd-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:white;display:grid;place-items:center;font-size:1.3rem;line-height:1}

/* Réclamation */
.claim-progress{display:grid;gap:0;margin-bottom:24px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fdfbf8}
.claim-progress li{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);font-size:.9375rem;line-height:1.6}
.claim-progress li:last-child{border-bottom:0}
.claim-progress li:before{content:counter(claimstep);counter-increment:claimstep;width:28px;height:28px;border-radius:50%;background:var(--rose);color:var(--wine);display:grid;place-items:center;font-size:.875rem;font-weight:700}
.claim-progress{counter-reset:claimstep;list-style:none;padding:0}
.claim-progress strong{display:block}
.warn-box{border:1px solid #e0c9a8;background:#fdf6e9;border-radius:10px;padding:16px 18px;font-size:.9375rem;line-height:1.7;margin-bottom:22px}
.warn-box strong{display:block;margin-bottom:4px}

/* Tableaux cookies / RGPD */
.cookie-table{min-width:720px}
.cookie-table td:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875rem;white-space:nowrap}
.privacy-layout h3{font-family:Display,Georgia,serif}
.privacy-toc{border:1px solid var(--line);background:white;border-radius:12px;padding:20px 24px;margin-bottom:26px}
.privacy-toc p{font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:12px;color:var(--wine)}
.privacy-toc ol{margin:0;padding-left:20px;columns:2;column-gap:34px}
.privacy-toc li{font-size:.9375rem;line-height:1.8;break-inside:avoid}
.privacy-toc a:hover{color:var(--red);text-decoration:underline}
@media(max-width:699px){.privacy-toc ol{columns:1}}
.updated-note{font-size:.875rem;color:var(--muted);border-top:1px solid var(--line);margin-top:32px;padding-top:16px}

/* Catalogue avec vignettes */
.catalog a{padding:14px 0}
.service-card{min-height:0}
@media(min-width:600px){.service-card{min-height:270px}}
@media(min-width:1000px){.service-card{min-height:290px;padding:26px}.service-card h3{font-size:1.55rem}}

/* Compléments : champs obligatoires, bouton pause sur les héros, vignettes photo */
.req{color:var(--red);font-weight:700}

.page-hero-media{position:relative}
.blog-feature .article-cover.cover-photo{height:320px;background:#eadfd8}
.blog-feature .article-cover.cover-photo img{object-fit:cover;object-position:center;width:100%;height:100%}
.article-cover.cover-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.field-note{border-top:1px solid var(--line);padding-top:16px;margin-top:4px;font-weight:600;color:var(--wine);font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em}
.form-card .form-grid>.field-note:first-child{border-top:0;padding-top:0}
.info-panel .steps{margin-top:16px}
@media(min-width:1000px){.blog-feature .article-cover.cover-photo{height:400px}}
@media(max-width:599px){.page-hero h1{font-size:2.1rem}.radio-pill{flex:1 1 auto;justify-content:center}}
.cookie-table td:nth-child(2){white-space:nowrap}
.page-hero .scene-wrap{opacity:.34;right:-10%}
.article-hero h1{font-size:clamp(1.9rem,3.3vw,2.8rem)}
.article-hero .lead{font-size:1.02rem}

/* --- Refonte 2026 · parcours de contact --- */
.service-card.has-choices{padding-bottom:30px}
.service-card .card-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;width:100%}
.service-card .card-actions .btn{flex:1 1 170px;min-height:50px;padding:13px 18px;font-size:.875rem;gap:0;text-align:center}
.btn-ghost{background:transparent;border-color:#ffffff70;color:#fff}
.btn-ghost:hover{background:#ffffff1f}
.service-card.value-card{min-height:0;background:var(--paper)}
.service-card.value-card:hover{transform:none;border-color:#e8e4df}
.service-card.value-card p{margin-bottom:0;max-width:none}
.service-grid-all .service-card{min-height:0}
.catalog-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.catalog-strip p{font-size:.875rem;color:var(--muted);margin:0;max-width:620px;line-height:1.8}
.catalog-strip .text-link{flex-shrink:0;font-size:.8125rem}
.hp{display:none!important;position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{color:#98131d;font-size:.875rem;line-height:1.7;font-weight:600;text-align:center;margin:14px 0 0}
.form-sent{background:#f4f8f3;border-color:#c3d2be}
.form-sent p{margin-bottom:0}
.form-sent a{color:var(--red);text-decoration:underline}
.fixed-service{gap:8px}
.fixed-service-label{font-size:1rem;font-weight:600}
.fixed-service-value{display:flex;align-items:center;gap:12px;margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:var(--rose);font-weight:600}
.fixed-service-value svg{color:var(--red);width:22px;height:22px}
@media(min-width:1000px){.service-grid-all{grid-template-columns:repeat(3,1fr)}.service-card.has-choices{min-height:335px}}
@media(min-width:600px) and (max-width:999px){.service-grid,.service-grid-all{grid-template-columns:repeat(2,1fr)}}
@media(max-width:599px){.catalog-strip{display:block}.catalog-strip .text-link{margin-top:16px}.service-card .card-actions .btn{flex:1 1 100%}}

/* --- Bandeau et paramètres cookies --- */
.cookies-settings{position:fixed;left:20px;bottom:20px;z-index:60;background:none;border:0;padding:0;width:60px;max-width:64px;line-height:0;transition:transform .3s var(--ease);filter:drop-shadow(0 6px 16px #24282126)}
.cookies-settings:hover{transform:scale(1.1)}
.cookies-settings img{width:100%;height:auto}
.cc-banner{position:fixed;inset:auto 16px 16px;z-index:70;background:#fffef8;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px #2428211f;opacity:0;transform:translateY(16px);transition:opacity .3s var(--ease),transform .3s var(--ease);max-height:calc(100vh - 32px);overflow-y:auto}
.cc-banner.cc-visible{opacity:1;transform:none}
.cc-banner-inner{padding:24px}
.cc-banner h2{font-size:1.35rem;margin-bottom:12px}
.cc-banner p{font-size:.8125rem;line-height:1.75;color:var(--muted);margin-bottom:0}
.cc-banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.cc-banner-actions .btn{flex:1 1 200px;min-height:52px;font-size:.9375rem}
.cc-link{color:var(--red);font-weight:600;background:none;border:0;padding:0;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cc-link:hover{color:#9c1420}
.cc-banner-actions .cc-open-settings{flex:1 1 100%;text-align:center;padding:6px 0}
.cc-settings{border:0;padding:0;background:transparent;max-width:min(780px,calc(100vw - 24px));width:100%;max-height:calc(100vh - 40px)}
.cc-settings::backdrop{background:#24282199}
.cc-settings-inner{background:var(--paper);border-radius:16px;display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}
.cc-settings-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}
.cc-settings-head h2{margin:0;font-size:1.5rem}
.cc-close{background:none;border:0;font-size:2rem;line-height:1;color:var(--muted);padding:0 4px}
.cc-close:hover{color:var(--red)}
.cc-settings-body{overflow-y:auto;padding:6px 24px 20px;-webkit-overflow-scrolling:touch}
.cc-block{border-bottom:1px solid var(--line);padding:22px 0}
.cc-block:last-child{border-bottom:0}
.cc-block h3{font-size:1.15rem;margin-bottom:0}
.cc-block>p{font-size:.85rem;line-height:1.8;color:var(--muted);margin:12px 0 0}
.cc-block-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.cc-always{font-size:.75rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cc-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:.8rem;font-weight:600}
.cc-switch input{position:absolute;opacity:0;width:0;height:0}
.cc-slider{width:46px;height:26px;border-radius:99px;background:#cfc9c0;position:relative;transition:background .2s}
.cc-slider:after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.cc-switch input:checked+.cc-slider{background:var(--red)}
.cc-switch input:checked+.cc-slider:after{transform:translateX(20px)}
.cc-switch input:focus-visible+.cc-slider{outline:3px solid var(--red);outline-offset:3px}
.cc-table-wrap{overflow-x:auto;margin-top:16px;border:1px solid var(--line);border-radius:10px}
.cc-table{width:100%;border-collapse:collapse;min-width:560px;font-size:.8rem}
.cc-table th,.cc-table td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line)}
.cc-table th{background:#eeece6;font-weight:650;font-size:.75rem}
.cc-table tr:last-child td{border-bottom:0}
.cc-settings-actions{display:flex;flex-wrap:wrap;gap:12px;padding:18px 24px;border-top:1px solid var(--line);background:#fffef8}
.cc-settings-actions .btn{flex:1 1 200px;min-height:52px;font-size:.9375rem}
@media(min-width:700px){.cc-banner{inset:auto auto 24px 24px;max-width:640px}.cc-banner-inner{padding:28px 30px}}
@media(max-width:599px){.cookies-settings{width:48px;left:12px;bottom:12px}.cc-banner-actions .btn{flex:1 1 100%}.cc-table{min-width:460px}}

/* --- Widgets d’avis EmbedSocial --- */
.reviews-layout{display:grid;gap:30px;align-items:start}
.embed-block{min-width:0}
.embed-block .embedsocial-hashtag,.embed-block .embedsocial-forms-iframe{min-height:320px}
.embed-block iframe{width:100%;border:0;display:block}
.embed-block.form-card{padding:18px}
.reviews-legal{grid-column:1/-1;max-width:900px;margin-top:10px}
.reviews-legal .note-box{margin-bottom:0}
@media(min-width:1000px){.reviews-layout{grid-template-columns:1.6fr 1fr;gap:48px;align-items:start}.reviews-layout .info-panel{position:sticky;top:120px}}

/* --- Résultats du comparateur --- */
.results-head{border-bottom:1px solid var(--line);padding:22px 0 26px;background:white}
.results-head h1{font-size:clamp(1.9rem,3.4vw,2.7rem);margin-bottom:12px;max-width:20ch}
.results-head .lead{font-size:.95rem;margin-bottom:0;max-width:62ch}
.results-head-grid{display:grid;gap:22px}
.results-head-facts{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:.8125rem;color:var(--muted);align-self:end}
.results-head-facts span{display:inline-flex;align-items:center;gap:8px}
.results-head-facts svg{width:15px;height:15px;color:var(--red)}
.results-section{padding-top:26px}
.results-summary{margin-bottom:22px}
.results-summary-inner{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 26px;background:white;border:1px solid var(--line);border-radius:14px;padding:20px 24px}
.results-hello{font-size:1.05rem;margin:0 0 4px}
.results-from{margin:0;color:var(--muted);font-size:.9375rem}
.results-from strong{color:var(--red);font-size:1.15rem}
.results-summary .text-link{font-size:.8125rem;flex-shrink:0}
.results-profile-card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-top:14px;box-shadow:0 2px 8px rgba(0,0,0,0.03)}
.results-profile-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.results-profile-title{display:flex;align-items:center;gap:8px;font-size:.95rem;color:var(--ink);font-weight:600}
.results-profile-title svg{color:var(--red);flex-shrink:0}
.results-edit-btn{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;padding:7px 14px;border-radius:8px;border:1px solid var(--line);color:var(--ink);background:var(--paper);text-decoration:none;font-weight:600;transition:all .2s ease}
.results-edit-btn:hover{background:var(--rose);border-color:var(--red);color:var(--red)}
.results-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 20px}
.profile-item{display:flex;flex-direction:column;gap:3px}
.profile-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.profile-value{font-size:.9375rem;color:var(--ink);font-weight:500}
.results-empty .embed-placeholder{max-width:620px}
.results-layout{display:grid;gap:24px;align-items:start}
.filters-card{background:white;border:1px solid var(--line);border-radius:14px;padding:22px}
.filters-card h2{font-size:1.25rem;margin-bottom:8px}
.filters-card>.small-note{margin-bottom:18px;font-size:.8125rem}
.level-field{border:0;padding:0;margin:0 0 18px;min-width:0}
.level-field>legend{display:flex;align-items:center;gap:9px;font-size:.9rem;font-weight:600;padding:0;margin-bottom:9px}
.level-field>legend svg{width:18px;height:18px;color:var(--red)}
.level-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.level-row .radio-pill{justify-content:center;text-align:center;padding:10px 4px;font-size:.85rem;min-height:46px}
.level-row .radio-pill input{position:absolute;opacity:0;width:0;height:0}
.filters-sort{display:flex;flex-direction:column;gap:8px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.filters-sort label{font-size:.9rem;font-weight:600}
.filters-sort select{background:#fdfbf8;border:1px solid #b9b4aa;border-radius:6px;padding:11px 12px;min-height:50px;font-size:.95rem;color:var(--ink);width:100%}
.filters-companies{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.filters-title{display:block;font-size:.9rem;font-weight:600;margin-bottom:10px}
.company-check{margin:6px 0;font-size:.85rem;align-items:center}
.company-check span{display:flex;align-items:center;gap:10px}
.company-check img{width:auto;height:22px;object-fit:contain;flex-shrink:0}
.filters-card>[data-reset-filters]{margin-top:20px;font-size:.8125rem}
.results-count{font-size:.85rem;color:var(--muted);margin-bottom:14px}
.offer-list{display:grid;gap:14px}
.offer-card{position:relative;background:white;border:1px solid var(--line);border-radius:16px;padding:22px;display:grid;gap:18px;transition:border-color .25s,box-shadow .25s}
.offer-card:hover{border-color:#c6b6ab;box-shadow:0 8px 26px #2428210d}
.offer-best{border-color:var(--red);box-shadow:0 10px 30px #bd1e2814}
.offer-flag{position:absolute;top:-10px;left:20px;background:var(--red);color:white;border-radius:99px;padding:4px 13px;font-size:.6875rem;font-weight:650;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis}
.offer-identity{display:flex;align-items:center;gap:16px;min-width:0}
.offer-logo{width:88px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fbf9f6;border:1px solid var(--line);border-radius:10px;padding:10px 8px;min-height:56px}
.offer-logo img{width:100%;height:auto;max-height:34px;object-fit:contain}
.offer-logo-text{font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;line-height:1.3}
.offer-company{display:block;font-size:.7rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-bottom:5px}
.offer-identity h3{font-size:1.2rem;line-height:1.35;margin:0;overflow-wrap:anywhere}
.offer-levels{display:grid;gap:8px;margin:0;padding-top:16px;border-top:1px solid var(--line)}
.offer-levels>div{display:flex;align-items:center;justify-content:space-between;gap:14px}
.offer-levels dt{font-size:.8rem;color:var(--muted)}
.offer-levels dd{margin:0}
.meter{display:inline-flex;gap:3px}
.meter i{width:12px;height:14px;border-radius:2px;border:1px solid #d5cfc6;background:transparent}
.meter i.on{background:var(--red);border-color:var(--red)}
.meter-unknown{font-size:.7rem;color:var(--muted);font-style:italic}
.offer-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-top:16px;border-top:1px solid var(--line)}
.offer-price strong{font-family:Display,Georgia,serif;font-size:2rem;line-height:1.05;letter-spacing:-.02em;font-weight:600}
.offer-currency{font-size:1.3rem}
.offer-per{font-size:.85rem;color:var(--muted)}
.offer-price small{flex:1 1 100%;font-size:.75rem;color:var(--muted)}
.offer-action{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.offer-action .btn{width:100%;padding-inline:14px;min-height:52px}
.offer-reassure{font-size:.7rem;color:var(--muted);text-align:center}
.results-none{background:white;border:1px solid var(--line);border-radius:14px;padding:26px;font-size:.95rem;line-height:1.8;color:var(--muted)}
.results-none a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.results-more{margin-top:18px}
.results-more .btn{width:100%}
.results-legal{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:.78rem}
.offer-dialog{border:0;padding:0;background:transparent;max-width:min(560px,calc(100vw - 24px));width:100%}
.offer-dialog::backdrop{background:#24282199}
.offer-dialog-inner{position:relative;background:var(--paper);border-radius:16px;padding:32px 28px}
.offer-dialog-inner h2{font-size:1.5rem;padding-right:34px}
.offer-dialog-inner p{font-size:.9375rem;line-height:1.8;color:var(--muted)}
.offer-dialog-inner .cc-close{position:absolute;top:12px;right:16px}
.offer-recap{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:12px;background:white;display:flex;align-items:center;gap:16px}
.offer-recap img{width:auto;height:34px;object-fit:contain;flex-shrink:0}
.offer-recap strong{display:block;font-family:Display,Georgia,serif;font-size:1.15rem;line-height:1.35;margin-bottom:5px}
.offer-recap-price{font-size:.9rem;color:var(--red);font-weight:600}
@media(min-width:600px){.results-head-facts{gap:10px 26px}.offer-card{grid-template-columns:1fr auto;padding:24px}.offer-identity{grid-column:1/-1}.offer-levels{grid-column:1}.offer-price{grid-column:2;flex-direction:column;align-items:flex-end;text-align:right;border-top:1px solid var(--line);min-width:150px}.offer-price small{flex:0 0 auto}.offer-action{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-end;gap:16px}.offer-action .btn{width:auto;min-width:220px}}
@media(min-width:1000px){.results-head-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:30px}.results-layout{grid-template-columns:300px minmax(0,1fr);gap:34px}.results-filters{position:sticky;top:118px}}
@media(min-width:1180px){.offer-card{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) auto 200px;align-items:center;gap:24px;padding:22px 24px}.offer-identity,.offer-levels,.offer-price,.offer-action{grid-column:auto}.offer-levels{padding-top:0;border-top:0}.offer-price{padding-top:0;border-top:0;min-width:130px}.offer-action{flex-direction:column;justify-content:center}.offer-action .btn{width:100%;min-width:0}}

/* Note moyenne dans la navigation */
.nav-score{color:var(--red);font-weight:650;white-space:nowrap}
.mobile-menu .nav-score{font-size:1rem}

/* --- Reprise du responsive : lisibilité et confort tactile --- */
.offer-flag{font-size:.75rem}
.offer-company{font-size:.75rem}
.offer-reassure{font-size:.75rem}
.offer-logo-text{font-size:.75rem}
.meter-unknown{font-size:.75rem}
.results-legal{font-size:.8125rem}
@media(max-width:999px){
  .footer-links{gap:0}
  .footer-links a{padding-block:11px;width:100%;border-bottom:1px solid #e2ded6}
  .footer-links a:last-child{border-bottom:0}
  .footer-legal{gap:0 22px;row-gap:0}
  .footer-legal a{padding-block:9px}
  .footer-contact p a,.contact-channel a{padding-block:4px;display:inline-block}
  .info-panel .text-link,.note-box .text-link{padding-block:9px}
  .cc-banner-actions .cc-open-settings{padding-block:12px}
  .filters-card>[data-reset-filters]{padding-block:10px}
}
/* Tablette : deux colonnes plutôt qu'une colonne étirée */
@media(min-width:700px) and (max-width:999px){
  
  .results-layout{grid-template-columns:1fr}
  .filters-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;align-items:start}
  .filters-card>h2,.filters-card>.small-note{grid-column:1/-1}
  .filters-card>[data-reset-filters]{grid-column:1/-1;justify-self:start}
  .level-field{margin-bottom:16px}
  .filters-sort,.filters-companies{margin-top:14px}
  .location-grid{grid-template-columns:repeat(2,1fr)}
  .article-grid{grid-template-columns:repeat(2,1fr)}
  .blog-feature{grid-template-columns:1fr 1fr;gap:28px;align-items:center}
  .blog-feature .article-cover{height:300px}
  .footer-main{grid-template-columns:1fr 1fr;gap:32px}
  .split{grid-template-columns:1fr 1fr;gap:34px}
  .editorial-image img{min-height:300px}
  .page-hero-grid{grid-template-columns:1fr 1fr;gap:30px;align-items:center}
  .hero-grid{grid-template-columns:1.05fr 1fr;gap:24px;align-items:center}
  .cta-band{padding:34px 36px}
  .reviews-layout{grid-template-columns:1fr}
}
@media(max-width:999px){.text-link{padding-block:9px}.note-box .text-link,.info-panel .text-link{padding-block:11px}}

/* Titres : le navigateur équilibre les lignes plutôt qu'une coupure imposée */
h1,h2,h3,.lead{text-wrap:balance}
.article-body p,.privacy-layout p,.form-intro,.small-note{text-wrap:initial}
.results-head h1{max-width:28ch}
.results-head .lead{max-width:70ch}

/* Filtres repliables sous 1100 px */
.filters-card>summary{display:none}
@media(max-width:1099px){
  .results-layout{display:flex;flex-direction:column}
  .results-filters{order:2}
  .results-main{order:1}
  .filters-card{padding:0}
  .filters-card>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none;padding:18px 22px;font-weight:600;font-size:1rem;min-height:56px}
  .filters-card>summary::-webkit-details-marker{display:none}
  .filters-summary-label{display:flex;align-items:center;gap:12px}
  .filters-summary-label svg{width:19px;height:19px;color:var(--red);transition:transform .25s}
  .filters-card[open]>summary{border-bottom:1px solid var(--line)}
  .filters-card[open] .filters-summary-label svg{transform:rotate(45deg)}
  .filters-card>h2{margin:20px 22px 6px}
  .filters-card>.small-note{margin:0 22px 18px}
  .filters-card>.level-field,.filters-card>.filters-sort,.filters-card>.filters-companies,.filters-card>[data-reset-filters]{margin-left:22px;margin-right:22px}
  .filters-card>[data-reset-filters]{margin-bottom:20px}
}
@media(min-width:700px) and (max-width:1099px){
  .filters-card{display:block}
  .filters-card[open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;align-items:start;padding-bottom:4px}
  .filters-card>summary,.filters-card>h2,.filters-card>.small-note,.filters-card>[data-reset-filters]{grid-column:1/-1}
}
.complaint-steps li>div{min-width:0}
.complaint-steps li>div>span{display:block}

/* --- Pages de formulaire : le formulaire ouvre la page --- */
.form-first{padding-top:18px}
.form-first>.wrap>.breadcrumb{margin-bottom:16px}
.form-first .form-layout{display:grid;gap:24px;align-items:start}
.form-first .form-head h1{font-size:clamp(1.85rem,3.4vw,2.6rem);margin-bottom:12px}
.form-first .form-head .lead{font-size:.95rem;margin-bottom:0;max-width:52ch}
.form-first .info-panel{padding:0}
.form-first .info-panel .note-box{margin-bottom:0}
.form-first .contact-channel:first-child{padding-top:0;border-top:0}

/* Rappel et contact : tout doit tenir dans une hauteur d'écran. */
.form-compact .form-card{padding:20px}
.form-compact .form-card h2{font-size:1.25rem;margin-bottom:6px}
.form-compact .form-intro{font-size:.875rem;line-height:1.6;margin-bottom:16px}
.form-compact .form-grid{gap:13px}
.form-compact .field{gap:6px}
.form-compact .field>label,.form-compact .fieldset-title{font-size:.9rem}
.form-compact .field input,.form-compact .field select{min-height:46px;padding:10px 12px;font-size:1rem}
.form-compact .field small{font-size:.75rem;line-height:1.5}
.form-compact .civility{margin:0}
.form-compact .civility>legend{font-size:.9rem;margin-bottom:6px;padding:0}
.form-compact .radio-pill{min-height:46px;padding:10px 14px;font-size:.9rem}
.form-compact .more-toggle{margin-top:2px;padding-block:9px;font-size:.85rem}
.form-compact .form-section{margin-top:16px;padding-top:14px}
.form-compact .form-section>legend{font-size:.75rem}
.form-compact .rgpd-link{font-size:.78rem;line-height:1.5;margin-bottom:8px}
.form-compact .consent-title{font-size:.85rem;line-height:1.5;margin-bottom:6px}
.form-compact .consent-group{display:flex;flex-wrap:wrap;gap:2px 24px}
.form-compact .checkbox{margin:5px 0;font-size:.85rem;line-height:1.45}
.form-compact .checkbox input{width:19px;height:19px;flex-basis:19px}
.form-compact .check-note{font-size:.75rem;line-height:1.55;margin-bottom:6px}
.form-compact .required-note{font-size:.75rem;margin:6px 0 0}
.form-compact .form-footer{margin-top:14px}
.form-compact .form-footer>.btn{min-height:52px}
.form-compact .form-footer>p{font-size:.7rem;margin-top:8px}

@media(min-width:700px){
  .form-compact .form-grid{grid-template-columns:1fr 1fr;gap:13px 18px}
  .form-compact .form-grid>.full,.form-compact .form-grid>.more-toggle,.form-compact .form-grid>.more-fields{grid-column:1/-1}
  .form-compact .more-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
  .form-compact .more-fields>.full{grid-column:1/-1}
}
@media(min-width:1000px){
  /* Le formulaire occupe la colonne de droite sur grand écran */
  .form-first .form-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,0.92fr);grid-template-areas:"head card" "aside card";grid-template-rows:auto 1fr;gap:24px 48px;align-items:start}
  .form-first .form-head{grid-area:head}
  .form-first .form-card, .form-first .form-col-right{grid-area:card;position:sticky;top:100px}
  .form-first .info-panel{grid-area:aside;align-self:start}
  .form-compact .form-card{padding:24px 26px}
}
@media(max-width:999px){
  /* Le formulaire passe avant le titre long et avant les coordonnées. */
  .form-first .form-layout{display:flex;flex-direction:column;gap:22px}
  .form-first .form-head{order:1}
  .form-first .form-card{order:2}
  .form-first .info-panel{order:3}
  .form-compact .form-head h1{font-size:1.6rem;margin-bottom:8px}
  .form-compact .form-head .lead{display:none}
  .form-compact .form-layout{gap:14px}
  .form-compact.form-first{padding-top:12px}
  .form-compact .form-card h2{font-size:1.15rem}
  .form-compact .form-intro{font-size:.82rem;margin-bottom:13px}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.form-compact.form-first{padding-top:12px}
.form-compact.form-first>.wrap>.breadcrumb{margin-bottom:12px}
.form-compact .form-grid{gap:11px 18px}
.form-compact .field input,.form-compact .field select{min-height:44px}
.form-compact .radio-pill{min-height:44px}
.form-compact .form-section{margin-top:14px;padding-top:12px}
.form-compact .consent-group{display:flex;flex-wrap:wrap;gap:0 26px}
.form-compact .check-note{margin-bottom:0;margin-top:6px}
.form-compact .form-footer{margin-top:14px}
/* Écrans peu hauts : on resserre encore pour que tout reste visible. */
@media(max-height:820px) and (min-width:700px){
  .form-compact .form-grid{gap:9px 18px}
  .form-compact .field>label{font-size:.85rem}
  .form-compact .field input,.form-compact .field select{min-height:42px;padding:9px 12px}
  .form-compact .radio-pill{min-height:42px}
  .form-compact .form-card{padding:18px 20px}
  .form-compact .form-section{margin-top:12px;padding-top:10px}
  .form-compact .form-footer>.btn{min-height:48px}
}
@media(min-width:700px){.form-compact .civility{grid-column:auto}}
@media(max-width:699px){
  .form-compact.form-first{padding-top:8px}
  .form-compact.form-first>.wrap>.breadcrumb{margin-bottom:8px;font-size:.75rem}
  .form-compact .form-layout{gap:12px}
  .form-compact .form-head h1{font-size:1.35rem;margin-bottom:0;line-height:1.2}
  .form-compact .form-card{padding:16px}
  .form-compact .form-grid{gap:9px}
  .form-compact .field{gap:5px}
  .form-compact .field>label{font-size:.85rem}
  .form-compact .field input,.form-compact .field select{min-height:42px;padding:9px 12px;font-size:.95rem}
  /* Civilité : intitulé et choix sur la même ligne */
  .form-compact .civility{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .form-compact .civility>legend{margin:0;float:left;width:auto}
  .form-compact .radio-pill{min-height:42px;padding:8px 16px}
  .form-compact .more-toggle{padding-block:7px;font-size:.8rem;min-height:38px}
  .form-compact .form-section{margin-top:12px;padding-top:10px}
  .form-compact .rgpd-link{font-size:.75rem;margin-bottom:6px}
  .form-compact .consent-title{font-size:.8rem}
  .form-compact .checkbox{margin:4px 0;font-size:.8rem}
  .form-compact .check-note{font-size:.75rem;margin-top:5px}
  .form-compact .form-footer{margin-top:12px}
  .form-compact .form-footer>.btn{min-height:50px}
}
@media(max-width:699px){
  /* Le fil d'ariane et l'intitulé du bloc de consentement sortent du flux :
     la navigation complète reste dans l'en-tête, et le bloc garde son nom accessible. */
  .form-compact.form-first>.wrap>.breadcrumb{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
  .form-compact .form-section>legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .form-compact .form-card{padding:15px}
  .form-compact .form-grid{gap:8px}
}
@media(max-width:999px){
  /* Sur mobile, le formulaire prime : le chapô passe sous le formulaire, avec l'aside. */
  .form-first .form-head .lead{display:none}
  .form-first .form-head h1{font-size:1.5rem;margin-bottom:0}
  .form-first{padding-top:12px}
  .form-first>.wrap>.breadcrumb{margin-bottom:10px}
}
@media(max-width:699px){.form-compact .form-footer>.btn{min-height:48px}.form-compact .check-note{margin-top:4px}}
@media(max-width:699px){
  .form-compact .more-toggle{flex-wrap:nowrap;gap:12px;min-height:44px}
  .form-compact .more-hint{font-size:0;flex-shrink:0}
  .form-compact .more-hint svg{width:18px;height:18px}
}

/* Formulaires longs (comparateur, réclamation) : titre en pleine largeur,
   formulaire à gauche et informations à droite. Aucune colonne vide à gauche. */
@media(min-width:1000px){
  .form-first:not(.form-compact) .form-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,0.92fr);grid-template-areas:"head card" "aside card";grid-template-rows:auto 1fr;gap:24px 48px;align-items:start}
  .form-first:not(.form-compact) .form-head{grid-area:head;max-width:none;margin-bottom:0}
  .form-first:not(.form-compact) .form-card, .form-first:not(.form-compact) .form-col-right{grid-area:card;position:sticky;top:100px}
  .form-first:not(.form-compact) .info-panel{grid-area:aside;align-self:start;padding-top:0}
  .form-first:not(.form-compact) .info-panel>h2{font-size:1.7rem;margin-top:0}
}

/* --- Comparateur par étapes --- */
.comparateur-steps-nav{display:flex;gap:8px;margin-bottom:26px;border-bottom:1px solid var(--line);padding-bottom:16px;flex-wrap:wrap}
.comparateur-steps-nav .step-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:99px;border:1px solid var(--line);background:#fdfbf8;font-size:.85rem;font-weight:600;color:var(--muted);transition:all .2s;cursor:default}
.comparateur-steps-nav .step-pill.active{background:var(--wine);border-color:var(--wine);color:white}
.comparateur-steps-nav .step-pill.active b{color:#f5c2c7}
.comparateur-steps-nav .step-pill.completed{border-color:var(--green);color:var(--green);cursor:pointer;background:#f3f8f5}
.comparateur-steps-nav .step-pill.completed b{color:var(--green)}
.comparateur-step{display:none}
.comparateur-step.active{display:block;animation:stepFadeIn .3s var(--ease)}
@keyframes stepFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.step-head{margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.step-tag{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin-bottom:4px}
.step-head h3{font-size:1.35rem;margin-bottom:6px}
.step-head .small-note{margin-bottom:0}
.step-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.step-nav .btn{min-height:50px}
.step-nav .btn-secondary{min-height:50px}
.step-recap{background:#fdfbf8;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:22px}
.step-recap h4{font-size:1rem;margin-bottom:12px;font-family:Sans,'Segoe UI',Arial,sans-serif;font-weight:700}
.recap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 18px}
.recap-grid>div{display:flex;flex-direction:column;gap:2px}
.recap-grid small{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.recap-grid strong,.recap-grid span{font-size:.875rem;font-weight:600;color:var(--ink);overflow-wrap:anywhere}

.section.home-section { padding-block: 30px; }
@media (min-width: 1000px) { .section.home-section { padding-block: 40px; } }
@media (max-width: 599px) { .section.home-section { padding-block: 24px; } }

/* 2026 Core Web Vitals (CLS): Reserve space for dynamic review widgets and forms */
.embed-block { min-height: 380px; contain: layout style; }

/* ============================================================
   2026 Standards Upgrades:
   - WCAG 2.2 Focus Indicators & Target Sizes
   - AI Semantic Search Dialog & Quick Filters
   - CRO Dynamic Personalization Welcome Toast
   ============================================================ */

/* WCAG 2.2 (SC 2.4.11 & 2.4.13): Focus Appearance 3:1 Contrast */
:focus-visible {
  outline: 3px solid var(--red) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.95) !important;
  border-radius: 4px;
}

/* WCAG 2.2 (SC 2.5.8): Minimum 24x24px Interactive Target Size */
button, input, select, textarea, a.btn, a.text-link, .tag, .checkbox input, summary {
  min-width: 24px;
  min-height: 24px;
}
@media (pointer: coarse) {
  .menu-toggle, .mobile-search-btn, .search-trigger, .btn, .step-pill, .checkbox {
    min-height: 44px;
    min-width: 44px;
  }
}

/* Header Search Trigger Button (Legacy Fallback) */
.search-trigger {
  display: none;
}

/* ============================================================
   PRD: Navigation, Search, and Readability UI Optimization
   Requirements 1, 2, 3, 4, 5
   ============================================================ */

/* --- Requirement 1 & 4: Navigation Decluttering & Mega-Menu --- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 45;
  background: rgba(248, 245, 239, 0.98);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
  padding-inline: clamp(14px, 2.5vw, 40px);
}
.header-inner {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 2vw, 32px);
}
.brand {
  flex-shrink: 0;
  width: clamp(124px, 10vw, 152px);
}
.brand img {
  width: 100%;
  height: auto;
  display: block;
}
.nav {
  display: none;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: clamp(6px, 1.1vw, 20px);
  font-size: clamp(0.79rem, 0.85vw, 0.88rem);
  font-weight: 550;
  white-space: nowrap !important;
  flex-shrink: 0;
}
@media (min-width: 1000px) {
  .nav { display: flex !important; }
}
@media (max-width: 999px) {
  .nav { display: none !important; }
}

.nav-link {
  position: relative;
  padding-block: 8px;
  padding-inline: 4px;
  color: var(--ink);
  transition: color 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: 0;
  font: inherit;
  font-size: inherit;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap !important;
  flex-shrink: 0;
  line-height: 1.2;
}
.nav-link:hover {
  color: var(--red);
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--red);
  transform: scaleX(0);
  transition: transform 0.25s var(--ease);
  transform-origin: center;
}
.nav-link:hover::after,
.nav-link[aria-current="page"]::after {
  transform: scaleX(1);
}
.nav-link[aria-current="page"] {
  color: var(--red);
  font-weight: 650;
}

.nav-score {
  font-size: 0.82em;
  color: var(--red);
  font-weight: 650;
  white-space: nowrap !important;
  display: inline-block;
  margin-left: 2px;
}

/* Header CTA Button - Guaranteed single-line */
.nav-cta-btn {
  white-space: nowrap !important;
  flex-shrink: 0;
  min-height: 40px !important;
  padding: 8px 16px !important;
  font-size: 0.815rem !important;
  font-weight: 600 !important;
  gap: 7px !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 14px rgba(176, 21, 31, 0.18);
  transition: all 0.2s var(--ease);
}
.nav-cta-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(176, 21, 31, 0.26);
}
.nav-cta-btn svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  transition: transform 0.2s var(--ease);
}
.nav-cta-btn:hover svg {
  transform: translate(2px, -2px);
}

@media (min-width: 1000px) and (max-width: 1280px) {
  .site-header {
    padding-inline: 12px;
  }
  .header-inner {
    height: 74px;
    gap: 8px;
    flex-wrap: nowrap !important;
  }
  .brand {
    width: 116px;
    flex-shrink: 0;
  }
  .nav {
    gap: 6px !important;
    font-size: 0.77rem !important;
    flex-wrap: nowrap !important;
  }
  .nav-link {
    padding-block: 6px;
    padding-inline: 2px;
    font-size: 0.77rem;
    gap: 2px;
    flex-shrink: 0;
  }
  .search-nav-pill {
    padding: 6px 8px;
    gap: 4px;
    flex-shrink: 0;
  }
  .search-nav-label {
    display: none;
  }
  .search-nav-kbd {
    font-size: 0.62rem;
    padding: 1px 3px;
  }
  .nav-score {
    display: none;
  }
  .nav-cta-btn {
    padding: 6px 10px !important;
    font-size: 0.75rem !important;
    min-height: 36px !important;
    gap: 4px !important;
    flex-shrink: 0;
  }
}

/* Mega-Menu Dropdown */
.nav-item-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  white-space: nowrap !important;
  flex-shrink: 0;
}
.nav-arrow {
  font-size: 0.7rem;
  transition: transform 0.25s var(--ease);
  color: var(--muted);
  display: inline-block;
  line-height: 1;
}
.nav-item-dropdown:hover .nav-arrow,
.nav-item-dropdown.is-open .nav-arrow {
  transform: rotate(180deg);
  color: var(--red);
}
.nav-mega-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: min(840px, 92vw);
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 24px 56px rgba(34, 36, 31, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.04);
  padding: 24px 28px 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.22s var(--ease), transform 0.22s var(--ease), visibility 0.22s;
  z-index: 70;
}
.nav-mega-dropdown::before {
  content: '';
  position: absolute;
  top: -16px;
  left: 0;
  width: 100%;
  height: 16px;
}
.nav-item-dropdown:hover .nav-mega-dropdown,
.nav-item-dropdown:focus-within .nav-mega-dropdown,
.nav-item-dropdown.is-open .nav-mega-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.mega-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.mega-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mega-col-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--red);
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid #f1ece5;
}
.mega-link {
  display: flex;
  flex-direction: column;
  padding: 8px 10px;
  border-radius: 8px;
  transition: background 0.15s, transform 0.15s;
}
.mega-link:hover {
  background: #fbf7f4;
  transform: translateX(3px);
}
.mega-link strong {
  font-size: 0.88rem;
  color: var(--ink);
  font-weight: 600;
}
.mega-link:hover strong {
  color: var(--red);
}
.mega-link small {
  font-size: 0.75rem;
  color: var(--muted);
  line-height: 1.35;
  margin-top: 2px;
}
.mega-bottom {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.825rem;
}
.mega-bottom-link {
  color: var(--ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mega-bottom-link:hover {
  color: var(--red);
}
.mega-bottom-cta {
  color: var(--red);
  font-weight: 700;
}
.mega-bottom-cta:hover {
  text-decoration: underline;
}

/* Mobile Slide-Out Drawer with 100dvh (Requirement 1 & 4) */
.header-mobile-tools {
  display: flex;
  align-items: center;
  gap: 12px;
}
@media (min-width: 1000px) {
  .header-mobile-tools { display: none !important; }
}
@media (max-width: 999px) {
  .header-mobile-tools { display: flex !important; }
}
.mobile-search-trigger {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: transparent;
  display: grid;
  place-items: center;
  color: var(--red);
}
.mobile-search-trigger svg {
  width: 20px;
  height: 20px;
}
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: var(--paper);
  min-height: 100dvh;
  max-height: 100dvh;
  height: 100dvh;
  overflow-y: auto;
  padding: 30px 24px 60px;
  animation: mobileDrawerSlide 0.35s var(--ease);
}
@keyframes mobileDrawerSlide {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
.mobile-menu-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.mobile-nav-link {
  font-size: 1.25rem;
  font-family: Display, Georgia, serif;
  padding-block: 10px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.mobile-nav-strong {
  color: var(--red);
  font-weight: 700;
}
.mobile-sub-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-left: 16px;
  border-left: 2px solid var(--rose);
  margin-block: 6px;
}
.mobile-sub-list a {
  font-size: 0.95rem;
  color: var(--muted);
  padding-block: 4px;
}
.mobile-menu-actions {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* --- Requirement 2: Unified Search Experience & Command Palette --- */
/* Single Desktop Header Pill */
.search-nav-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f1ede5;
  border: 1px solid var(--line);
  border-radius: 99px;
  padding: 8px clamp(10px, 1.2vw, 16px);
  font-size: 0.8125rem;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s var(--ease);
  white-space: nowrap !important;
  flex-shrink: 0;
}
.search-nav-pill:hover {
  background: #ffffff;
  border-color: #beafa5;
  color: var(--ink);
  transform: translateY(-1px);
}
.search-nav-icon svg {
  width: 15px;
  height: 15px;
  color: var(--red);
}
.search-nav-kbd {
  font-family: monospace;
  font-size: 0.68rem;
  font-weight: 600;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 1px 5px;
  color: var(--muted);
  box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

/* Redesigned Centralized Command Palette Modal */
/* Redesigned Centralized Command Palette Modal (2026 UX Standards) */
.search-palette-modal {
  border: 0;
  padding: 0;
  background: transparent;
  max-width: min(780px, calc(100% - 32px));
  width: 100%;
  margin: min(8vh, 60px) auto auto;
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(18, 20, 16, 0.32), 0 0 0 1px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.search-palette-modal::backdrop {
  background: rgba(18, 20, 16, 0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.search-palette-box {
  background: #ffffff;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 82vh;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

/* Header with integrated sleek input box */
.search-palette-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid #eee8df;
  background: #ffffff;
}
.search-input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #faf8f5;
  border: 1.5px solid #e2ddd3;
  border-radius: 12px;
  padding: 10px 14px;
  transition: all 0.2s ease;
}
.search-input-wrap:focus-within {
  background: #ffffff;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(176, 21, 31, 0.12);
}
.palette-search-icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.palette-search-icon svg {
  width: 20px;
  height: 20px;
  color: var(--red);
}
.palette-search-input,
input.palette-search-input,
input.palette-search-input:focus,
input.palette-search-input:focus-visible {
  flex: 1 !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-family: inherit !important;
  font-size: 1.05rem !important;
  color: var(--ink) !important;
  padding: 0 !important;
  min-height: unset !important;
  line-height: 1.4 !important;
}
.palette-search-input::-webkit-search-cancel-button,
.palette-search-input::-webkit-search-decoration,
.palette-search-input::-webkit-search-results-button,
.palette-search-input::-webkit-search-results-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}
.palette-search-input::placeholder {
  color: #9c978d;
  font-size: 0.95rem;
}
.palette-clear-btn {
  background: transparent;
  border: 0;
  color: #9c978d;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 50%;
  transition: all 0.15s;
}
.palette-clear-btn:hover {
  color: var(--ink);
  background: #ebe6dc;
}
.palette-close-btn {
  background: #f4f0e9;
  border: 1px solid #e8e3da;
  border-radius: 10px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #635e55;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}
.palette-close-btn:hover {
  background: var(--rose);
  border-color: #ecc9cb;
  color: var(--red);
}
.palette-close-cross {
  font-size: 1.15rem;
  line-height: 1;
}
.palette-close-kbd {
  font-size: 0.68rem;
  font-family: monospace;
  background: #ffffff;
  border: 1px solid #dcd7ce;
  border-radius: 4px;
  padding: 1px 5px;
  color: #7a7469;
}

/* Suggestions chips bar */
.search-palette-chips {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: #faf8f5;
  border-bottom: 1px solid #eee8df;
  overflow-x: auto;
  scrollbar-width: none;
}
.search-palette-chips::-webkit-scrollbar {
  display: none;
}
.chips-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8c867c;
  flex-shrink: 0;
}
.chips-list {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.palette-chip {
  background: #ffffff;
  border: 1px solid #e0dbd2;
  border-radius: 99px;
  padding: 5px 12px;
  font-size: 0.78rem;
  font-weight: 550;
  color: #4f4b43;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.palette-chip:hover {
  border-color: var(--red);
  color: var(--red);
  background: #fff5f5;
  transform: translateY(-1px);
}

/* Modal Body */
.search-palette-body {
  padding: 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-height: calc(82vh - 150px);
}
.search-palette-body::-webkit-scrollbar {
  width: 6px;
}
.search-palette-body::-webkit-scrollbar-thumb {
  background: #ded9d0;
  border-radius: 99px;
}

/* Welcome Dashboard (Placeholder) */
.search-welcome {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.welcome-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.welcome-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8c867c;
}
.welcome-badge {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--red);
  background: var(--rose);
  padding: 3px 8px;
  border-radius: 6px;
}
.welcome-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (max-width: 600px) {
  .welcome-grid {
    grid-template-columns: 1fr;
  }
}
.welcome-card {
  background: #faf8f5;
  border: 1px solid #eee8df;
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  cursor: pointer;
  transition: all 0.18s ease;
  width: 100%;
}
.welcome-card:hover {
  background: #ffffff;
  border-color: var(--red);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(176, 21, 31, 0.08);
}
.welcome-card-icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}
.welcome-card-content {
  flex: 1;
  min-width: 0;
}
.welcome-card-content strong {
  display: block;
  font-size: 0.88rem;
  color: var(--ink);
  margin-bottom: 2px;
}
.welcome-card-content p {
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.35;
  margin: 0;
}
.welcome-card-arrow {
  color: #b0a99e;
  font-size: 1rem;
  transition: transform 0.15s, color 0.15s;
  flex-shrink: 0;
}
.welcome-card:hover .welcome-card-arrow {
  color: var(--red);
  transform: translateX(3px);
}

/* Direct Answer Card */
.direct-answer-card {
  background: linear-gradient(180deg, #fffcfb 0%, #ffffff 100%);
  border: 1px solid #ecd8d9;
  border-left: 4px solid var(--red);
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 4px 16px rgba(176, 21, 31, 0.05);
}
.direct-answer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  gap: 10px;
}
.direct-answer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--rose);
  color: var(--red);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  border-radius: 99px;
}
.direct-answer-badge svg {
  width: 14px;
  height: 14px;
}
.direct-answer-head small {
  font-size: 0.74rem;
  color: var(--muted);
}
.direct-answer-card h4 {
  font-size: 1.05rem;
  font-family: Display, Georgia, serif;
  color: var(--wine);
  margin: 0 0 8px;
  line-height: 1.35;
}
.direct-answer-card p {
  font-size: 0.88rem;
  color: #3f3c36;
  line-height: 1.6;
  margin: 0 0 12px;
}
.direct-answer-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--red);
  text-decoration: none;
  padding: 8px 14px;
  background: #faf5f5;
  border-radius: 8px;
  transition: all 0.15s;
  width: 100%;
  box-sizing: border-box;
}
.direct-answer-link:hover {
  background: var(--rose);
}

/* Results Groups */
.search-group {
  display: flex;
  flex-direction: column;
}
.search-group-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #8c867c;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.search-group-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #eee8df;
}
.search-tag {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #f1ede5;
  color: var(--ink);
  padding: 2px 7px;
  border-radius: 4px;
  width: fit-content;
}
.search-tag-guide {
  background: #eef4ed;
  color: #276738;
}

/* Services Grid */
.search-grid-services {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}
.search-service-card {
  background: #faf8f5;
  border: 1px solid #e8e3da;
  border-radius: 12px;
  padding: 14px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
}
.search-service-card:hover {
  background: #ffffff;
  border-color: var(--red);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(176, 21, 31, 0.08);
}
.search-service-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}
.search-service-card h5 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
  margin: 2px 0 0;
}
.search-service-card p {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
}
.search-service-card .card-arrow {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #ffffff;
  border: 1px solid #e5dfd5;
  color: var(--muted);
  display: grid;
  place-items: center;
  font-size: 0.8rem;
  flex-shrink: 0;
  transition: all 0.2s;
  line-height: 1;
}
.search-service-card:hover .card-arrow {
  background: var(--red);
  border-color: var(--red);
  color: #ffffff;
  transform: translate(2px, -2px);
}

/* Guides List */
.search-list-guides {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.search-guide-row {
  background: #ffffff;
  border: 1px solid #ebe6dd;
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
}
.search-guide-row:hover {
  border-color: var(--red);
  background: #fffdfc;
  transform: translateX(4px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.guide-row-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.72rem;
}
.guide-time {
  color: var(--muted);
}
.search-guide-row h5 {
  font-size: 0.94rem;
  font-weight: 650;
  color: var(--ink);
  margin: 0;
  line-height: 1.35;
}
.search-guide-row:hover h5 {
  color: var(--red);
}
.search-guide-row p {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Empty State */
.search-empty {
  text-align: center;
  padding: 30px 20px;
}
.search-empty p {
  font-size: 1rem;
  color: var(--ink);
  margin-bottom: 8px;
}
.search-empty .search-hint {
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.6;
  max-width: 480px;
  display: block;
  margin: 0 auto;
}

/* Footer with keyboard shortcuts */
.search-palette-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  background: #f7f4ef;
  border-top: 1px solid #eee8df;
  font-size: 0.75rem;
  color: var(--muted);
}
.palette-footer-hint {
  display: flex;
  gap: 14px;
  align-items: center;
}
.palette-footer-hint kbd {
  background: #ffffff;
  border: 1px solid #dcd7ce;
  border-radius: 4px;
  padding: 1px 5px;
  font-size: 0.7rem;
  font-family: inherit;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

/* --- Requirement 3: User-Controlled Article Readability Controls --- */
.article-reader-toolbar {
  background: #fdfbf8;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  box-shadow: 0 2px 8px rgba(34, 36, 31, 0.04);
}
.reader-toolbar-head {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--wine);
  font-size: 0.88rem;
}
.reader-icon svg {
  width: 17px;
  height: 17px;
  color: var(--red);
}
.reader-controls-wrap {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.reader-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.reader-group-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.reader-btn-group {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}
.reader-btn {
  background: transparent;
  border: 0;
  padding: 4px 10px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s;
}
.reader-btn:hover {
  background: var(--rose);
  color: var(--red);
}
.reader-size-val {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
  padding-inline: 4px;
}
.reader-font-group {
  display: flex;
  background: #eeebe3;
  padding: 3px;
  border-radius: 8px;
  gap: 3px;
}
.reader-font-btn {
  background: transparent;
  border: 0;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.15s;
}
.reader-font-btn.active {
  background: #ffffff;
  color: var(--wine);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* Scalable Article Body (Requirement 3 & 4) */
.article-body {
  --reader-scale: 1;
  font-size: calc(1.09rem * var(--reader-scale));
  line-height: calc(1.85 * var(--reader-scale));
  transition: font-size 0.2s ease, line-height 0.2s ease;
}
.article-body.reader-font-serif {
  font-family: Display, 'Source Serif 4', Georgia, serif;
}
.article-body.reader-font-sans {
  font-family: Sans, 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
}

/* Container Query for Article Layout (Requirement 4) */
.article-layout {
  container-type: inline-size;
  container-name: articleLayout;
}
@container articleLayout (max-width: 820px) {
  .article-reader-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .reader-controls-wrap {
    justify-content: space-between;
  }
}

/* --- Requirement 5: Session Continuation Redesign (CRO Toast) --- */
/* Placed at Bottom-Right to completely avoid the bottom-left cookie icon */
.cro-welcome-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  left: auto;
  z-index: 55;
  max-width: 390px;
  width: calc(100% - 48px);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
  pointer-events: none;
}
.cro-welcome-toast.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (max-width: 600px) {
  .cro-welcome-toast {
    bottom: 84px;
    left: 16px;
    right: 16px;
    max-width: none;
    width: auto;
  }
}
.cro-toast-inner {
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid #e3ddd4;
  border-left: 4px solid var(--red);
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 14px 34px rgba(25, 28, 24, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
  display: flex;
  gap: 12px;
  align-items: flex-start;
  backdrop-filter: blur(12px);
  position: relative;
}
.cro-toast-badge {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--rose);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--red);
}
.cro-toast-badge svg {
  width: 19px;
  height: 19px;
}
.cro-toast-content {
  flex: 1;
  min-width: 0;
}
.cro-toast-title {
  display: block;
  font-size: 0.95rem;
  font-family: Display, Georgia, serif;
  color: var(--ink);
  margin-bottom: 2px;
}
.cro-toast-desc {
  font-size: 0.825rem;
  line-height: 1.5;
  color: var(--muted);
  margin: 0 0 10px;
}
.cro-toast-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cro-toast-cta {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border-radius: 6px;
  background: var(--red);
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 600;
  transition: background 0.2s;
}
.cro-toast-cta:hover {
  background: var(--wine);
}
.cro-toast-dismiss {
  background: transparent;
  border: 0;
  font-size: 0.78rem;
  color: var(--muted);
  cursor: pointer;
  padding: 4px;
}
.cro-toast-dismiss:hover {
  color: var(--ink);
  text-decoration: underline;
}
.cro-toast-close {
  position: absolute;
  top: 8px;
  right: 10px;
  background: transparent;
  border: 0;
  font-size: 1rem;
  color: var(--muted);
  cursor: pointer;
  padding: 2px 6px;
  line-height: 1;
}
.cro-toast-close:hover {
  color: var(--ink);
}
@media (max-width: 599px) {
  .cro-welcome-toast {
    bottom: 84px;
    left: 16px;
    right: 16px;
    width: auto;
    max-width: none;
  }
}

/* ============================================================
   PRD 2026 Next-Gen UI & Interaction Layer
   Requirements 10, 11, 12, 13, 14
   ============================================================ */

/* --- Requirement 11: Context-Aware Theming & Environmental Tokens --- */
:root {
  --context-tint: #b0151f;
  --context-tint-soft: rgba(176, 21, 31, 0.08);
  --hero-ambient-glow: radial-gradient(ellipse at 75% 35%, rgba(176, 21, 31, 0.12) 0%, transparent 68%);
}

.hero:before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--hero-ambient-glow);
  pointer-events: none;
  z-index: 1;
  transition: background 1.2s ease;
}

html.theme-evening-comfort {
  --paper: #f6f2ea;
  --ink: #1f201c;
}
html.theme-low-light {
  filter: contrast(1.08);
}

@media (prefers-color-scheme: dark) {
  html.theme-dark-auto {
    --paper: #181917;
    --white: #222420;
    --ink: #f4f2ec;
    --muted: #a6a39b;
    --line: #383a34;
    --rose: #361f23;
  }
}

/* --- Requirement 12: Native CSS Scroll-Driven Animations (120fps Compositor) --- */
@supports (animation-timeline: scroll()) {
  .reading-progress {
    animation: scrollProgressNative linear auto;
    animation-timeline: scroll(root block);
    transform-origin: left;
  }
  @keyframes scrollProgressNative {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
  }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .reveal {
      animation: viewRevealNative cubic-bezier(0.16, 1, 0.3, 1) both;
      animation-timeline: view();
      animation-range: entry 5% cover 28%;
    }
    @keyframes viewRevealNative {
      from {
        opacity: 0.1;
        transform: translateY(24px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .hero-photo, .page-hero-media img {
      animation: heroScrollScale linear both;
      animation-timeline: scroll();
      animation-range: 0px 600px;
    }
    @keyframes heroScrollScale {
      from { transform: translateY(0) scale(1); }
      to { transform: translateY(16px) scale(1.035); }
    }
  }
}

/* --- Requirement 13: State Morphing (FLIP Spatial Continuity) --- */
.search-dialog-inner {
  will-change: transform, opacity;
  transform-origin: top left;
}

/* --- Requirement 14: Intelligent Skeleton Screens & Shimmer --- */
.skeleton-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 10px 0;
}
.skeleton {
  background: linear-gradient(90deg, #edeae3 25%, #faf8f5 50%, #edeae3 75%);
  background-size: 200% 100%;
  animation: shimmerMove 1.6s infinite ease-in-out;
  border-radius: 6px;
}
@keyframes shimmerMove {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.skeleton-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px;
}
.skeleton-answer-card {
  background: #fdfcfb;
  border-left: 4px solid #ecc9cb;
}
.skeleton-badge {
  border-radius: 99px;
}
.skeleton-text {
  height: 14px;
  margin-bottom: 8px;
  border-radius: 4px;
}
.skeleton-title {
  border-radius: 6px;
}

/* --- Requirement 10: Generative UI (GenUI) Components --- */
.genui-card {
  background: #ffffff;
  border: 1px solid #e5dfd5;
  border-radius: 14px;
  padding: 22px;
  margin-bottom: 16px;
  box-shadow: 0 8px 24px rgba(34, 36, 31, 0.06);
  position: relative;
  overflow: hidden;
}
.genui-card:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--red), #821118);
}
.genui-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  flex-wrap: wrap;
  gap: 8px;
}
.genui-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fbf0f1;
  border: 1px solid #ebd0d3;
  color: var(--red);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 99px;
}
.genui-pill svg {
  width: 14px;
  height: 14px;
}
.genui-status {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--green);
  background: #eef5f1;
  padding: 3px 8px;
  border-radius: 4px;
}
.genui-card h4 {
  font-size: 1.15rem;
  margin-bottom: 14px;
  color: var(--ink);
}

/* GenUI Simulator */
.genui-controls {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 18px;
}
.genui-field-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 0.9rem;
}
.genui-field-head strong {
  color: var(--red);
  font-size: 1.05rem;
}
.genui-range {
  width: 100%;
  accent-color: var(--red);
  cursor: pointer;
  height: 6px;
  background: #ede8df;
  border-radius: 6px;
}
.genui-tier-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.genui-tier-btn, .genui-slot-btn {
  background: #fdfbf8;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 0.825rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.2s;
}
.genui-tier-btn:hover, .genui-slot-btn:hover {
  background: #ffffff;
  border-color: #beafa5;
}
.genui-tier-btn.active, .genui-slot-btn.active {
  background: var(--wine);
  color: #ffffff;
  border-color: var(--wine);
}
.genui-estimate-box {
  background: #fcfbf8;
  border: 1px solid #ece7de;
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.genui-price-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.genui-price-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.genui-price {
  font-size: 1.7rem;
  font-weight: 700;
  font-family: Display, Georgia, serif;
  color: var(--red);
  line-height: 1.1;
}
.genui-price small {
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--muted);
  font-family: Sans, Arial, sans-serif;
}
.genui-badge-ok {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--green);
}

/* GenUI Scheduler */
.genui-slot-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.genui-scheduler-form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.genui-input {
  flex: 1;
  min-width: 220px;
  background: #fdfbf8;
  border: 1px solid #b9b4aa;
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 0.95rem;
  color: var(--ink);
}
.genui-input:focus {
  outline: 2px solid var(--red);
}
.genui-scheduler-feedback {
  margin-top: 10px;
  padding: 10px 14px;
  background: #eef6f1;
  border: 1px solid #c2e0cf;
  border-radius: 6px;
  color: var(--green);
  font-size: 0.85rem;
  font-weight: 600;
}

/* GenUI Matrix */
.genui-table-wrap {
  overflow-x: auto;
  border: 1px solid #eee8df;
  border-radius: 8px;
  margin-top: 10px;
}
.genui-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.genui-table th, .genui-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid #eee8df;
}
.genui-table th {
  background: #faf7f2;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.genui-col-highlight {
  background: #fff8f8;
  color: var(--wine);
}
.genui-matrix-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

/* --- 2026 SEA & SEO Content Expansion: Key Takeaways, Mid-Article Callout & Direct Answers --- */
.takeaways-box {
  background: linear-gradient(180deg, #fffcf8 0%, #fbf6ee 100%);
  border: 1px solid #e5decb;
  border-left: 4px solid var(--wine);
  border-radius: 12px;
  padding: 22px 26px;
  margin: 24px 0 32px;
  box-shadow: 0 4px 16px rgba(93, 21, 29, 0.04);
}
.takeaways-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #ede5d7;
}
.takeaways-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: Display, Georgia, serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--wine);
}
.takeaways-badge svg {
  width: 20px;
  height: 20px;
  color: var(--red);
}
.takeaways-time {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #f0e9dc;
  padding: 4px 10px;
  border-radius: 99px;
  font-weight: 600;
}
.takeaways-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.takeaways-list li {
  position: relative;
  padding-left: 24px;
  font-size: 0.95rem;
  line-height: 1.65;
  color: #2e302b;
}
.takeaways-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--red);
  font-weight: 800;
  font-size: 0.95rem;
}

/* Mid-Article Callout */
.mid-article-callout {
  background: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.7) 0%, transparent 60%), linear-gradient(135deg, #fffbf8 0%, #f6eee5 100%);
  border: 1px solid #e3d7c5;
  border-radius: 16px;
  padding: 28px 30px;
  margin: 36px 0;
  box-shadow: 0 10px 24px rgba(93, 21, 29, 0.05);
}
.mid-callout-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.mid-callout-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--wine);
  background: var(--rose);
  padding: 5px 12px;
  border-radius: 99px;
}
.mid-callout-copy h3 {
  font-size: 1.35rem;
  margin: 6px 0 8px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.mid-callout-copy p {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 0;
}
.mid-callout-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.mid-callout-actions .btn {
  min-height: 46px;
  padding: 10px 20px;
  font-size: 0.9rem;
}

/* Direct Answer block after H2 (RAG & AI Overviews) */
.direct-answer {
  background: rgba(176, 21, 31, 0.035);
  border-left: 3px solid var(--red);
  padding: 14px 18px;
  border-radius: 0 8px 8px 0;
  font-size: 1.04rem;
  line-height: 1.75;
  color: #1f221b;
  font-weight: 500;
  margin-bottom: 20px;
}

/* Dedicated Service Pages Styling */
.service-selected-pill {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(176, 21, 31, 0.05);
  border: 1px solid rgba(176, 21, 31, 0.2);
  border-radius: 10px;
  padding: 12px 16px;
  margin-top: 6px;
}
.service-selected-pill strong {
  font-size: 1.05rem;
  color: var(--wine, #780d16);
}
.service-features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.feature-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.feature-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}
.feature-card h3 {
  font-size: 1.25rem;
  margin-top: 14px;
  margin-bottom: 10px;
}
.feature-points {
  list-style: none;
  padding: 0;
  margin: 16px 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.feature-points li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.92rem;
  color: var(--ink);
}
.feature-points li svg {
  width: 17px;
  height: 17px;
  color: var(--red);
  flex-shrink: 0;
}
.tiers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 36px;
}
.tier-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 32px 26px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.tier-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.07);
}
.tier-card.featured-tier {
  border: 2px solid var(--red);
  box-shadow: 0 10px 30px rgba(176, 21, 31, 0.12);
}
.tier-badge {
  position: absolute;
  top: -12px;
  right: 24px;
  background: var(--red);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 99px;
  box-shadow: 0 2px 8px rgba(176, 21, 31, 0.3);
}
.tier-subtitle {
  font-size: 0.95rem;
  color: var(--muted);
  margin-bottom: 16px;
}
.tier-divider {
  height: 1px;
  background: var(--line);
  margin-bottom: 20px;
}
.tier-perks {
  list-style: none;
  padding: 0;
  margin: 0 0 24px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-grow: 1;
}
.tier-perks li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.93rem;
  line-height: 1.45;
}
.tier-perks li svg {
  width: 17px;
  height: 17px;
  color: var(--red);
  flex-shrink: 0;
  margin-top: 2px;
}
.tier-action {
  margin-top: auto;
}
.tier-action .btn {
  width: 100%;
}

/* --- Home Page Enrichment: Stats & Brokerage Pillars --- */
.home-stats-strip {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
@media (min-width: 900px) {
  .home-stats-strip {
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
}
.home-stat-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 24px 20px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  transition: transform 0.2s, box-shadow 0.2s;
}
.home-stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.06);
}
.home-stat-number {
  font-family: Serif, Georgia, serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--wine);
  line-height: 1.1;
  margin-bottom: 8px;
}
.home-stat-label {
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.home-pillars-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 600px) {
  .home-pillars-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1050px) {
  .home-pillars-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.home-pillar-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
}
.home-pillar-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.06);
  border-color: #d1b4b6;
}
.home-pillar-card .icon-box {
  width: 48px;
  height: 48px;
  background: #fdf5f5;
  color: var(--red);
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
.home-pillar-card h3 {
  font-size: 1.15rem;
  margin: 0 0 10px 0;
  color: var(--ink);
  line-height: 1.35;
}
.home-pillar-card p {
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

/* --- Comparator Teaser Banner --- */
.home-comparator-banner {
  background: linear-gradient(135deg, var(--wine) 0%, #4a0a0f 100%);
  color: white;
  border-radius: 16px;
  padding: 40px 32px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  align-items: center;
  box-shadow: 0 10px 30px rgba(130, 17, 24, 0.25);
  margin-top: 10px;
}
@media (min-width: 960px) {
  .home-comparator-banner {
    grid-template-columns: 1.3fr 1fr;
    padding: 56px 48px;
  }
}
.comparator-banner-copy h2 {
  color: white;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  margin: 12px 0 16px 0;
  line-height: 1.25;
}
.comparator-banner-copy p {
  color: #f0dedf;
  font-size: 1.05rem;
  line-height: 1.55;
  margin-bottom: 24px;
}
.comparator-check-list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.comparator-check-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.95rem;
  color: #fff;
}
.comparator-check-list li svg {
  width: 18px;
  height: 18px;
  color: #ffb8be;
  flex-shrink: 0;
}
.comparator-banner-preview {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.preview-study-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  padding-bottom: 14px;
}
.preview-study-badge {
  background: var(--red);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.preview-study-price {
  font-size: 1.4rem;
  font-weight: 700;
  color: white;
}
.preview-study-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.preview-study-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.88rem;
  color: #f7e6e7;
}
.preview-study-row strong {
  color: white;
}
.preview-study-footer {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.85rem;
  color: #ffd2d5;
}

/* --- Native Reviews Showcase --- */
.native-reviews-wrap {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.reviews-score-banner {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.03);
}
.score-badge-left {
  display: flex;
  align-items: center;
  gap: 20px;
}
.score-number-big {
  font-family: Serif, Georgia, serif;
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--wine);
  line-height: 1;
}
.score-stars-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.score-stars {
  color: #e69500;
  font-size: 1.3rem;
  letter-spacing: 2px;
  line-height: 1;
}
.score-label {
  font-size: 0.9rem;
  color: var(--muted);
}
.score-guarantees {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.score-guarantee-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--ink);
  background: #fbf8f8;
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid #ebdada;
}
.score-guarantee-item svg {
  width: 15px;
  height: 15px;
  color: #1b8738;
}

.native-reviews-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
@media (min-width: 650px) {
  .native-reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1100px) {
  .native-reviews-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.review-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  transition: transform 0.2s, box-shadow 0.2s;
}
.review-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.06);
}
.review-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.review-author-info {
  display: flex;
  align-items: center;
  gap: 12px;
}
.review-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f4e8e9;
  color: var(--wine);
  font-weight: 700;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.review-author-name {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink);
  line-height: 1.25;
}
.review-author-loc {
  font-size: 0.82rem;
  color: var(--muted);
}
.review-verified-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #1b8738;
  background: #eaf7ed;
  padding: 3px 8px;
  border-radius: 12px;
  white-space: nowrap;
}
.review-verified-pill svg {
  width: 12px;
  height: 12px;
}
.review-card-rating {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.review-stars-gold {
  color: #e69500;
  font-size: 1.1rem;
  letter-spacing: 1px;
}
.review-contract-pill {
  font-size: 0.78rem;
  color: var(--wine);
  background: #f8ebeb;
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 500;
}
.review-card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink);
  margin: 0;
  line-height: 1.35;
}
.review-card-quote {
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  flex-grow: 1;
}
.review-card-footer {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #f4f0f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
  color: #8c8282;
}

/* --- Article Formatting Enhancements: Callout Boxes & Tables --- */
.callout-box {
  border-radius: 12px;
  padding: 20px 24px;
  margin: 28px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.03);
}
.callout-box.callout-tip {
  background: #f3f9f4;
  border-left: 4px solid #238636;
  border-top: 1px solid #d8ebd9;
  border-right: 1px solid #d8ebd9;
  border-bottom: 1px solid #d8ebd9;
}
.callout-box.callout-info {
  background: #f4f8fd;
  border-left: 4px solid #1f6feb;
  border-top: 1px solid #d5e5fa;
  border-right: 1px solid #d5e5fa;
  border-bottom: 1px solid #d5e5fa;
}
.callout-box.callout-warning {
  background: #fff8f2;
  border-left: 4px solid #d97706;
  border-top: 1px solid #f9e2cc;
  border-right: 1px solid #f9e2cc;
  border-bottom: 1px solid #f9e2cc;
}
.callout-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 1rem;
  margin: 0;
}
.callout-tip .callout-title { color: #1a6327; }
.callout-info .callout-title { color: #13488f; }
.callout-warning .callout-title { color: #a15504; }
.callout-box p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333;
}
.callout-box ul {
  margin: 6px 0 0 0;
  padding-left: 20px;
  font-size: 0.93rem;
  line-height: 1.55;
  color: #333;
}

.article-table-wrap {
  overflow-x: auto;
  margin: 28px 0;
  border-radius: 12px;
  border: 1px solid var(--line);
  box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}
.article-data-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.92rem;
  background: white;
}
.article-data-table th {
  background: #fbf8f8;
  color: var(--wine);
  font-weight: 700;
  padding: 14px 18px;
  border-bottom: 2px solid #ebdada;
  font-family: Sans, 'Segoe UI', Arial, sans-serif;
}
.article-data-table td {
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  line-height: 1.5;
}
.article-data-table tr:last-child td {
  border-bottom: none;
}
.article-data-table tr:hover td {
  background: #fdfbfb;
}

/* ============================================================
   Optimisations UI : Section Services Compacte, EmbedSocial, 
   Formulaires Assurance en Hero & Réseaux Sociaux
   ============================================================ */

/* --- Section 2 : Boîtes de services compactes (3 premières offres) --- */
.service-grid-compact {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
@media (min-width: 900px) {
  .service-grid-compact {
    grid-template-columns: repeat(3, 1fr);
  }
}
.service-grid-compact .service-card {
  min-height: 220px;
  padding: 22px 24px;
  border-radius: 12px;
}
.service-grid-compact .service-card > .icon-box {
  width: 44px;
  height: 44px;
  margin-bottom: 14px;
}
.service-grid-compact .service-card h3 {
  font-size: 1.35rem;
  margin-bottom: 6px;
}
.service-grid-compact .service-card p {
  font-size: 0.85rem;
  line-height: 1.55;
  margin-bottom: 16px;
  max-width: none;
}
.service-grid-compact .service-card .card-actions {
  margin-top: auto;
  gap: 8px;
}
.service-grid-compact .service-card .card-actions .btn {
  min-height: 40px;
  padding: 8px 14px;
  font-size: 0.8125rem;
}
.service-grid-compact .service-card .card-arrow {
  width: 32px;
  height: 32px;
  bottom: 20px;
  right: 20px;
}
.service-grid-compact .service-card .card-label {
  margin-top: auto;
  font-size: 0.75rem;
}
.service-grid-compact .service-card .tag {
  top: 20px;
  right: 20px;
  font-size: 0.7rem;
}

/* --- Widget EmbedSocial sur la page d'accueil --- */
.embedsocial-wrap {
  width: 100%;
  margin-top: 20px;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04);
  border: 1px solid var(--line);
  background: white;
}
.embedsocial-wrap iframe {
  width: 100%;
  min-height: 380px;
  border: 0;
  display: block;
}

/* --- Formulaires d'assurances compacts dans le hero --- */
.service-hero-section {
  padding-top: 24px;
  padding-bottom: 40px;
}
.service-preset-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--paper);
  border: 1px solid var(--line);
  margin-bottom: 8px;
}
.service-preset-badge .icon-box {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--red);
  border: 1px solid var(--line);
  flex-shrink: 0;
}
.service-preset-badge strong {
  font-size: 0.9375rem;
  color: var(--ink);
  display: block;
}
.service-preset-badge small {
  font-size: 0.75rem;
  color: var(--muted);
}
.service-hero-form .form-card {
  box-shadow: 0 10px 30px rgba(60, 40, 30, 0.06);
}

/* --- Section Réseaux Sociaux Accueil --- */
.socials-section {
  background: #fff;
}
.socials-box {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: clamp(24px, 4vw, 44px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
}
.socials-copy {
  max-width: 720px;
  margin-bottom: 28px;
}
.socials-copy h2 {
  font-size: clamp(1.8rem, 3vw, 2.3rem);
  margin: 10px 0 10px;
}
.socials-subtext {
  font-size: 0.9375rem;
  color: var(--muted);
  line-height: 1.6;
  margin-top: 8px;
}
.socials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
  gap: 14px;
}
.social-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  text-decoration: none;
  color: var(--ink);
  transition: all 0.25s var(--ease);
}
.social-card:hover {
  border-color: var(--red);
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(189, 30, 40, 0.08);
}
.social-card .social-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.social-card:hover .social-icon {
  background: var(--rose);
  border-color: var(--red);
}
.social-card.social-fb .social-icon svg { color: #1877f2; fill: #1877f2; }
.social-card.social-ig .social-icon svg { color: #e4405f; }
.social-card.social-in .social-icon svg { color: #0a66c2; fill: #0a66c2; }
.social-card.social-yt .social-icon svg { color: #ff0000; fill: #ff0000; }
.social-card.social-x .social-icon svg { color: #000000; fill: #000000; }
.social-card.social-wa .social-icon svg { color: #25d366; fill: #25d366; }
.social-card .social-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.social-card .social-meta strong {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
}
.social-card .social-meta small {
  font-size: 0.75rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.social-card .social-arrow {
  margin-left: auto;
  opacity: 0.4;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.social-card .social-arrow svg {
  width: 14px;
  height: 14px;
}
.social-card:hover .social-arrow {
  opacity: 1;
  transform: translate(2px, -2px);
  color: var(--red);
}

/* --- Petites icônes réseaux sociaux dans le footer sous le logo --- */
.footer-social-icons {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 16px;
}
.footer-social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  text-decoration: none;
  transition: all 0.2s ease;
}
.footer-social-icons a:hover {
  background: var(--red);
  border-color: var(--red);
  transform: translateY(-2px);
  color: #fff;
}
.footer-social-icons svg {
  width: 15px;
  height: 15px;
}

/* ==========================================================================
   WAVE 2 & 3: SPLIT HERO RIGHT-ALIGNED FORMS & VISUAL ASSETS
   ========================================================================== */
.split-hero-grid.form-right-layout {
  display: grid;
  gap: 32px;
  align-items: start;
}
@media (min-width: 961px) {
  .split-hero-grid.form-right-layout {
    grid-template-columns: 1.08fr 0.92fr;
    gap: 48px;
    align-items: start;
  }
  .split-hero-grid.form-right-layout .info-col-left {
    grid-column: 1;
  }
  .split-hero-grid.form-right-layout .form-col-right {
    grid-column: 2;
    position: sticky;
    top: 100px;
  }
}
@media (max-width: 960px) {
  .split-hero-grid.form-right-layout {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .split-hero-grid.form-right-layout .info-col-left {
    order: 1;
  }
  .split-hero-grid.form-right-layout .form-col-right {
    order: 2;
  }
}

.split-hero-visual {
  position: relative;
  margin: 20px 0 24px;
  border-radius: var(--radius-lg, 16px);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(13, 37, 76, 0.08);
  border: 1px solid var(--line, #e2e8f0);
  background: var(--paper, #fdfbf8);
}
.split-hero-visual img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.split-hero-visual-badge {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: rgba(13, 37, 76, 0.92);
  color: #ffffff;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.825rem;
  font-weight: 600;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   WAVE 3: STATS STRIP & PARTNER LOGOS (WARM BRAND HARMONY)
   ========================================================================== */
.stats-strip, #engagements.home-section {
  background: var(--paper, #f8f5ef) !important;
  border-top: 1px solid var(--line, #d6d2ca) !important;
  border-bottom: 1px solid var(--line, #d6d2ca) !important;
  padding: 56px 0;
  color: var(--ink, #22241f);
}
#engagements .section-head h2 {
  color: var(--ink, #22241f) !important;
}
#engagements .section-head .section-lead {
  color: var(--muted, #54534e) !important;
}
#engagements .tag {
  background: white;
  border-color: var(--line, #d6d2ca);
  color: var(--ink, #22241f);
}
.home-stats-strip, .stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-bottom: 48px;
}
.stat-card, .home-stat-card {
  background: white !important;
  border: 1px solid var(--line, #d6d2ca) !important;
  border-radius: 14px;
  padding: 24px 20px;
  text-align: center;
  backdrop-filter: none !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}
.stat-card:hover, .home-stat-card:hover {
  transform: translateY(-3px);
  border-color: rgba(176, 21, 31, 0.35) !important;
  box-shadow: 0 8px 22px rgba(176, 21, 31, 0.08);
}
.stat-num, .home-stat-number {
  color: var(--wine, #5d151d) !important;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: clamp(2.1rem, 3.2vw, 2.75rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  margin-bottom: 8px;
}
.stat-num span, .home-stat-number span {
  color: var(--red, #b0151f) !important;
  font-size: 0.7em;
  font-weight: 600;
}
.stat-label, .home-stat-label {
  color: var(--muted, #54534e) !important;
  font-size: 0.95rem;
  font-weight: 550;
  line-height: 1.45;
  margin: 0;
}

/* Partenaires */
.partners-strip {
  padding: 40px 0;
  background: var(--paper-alt, #f8f6f2);
  border-top: 1px solid var(--line, #e2e8f0);
  border-bottom: 1px solid var(--line, #e2e8f0);
}
.partners-head {
  text-align: center;
  margin-bottom: 24px;
}
.partners-tag {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted, #64748b);
  margin-bottom: 6px;
}
.partners-sub {
  font-size: 1rem;
  color: var(--ink, #0d254c);
  font-weight: 600;
  margin: 0;
}
.partners-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 32px 48px;
}
.partner-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  filter: grayscale(100%);
  opacity: 0.78;
  transition: filter 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}
.partner-logo-item:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.05);
}
.partner-logo-item img {
  max-height: 44px;
  max-width: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* ==========================================================================
   WAVE 4: 5 PILLARS SHOWCASE & DEDICATED PRODUCT PAGES
   ========================================================================== */
.five-pillars-section {
  padding: 56px 0 40px;
}
.five-pillars-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.pillar-card {
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 16px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  position: relative;
}
.pillar-card:hover, .pillar-card:focus-within {
  transform: translateY(-4px);
  border-color: var(--red, #bd1e28);
  box-shadow: 0 16px 36px rgba(13, 37, 76, 0.09);
}
.pillar-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}
.pillar-icon-box {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--paper, #fdfbf8);
  color: var(--red, #bd1e28);
  border: 1px solid var(--line, #e2e8f0);
  display: grid;
  place-items: center;
}
.pillar-icon-box svg {
  width: 24px;
  height: 24px;
}
.pillar-badge {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--paper-alt, #f8f6f2);
  color: var(--ink, #0d254c);
  border: 1px solid var(--line, #e2e8f0);
}
.pillar-title {
  font-size: 1.35rem;
  color: var(--ink, #0d254c);
  margin: 0 0 8px;
}
.pillar-price {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--red, #bd1e28);
  margin-bottom: 14px;
}
.pillar-desc {
  font-size: 0.95rem;
  color: var(--muted, #64748b);
  line-height: 1.55;
  margin-bottom: 18px;
}
.pillar-perks {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pillar-perks li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.9rem;
  color: var(--ink, #0d254c);
}
.pillar-perks svg {
  width: 16px;
  height: 16px;
  color: #157347;
  flex-shrink: 0;
  margin-top: 2px;
}
.pillar-actions {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pillar-actions .btn {
  text-align: center;
  justify-content: center;
}
.pillar-actions .text-link {
  text-align: center;
  font-size: 0.9rem;
}

/* Quick Jump Pill Bar on /assurances */
.assurances-jump-pills {
  margin: 16px 0;
}
.jump-pills-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted, #64748b);
  margin-bottom: 10px;
}
.jump-pills-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.jump-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink, #0d254c);
  text-decoration: none;
  transition: all 0.2s ease;
}
.jump-pill:hover {
  background: var(--red, #bd1e28);
  color: #ffffff;
  border-color: var(--red, #bd1e28);
}
.jump-pill svg {
  width: 14px;
  height: 14px;
}

/* Tier Card & FAQ Accordion Enhancements */
.tier-card {
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.tier-card:hover, .tier-card:focus-within {
  transform: translateY(-4px);
  border-color: var(--red, #bd1e28);
  box-shadow: 0 12px 28px rgba(13, 37, 76, 0.08);
}
.tier-badge {
  background: var(--red, #bd1e28);
  color: #ffffff;
  font-weight: 700;
}
.faq details summary {
  cursor: pointer;
  position: relative;
  transition: color 0.2s ease;
}
.faq details summary::after {
  content: '▾';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  transition: transform 0.25s ease;
}
.faq details[open] summary::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ==========================================================================
   WAVE 5: COMPARATEUR WIZARD PROGRESS BAR & RESULTS
   ========================================================================== */
.comparateur-steps-progress {
  width: 100%;
  height: 6px;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 999px;
  margin-top: 12px;
  overflow: hidden;
}
.comparateur-progress-fill {
  height: 100%;
  width: 33%;
  background: linear-gradient(90deg, #bd1e28 0%, #e02430 100%);
  border-radius: 999px;
  transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.offers-updating {
  opacity: 0.45;
  transition: opacity 0.18s ease;
}
.comp-quick-select {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.comp-quick-card {
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 12px;
  padding: 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink, #0d254c);
}
.comp-quick-card:hover, .comp-quick-card.active {
  border-color: var(--red, #bd1e28);
  background: var(--paper, #fdfbf8);
  color: var(--red, #bd1e28);
  transform: translateY(-2px);
}
.comp-quick-card svg {
  display: block;
  margin: 0 auto 6px;
  width: 22px;
  height: 22px;
}

/* ==========================================================================
   WAVE 6: EMBEDSOCIAL WRAPPER & /RAPPEL MULTISELECT
   ========================================================================== */
.embedsocial-wrapper {
  min-height: 420px;
  background: var(--paper, #fdfbf8);
  border-radius: 16px;
  padding: 24px;
  border: 1px solid var(--line, #e2e8f0);
}
.custom-multiselect {
  position: relative;
  margin-top: 0.5rem;
}
.custom-ms-trigger {
  border: 1px solid var(--line, #e2e8f0);
  padding: 12px 16px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ffffff;
  min-height: 52px;
  transition: border-color 0.2s ease;
}
.custom-ms-trigger:focus, .custom-ms-trigger:hover {
  border-color: var(--red, #bd1e28);
}
.custom-ms-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  z-index: 99;
  max-height: 260px;
  overflow-y: auto;
  border-radius: 8px;
  margin-top: 4px;
  box-shadow: 0 10px 25px rgba(13, 37, 76, 0.1);
  padding: 8px;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}
.custom-ms-dropdown.open {
  display: grid;
}
.custom-ms-option {
  margin: 0;
  padding: 6px 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.15s ease;
}
.custom-ms-option:hover {
  background: var(--paper-alt, #f8f6f2);
}

/* Location cards agency thumbnails */
.location-agency-thumb {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 16px;
  border: 1px solid var(--line, #e2e8f0);
}

/* ==========================================================================
   WAVE 7: BLOG CATEGORIES, INFOGRAPHICS & DARK THEME
   ========================================================================== */
.blog-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 32px;
  align-items: center;
}
.blog-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--paper, #fdfbf8);
  border: 1px solid var(--line, #e2e8f0);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink, #0d254c);
  cursor: pointer;
  transition: all 0.2s ease;
}
.blog-cat-pill:hover, .blog-cat-pill.active {
  background: var(--ink, #0d254c);
  color: #ffffff;
  border-color: var(--ink, #0d254c);
}
.blog-cat-pill .pill-count {
  font-size: 0.75rem;
  opacity: 0.8;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
}
.blog-cat-pill:not(.active) .pill-count {
  background: rgba(0, 0, 0, 0.08);
}
.blog-inline-search {
  max-width: 320px;
  margin-left: auto;
}

/* Article Reader Bar & Dark Mode */
.article-infographic {
  margin: 36px 0;
  text-align: center;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line, #e2e8f0);
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(13, 37, 76, 0.06);
}
.article-infographic img {
  width: 100%;
  height: auto;
  display: block;
}
.article-infographic figcaption {
  padding: 12px 18px;
  font-size: 0.875rem;
  color: var(--muted, #64748b);
  background: var(--paper, #fdfbf8);
  border-top: 1px solid var(--line, #e2e8f0);
  font-style: italic;
}
.article-data-table {
  width: 100%;
  border-collapse: collapse;
  margin: 28px 0;
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(13, 37, 76, 0.04);
}
.article-data-table th, .article-data-table td {
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line, #e2e8f0);
  font-size: 0.95rem;
}
.article-data-table th {
  background: var(--paper-alt, #f8f6f2);
  color: var(--ink, #0d254c);
  font-weight: 700;
}
.article-data-table tr:last-child td {
  border-bottom: 0;
}

.article-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--line, #e2e8f0);
  background: var(--paper, #fdfbf8);
  color: var(--ink, #0d254c);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.article-theme-toggle:hover {
  border-color: var(--ink, #0d254c);
}
.theme-icon-moon {
  display: none;
}
html[data-article-theme="dark"] .theme-icon-sun {
  display: none;
}
html[data-article-theme="dark"] .theme-icon-moon {
  display: inline;
}

/* Dark Theme Variables & Adjustments */
html[data-article-theme="dark"] {
  --paper: #111c2d;
  --paper-alt: #162236;
  --ink: #f1f5f9;
  --muted: #cbd5e1;
  --line: rgba(255, 255, 255, 0.14);
  background-color: #0b1320 !important;
  color: #f1f5f9 !important;
}
html[data-article-theme="dark"] body {
  background-color: #0b1320 !important;
  color: #f1f5f9 !important;
}
html[data-article-theme="dark"] .site-header,
html[data-article-theme="dark"] .site-footer {
  background-color: #0b1320 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}
html[data-article-theme="dark"] .article-content,
html[data-article-theme="dark"] .article-sidebar,
html[data-article-theme="dark"] .toc,
html[data-article-theme="dark"] .takeaways-box,
html[data-article-theme="dark"] .callout-box,
html[data-article-theme="dark"] .article-data-table,
html[data-article-theme="dark"] .article-data-table th,
html[data-article-theme="dark"] .article-data-table td,
html[data-article-theme="dark"] .article-reader-toolbar {
  background-color: #162236 !important;
  color: #f1f5f9 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}
html[data-article-theme="dark"] .article-data-table th {
  background-color: #1a2a44 !important;
  color: #ffffff !important;
}
html[data-article-theme="dark"] .faq details {
  background: #162236 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}
html[data-article-theme="dark"] .faq details summary {
  color: #f1f5f9 !important;
}
html[data-article-theme="dark"] .toc ul li a {
  color: #cbd5e1 !important;
}
html[data-article-theme="dark"] .toc ul li a.active,
html[data-article-theme="dark"] .toc ul li a:hover {
  color: #60a5fa !important;
  font-weight: 700;
}







/* ==========================================================================
   WAVE 9: SERVICE PAGES REFINEMENTS & INLINE HERO FACTS
   ========================================================================== */
.service-hero-facts-inline {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px 18px !important;
  margin: 18px 0 20px !important;
  font-size: 0.875rem !important;
  font-weight: 550 !important;
  color: var(--ink, #0d254c) !important;
}
.service-hero-facts-inline .fact-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  white-space: nowrap !important;
}
.service-hero-facts-inline .fact-item svg {
  width: 17px !important;
  height: 17px !important;
  color: #157347 !important;
  flex-shrink: 0 !important;
}
.service-hero-facts-inline .fact-dot {
  color: var(--line, #cbd5e1) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
}

/* Service Hero Split Layout: Pinned at top */
.service-hero-section .split-hero-grid.form-right-layout {
  display: grid;
  align-items: start !important;
  gap: 32px;
}
@media (min-width: 961px) {
  .service-hero-section .split-hero-grid.form-right-layout {
    grid-template-columns: 1.05fr 0.95fr !important;
    gap: 40px !important;
    align-items: start !important;
  }
  .service-hero-section .info-col-left {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }
  .service-hero-section .form-col-right {
    grid-column: 2 !important;
    position: sticky !important;
    top: 96px !important;
    align-self: start !important;
    margin-top: 0 !important;
  }
  .service-hero-section .form-card {
    margin-top: 0 !important;
  }
}

.split-hero-visual {
  position: relative;
  margin: 16px 0 10px;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(13, 37, 76, 0.08);
  border: 1px solid var(--line, #e2e8f0);
  background: var(--paper, #fdfbf8);
  max-height: 380px;
}
.split-hero-visual img {
  width: 100%;
  height: 100%;
  max-height: 380px;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

/* Feature 2x2 Grid */
.service-features-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 28px !important;
  margin-top: 32px !important;
}
@media (max-width: 820px) {
  .service-features-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}
.service-features-grid .feature-card {
  padding: 32px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid var(--line, #e2e8f0);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
}
.service-features-grid .feature-card:hover {
  transform: translateY(-4px);
  border-color: var(--red, #bd1e28);
  box-shadow: 0 14px 34px rgba(13, 37, 76, 0.08);
}
.service-features-grid .feature-card h3 {
  font-size: 1.35rem;
  margin-top: 14px;
  margin-bottom: 12px;
  color: var(--ink, #0d254c);
}
.service-features-grid .feature-card p {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--muted, #54534e);
}
.service-features-grid .feature-points {
  margin-top: auto;
  border-top: 1px solid var(--line, #e2e8f0);
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Tier Price Tag */
.tier-price-tag {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 8px 0 16px;
}
.tier-price-val {
  font-size: 1.85rem;
  font-weight: 700;
  color: var(--red, #bd1e28);
  font-family: Display, Georgia, serif;
}
.tier-price-sub {
  font-size: 0.875rem;
  color: var(--muted, #64748b);
  font-weight: 550;
}

/* FAQ Details Enhancement */
.faq details {
  border: 1px solid var(--line, #e2e8f0) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  background: #ffffff !important;
  transition: all 0.2s ease !important;
}
.faq details:hover {
  border-color: #cbd5e1 !important;
}
.faq details[open] {
  border-color: var(--red, #bd1e28) !important;
  background: var(--paper, #fdfbf8) !important;
  box-shadow: 0 4px 16px rgba(13, 37, 76, 0.05) !important;
}
.faq details summary {
  font-size: 1.05rem !important;
  font-weight: 650 !important;
  color: var(--ink, #0d254c) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  cursor: pointer !important;
  list-style: none !important;
}
.faq details summary::-webkit-details-marker {
  display: none !important;
}
.faq details summary::after {
  content: '+' !important;
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: var(--paper-alt, #f8f6f2) !important;
  color: var(--red, #bd1e28) !important;
  font-size: 1.2rem !important;
  font-weight: 600 !important;
  flex-shrink: 0 !important;
  transition: transform 0.25s ease, background 0.25s ease !important;
}
.faq details[open] summary::after {
  content: '−' !important;
  background: var(--red, #bd1e28) !important;
  color: #ffffff !important;
}
.faq details p {
  margin-top: 14px !important;
  margin-bottom: 0 !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  color: var(--muted, #54534e) !important;
}

/* Discrete Cookie Button */
.cookies-settings {
  position: fixed !important;
  left: 20px !important;
  bottom: 20px !important;
  z-index: 60 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 1px solid var(--line, #cbd5e1) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  padding: 9px !important;
}
.cookies-settings:hover {
  transform: scale(1.08) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16) !important;
}
.cookies-settings img {
  width: 24px !important;
  height: 24px !important;
}

/* ==========================================================================
   WAVE 10: STRICT SINGLE-LINE TAGS & CENTERED SECTION HEADS
   ========================================================================== */
.tag,
.partners-tag,
.pillar-tag,
.pillar-badge,
.tier-badge,
.step-tag,
.visual-badge,
.page-hero-badge,
.tag-light {
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: max-content !important;
  flex-shrink: 0 !important;
}

/* Centered section heads: stack tag above title on its own line */
.section-head.section-head-center,
.section-head-center,
.section-head[style*="text-align:center"],
.section-head[style*="text-align: center"] {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  margin-inline: auto !important;
  margin-bottom: 32px !important;
  gap: 10px !important;
  max-width: 780px !important;
}

.section-head.section-head-center .tag,
.section-head-center .tag,
.section-head[style*="text-align:center"] .tag,
.section-head[style*="text-align: center"] .tag {
  align-self: center !important;
  margin-bottom: 8px !important;
  white-space: nowrap !important;
}

.section-head.section-head-center h2,
.section-head-center h2,
.section-head[style*="text-align:center"] h2,
.section-head[style*="text-align: center"] h2 {
  margin-bottom: 8px !important;
  text-align: center !important;
}

.section-head.section-head-center .lead,
.section-head-center .lead,
.section-head[style*="text-align:center"] .lead,
.section-head[style*="text-align: center"] .lead {
  margin-inline: auto !important;
  text-align: center !important;
}

/* ==========================================================================
   WAVE 10 & 11: UNIVERSAL SINGLE-LINE TAGS, BADGES & SECTION HEADS
   ========================================================================== */
.tag,
.partners-tag,
.pillar-tag,
.pillar-badge,
.tier-badge,
.step-tag,
.step-pill,
.visual-badge,
.split-hero-visual-badge,
.page-hero-badge,
.tag-light,
.takeaways-badge,
.mid-callout-badge,
.service-preset-badge,
.score-guarantee-item,
.hero-fact-bullet,
.fixed-service-label,
.comparator-tag,
.cro-toast-badge,
.direct-answer-badge,
.review-verified-pill,
.review-contract-pill {
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.2 !important;
  width: auto !important;
  max-width: max-content !important;
  flex-shrink: 0 !important;
}

/* Ensure any tag inside a standard section-head container is stacked on line 1 above h2 */
.section-head > div {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.section-head > div > .tag {
  margin-bottom: 12px !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-self: flex-start !important;
}

.section-head > .tag {
  white-space: nowrap !important;
  display: inline-flex !important;
  align-self: flex-start !important;
  margin-bottom: 12px !important;
  flex-shrink: 0 !important;
}

/* Centered section heads: stack tag above title on its own line */
.section-head.section-head-center,
.section-head-center,
.section-head[style*="text-align:center"],
.section-head[style*="text-align: center"] {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  margin-inline: auto !important;
  margin-bottom: 32px !important;
  gap: 10px !important;
  max-width: 780px !important;
}

.section-head.section-head-center .tag,
.section-head-center .tag,
.section-head[style*="text-align:center"] .tag,
.section-head[style*="text-align: center"] .tag {
  align-self: center !important;
  margin-bottom: 8px !important;
  white-space: nowrap !important;
}

.section-head.section-head-center h2,
.section-head-center h2,
.section-head[style*="text-align:center"] h2,
.section-head[style*="text-align: center"] h2 {
  margin-bottom: 8px !important;
  text-align: center !important;
}

.section-head.section-head-center .lead,
.section-head-center .lead,
.section-head[style*="text-align:center"] .lead,
.section-head[style*="text-align: center"] .lead {
  margin-inline: auto !important;
  text-align: center !important;
}

/* Split copy tag placement (Cabinet, Home) */
.split-copy > .tag {
  display: inline-flex !important;
  white-space: nowrap !important;
  margin-bottom: 12px !important;
  align-self: flex-start !important;
}

/* Page hero facts & bullets in single horizontal line */
.hero-facts {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px 22px !important;
  margin-top: 18px !important;
}

.hero-facts span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  white-space: nowrap !important;
  font-size: 0.875rem !important;
  font-weight: 550 !important;
  color: var(--ink, #0d254c) !important;
}

.hero-facts span svg {
  width: 17px !important;
  height: 17px !important;
  color: #157347 !important;
  flex-shrink: 0 !important;
}

/* Comparateur step header */
.step-head {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  margin-bottom: 20px !important;
}

.step-head .step-tag {
  margin-bottom: 8px !important;
  white-space: nowrap !important;
  display: inline-flex !important;
}


/* ==========================================================================
   HERO SPLIT GRID FIX: PIN BOTH COLUMNS TO ROW 1 SIDE-BY-SIDE
   ========================================================================== */
.split-hero-grid.form-right-layout,
.service-hero-section .split-hero-grid.form-right-layout,
#assurances-hero .split-hero-grid.form-right-layout {
  display: grid !important;
  align-items: start !important;
  gap: 32px;
}

@media (min-width: 961px) {
  .split-hero-grid.form-right-layout,
  .service-hero-section .split-hero-grid.form-right-layout,
  #assurances-hero .split-hero-grid.form-right-layout {
    display: grid !important;
    grid-template-columns: 1.05fr 0.95fr !important;
    grid-template-rows: auto !important;
    grid-template-areas: none !important;
    gap: 40px !important;
    align-items: start !important;
  }

  .split-hero-grid.form-right-layout .info-col-left,
  .service-hero-section .info-col-left,
  #assurances-hero .info-col-left {
    grid-column: 1 !important;
    grid-row: 1 !important;
    grid-area: auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-self: start !important;
  }

  .split-hero-grid.form-right-layout .form-col-right,
  .service-hero-section .form-col-right,
  #assurances-hero .form-col-right {
    grid-column: 2 !important;
    grid-row: 1 !important;
    grid-area: auto !important;
    position: sticky !important;
    top: 96px !important;
    align-self: start !important;
    margin-top: 0 !important;
    z-index: 10 !important;
  }

  .split-hero-grid.form-right-layout .form-card,
  .service-hero-section .form-card,
  #assurances-hero .form-card {
    margin-top: 0 !important;
    position: relative !important;
    top: 0 !important;
    grid-area: auto !important;
  }
}

@media (max-width: 960px) {
  .split-hero-grid.form-right-layout,
  .service-hero-section .split-hero-grid.form-right-layout,
  #assurances-hero .split-hero-grid.form-right-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }
  .split-hero-grid.form-right-layout .info-col-left,
  .service-hero-section .info-col-left,
  #assurances-hero .info-col-left {
    order: 1 !important;
  }
  .split-hero-grid.form-right-layout .form-col-right,
  .service-hero-section .form-col-right,
  #assurances-hero .form-col-right {
    order: 2 !important;
  }
}


/* ==========================================================================
   WAVE 12: 2-ROW COMPACT FORMS & REMOVAL OF TIER COSTS
   ========================================================================== */
.form-row-line1 {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) auto minmax(0, 1.2fr) !important;
  gap: 10px !important;
  align-items: start !important;
  margin-bottom: 2px !important;
}

.form-row-line2 {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  align-items: start !important;
  margin-bottom: 2px !important;
}

/* Service preset banner in single line, centralized */
.service-preset-row {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.service-preset-badge {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  width: 100% !important;
  padding: 10px 16px !important;
  border-radius: 8px !important;
  background: var(--paper, #fffcf8) !important;
  border: 1px solid var(--line, #e2e8f0) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

.service-preset-badge .icon-box {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  background: #fff !important;
  color: var(--red, #bd1e28) !important;
  border: 1px solid var(--line, #e2e8f0) !important;
  flex-shrink: 0 !important;
}

.service-preset-badge .icon-box svg {
  width: 16px !important;
  height: 16px !important;
}

.service-preset-badge .service-preset-text {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
}

.service-preset-badge strong {
  font-size: 0.9375rem !important;
  color: var(--ink, #0d254c) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  display: block !important;
}

.service-preset-badge small {
  font-size: 0.75rem !important;
  color: var(--muted, #64748b) !important;
  display: block !important;
  line-height: 1.3 !important;
}

/* Row 1 of inputs: Civility + Nom complet */
.form-row-identity {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 12px !important;
  align-items: start !important;
  margin-bottom: 2px !important;
}

.form-row-identity .civility,
.form-row-identity .field {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  gap: 0 !important;
  min-width: 0 !important;
  -webkit-margin-start: 0 !important;
  -webkit-margin-end: 0 !important;
  -webkit-padding-before: 0 !important;
  -webkit-padding-start: 0 !important;
  -webkit-padding-end: 0 !important;
  -webkit-padding-after: 0 !important;
}

.form-row-identity .civility legend,
.form-row-identity .field label {
  display: block !important;
  float: none !important;
  width: auto !important;
  height: 20px !important;
  min-height: 20px !important;
  max-height: 20px !important;
  line-height: 20px !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--ink, #0d254c) !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

.form-row-identity .civility .radio-row {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.form-row-identity .civility .radio-pill {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
  border: 1px solid var(--line, #e2e8f0) !important;
  background: var(--paper, #fdfbf8) !important;
}

.form-row-identity .field input {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 0 14px !important;
  font-size: 0.9375rem !important;
  border-radius: 8px !important;
  border: 1px solid var(--line, #e2e8f0) !important;
  background: var(--paper, #fdfbf8) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  width: 100% !important;
  line-height: normal !important;
}

/* Row 2 of inputs: Phone + Email */
.form-row-contact {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  align-items: start !important;
  margin-bottom: 2px !important;
}

.form-row-contact .field {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  gap: 0 !important;
  min-width: 0 !important;
}

.form-row-contact .field label {
  display: block !important;
  height: 20px !important;
  min-height: 20px !important;
  max-height: 20px !important;
  line-height: 20px !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--ink, #0d254c) !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

.form-row-contact .field input {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 0 14px !important;
  font-size: 0.9375rem !important;
  border-radius: 8px !important;
  border: 1px solid var(--line, #e2e8f0) !important;
  background: var(--paper, #fdfbf8) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  width: 100% !important;
  line-height: normal !important;
}

.service-preset-col {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  margin: 0 !important;
}

.service-preset-label {
  display: block !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--ink, #0d254c) !important;
  margin-bottom: 6px !important;
  white-space: nowrap !important;
  height: 20px !important;
  line-height: 20px !important;
}

.civility {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.civility legend {
  height: 20px !important;
  line-height: 20px !important;
  margin-bottom: 6px !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--ink, #0d254c) !important;
  padding: 0 !important;
}

.civility .radio-row {
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin: 0 !important;
}

.civility .radio-pill {
  height: 44px !important;
  padding: 0 9px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
}

.form-row-line1 .field,
.form-row-line2 .field {
  margin: 0 !important;
}

.form-row-line1 .field label,
.form-row-line2 .field label {
  height: 20px !important;
  line-height: 20px !important;
  margin-bottom: 6px !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--ink, #0d254c) !important;
}

.form-row-line1 .field input,
.form-row-line1 .field select,
.form-row-line2 .field input,
.form-row-line2 .field select {
  height: 44px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

/* Hide tier price tags on service pages */
.tier-price-tag {
  display: none !important;
}

@media (max-width: 680px) {
  .form-row-line1 {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .form-row-line2 {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .form-row-identity {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .form-row-contact {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
}
