
:root {
  --bg: #f6f0e8;
  --surface: #fffdf9;
  --surface-soft: #efe6dc;
  --surface-rose: #f2dfdc;
  --ink: #241d25;
  --muted: #756b70;
  --primary: #553248;
  --primary-strong: #382333;
  --primary-soft: #e9d9e2;
  --accent: #c79a55;
  --accent-soft: #f1dfbd;
  --sage: #7c8c78;
  --line: #dfd2c8;
  --danger: #a44b3f;
  --shadow: 0 22px 70px rgba(54, 35, 51, .13);
  --shadow-soft: 0 12px 34px rgba(54, 35, 51, .08);
  --radius-xl: 36px;
  --radius-lg: 28px;
  --radius-md: 19px;
  --radius-sm: 12px;
  --container: 1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;background-image:url("assets/paw-pattern.svg");background-attachment:fixed}
button,input,select{font:inherit} a{color:inherit}.container{width:min(calc(100% - 32px),var(--container));margin-inline:auto}img{max-width:100%;height:auto;display:block}
.site-header{position:sticky;top:0;z-index:20;backdrop-filter:blur(20px);background:rgba(246,240,232,.88);border-bottom:1px solid rgba(223,210,200,.8)}
.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:13px;text-decoration:none}.brand-mark{width:47px;height:47px;border-radius:16px;display:block;box-shadow:0 8px 22px rgba(85,50,72,.17);overflow:hidden}.brand-mark img{width:100%;height:100%}.brand strong,.brand small{display:block}.brand strong{font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1}.brand small{color:var(--muted);font-size:10px;margin-top:5px;letter-spacing:.04em}.main-nav{display:flex;gap:26px}.main-nav a{text-decoration:none;color:var(--muted);font-size:13px;font-weight:800;position:relative}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--accent);transition:.2s}.main-nav a:hover{color:var(--primary)}.main-nav a:hover:after{right:0}
.button{appearance:none;border:0;border-radius:999px;padding:14px 23px;background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(85,50,72,.18);transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 15px 32px rgba(85,50,72,.25)}.button-small{padding:10px 17px;font-size:12px}.button-secondary{background:linear-gradient(135deg,#d5ab68,#bd8844);color:#2c211c}.button-ghost{background:transparent;color:var(--primary);border:1px solid var(--line);box-shadow:none}.full-width{width:100%}.text-link{color:var(--primary);font-weight:800;text-underline-offset:5px}
.eyebrow{margin:0 0 13px;text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:800;color:var(--primary)}
.hero{padding:80px 0 72px;background:radial-gradient(circle at 82% 16%,rgba(199,154,85,.19),transparent 28%),linear-gradient(180deg,#fffaf5 0%,rgba(246,240,232,.96) 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(390px,.98fr);gap:64px;align-items:center}.hero h1,.section-heading h2,.method-grid h2,.transparency-card h2,.partner-card h2,.guide-hero h1{font-family:Georgia,"Times New Roman",serif;line-height:1.01;margin:0;letter-spacing:-.035em}.hero h1{font-size:clamp(47px,6.6vw,78px);max-width:760px}.hero-lead{font-size:18px;color:var(--muted);max-width:680px;margin:24px 0 0}.hero-actions{margin-top:31px;display:flex;align-items:center;gap:20px}.hero-trust{display:flex;flex-wrap:wrap;gap:10px 17px;margin-top:26px;color:var(--muted);font-size:12px}.hero-trust span{padding:7px 11px;border:1px solid rgba(223,210,200,.9);border-radius:999px;background:rgba(255,253,249,.6)}.catlover-note{display:flex;align-items:center;gap:9px;margin-top:22px;color:var(--primary);font-size:12px;font-weight:700}.catlover-note span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--surface-rose);color:var(--primary)}
.hero-visual{position:relative;min-height:570px}.hero-art-frame{position:relative;padding:20px;border-radius:46px;background:rgba(255,253,249,.62);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow);transform:rotate(1.2deg)}.hero-cat-art{width:100%;border-radius:34px}.art-label{position:absolute;padding:10px 14px;border-radius:999px;background:#fffdf9;color:var(--primary);font-size:11px;font-weight:800;box-shadow:var(--shadow-soft);border:1px solid var(--line)}.art-label-top{top:38px;left:-18px}.art-label-bottom{right:-15px;bottom:90px}.ghost-card{position:absolute;left:-46px;right:32px;bottom:-26px;background:linear-gradient(135deg,var(--primary),#2f2130);color:#fff;border-radius:25px;padding:19px 22px;display:grid;grid-template-columns:66px 1fr;gap:17px;align-items:center;box-shadow:0 22px 44px rgba(48,31,45,.25);transform:rotate(-1.2deg)}.ghost-avatar{width:66px;height:66px;border-radius:20px}.ghost-card p{margin:0;font-size:13px}.ghost-label{color:#edc77f!important;font-weight:800;font-size:10px!important;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px!important}
.calculator-section{padding:96px 0}.section-heading{max-width:800px;margin-bottom:37px}.section-heading.narrow{max-width:670px}.section-heading h2,.partner-card h2,.method-grid h2,.transparency-card h2{font-size:clamp(36px,5vw,54px)}.section-heading>p:last-child{color:var(--muted);margin-bottom:0}.title-paw{color:var(--accent);font-size:.55em;vertical-align:top}.calculator-layout{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(330px,.66fr);gap:30px;align-items:start}.calculator-card,.results-card{background:rgba(255,253,249,.96);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.calculator-card{padding:8px 35px 35px}.form-step{padding:32px 0;border-bottom:1px solid var(--line)}.form-step:last-of-type{border-bottom:0}.step-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:25px}.step-heading h3{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.15}.step-heading p{margin:5px 0 0;color:var(--muted)}.step-number{flex:0 0 auto;width:38px;height:38px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--primary),var(--primary-strong));font-weight:800;box-shadow:0 8px 18px rgba(85,50,72,.16)}
.form-grid{display:grid;gap:18px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:8px;font-size:12px;font-weight:800}.field input,.field select{width:100%;min-height:50px;border:1px solid var(--line);border-radius:14px;background:#fffdfb;padding:0 14px;color:var(--ink);outline:none}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(85,50,72,.1)}.input-with-unit{display:flex;align-items:center;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fffdfb}.input-with-unit:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(85,50,72,.1)}.input-with-unit input{border:0;border-radius:0;box-shadow:none!important}.input-with-unit span{padding-right:13px;white-space:nowrap;color:var(--muted);font-size:11px}.toggle-card{border:1px solid var(--line);border-radius:20px;padding:19px;background:linear-gradient(145deg,#fffdf9,#f7f0e8)}.toggle-card+.toggle-card{margin-top:16px}.toggle-row{display:flex;align-items:center;gap:16px;cursor:pointer}.toggle-row>span:first-child{flex:1}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{margin-top:3px;color:var(--muted)}.toggle-row input{position:absolute;opacity:0;pointer-events:none}.toggle-ui{flex:0 0 auto;width:50px;height:29px;border-radius:999px;background:#cfc4c9;position:relative;transition:.2s}.toggle-ui:after{content:"";position:absolute;width:23px;height:23px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 7px rgba(0,0,0,.2)}.toggle-row input:checked+.toggle-ui{background:var(--primary)}.toggle-row input:checked+.toggle-ui:after{transform:translateX(21px)}.nested-fields,.recurring-grid{margin-top:18px}.form-actions{padding-top:29px;display:flex;gap:12px}
.results-card{padding:31px;background:linear-gradient(160deg,#553248 0%,#322231 68%,#211820 100%);color:#fff;border-color:rgba(255,255,255,.12);overflow:hidden;position:relative}.results-card:before{content:"";position:absolute;inset:-40px -20px auto auto;width:180px;height:180px;border-radius:50%;background:rgba(199,154,85,.13)}.results-sticky{position:sticky;top:110px}.results-card .eyebrow{color:#efc880}.results-card h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,7vw,68px);line-height:1;margin:0;color:#fff}.result-caption{color:rgba(255,255,255,.65);margin:8px 0 25px}.result-summary{display:grid;gap:12px;padding:20px 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}.result-summary>div{display:flex;justify-content:space-between;gap:20px}.result-summary span{color:rgba(255,255,255,.63);font-size:12px}.breakdown{margin-top:23px}.breakdown-heading{display:flex;justify-content:space-between;align-items:center}.breakdown-heading h3{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:21px}.breakdown-heading span{color:rgba(255,255,255,.55);font-size:11px}.breakdown-item{margin-top:14px}.breakdown-row{display:flex;justify-content:space-between;gap:18px;font-size:11px;margin-bottom:6px}.breakdown-row span:last-child{color:rgba(255,255,255,.62)}.progress{height:8px;border-radius:999px;background:rgba(255,255,255,.11);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d9ad69,#f0d6a7)}.ghost-tip{margin:24px 0;display:grid;grid-template-columns:36px 1fr;gap:12px;padding:16px;border-radius:17px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}.ghost-tip p{margin:0;font-size:12px;color:rgba(255,255,255,.79)}.privacy-note{text-align:center;color:rgba(255,255,255,.52);font-size:10px;margin-bottom:0}
.partner-section{padding:0 0 92px}.partner-card{background:linear-gradient(135deg,#4e3045,#352432);color:#fff;border-radius:34px;padding:42px;display:flex;justify-content:space-between;gap:30px;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.partner-card:after{content:"♡";position:absolute;right:25%;top:-82px;font-family:"Fraunces";font-size:210px;color:rgba(255,255,255,.035)}.partner-card .eyebrow{color:#efc880}.partner-card p:last-child{color:rgba(255,255,255,.72);max-width:700px}.content-section{padding:90px 0}.content-section.muted{background:rgba(239,230,220,.86)}.advice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.advice-card{background:rgba(255,253,249,.96);border:1px solid var(--line);border-radius:22px;padding:29px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.advice-card:after{content:"";position:absolute;right:-18px;bottom:-24px;width:88px;height:88px;border:18px solid var(--surface-rose);border-radius:50%;opacity:.65}.advice-card>span{color:var(--accent);font-weight:800}.advice-card h3{margin:18px 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:24px}.advice-card p{color:var(--muted);margin:0}.method-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:center}.method-grid>div:first-child p:last-child{color:var(--muted)}.formula-card{background:var(--surface);border:1px solid var(--line);border-radius:29px;padding:29px;box-shadow:var(--shadow-soft)}.formula-card p{margin:16px 0 7px}.formula-card p:first-child{margin-top:0}.formula-card code{display:block;white-space:normal;padding:14px 15px;border-radius:12px;background:#f4ece4;color:var(--primary-strong)}.transparency-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}.transparency-card>p{color:var(--muted);margin:0}
.site-footer{padding:52px 0;color:rgba(255,255,255,.75);background:#251a23}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:22px 60px}.footer-grid strong{color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:22px}.footer-grid p{margin-bottom:0}.footer-grid>div:nth-child(2){display:grid;gap:7px}.footer-grid a{color:#fff}.footer-note{grid-column:1/-1;font-size:11px}
.hidden{display:none!important}.is-disabled{opacity:.45;pointer-events:none}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);padding:12px 18px;border-radius:999px;background:#241d25;color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:40}.toast.visible{opacity:1;transform:translate(-50%,0)}
.medical-notice{display:grid;gap:4px;margin-bottom:20px;padding:17px 18px;border:1px solid rgba(199,154,85,.45);border-radius:17px;background:rgba(199,154,85,.11);font-size:12px}.medical-notice span,.source-note{color:var(--muted)}.source-note{margin:16px 0 0;font-size:10px}.cat-profiles{display:grid;gap:18px}.cat-profile-card{border:1px solid var(--line);border-radius:21px;background:#fbf7f1;overflow:hidden}.cat-profile-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;background:linear-gradient(90deg,rgba(85,50,72,.08),rgba(199,154,85,.07));border-bottom:1px solid var(--line)}.cat-profile-title{display:flex;align-items:center;gap:12px}.cat-profile-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,var(--primary),var(--primary-strong));color:#fff}.cat-profile-header h4{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:18px}.cat-profile-header small{display:block;color:var(--muted)}.profile-monthly-badge{padding:7px 10px;border-radius:999px;background:#fffdf9;color:var(--primary);border:1px solid var(--line);font-size:11px;font-weight:800;white-space:nowrap}.cat-profile-body{padding:19px}.health-context{margin-top:18px}.health-context>strong{display:block;margin-bottom:9px;font-size:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-chip{position:relative;display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fffdf9;cursor:pointer;font-size:11px}.check-chip input{accent-color:var(--primary)}.profile-costs{margin-top:18px}.profile-costs-heading{margin:0 0 10px;font-size:12px}.profile-help{margin:10px 0 0;color:var(--muted);font-size:10px}
.guides-preview{padding-top:24px}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.guide-card{display:flex;flex-direction:column;min-height:390px;padding:18px;border:1px solid var(--line);border-radius:28px;background:rgba(255,253,249,.97);box-shadow:var(--shadow-soft);overflow:hidden;transition:transform .25s,box-shadow .25s}.guide-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.guide-card-art{width:100%;height:185px;object-fit:cover;border-radius:20px;margin-bottom:19px}.guide-card h3{margin:14px 8px 10px;font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1.08}.guide-card p{color:var(--muted);margin:0 8px 24px}.guide-card a{margin:auto 8px 5px;color:var(--primary);font-weight:800;text-underline-offset:4px}.guide-tag{width:fit-content;margin-left:8px;padding:6px 10px;border-radius:999px;background:var(--surface-rose);color:var(--primary);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.guides-actions{margin-top:28px}
.guide-hero{padding:76px 0 55px;background:radial-gradient(circle at 87% 12%,rgba(199,154,85,.2),transparent 30%),linear-gradient(180deg,#fffaf5 0%,var(--bg) 100%);overflow:hidden}.guide-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:60px;align-items:center}.guide-hero h1{max-width:850px;font-size:clamp(44px,6.5vw,69px)}.guide-hero p:last-child{max-width:760px;margin-top:20px;color:var(--muted);font-size:17px}.guide-hero-art{padding:13px;border-radius:34px;background:rgba(255,253,249,.66);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);transform:rotate(1deg)}.guide-hero-art img{width:100%;border-radius:25px}.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:34px;align-items:start;padding:52px 0 90px}.guide-content,.guide-sidebar>*{border:1px solid var(--line);border-radius:25px;background:rgba(255,253,249,.97)}.guide-content{padding:38px;box-shadow:var(--shadow-soft)}.guide-content h2{margin-top:42px;font-family:Georgia,"Times New Roman",serif;font-size:37px;line-height:1.1}.guide-content h2:first-child{margin-top:0}.guide-content h3{margin-top:28px}.guide-content p,.guide-content li{color:var(--muted)}.guide-content ul{padding-left:20px}.guide-highlight{margin:28px 0;padding:22px;border-left:4px solid var(--accent);border-radius:0 15px 15px 0;background:rgba(199,154,85,.11)}.guide-sidebar{position:sticky;top:108px;display:grid;gap:18px}.ad-slot,.product-box{padding:24px}.ad-slot{min-height:230px;display:grid;place-items:center;text-align:center;background:linear-gradient(145deg,#f3e9e5,#f7efe5)!important;border-style:dashed!important}.ad-slot:before{content:"♡";display:block;margin:auto auto 13px;font-family:"Fraunces";font-size:40px;color:var(--primary)}.ad-kicker{display:block;color:var(--primary);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;margin-bottom:8px}.ad-slot strong,.product-box strong{display:block;margin-bottom:7px;font-family:Georgia,"Times New Roman",serif;font-size:20px}.ad-slot small,.product-box p{color:var(--muted)}.product-box{box-shadow:var(--shadow-soft)}.selection-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--surface-rose);color:var(--primary);margin-bottom:12px}.product-box a{display:inline-flex;margin-top:12px;color:var(--primary);font-weight:800}.product-list{display:grid;gap:12px;margin-top:16px}.product-item{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbf7f1;position:relative;padding-left:36px}.product-item:before{content:"✦";position:absolute;left:14px;top:14px;color:var(--accent)}.product-item span{display:block;font-size:11px;color:var(--muted)}.disclosure{margin-top:29px;padding:17px 18px;border-radius:14px;background:var(--surface-soft);font-size:11px;color:var(--muted)}.guides-index{padding:62px 0 90px}
@media(max-width:980px){.main-nav{display:none}.hero-grid,.calculator-layout,.method-grid,.transparency-card,.guide-hero-grid{grid-template-columns:1fr}.hero-visual{max-width:650px;margin:auto}.ghost-card{left:10px;right:10px}.results-sticky{position:static}.advice-grid{grid-template-columns:1fr}.guide-layout{grid-template-columns:1fr}.guide-sidebar{position:static}.guide-hero-art{max-width:520px}}
@media(max-width:720px){.container{width:min(calc(100% - 22px),var(--container))}.site-header .button-small{display:none}.header-inner{min-height:72px}.hero{padding-top:56px}.hero h1{font-size:47px}.hero-actions,.form-actions,.partner-card{align-items:stretch;flex-direction:column}.hero-actions .button,.hero-actions .text-link{text-align:center}.hero-visual{min-height:auto;padding-bottom:100px}.hero-art-frame{padding:10px;border-radius:29px}.hero-cat-art{border-radius:23px}.art-label-top{left:7px;top:20px}.art-label-bottom{right:7px;bottom:60px}.ghost-card{bottom:18px;grid-template-columns:54px 1fr;padding:16px}.ghost-avatar{width:54px;height:54px}.calculator-card,.results-card{border-radius:23px}.calculator-card{padding:4px 18px 24px}.two-cols,.three-cols,.checkbox-grid{grid-template-columns:1fr}.step-heading h3{font-size:22px}.partner-card{padding:29px}.footer-grid{grid-template-columns:1fr}.footer-note{grid-column:1}.guide-grid{grid-template-columns:1fr}.guide-card{min-height:0}.guide-content{padding:26px 21px}.guide-hero{padding-top:54px}.guide-hero h1{font-size:44px}.cat-profile-header{align-items:flex-start}.guide-card-art{height:auto}}


/* Production hardening and accessibility */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 14px;border-radius:10px;background:#fff;color:var(--primary-strong);font-weight:800;transform:translateY(-160%);transition:transform .15s;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select):focus-visible{outline:3px solid #e8b85f;outline-offset:3px}
.toggle-row input:focus-visible + .toggle-ui{outline:3px solid #e8b85f;outline-offset:3px}
.check-chip:has(input:focus-visible){outline:3px solid #e8b85f;outline-offset:2px}
.button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.calculator-disclaimer{padding:14px 16px;border-left:4px solid var(--accent);border-radius:0 12px 12px 0;background:var(--accent-soft);color:var(--primary-strong)!important;font-size:13px}
.privacy-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center;margin-top:28px;padding:19px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft)}
.privacy-choice strong{font-family:Georgia,"Times New Roman",serif;font-size:18px}.privacy-choice p{margin:4px 0 0;color:var(--muted);font-size:12px}.remember-toggle{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;cursor:pointer}.remember-toggle input{width:20px;height:20px;accent-color:var(--primary)}
.text-button{grid-column:1/-1;justify-self:start;border:0;padding:0;background:transparent;color:var(--primary);text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:800;cursor:pointer}
.source-links{font-size:12px}.source-links a{font-weight:800;text-underline-offset:3px}
.guide-card-art{margin:0 0 18px;border-radius:18px;overflow:hidden;background:var(--surface-soft)}.guide-card-art img{width:100%;height:190px;object-fit:cover}.guide-card h2,.guide-card h3{font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.16}
.ad-slot-wide{margin-top:30px}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;padding-top:24px;color:var(--muted);font-size:12px}.breadcrumb a{text-underline-offset:3px}.article-meta{font-size:12px!important;color:var(--primary)!important;font-weight:800}.footer-brand{color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:22px;text-decoration:none}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 24px}.footer-links a{color:#fff}.legal-hero{padding:64px 0 36px;background:linear-gradient(180deg,#fffaf5,var(--bg))}.legal-hero h1,.empty-state h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(40px,6vw,66px);line-height:1.03;margin:0}.legal-hero p:last-child{max-width:760px;color:var(--muted)}.legal-layout{padding:28px 0 84px}.legal-content{max-width:860px;padding:36px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.legal-content h2{margin-top:34px;font-family:Georgia,"Times New Roman",serif;font-size:30px}.legal-content h2:first-child{margin-top:0}.legal-content p,.legal-content li,.legal-content dd{color:var(--muted)}.legal-list{display:grid;gap:10px}.legal-list>div{display:grid;grid-template-columns:220px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.legal-list dt{font-weight:800}.legal-list dd{margin:0}.legal-todo{display:inline-block;padding:5px 9px;border-radius:999px;background:#ffe1bf;color:#7c3b00;font-weight:800}.launch-warning{padding:18px;border:1px solid #e1a256;border-radius:16px;background:#fff3df}.launch-warning p{margin-bottom:0}.empty-state{min-height:65vh;display:grid;place-items:center;text-align:center;padding:70px 0}.empty-state img{margin:0 auto 18px}.empty-state p{color:var(--muted)}
.input-invalid{border-color:#a44b3f!important;box-shadow:0 0 0 3px rgba(164,75,63,.12)!important}.field-error{color:#8c3127;font-size:11px;font-weight:700}
@media(max-width:720px){.privacy-choice{grid-template-columns:1fr}.remember-toggle{justify-self:start}.legal-content{padding:25px 20px}.legal-list>div{grid-template-columns:1fr;gap:4px}.footer-links{grid-template-columns:1fr}.guide-card-art img{height:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


/* Contrast and compact mobile refinements */
.field input,.field select,.input-with-unit,.check-chip{border-color:#9b858e}
.toggle-ui{background:#8f7882}
:where(a,button,input,select):focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--primary)}
.toggle-row input:focus-visible + .toggle-ui{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--primary)}
.check-chip:has(input:focus-visible){outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--primary)}
.advice-card>span{color:var(--primary)}
.progress-native{display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.11)}
.progress-native::-webkit-progress-bar{background:rgba(255,255,255,.11);border-radius:999px}.progress-native::-webkit-progress-value{background:linear-gradient(90deg,#e4bc72,#ca9650);border-radius:999px}.progress-native::-moz-progress-bar{background:linear-gradient(90deg,#e4bc72,#ca9650);border-radius:999px}
@media(max-width:720px){.hero-visual{min-height:0;padding-bottom:0;margin-top:22px}.hero-art-frame{display:none}.ghost-card{position:relative;left:auto;right:auto;bottom:auto;transform:none}.calculator-section{padding-top:70px}}

.field input:invalid,.field select:invalid{border-color:#a44b3f;box-shadow:0 0 0 3px rgba(164,75,63,.12)}


/* Launch V3: FAQ, installable icon and legal ready state */
.faq-section { background: #fbf7f2; }
.faq-list { display: grid; gap: 12px; max-width: 860px; }
.faq-list details { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); padding: 0 20px; box-shadow: 0 8px 24px rgba(63, 39, 53, .05); }
.faq-list summary { cursor: pointer; list-style: none; padding: 19px 36px 19px 0; font-weight: 800; color: var(--primary-strong); position: relative; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 25px; color: var(--accent); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0 0 20px; color: var(--muted); }
.launch-warning.launch-ready { border-color: rgba(53, 119, 86, .35); background: rgba(53, 119, 86, .08); }
@media (max-width: 720px) { .faq-list details { padding-inline: 16px; } }


/* ---------- V4 : confiance éditoriale et préparation monétisation ---------- */
.footer-grid-v4 {
  grid-template-columns: minmax(260px, 1.3fr) minmax(170px, .7fr) minmax(180px, .8fr);
  align-items: start;
}
.footer-links-v4 strong {
  color: #f3d9b0;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.trust-content > p:first-child,
.source-intro {
  font-size: 18px;
  color: var(--ink);
}
.trust-lead {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 22px;
  align-items: center;
  margin-bottom: 28px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(145deg, #fffaf5, #f3e7e7);
}
.trust-lead img {
  width: 96px;
  height: 96px;
  object-fit: contain;
}
.trust-lead strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  color: var(--primary-strong);
}
.trust-lead p {
  margin: 7px 0 0;
}
.source-card,
.contact-card {
  margin: 22px 0;
  padding: 23px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fffaf5;
}
.source-card h2 {
  margin: 8px 0 10px !important;
  font-size: 25px !important;
}
.source-card p {
  margin: 0 0 10px;
}
.source-type,
.author-kicker {
  display: inline-block;
  color: var(--primary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.trust-preview {
  background: linear-gradient(180deg, #fffaf5, #f7f0e8);
}
.trust-preview-grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 48px;
  align-items: center;
}
.trust-preview h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 50px);
  line-height: 1.08;
}
.trust-preview p:last-child {
  color: var(--muted);
}
.trust-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.trust-link-grid a {
  display: grid;
  gap: 5px;
  min-height: 132px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transition: transform .2s ease, border-color .2s ease;
}
.trust-link-grid a:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
}
.trust-link-grid strong {
  color: var(--primary-strong);
}
.trust-link-grid span {
  color: var(--muted);
  font-size: 12px;
}
.author-box {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 18px;
  margin-top: 38px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(145deg, #fffaf5, #f2e6e5);
}
.author-box img {
  width: 62px;
  height: 62px;
}
.author-box h2 {
  margin: 3px 0 7px !important;
  font-size: 24px !important;
}
.author-box p {
  margin: 5px 0;
  font-size: 13px;
}
.article-sources {
  padding-top: 8px;
  border-top: 1px solid rgba(85, 50, 72, .12);
}
.sidebar-cta {
  padding: 23px;
  border: 1px solid var(--line);
  border-radius: 25px;
  background: linear-gradient(145deg, #553248, #38232f);
  color: white;
  box-shadow: var(--shadow);
}
.sidebar-cta strong {
  display: block;
  margin: 7px 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
}
.sidebar-cta p {
  color: rgba(255,255,255,.76);
  font-size: 12px;
}
.sidebar-cta .ad-kicker {
  color: #f3d9b0;
}
.sidebar-cta .button {
  margin-top: 8px;
  background: var(--accent);
  color: #2d1d24;
}
code {
  padding: 2px 5px;
  border-radius: 5px;
  background: #f2e8e0;
  color: var(--primary-strong);
  font-size: .9em;
}
[hidden] {
  display: none !important;
}

@media (max-width: 900px) {
  .footer-grid-v4,
  .trust-preview-grid {
    grid-template-columns: 1fr;
  }
  .trust-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  .trust-lead,
  .author-box {
    grid-template-columns: 1fr;
  }
  .trust-link-grid {
    grid-template-columns: 1fr;
  }
  .trust-link-grid a {
    min-height: 0;
  }
}


/* ---------- V5 : recommandations et affiliation configurable ---------- */
.budget-recommendations {
  padding-top: 18px;
  background: linear-gradient(180deg, rgba(255,250,245,.2), rgba(239,230,220,.72));
}
.recommendation-heading { max-width: 850px; }
.partner-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.partner-product {
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,253,249,.98);
  box-shadow: var(--shadow-soft);
}
.partner-marker {
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  background: var(--surface-rose);
  color: var(--primary);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.partner-product h3 {
  margin: 17px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--primary-strong);
  font-size: 23px;
  line-height: 1.12;
}
.partner-product p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.partner-product-footer {
  display: grid;
  gap: 7px;
  margin-top: auto;
  padding-top: 20px;
}
.partner-link {
  width: fit-content;
  color: var(--primary);
  font-weight: 800;
  text-underline-offset: 4px;
}
.partner-link-neutral::after { content: "  →"; }
.partner-product-footer small {
  color: var(--muted);
  font-size: 10px;
}
.commercial-disclosure,
.partner-panel-disclosure {
  margin-top: 18px;
  padding: 13px 15px;
  border: 1px solid rgba(199,154,85,.35);
  border-radius: 13px;
  background: rgba(199,154,85,.1);
  color: var(--muted);
  font-size: 11px;
}
.partner-list { display: grid; gap: 11px; margin-top: 16px; }
.partner-product-compact {
  min-height: 0;
  padding: 15px;
  border-radius: 14px;
  box-shadow: none;
  background: #fbf7f1;
}
.partner-product-compact h3 { margin: 10px 0 5px; font-size: 18px; }
.partner-product-compact p { font-size: 11px; }
.partner-product-compact .partner-product-footer { padding-top: 10px; }
.partner-panel > a:last-child { margin-top: 16px; }

@media(max-width:900px){
  .partner-product-grid { grid-template-columns: 1fr; }
  .partner-product { min-height: 0; }
}


/* ---------- V6 : résultat partageable, imprimable et contrôlé ---------- */
.result-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 18px;
}
.result-actions .button:first-child {
  grid-column: 1 / -1;
}
.result-actions .button {
  min-height: 46px;
  padding: 11px 14px;
  font-size: 12px;
}
.button-soft {
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
}
.button-soft:hover {
  background: rgba(255,255,255,.17);
  color: #fff;
}
.completeness-card {
  margin-top: 23px;
  padding: 17px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.06);
}
.completeness-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.completeness-kicker {
  display: block;
  margin-bottom: 3px;
  color: #efc880;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.completeness-heading h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}
.completeness-heading > strong {
  flex: 0 0 auto;
  padding: 6px 8px;
  border-radius: 999px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.completeness-heading > strong.is-complete {
  background: rgba(141,199,163,.18);
  color: #c8efd6;
}
.completeness-heading > strong.is-partial {
  background: rgba(239,200,128,.15);
  color: #f5dcae;
}
.completeness-list {
  display: grid;
  gap: 9px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.completeness-list li {
  display: grid;
  grid-template-columns: 25px 1fr;
  gap: 9px;
  align-items: center;
}
.completeness-list strong,
.completeness-list small {
  display: block;
}
.completeness-list strong {
  color: #fff;
  font-size: 11px;
}
.completeness-list small {
  margin-top: 1px;
  color: rgba(255,255,255,.56);
  font-size: 9px;
}
.completeness-icon {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
}
.is-complete .completeness-icon {
  background: rgba(141,199,163,.18);
  color: #c8efd6;
}
.is-missing .completeness-icon {
  background: rgba(239,200,128,.15);
  color: #f5dcae;
}
.double-count-warning {
  margin: 13px 0 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(239,200,128,.12);
  color: #f5dcae;
  font-size: 9px;
}
.print-report {
  display: none;
}

@media (max-width: 420px) {
  .result-actions {
    grid-template-columns: 1fr;
  }
  .result-actions .button:first-child {
    grid-column: auto;
  }
  .completeness-heading {
    display: grid;
  }
  .completeness-heading > strong {
    width: fit-content;
  }
}

@media print {
  @page {
    size: A4;
    margin: 14mm;
  }

  html,
  body {
    background: #fff !important;
  }

  body > *:not(.print-report),
  body > main,
  body > header,
  body > footer,
  body > .toast {
    display: none !important;
  }

  .print-report {
    display: block !important;
    color: #241c20;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10.5pt;
  }

  .print-report-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 14px;
    border-bottom: 2px solid #553248;
  }

  .print-report-header h1 {
    margin: 3px 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 25pt;
    color: #553248;
  }

  .print-report-header p {
    margin: 0;
  }

  .print-brand {
    color: #9b6e3e;
    font-size: 9pt;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .print-totals {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin: 17px 0 22px;
  }

  .print-totals > div {
    padding: 12px;
    border: 1px solid #d9cfc7;
    border-radius: 9px;
  }

  .print-totals span,
  .print-totals strong {
    display: block;
  }

  .print-totals span {
    margin-bottom: 5px;
    color: #6d6065;
    font-size: 8.5pt;
  }

  .print-totals strong {
    color: #553248;
    font-size: 15pt;
  }

  .print-report section {
    margin-top: 20px;
    break-inside: avoid;
  }

  .print-report h2 {
    margin: 0 0 9px;
    color: #553248;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 15pt;
  }

  .print-report table {
    width: 100%;
    border-collapse: collapse;
  }

  .print-report th,
  .print-report td {
    padding: 7px 8px;
    border-bottom: 1px solid #ddd4ce;
    text-align: left;
  }

  .print-report th {
    background: #f4ece6;
    color: #553248;
    font-size: 8.5pt;
  }

  .print-report th:nth-child(n+2),
  .print-report td:nth-child(n+2) {
    text-align: right;
  }

  .print-note {
    margin-top: 22px;
    padding: 12px 14px;
    border-left: 4px solid #c79a55;
    background: #faf5f0;
  }

  .print-note p {
    margin: 4px 0 0;
  }

  .print-report footer {
    display: flex !important;
    justify-content: space-between;
    gap: 20px;
    margin-top: 24px;
    padding-top: 10px;
    border-top: 1px solid #d9cfc7;
    color: #786c71;
    font-size: 7.5pt;
  }
}


/* ---------- V7 : parcours rapide et mode détaillé ---------- */
.calculator-mode-picker {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
  gap: 28px;
  align-items: center;
  margin: -4px 0 28px;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 25px;
  background:
    radial-gradient(circle at 92% 8%, rgba(199,154,85,.15), transparent 25%),
    linear-gradient(145deg, #fffdf9, #f4e8e5);
  box-shadow: var(--shadow-soft);
}
.mode-picker-copy h3 {
  margin: 0;
  max-width: 450px;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--primary-strong);
  font-size: clamp(23px, 3vw, 32px);
  line-height: 1.12;
}
.mode-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.mode-choice {
  position: relative;
  min-height: 115px;
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 12px;
  align-items: center;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: rgba(255,255,255,.82);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.mode-choice:hover {
  transform: translateY(-2px);
  border-color: rgba(85,50,72,.35);
  box-shadow: 0 12px 28px rgba(85,50,72,.09);
}
.mode-choice.is-active {
  border-color: var(--primary);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(85,50,72,.08), 0 14px 32px rgba(85,50,72,.1);
}
.mode-choice-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--surface-soft);
  font-size: 18px;
}
.mode-choice.is-active .mode-choice-icon {
  background: var(--primary);
  color: #fff;
}
.mode-choice strong,
.mode-choice small {
  display: block;
}
.mode-choice strong {
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}
.mode-choice small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}
.mode-choice-badge {
  position: absolute;
  top: 9px;
  right: 9px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(199,154,85,.16);
  color: #7a5428;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.quick-mode-notice {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(199,154,85,.11);
  color: var(--muted);
}
.quick-mode-notice > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(199,154,85,.18);
}
.quick-mode-notice p {
  margin: 0;
  font-size: 11px;
}
.quick-expense-grid {
  display: grid;
  gap: 12px;
}
.quick-expense-card {
  display: grid;
  grid-template-columns: 43px minmax(0, 1fr) minmax(145px, .44fr);
  gap: 14px;
  align-items: center;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, #fffdfb, #faf5ef);
}
.quick-expense-icon {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--primary);
  font-size: 19px;
}
.quick-expense-copy strong,
.quick-expense-copy small {
  display: block;
}
.quick-expense-copy strong {
  color: var(--primary-strong);
}
.quick-expense-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
}
.quick-input {
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
.quick-input:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(85,50,72,.09);
}
.quick-input input {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0 8px 0 13px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  outline: 0;
}
.quick-input > span {
  padding-right: 11px;
  white-space: nowrap;
  color: var(--muted);
  font-size: 9px;
}
.quick-adoption-cost {
  margin-top: 17px;
  padding: 17px;
  border: 1px dashed rgba(85,50,72,.27);
  border-radius: 17px;
  background: #fffaf5;
}
.quick-adoption-cost p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 10px;
}
.detailed-mode-link {
  width: 100%;
  margin-top: 18px;
  padding: 12px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.detailed-mode-link:hover {
  background: var(--surface-soft);
}
.calculator-mode-picker + .calculator-layout {
  margin-top: 0;
}

@media (max-width: 900px) {
  .calculator-mode-picker {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .calculator-mode-picker {
    padding: 18px;
    border-radius: 21px;
  }
  .mode-options {
    grid-template-columns: 1fr;
  }
  .mode-choice {
    min-height: 92px;
  }
  .quick-expense-card {
    grid-template-columns: 41px 1fr;
  }
  .quick-input {
    grid-column: 1 / -1;
  }
}


/* ---------- V9 : Ghost, mascotte premium ---------- */
.brand-mark {
  border-radius: 17px;
  border: 1px solid rgba(210, 163, 92, .42);
  background:
    radial-gradient(circle at 50% 30%, rgba(255,255,255,.95), transparent 58%),
    #f4e9e2;
}
.brand-mark img {
  object-fit: contain;
  transform: scale(1.04);
}

.hero-art-frame {
  min-height: 535px;
  display: grid;
  place-items: end center;
  overflow: hidden;
  padding: 12px 18px 0;
  background:
    radial-gradient(circle at 52% 30%, rgba(255,255,255,.98), transparent 36%),
    radial-gradient(circle at 75% 75%, rgba(199,154,85,.16), transparent 30%),
    linear-gradient(145deg, rgba(255,253,249,.92), rgba(235,219,214,.8));
}
.hero-art-frame::after {
  content: "";
  position: absolute;
  left: 17%;
  right: 17%;
  bottom: 19px;
  height: 38px;
  border-radius: 50%;
  background: rgba(55,35,47,.14);
  filter: blur(18px);
  z-index: 0;
}
.hero-cat-art {
  position: relative;
  z-index: 1;
  width: min(100%, 520px);
  height: 520px;
  object-fit: contain;
  object-position: center bottom;
  border-radius: 0;
  filter: drop-shadow(0 20px 24px rgba(55,35,47,.16));
}
.art-label {
  z-index: 3;
  backdrop-filter: blur(10px);
  background: rgba(255,253,249,.9);
}
.ghost-card {
  grid-template-columns: 78px 1fr;
  border: 1px solid rgba(239,200,128,.18);
}
.ghost-avatar {
  width: 78px;
  height: 78px;
  object-fit: contain;
  border-radius: 22px;
  background:
    radial-gradient(circle, rgba(255,255,255,.2), transparent 65%);
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.18));
}

.ghost-tip {
  grid-template-columns: 82px 1fr;
  align-items: center;
  min-height: 102px;
  overflow: hidden;
}
.ghost-mood-image {
  width: 82px;
  height: 82px;
  object-fit: contain;
  filter: drop-shadow(0 9px 12px rgba(0,0,0,.18));
  transition: opacity .18s ease, transform .18s ease;
}
.ghost-mood-image.is-changing {
  opacity: 0;
  transform: translateY(4px) scale(.96);
}

.guide-card-art.ghost-guide-art {
  height: 205px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.95), transparent 42%),
    linear-gradient(145deg, #f8f0eb, #eee0dc);
  border: 1px solid rgba(85,50,72,.08);
}
.guide-card-art.ghost-guide-art img {
  width: 100%;
  height: 205px;
  object-fit: contain;
  padding: 6px 12px 0;
  filter: drop-shadow(0 12px 14px rgba(55,35,47,.12));
}
.guide-hero-art {
  min-height: 390px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 38%, rgba(255,255,255,.98), transparent 42%),
    linear-gradient(145deg, #f9f2ec, #eadbd7);
}
.guide-hero-art img {
  width: 100%;
  height: 375px;
  object-fit: contain;
  border-radius: 0;
  filter: drop-shadow(0 17px 20px rgba(55,35,47,.14));
}

.author-box img,
.trust-lead img {
  object-fit: contain;
  border-radius: 18px;
  background: #f8efe9;
  border: 1px solid rgba(85,50,72,.08);
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 34px;
  align-items: center;
}
.faq-ghost-figure {
  margin: 0;
  padding: 16px 16px 14px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 38%, rgba(255,255,255,.98), transparent 44%),
    linear-gradient(145deg, #f9f2ec, #eadbd7);
  box-shadow: var(--shadow-soft);
  text-align: center;
}
.faq-ghost-figure img {
  width: 100%;
  height: 285px;
  object-fit: contain;
  filter: drop-shadow(0 13px 16px rgba(55,35,47,.13));
}
.faq-ghost-figure figcaption {
  margin: 4px 10px 5px;
  color: var(--muted);
  font-size: 11px;
}

@media (max-width: 980px) {
  .faq-layout {
    grid-template-columns: 1fr;
  }
  .faq-ghost-figure {
    max-width: 420px;
    margin-inline: auto;
  }
}

@media (max-width: 720px) {
  .hero-art-frame {
    display: grid !important;
    min-height: 390px;
    padding-top: 4px;
    border-radius: 30px;
  }
  .hero-cat-art {
    width: 100%;
    height: 375px;
  }
  .hero-visual {
    padding-bottom: 112px;
  }
  .ghost-card {
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 15px;
    grid-template-columns: 62px 1fr;
    transform: rotate(-.5deg);
  }
  .ghost-avatar {
    width: 62px;
    height: 62px;
  }
  .ghost-tip {
    grid-template-columns: 66px 1fr;
  }
  .ghost-mood-image {
    width: 66px;
    height: 66px;
  }
  .guide-hero-art {
    min-height: 310px;
  }
  .guide-hero-art img {
    height: 300px;
  }
  .faq-ghost-figure img {
    height: 235px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ghost-mood-image {
    transition: none;
  }
}


/* ---------- V10 : hero Ghost raffiné ---------- */
.hero-visual {
  isolation: isolate;
}
.art-label {
  border: 1px solid rgba(85,50,72,.10);
  box-shadow: 0 8px 20px rgba(55,35,47,.08);
  color: var(--primary-strong);
  font-weight: 800;
}
.art-label-top {
  left: 2px;
  top: 28px;
}
.art-label-bottom {
  right: -2px;
  bottom: 90px;
}
.ghost-card {
  width: min(92%, 500px);
  margin: -34px auto 0;
  position: relative;
  z-index: 4;
  grid-template-columns: 68px 1fr;
  gap: 15px;
  padding: 16px 20px;
  border-radius: 22px;
  transform: none;
  background:
    linear-gradient(135deg, rgba(74,43,64,.98), rgba(54,31,46,.98));
  border: 1px solid rgba(239,200,128,.18);
  box-shadow: 0 18px 36px rgba(55,35,47,.20);
}
.ghost-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,.055),
    transparent 42%
  );
  pointer-events: none;
}
.ghost-avatar {
  width: 68px;
  height: 68px;
  padding: 3px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 50% 32%, rgba(255,255,255,.26), transparent 60%),
    rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  filter: drop-shadow(0 7px 10px rgba(0,0,0,.18));
}
.ghost-card .ghost-label {
  color: #efc880;
  letter-spacing: .11em;
}
.ghost-card div p:not(.ghost-label) {
  margin-top: 5px;
  color: rgba(255,255,255,.91);
  line-height: 1.5;
}
.hero-art-frame {
  box-shadow:
    inset 0 0 0 1px rgba(85,50,72,.06),
    0 20px 48px rgba(55,35,47,.10);
}

@media (max-width: 720px) {
  .hero-visual {
    padding-bottom: 0;
  }
  .ghost-card {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: calc(100% - 20px);
    margin: -24px auto 0;
    grid-template-columns: 58px 1fr;
    padding: 14px 16px;
    border-radius: 19px;
  }
  .ghost-avatar {
    width: 58px;
    height: 58px;
  }
  .art-label-top {
    left: 10px;
    top: 18px;
  }
  .art-label-bottom {
    right: 10px;
    bottom: 36px;
  }
}


/* ---------- V11 : calculateur premium et plus lisible ---------- */

/* Le motif de pattes reste identitaire, mais ne concurrence plus le contenu. */
body {
  background-image: none !important;
}

.calculator-section {
  position: relative;
  isolation: isolate;
  padding: 78px 0 92px;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 10%, rgba(199,154,85,.10), transparent 25%),
    linear-gradient(180deg, #f8f3ec 0%, #f5eee6 100%);
}

.calculator-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/paw-pattern.svg");
  background-size: 155px auto;
  background-position: center top;
  opacity: .19;
  pointer-events: none;
}

.calculator-section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(
      180deg,
      rgba(248,243,236,.90) 0%,
      rgba(248,243,236,.68) 22%,
      rgba(245,238,230,.76) 100%
    );
  pointer-events: none;
}

.calculator-section > .container {
  position: relative;
  z-index: 1;
}

#calculateur .section-heading {
  max-width: 760px;
  margin-bottom: 28px;
}

#calculateur .section-heading h2 {
  max-width: 720px;
  font-size: clamp(39px, 4.5vw, 56px);
  line-height: 1.04;
}

#calculateur .section-heading > p:not(.eyebrow):not(.calculator-disclaimer) {
  max-width: 680px;
  margin-top: 13px;
  color: var(--muted);
  font-size: 15px;
}

.calculator-disclaimer {
  position: relative;
  max-width: 720px;
  margin: 15px 0 0 !important;
  padding: 12px 16px 12px 43px !important;
  border: 1px solid rgba(199,154,85,.27) !important;
  border-left: 3px solid var(--accent) !important;
  border-radius: 13px !important;
  background: rgba(255,250,242,.78) !important;
  color: #6e5f5b !important;
  box-shadow: 0 8px 22px rgba(85,50,72,.045);
  font-size: 11px !important;
  line-height: 1.55;
}

.calculator-disclaimer::before {
  content: "i";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border-radius: 50%;
  background: rgba(199,154,85,.19);
  color: #805a2e;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 800;
}

.calculator-mode-picker {
  grid-template-columns: minmax(285px, .92fr) minmax(0, 1.38fr);
  gap: 30px;
  margin: 0 0 24px;
  padding: 23px 24px;
  border-radius: 23px;
  background:
    radial-gradient(circle at 94% 5%, rgba(199,154,85,.12), transparent 29%),
    linear-gradient(140deg, rgba(255,253,249,.96), rgba(239,224,219,.91));
  box-shadow:
    0 14px 36px rgba(85,50,72,.07),
    inset 0 0 0 1px rgba(255,255,255,.45);
}

.mode-picker-copy .eyebrow {
  margin-bottom: 7px;
}

.mode-picker-copy h3 {
  max-width: 390px;
  font-size: clamp(25px, 2.55vw, 35px);
  line-height: 1.08;
}

.mode-options {
  gap: 11px;
}

.mode-choice {
  min-height: 101px;
  grid-template-columns: 39px minmax(0, 1fr);
  padding: 15px 16px;
  border-radius: 17px;
}

.mode-choice.is-active {
  box-shadow:
    0 0 0 2px rgba(85,50,72,.06),
    0 12px 26px rgba(85,50,72,.09);
}

.mode-choice-icon {
  width: 39px;
  height: 39px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
}

.mode-choice strong {
  font-size: 17px;
}

.mode-choice small {
  max-width: 235px;
  font-size: 9px;
  line-height: 1.4;
}

.mode-choice-badge {
  top: 8px;
  right: 8px;
  padding: 3px 7px;
  background: #f5e8ce;
  color: #704a1f;
  font-size: 7px;
}

.calculator-layout {
  gap: 25px;
}

.calculator-card {
  padding: 5px 30px 31px;
  border-radius: 25px;
  box-shadow:
    0 17px 42px rgba(85,50,72,.08),
    inset 0 1px rgba(255,255,255,.72);
}

.results-card {
  position: sticky;
  top: 22px;
  border-radius: 25px;
  box-shadow: 0 20px 45px rgba(55,35,47,.16);
}

.form-step {
  padding: 29px 0;
}

.step-heading {
  margin-bottom: 22px;
}

.step-heading h3 {
  font-size: 24px;
}

.quick-mode-notice {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(199,154,85,.18);
  background: rgba(199,154,85,.075);
}

.quick-mode-notice > span {
  width: 32px;
  height: 32px;
}

.quick-mode-notice p {
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 980px) {
  .calculator-mode-picker {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .mode-picker-copy h3 {
    max-width: 650px;
  }

  .results-card {
    position: static;
  }
}

@media (max-width: 720px) {
  .calculator-section {
    padding: 62px 0 72px;
  }

  .calculator-section::before {
    background-size: 128px auto;
    opacity: .14;
  }

  #calculateur .section-heading {
    margin-bottom: 23px;
  }

  #calculateur .section-heading h2 {
    font-size: 39px;
  }

  .calculator-disclaimer {
    padding: 11px 13px 11px 40px !important;
  }

  .calculator-mode-picker {
    padding: 18px;
    border-radius: 20px;
  }

  .mode-options {
    grid-template-columns: 1fr;
  }

  .mode-choice {
    min-height: 87px;
  }

  .calculator-card {
    padding: 3px 20px 24px;
  }
}


/* ---------- V12 : vignettes éditoriales premium des guides ---------- */
.guides-index {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 6%, rgba(199,154,85,.08), transparent 24%),
    linear-gradient(180deg, #f7f1e9 0%, #f2e9e0 100%);
}
.guides-index::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/paw-pattern.svg");
  background-size: 175px auto;
  opacity: .085;
}
.guides-index::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(247,241,233,.52);
}
.guides-index > .container {
  position: relative;
  z-index: 1;
}

.guide-grid {
  gap: 24px;
}
.guide-card {
  min-height: 395px;
  padding: 15px;
  border-radius: 25px;
  background: rgba(255,253,249,.975);
  border-color: rgba(85,50,72,.13);
  box-shadow:
    0 14px 34px rgba(85,50,72,.065),
    inset 0 1px rgba(255,255,255,.75);
}
.guide-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 20px 44px rgba(85,50,72,.10),
    inset 0 1px rgba(255,255,255,.8);
}
.guide-card-art.guide-editorial-art {
  height: auto;
  aspect-ratio: 2.5 / 1;
  display: block;
  margin: 0 0 16px;
  overflow: hidden;
  border: 1px solid rgba(85,50,72,.08);
  border-radius: 18px;
  background: #f3e9e2;
}
.guide-card-art.guide-editorial-art img {
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: cover;
  object-position: center;
  filter: none;
  transition: transform .35s ease;
}
.guide-card:hover .guide-card-art.guide-editorial-art img {
  transform: scale(1.018);
}
.guide-card h2,
.guide-card h3 {
  min-height: 58px;
  margin: 12px 8px 8px;
  font-size: clamp(22px, 2.1vw, 26px);
  line-height: 1.10;
  text-wrap: balance;
  hyphens: none;
}
.guide-card p {
  min-height: 47px;
  margin: 0 8px 21px;
  font-size: 13px;
  line-height: 1.55;
}
.guide-tag {
  margin-left: 8px;
  padding: 5px 9px;
  font-size: 8px;
}
.guide-card a {
  margin-top: auto;
}

.guide-hero-art {
  padding: 10px;
  background: rgba(255,253,249,.72);
}
.guide-hero-art img {
  width: 100%;
  height: 390px;
  object-fit: cover;
  object-position: center;
  border-radius: 24px;
  filter: none;
}

@media (max-width: 720px) {
  .guides-index::before {
    background-size: 145px auto;
    opacity: .065;
  }
  .guide-card {
    padding: 13px;
  }
  .guide-card h2,
  .guide-card h3 {
    min-height: 0;
    font-size: 24px;
  }
  .guide-card p {
    min-height: 0;
  }
  .guide-hero-art img {
    height: 300px;
  }
}


/* ---------- V13 : section conseils premium ---------- */
.advice-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 72px 0 86px;
  background:
    radial-gradient(circle at 91% 14%, rgba(199,154,85,.10), transparent 26%),
    linear-gradient(180deg, #f8f2eb 0%, #f3ebe3 100%);
}

.advice-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/paw-pattern.svg");
  background-size: 185px auto;
  opacity: .045;
  pointer-events: none;
}

.advice-section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(248,242,235,.91), rgba(243,235,227,.80));
}

.advice-section > .container {
  position: relative;
  z-index: 1;
}

.advice-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .55fr);
  gap: 48px;
  align-items: center;
  margin-bottom: 30px;
}

.advice-heading {
  max-width: 720px;
  margin: 0;
}

.advice-heading h2 {
  max-width: 700px;
  font-size: clamp(38px, 4.4vw, 56px);
  line-height: 1.04;
  text-wrap: balance;
}

.advice-heading h2::after {
  content: "";
  display: block;
  width: 78px;
  height: 3px;
  margin-top: 20px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent), rgba(199,154,85,.15));
}

.advice-lead {
  max-width: 660px;
  margin: 18px 0 0 !important;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.advice-ghost {
  position: relative;
  min-height: 230px;
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 16px;
  align-items: center;
  margin: 0;
  padding: 20px;
  overflow: hidden;
  border: 1px solid rgba(85,50,72,.10);
  border-radius: 26px;
  background:
    radial-gradient(circle at 28% 45%, rgba(255,255,255,.98), transparent 38%),
    linear-gradient(145deg, rgba(255,253,249,.96), rgba(235,220,215,.92));
  box-shadow: 0 16px 36px rgba(85,50,72,.075);
}

.advice-ghost img {
  width: 160px;
  height: 190px;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 13px 16px rgba(55,35,47,.13));
}

.advice-ghost figcaption {
  display: grid;
  gap: 6px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.advice-ghost figcaption strong {
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
}

.advice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.advice-card-premium {
  min-height: 250px;
  padding: 24px;
  border-radius: 22px;
  background: rgba(255,253,249,.97);
  border: 1px solid rgba(85,50,72,.11);
  box-shadow:
    0 13px 30px rgba(85,50,72,.055),
    inset 0 1px rgba(255,255,255,.78);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.advice-card-premium::after {
  display: none;
}

.advice-card-premium:hover {
  transform: translateY(-3px);
  border-color: rgba(85,50,72,.20);
  box-shadow:
    0 19px 38px rgba(85,50,72,.085),
    inset 0 1px rgba(255,255,255,.82);
}

.advice-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}

.advice-number {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  height: 30px;
  padding: 0 9px;
  border-radius: 999px;
  background: #f1e2df;
  color: var(--primary);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

.advice-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(199,154,85,.28);
  border-radius: 13px;
  background: rgba(199,154,85,.10);
  color: #8b6031;
  font-size: 16px;
  font-weight: 800;
}

.advice-kicker {
  margin: 0 0 7px !important;
  color: var(--accent) !important;
  font-size: 9px !important;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.advice-card-premium h3 {
  min-height: 58px;
  margin: 0 0 12px;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1.15;
  text-wrap: balance;
}

.advice-card-premium > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .advice-intro-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .advice-ghost {
    max-width: 620px;
  }

  .advice-grid {
    grid-template-columns: 1fr;
  }

  .advice-card-premium {
    min-height: 0;
  }

  .advice-card-premium h3 {
    min-height: 0;
  }
}

@media (max-width: 620px) {
  .advice-section {
    padding: 58px 0 68px;
  }

  .advice-section::before {
    background-size: 150px auto;
    opacity: .035;
  }

  .advice-heading h2 {
    font-size: 38px;
  }

  .advice-ghost {
    grid-template-columns: 105px 1fr;
    min-height: 175px;
    padding: 15px;
    border-radius: 21px;
  }

  .advice-ghost img {
    width: 105px;
    height: 140px;
  }

  .advice-card-premium {
    padding: 21px;
  }
}


/* ---------- V14 : FAQ premium, compacte et équilibrée ---------- */
.faq-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 76px 0 88px;
  background:
    radial-gradient(circle at 90% 10%, rgba(199,154,85,.09), transparent 26%),
    linear-gradient(180deg, #fbf7f2 0%, #f7f0e9 100%);
}

.faq-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/paw-pattern.svg");
  background-size: 180px auto;
  opacity: .035;
  pointer-events: none;
}

.faq-section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(251,247,242,.64);
  pointer-events: none;
}

.faq-section > .container {
  position: relative;
  z-index: 1;
}

.faq-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .72fr);
  gap: 46px;
  align-items: center;
  margin-bottom: 28px;
}

.faq-heading {
  max-width: 680px;
  margin: 0;
}

.faq-heading h2 {
  max-width: 660px;
  font-size: clamp(40px, 4.7vw, 58px);
  line-height: 1.04;
  text-wrap: balance;
}

.faq-heading h2::after {
  content: "";
  display: block;
  width: 76px;
  height: 3px;
  margin-top: 20px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent), rgba(199,154,85,.12));
}

.faq-lead {
  max-width: 620px;
  margin: 17px 0 0 !important;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.faq-ghost-panel {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 17px;
  align-items: center;
  min-height: 215px;
  padding: 19px;
  overflow: hidden;
  border: 1px solid rgba(85,50,72,.11);
  border-radius: 26px;
  background:
    radial-gradient(circle at 20% 44%, rgba(255,255,255,.98), transparent 37%),
    linear-gradient(145deg, rgba(255,253,249,.97), rgba(233,218,214,.94));
  box-shadow:
    0 16px 36px rgba(85,50,72,.075),
    inset 0 1px rgba(255,255,255,.7);
}

.faq-ghost-panel > img {
  width: 145px;
  height: 175px;
  object-fit: contain;
  filter: drop-shadow(0 12px 15px rgba(55,35,47,.14));
}

.faq-ghost-copy h3 {
  margin: 4px 0 7px;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  line-height: 1.18;
  text-wrap: balance;
}

.faq-ghost-copy > p:not(.faq-ghost-kicker) {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.faq-ghost-kicker {
  margin: 0;
  color: #8b6031;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.faq-proof-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 13px 0 0;
  padding: 0;
  list-style: none;
}

.faq-proof-list li {
  padding: 5px 8px;
  border: 1px solid rgba(85,50,72,.10);
  border-radius: 999px;
  background: rgba(255,253,249,.72);
  color: var(--primary);
  font-size: 8px;
  font-weight: 800;
}

.faq-list-premium {
  max-width: none;
  gap: 10px;
}

.faq-item-premium {
  padding: 0 !important;
  overflow: hidden;
  border-radius: 18px !important;
  border-color: rgba(85,50,72,.12) !important;
  background: rgba(255,253,249,.96) !important;
  box-shadow:
    0 10px 26px rgba(85,50,72,.045),
    inset 0 1px rgba(255,255,255,.75) !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.faq-item-premium:hover {
  transform: translateY(-1px);
  border-color: rgba(85,50,72,.20) !important;
  box-shadow:
    0 14px 30px rgba(85,50,72,.065),
    inset 0 1px rgba(255,255,255,.8) !important;
}

.faq-item-premium[open] {
  border-color: rgba(199,154,85,.38) !important;
  background: #fffdf9 !important;
}

.faq-item-premium summary {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 34px;
  gap: 13px;
  align-items: center;
  min-height: 64px;
  padding: 12px 16px 12px 14px !important;
}

.faq-item-premium summary::after {
  position: static !important;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  justify-self: end;
  border-radius: 10px;
  background: rgba(199,154,85,.10);
  color: #98682f !important;
  font-size: 19px !important;
  line-height: 1;
}

.faq-index {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #f1e2df;
  color: var(--primary);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .06em;
}

.faq-question-text {
  color: var(--primary-strong);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.faq-item-premium > p {
  margin: 0 !important;
  padding: 0 65px 20px 67px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.faq-item-premium[open] summary {
  padding-bottom: 8px !important;
}

@media (max-width: 1000px) {
  .faq-intro-grid {
    grid-template-columns: 1fr;
    gap: 23px;
  }

  .faq-ghost-panel {
    max-width: 680px;
  }
}

@media (max-width: 620px) {
  .faq-section {
    padding: 60px 0 70px;
  }

  .faq-section::before {
    background-size: 145px auto;
    opacity: .025;
  }

  .faq-heading h2 {
    font-size: 39px;
  }

  .faq-ghost-panel {
    grid-template-columns: 98px minmax(0, 1fr);
    min-height: 160px;
    padding: 14px;
    border-radius: 21px;
  }

  .faq-ghost-panel > img {
    width: 98px;
    height: 126px;
  }

  .faq-proof-list {
    display: none;
  }

  .faq-item-premium summary {
    grid-template-columns: 34px minmax(0, 1fr) 28px;
    gap: 10px;
    min-height: 61px;
    padding: 11px 12px !important;
  }

  .faq-index {
    width: 30px;
    height: 30px;
  }

  .faq-question-text {
    font-size: 12px;
  }

  .faq-item-premium > p {
    padding: 0 48px 18px 56px;
    font-size: 12px;
  }
}


/* ---------- V15 : confiance, méthode et transparence premium ---------- */
.trust-premium,
.method-premium,
.transparency-premium {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.trust-premium {
  padding: 82px 0 86px;
  background:
    radial-gradient(circle at 88% 7%, rgba(199,154,85,.09), transparent 24%),
    linear-gradient(180deg, #fbf7f2 0%, #f6eee7 100%);
}

.trust-premium::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url("assets/paw-pattern.svg");
  background-size: 190px auto;
  opacity: .025;
}

.trust-premium::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(251,247,242,.62);
}

.trust-premium-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .70fr);
  gap: 44px;
  align-items: center;
  margin-bottom: 28px;
}

.trust-premium-copy {
  max-width: 740px;
}

.trust-premium-copy h2 {
  max-width: 720px;
  margin: 0;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 4.7vw, 58px);
  line-height: 1.04;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.trust-premium-copy > p:last-child {
  max-width: 690px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.trust-ghost-note {
  display: grid;
  grid-template-columns: 125px 1fr;
  gap: 17px;
  align-items: center;
  min-height: 205px;
  padding: 18px;
  border: 1px solid rgba(85,50,72,.10);
  border-radius: 25px;
  background:
    radial-gradient(circle at 22% 43%, rgba(255,255,255,.98), transparent 37%),
    linear-gradient(145deg, rgba(255,253,249,.98), rgba(232,217,212,.92));
  box-shadow: 0 15px 34px rgba(85,50,72,.07);
}

.trust-ghost-note img {
  width: 125px;
  height: 165px;
  object-fit: contain;
  filter: drop-shadow(0 11px 14px rgba(55,35,47,.13));
}

.trust-ghost-note span {
  display: block;
  margin-bottom: 5px;
  color: #8b6031;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.trust-ghost-note strong {
  display: block;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  line-height: 1.18;
}

.trust-ghost-note p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.trust-link-grid-premium {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.trust-link-grid-premium a {
  position: relative;
  min-height: 178px;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border-radius: 20px;
  box-shadow:
    0 12px 28px rgba(85,50,72,.05),
    inset 0 1px rgba(255,255,255,.72);
}

.trust-link-grid-premium a:hover {
  transform: translateY(-3px);
  box-shadow:
    0 18px 36px rgba(85,50,72,.085),
    inset 0 1px rgba(255,255,255,.78);
}

.trust-link-index {
  width: fit-content;
  margin-bottom: 22px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #f0e1de;
  color: var(--primary);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
}

.trust-link-grid-premium strong {
  margin-bottom: 7px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  line-height: 1.18;
}

.trust-link-grid-premium span:not(.trust-link-index) {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.trust-link-grid-premium i {
  position: absolute;
  right: 18px;
  bottom: 16px;
  color: #9b6e3e;
  font-size: 15px;
  font-style: normal;
}

/* Méthode */
.method-premium {
  padding: 88px 0;
  background:
    radial-gradient(circle at 8% 90%, rgba(199,154,85,.07), transparent 25%),
    linear-gradient(180deg, #efe5dc 0%, #f4ece4 100%);
}

.method-premium-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr);
  gap: 52px;
  align-items: center;
}

.method-premium-copy h2 {
  max-width: 620px;
  margin: 0;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 4.6vw, 56px);
  line-height: 1.04;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.method-premium-copy > p:not(.eyebrow):not(.method-sources) {
  max-width: 610px;
  margin: 17px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.method-principles {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

.method-principles > div {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  border: 1px solid rgba(85,50,72,.09);
  border-radius: 15px;
  background: rgba(255,253,249,.55);
}

.method-principles span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #ead8d5;
  color: var(--primary);
  font-size: 8px;
  font-weight: 900;
}

.method-principles p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.method-principles strong {
  color: var(--primary-strong);
}

.method-sources {
  margin-top: 20px !important;
  color: #75666b !important;
  font-size: 10px !important;
  line-height: 1.55;
}

.formula-card-premium {
  padding: 24px;
  border-radius: 28px;
  background: rgba(255,253,249,.97);
  box-shadow:
    0 18px 42px rgba(85,50,72,.085),
    inset 0 1px rgba(255,255,255,.78);
}

.formula-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 15px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}

.formula-card-header span {
  color: #8b6031;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.formula-card-header h3 {
  margin: 5px 0 0;
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
}

.formula-card-header > strong {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f4e8ce;
  color: #714c23;
  font-size: 9px;
  white-space: nowrap;
}

.formula-row {
  padding: 14px 0;
  border-bottom: 1px solid rgba(85,50,72,.08);
}

.formula-row:last-of-type {
  border-bottom: 0;
}

.formula-row-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
}

.formula-row-title span {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #f0e1de;
  color: var(--primary);
  font-size: 8px;
  font-weight: 900;
}

.formula-row-title strong {
  color: var(--primary-strong);
  font-size: 13px;
}

.formula-card-premium code {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid rgba(85,50,72,.06);
  background: #f3e9e1;
  font-size: 10px;
  line-height: 1.5;
}

.formula-note {
  margin: 15px 0 0 !important;
  padding: 11px 13px;
  border-left: 3px solid var(--accent);
  border-radius: 10px;
  background: rgba(199,154,85,.09);
  color: #6f605c;
  font-size: 10px;
  line-height: 1.55;
}

/* Transparence commerciale */
.transparency-premium {
  padding: 58px 0 88px;
  background: #f8f2eb;
}

.transparency-premium-card {
  position: relative;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 32px;
  overflow: hidden;
  border-radius: 30px;
  background:
    radial-gradient(circle at 84% 12%, rgba(239,200,128,.12), transparent 28%),
    linear-gradient(135deg, #4f3046, #352331);
  color: #fff;
  box-shadow: 0 22px 50px rgba(55,35,47,.20);
}

.transparency-premium-card::after {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -95px;
  width: 260px;
  height: 260px;
  border: 34px solid rgba(255,255,255,.025);
  border-radius: 50%;
}

.transparency-premium-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(239,200,128,.25);
  border-radius: 18px;
  background: rgba(239,200,128,.10);
  color: #f1cf92;
  font-size: 23px;
  font-weight: 900;
}

.transparency-premium-copy {
  position: relative;
  z-index: 1;
}

.transparency-premium-copy .eyebrow {
  color: #f1cf92;
}

.transparency-premium-copy h2 {
  max-width: 650px;
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 3.7vw, 46px);
  line-height: 1.06;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.transparency-premium-copy > p:not(.eyebrow) {
  max-width: 720px;
  margin: 13px 0 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.6;
}

.transparency-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
}

.transparency-badges span {
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.83);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .04em;
}

.transparency-premium-action {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 9px;
  justify-items: end;
  min-width: 235px;
}

.transparency-premium-action .button {
  background: var(--accent);
  color: #2e1d25;
}

.transparency-premium-action small {
  color: rgba(255,255,255,.53);
  font-size: 8px;
  text-align: right;
}

@media (max-width: 1050px) {
  .trust-premium-intro,
  .method-premium-grid {
    grid-template-columns: 1fr;
  }

  .trust-ghost-note {
    max-width: 650px;
  }

  .trust-link-grid-premium {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .transparency-premium-card {
    grid-template-columns: 56px 1fr;
  }

  .transparency-premium-action {
    grid-column: 2;
    justify-items: start;
  }

  .transparency-premium-action small {
    text-align: left;
  }
}

@media (max-width: 650px) {
  .trust-premium,
  .method-premium {
    padding: 62px 0 68px;
  }

  .trust-premium::before {
    background-size: 150px auto;
    opacity: .02;
  }

  .trust-premium-copy h2,
  .method-premium-copy h2 {
    font-size: 39px;
  }

  .trust-ghost-note {
    grid-template-columns: 95px 1fr;
    min-height: 160px;
    padding: 14px;
    border-radius: 20px;
  }

  .trust-ghost-note img {
    width: 95px;
    height: 125px;
  }

  .trust-link-grid-premium {
    grid-template-columns: 1fr;
  }

  .trust-link-grid-premium a {
    min-height: 150px;
  }

  .formula-card-premium {
    padding: 18px;
    border-radius: 22px;
  }

  .formula-card-header {
    display: grid;
  }

  .formula-card-header > strong {
    width: fit-content;
  }

  .transparency-premium {
    padding: 44px 0 70px;
  }

  .transparency-premium-card {
    grid-template-columns: 1fr;
    gap: 17px;
    padding: 24px;
    border-radius: 24px;
  }

  .transparency-premium-action {
    grid-column: 1;
    justify-items: stretch;
    min-width: 0;
  }

  .transparency-premium-action .button {
    width: 100%;
  }
}


/* ---------- V16 : pied de page premium ---------- */
.site-footer-premium {
  position: relative;
  overflow: hidden;
  padding: 0;
  color: rgba(255,255,255,.74);
  background:
    radial-gradient(circle at 12% 0%, rgba(199,154,85,.13), transparent 28%),
    radial-gradient(circle at 93% 82%, rgba(123,74,101,.20), transparent 30%),
    linear-gradient(145deg, #281a25 0%, #1f151d 100%);
}

.site-footer-premium::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(255,255,255,.018), transparent 35%);
  pointer-events: none;
}

.site-footer-premium > .container {
  position: relative;
  z-index: 1;
}

.footer-premium-main {
  display: grid;
  grid-template-columns: minmax(330px, .95fr) minmax(0, 1.35fr);
  gap: 72px;
  align-items: start;
  padding: 64px 0 48px;
}

.footer-brand-panel {
  max-width: 500px;
}

.footer-brand-lockup {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: #fff;
  text-decoration: none;
}

.footer-brand-lockup img {
  width: 84px;
  height: 84px;
  padding: 3px;
  object-fit: contain;
  border: 1px solid rgba(239,200,128,.20);
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 32%, rgba(255,255,255,.14), transparent 62%),
    rgba(255,255,255,.045);
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.25));
}

.footer-brand-lockup span {
  display: grid;
  gap: 4px;
}

.footer-brand-lockup strong {
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  line-height: 1;
}

.footer-brand-lockup small {
  color: #efc880;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.footer-brand-panel > p {
  max-width: 460px;
  margin: 21px 0 0;
  color: rgba(255,255,255,.64);
  font-size: 13px;
  line-height: 1.7;
}

.footer-trust-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 19px;
}

.footer-trust-chips span {
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.75);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .04em;
}

.footer-calculate-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 23px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(239,200,128,.46);
  color: #f2d49d;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.footer-calculate-link:hover {
  color: #fff;
  border-color: #fff;
}

.footer-navigation {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 38px;
  padding-top: 10px;
}

.footer-nav-column {
  display: grid;
  align-content: start;
  gap: 10px;
}

.footer-nav-column strong {
  margin-bottom: 7px;
  color: #efc880;
  font-family: inherit;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.footer-nav-column a {
  width: fit-content;
  color: rgba(255,255,255,.79);
  font-size: 12px;
  line-height: 1.45;
  text-decoration-color: rgba(255,255,255,.24);
  text-underline-offset: 4px;
  transition: color .18s ease, transform .18s ease;
}

.footer-nav-column a:hover {
  color: #fff;
  transform: translateX(2px);
}

.footer-premium-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 23px 0 28px;
  border-top: 1px solid rgba(255,255,255,.085);
}

.footer-premium-bottom p {
  margin: 0;
}

.footer-copyright {
  color: rgba(255,255,255,.72);
  font-size: 10px;
}

.footer-copyright strong {
  color: #fff;
}

.footer-disclaimer {
  margin-top: 5px !important;
  color: rgba(255,255,255,.42);
  font-size: 8px;
  line-height: 1.55;
}

.footer-back-top {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.76);
  font-size: 9px;
  font-weight: 800;
  text-decoration: none;
}

.footer-back-top:hover {
  border-color: rgba(239,200,128,.38);
  color: #f2d49d;
}

@media (max-width: 950px) {
  .footer-premium-main {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .footer-brand-panel {
    max-width: 650px;
  }
}

@media (max-width: 680px) {
  .footer-premium-main {
    gap: 36px;
    padding: 48px 0 36px;
  }

  .footer-brand-lockup img {
    width: 70px;
    height: 70px;
    border-radius: 20px;
  }

  .footer-brand-lockup strong {
    font-size: 23px;
  }

  .footer-navigation {
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
  }

  .footer-nav-column:last-child {
    grid-column: 1 / -1;
  }

  .footer-premium-bottom {
    align-items: flex-start;
    flex-direction: column;
    padding-bottom: 24px;
  }
}

@media (max-width: 440px) {
  .footer-navigation {
    grid-template-columns: 1fr;
  }

  .footer-nav-column:last-child {
    grid-column: auto;
  }

  .footer-trust-chips {
    display: grid;
    grid-template-columns: repeat(2, max-content);
  }
}


/* ---------- V17 : en-tête premium et navigation mobile ---------- */
.site-header-premium {
  position: sticky;
  top: 0;
  z-index: 80;
  border-bottom: 1px solid rgba(85,50,72,.09);
  background: rgba(250,246,240,.93);
  box-shadow: 0 8px 30px rgba(55,35,47,.055);
  backdrop-filter: blur(22px) saturate(1.12);
  -webkit-backdrop-filter: blur(22px) saturate(1.12);
}

.site-header-premium::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(199,154,85,.34) 28%,
    rgba(85,50,72,.15) 72%,
    transparent
  );
  pointer-events: none;
}

.header-inner-premium {
  min-height: 96px;
  display: grid;
  grid-template-columns: minmax(290px, 1fr) auto minmax(290px, 1fr);
  gap: 34px;
  align-items: center;
}

.brand-premium {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: var(--primary-strong);
  text-decoration: none;
}

.brand-premium .brand-mark {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(199,154,85,.30);
  border-radius: 19px;
  background:
    radial-gradient(circle at 50% 30%, #fff, transparent 64%),
    #f1e5dd;
  box-shadow:
    0 10px 24px rgba(85,50,72,.13),
    inset 0 1px rgba(255,255,255,.75);
}

.brand-premium .brand-mark img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  transform: scale(1.03);
}

.brand-copy {
  display: grid;
  gap: 5px;
}

.brand-premium .brand-copy strong {
  color: var(--primary-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: .98;
  letter-spacing: -.02em;
}

.brand-premium .brand-copy small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .095em;
  text-transform: uppercase;
}

.main-nav-premium {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px;
  border: 1px solid rgba(85,50,72,.08);
  border-radius: 999px;
  background: rgba(255,253,249,.72);
  box-shadow: inset 0 1px rgba(255,255,255,.72);
}

.main-nav-premium a {
  position: relative;
  padding: 11px 15px;
  border-radius: 999px;
  color: #6f6268;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  transition:
    color .18s ease,
    background .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.main-nav-premium a::after {
  display: none;
}

.main-nav-premium a:hover {
  color: var(--primary);
  background: rgba(85,50,72,.055);
  transform: translateY(-1px);
}

.main-nav-premium a.is-active,
.main-nav-premium a[aria-current="page"] {
  color: #fff;
  background: linear-gradient(135deg, var(--primary), var(--primary-strong));
  box-shadow: 0 7px 16px rgba(85,50,72,.18);
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.header-trust-note {
  color: #8b6031;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
  white-space: nowrap;
}

.header-cta {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 18px;
  border-radius: 16px;
  box-shadow: 0 11px 24px rgba(85,50,72,.18);
  font-size: 12px;
  white-space: nowrap;
}

.header-cta span {
  font-size: 14px;
  transition: transform .18s ease;
}

.header-cta:hover span {
  transform: translate(2px, -2px);
}

.mobile-nav {
  position: relative;
  display: none;
}

.mobile-nav > summary {
  width: 46px;
  height: 46px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 0 12px;
  border: 1px solid rgba(85,50,72,.13);
  border-radius: 15px;
  background: rgba(255,253,249,.9);
  box-shadow: 0 8px 20px rgba(85,50,72,.08);
  cursor: pointer;
  list-style: none;
}

.mobile-nav > summary::-webkit-details-marker {
  display: none;
}

.mobile-nav > summary span {
  display: block;
  height: 2px;
  border-radius: 999px;
  background: var(--primary);
  transition: transform .18s ease, opacity .18s ease;
}

.mobile-nav[open] > summary span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.mobile-nav[open] > summary span:nth-child(2) {
  opacity: 0;
}

.mobile-nav[open] > summary span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-nav > nav {
  position: absolute;
  top: calc(100% + 13px);
  right: 0;
  width: min(330px, calc(100vw - 28px));
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(85,50,72,.12);
  border-radius: 21px;
  background: rgba(255,253,249,.98);
  box-shadow: 0 22px 52px rgba(55,35,47,.17);
}

.mobile-nav > nav a {
  padding: 12px 13px;
  border-radius: 12px;
  color: var(--primary-strong);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.mobile-nav > nav a:hover,
.mobile-nav > nav a.is-active {
  background: #f1e2df;
  color: var(--primary);
}

.mobile-nav > nav .mobile-nav-cta {
  margin-top: 5px;
  background: linear-gradient(135deg, var(--primary), var(--primary-strong));
  color: #fff;
  text-align: center;
}

.mobile-nav > nav .mobile-nav-cta:hover {
  background: var(--primary-strong);
  color: #fff;
}

@media (max-width: 1120px) {
  .header-inner-premium {
    grid-template-columns: 1fr auto;
  }

  .main-nav-premium {
    display: none;
  }

  .mobile-nav {
    display: block;
  }
}

@media (max-width: 760px) {
  .header-inner-premium {
    min-height: 78px;
    gap: 16px;
  }

  .brand-premium {
    gap: 11px;
  }

  .brand-premium .brand-mark {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
    border-radius: 16px;
  }

  .brand-premium .brand-mark img {
    width: 50px;
    height: 50px;
  }

  .brand-premium .brand-copy strong {
    font-size: 19px;
  }

  .brand-premium .brand-copy small {
    font-size: 7px;
    letter-spacing: .075em;
  }

  .header-trust-note,
  .header-cta {
    display: none;
  }
}

@media (max-width: 390px) {
  .brand-premium .brand-copy small {
    display: none;
  }

  .brand-premium .brand-copy strong {
    font-size: 18px;
  }
}


/* ---------- V18 : audit final, cohérence et robustesse ---------- */
html {
  color-scheme: light;
  scroll-padding-top: 118px;
}

body {
  overflow-x: clip;
  -webkit-tap-highlight-color: rgba(85, 50, 72, .10);
}

:where(section[id], main[id], article[id]) {
  scroll-margin-top: 118px;
}

:where(h1, h2, h3) {
  text-wrap: balance;
}

:where(a, button, input, select, summary):focus-visible {
  outline: 3px solid #e4b762;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(85, 50, 72, .17);
}

.mobile-nav > summary:focus-visible {
  outline-offset: 2px;
}

/* Long professional email: no horizontal overflow on small screens. */
.contact-card,
.contact-card p,
.contact-card .button {
  min-width: 0;
  max-width: 100%;
}

.contact-card .button {
  overflow-wrap: anywhere;
  word-break: break-word;
  text-align: center;
}

@media (max-width: 620px) {
  .contact-card .button {
    width: 100%;
    padding-inline: 13px;
    font-size: 11px;
    line-height: 1.35;
  }
}

/* Keep all page anchors visible below the sticky header. */
#calculateur,
#methode,
#transparence,
#conseils,
#faq,
#recommendations-personnalisees {
  scroll-margin-top: 118px;
}

/* Print report: the page keeps one semantic H1 while preserving the layout. */
.print-report-header h2,
.print-report-title {
  margin: 3px 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25pt;
  color: #553248;
}

/* More consistent minimum touch areas on mobile navigation and footer links. */
@media (max-width: 760px) {
  .mobile-nav > nav a {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  .footer-nav-column a {
    min-height: 35px;
    display: flex;
    align-items: center;
  }
}
