:root {
  --ink:#281b1b; --muted:#695853; --brand:#a01c2e; --accent:#a01c2e;
  --paper:#fff9f4; --white:#fffcf9; --edge:#eadbd4; --soft:#fae6e4;
  color:var(--ink); background:var(--paper); font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
* { box-sizing:border-box }
body { margin:0 }
button,input,select,textarea { font:inherit }
button,a { touch-action:manipulation }
button { cursor:pointer }
button:disabled { opacity:.56; cursor:default }
a { color:inherit }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--accent); outline-offset:3px }
[hidden] { display:none!important }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap }
.frame { width:min(1192px,calc(100% - 72px)); margin-inline:auto }
.top { position:sticky; top:0; z-index:2; background:var(--paper); border-bottom:1px solid var(--edge) }
.top-inner,.foot-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:70px }
.wordmark { font:2rem/1 Georgia,serif; letter-spacing:.11em; color:var(--brand); text-decoration:none }
.wordmark span { color:inherit }
.top-actions { display:flex; align-items:center; gap:12px }
.plain,.bag-button,.secondary,.primary,.add,.close,.quantity button { font-weight:750; border-radius:9px }
.plain { color:var(--brand); background:none; border:0; padding:9px 5px }
.plain:hover { text-decoration:underline }
.bag-button { display:flex; align-items:center; gap:7px; min-height:42px; padding:6px 9px; color:var(--brand); background:var(--white); border:1px solid #dfc6c6 }
.bag-button svg,.search svg { width:19px; height:19px; flex:none }
.count { min-width:24px; padding:2px 6px; border-radius:999px; background:var(--brand); color:white; font-size:.75rem; text-align:center }
.hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:25px; min-height:365px; margin-block:23px; padding:42px clamp(22px,4vw,52px); border:1px solid #9a192b; border-radius:19px; background:linear-gradient(120deg,#8d1426,#b82937); color:#fff9f4 }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; margin:0; line-height:1.08; letter-spacing:-.045em }
h1 { font-size:clamp(2.45rem,5.4vw,4.75rem) }
h1 em { color:#fff2e3; font-weight:400 }
h2 { font-size:clamp(1.9rem,4vw,2.9rem) }
.hero p { color:#fff2ee; max-width:48ch; margin:12px 0 0 }
.hero h1 { max-width:15ch }
.hero-question { display:flex; flex-wrap:wrap; gap:8px; align-items:stretch; max-width:640px; margin-top:22px }
.hero-question input { flex:1 1 235px; width:auto; min-height:50px }
.hero-action { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-height:50px; padding:9px 14px; background:#fff9f4; color:#90192a; border:1px solid #fff9f4; border-radius:8px; font-weight:800 }
.hero-action:hover { background:#fce9de }
.hero-action:focus-visible,.hero input:focus-visible,.hero .examples button:focus-visible { outline-color:white }
.hero .examples button { color:#fff9f4; border-color:#ffddd3a8; min-height:40px }
.hero .examples button:hover { background:#ffffff22 }
.hero-photos { display:flex; align-items:center; gap:11px }
.hero-photos img { display:block; width:clamp(92px,13vw,153px); height:auto; aspect-ratio:1; object-fit:cover; border:1px solid rgba(255,255,255,.8); border-radius:13px }
.hero-photos img:first-child { transform:translateY(-8px) }
.hero-photos img:nth-child(2) { transform:translateY(8px) }
.catalogue { padding-bottom:42px; scroll-margin-top:84px }
.catalogue-heading,.browse-options { display:flex; flex-wrap:wrap; align-items:center; gap:12px }
.catalogue-heading { justify-content:space-between; margin-bottom:16px }
.browse-options { margin:20px 0 38px }
.browse-options .secondary { margin:0 }
#catalogue-title,#results-title { scroll-margin-top:88px }
.browse { display:flex; align-items:stretch; gap:12px }
.search { position:relative; flex:1; min-width:0; margin:0 }
.search svg { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none }
.search input { padding-left:41px }
.sort { margin:0 }
label { display:block; font-size:.83rem; font-weight:750; margin-bottom:6px }
textarea,input,select { width:100%; min-width:0; border:1px solid #d9c9cb; border-radius:9px; padding:11px 13px; background:var(--white); color:var(--ink); font-weight:500 }
textarea { resize:vertical; min-height:66px; display:block }
textarea::placeholder,input::placeholder { color:#71646b }
.filters,.examples,.duo-presets { display:flex; flex-wrap:wrap; gap:8px }
.filters { margin-top:15px }
.filters button,.examples button,.duo-presets button { border:1px solid #e5cbca; border-radius:999px; color:var(--brand); background:transparent; padding:7px 14px; font-size:.83rem; font-weight:650; min-height:36px }
.filters button:hover,.examples button:hover,.duo-presets button:hover,.secondary:hover { background:var(--soft) }
.filters button[aria-pressed=true],.duo-presets button[aria-pressed=true],.primary { color:white; background:var(--brand); border:1px solid var(--brand) }
.muted { color:var(--muted); font-size:.87rem }
.catalogue-count { margin:13px 0 12px }
.empty { padding:25px; border:1px dashed #dac8cb; border-radius:13px; text-align:center }
.grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px }
.card { min-width:0; border:1px solid var(--edge); border-radius:13px; overflow:hidden; background:var(--white); display:flex; flex-direction:column }
.card-photo { aspect-ratio:1; background:#f3e9e5; display:grid; place-items:center }
.card-photo img { width:100%; height:100%; object-fit:contain; display:block }
.missing { color:var(--muted); font-size:.78rem }
.card-copy { padding:12px 13px 9px; flex:1 }
.card-copy p,.card-actions p { margin:0 }
.card-copy .category { color:var(--accent); font-size:.73rem; font-weight:750 }
.card-copy h3 { font-size:.97rem; line-height:1.35; margin:5px 0 0; overflow-wrap:anywhere }
.card-copy .reason { margin-top:7px; color:var(--muted); font-size:.81rem }
.card-actions { display:flex; flex-wrap:wrap; gap:7px 10px; align-items:center; justify-content:space-between; padding:0 13px 13px }
.price { font-size:.94rem; font-weight:800; white-space:nowrap }
.add { color:var(--brand); background:var(--soft); border:1px solid #ebcecb; padding:7px 9px; min-height:37px; font-size:.8rem }
.add:hover { background:#f3d4d1 }
.primary,.secondary { padding:11px 16px }
.primary { width:100% }
.primary:hover { background:#801624 }
.secondary { display:block; margin:24px auto 0; color:var(--brand); background:var(--white); border:1px solid #d9c9cb }
.foot { border-top:1px solid var(--edge); color:var(--muted) }
.foot .wordmark { font-size:1.2rem }
.foot small { max-width:34ch; text-align:right }
body:has(dialog[open]) { overflow:hidden }
.panel { color:var(--ink); background:var(--paper); border:1px solid var(--edge); border-radius:17px; width:min(100% - 24px,690px); max-height:calc(100dvh - 32px); padding:24px; box-shadow:0 15px 60px #22132126 }
.panel::backdrop { background:#21172168 }
.panel-head { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:19px }
.close { border:1px solid var(--edge); background:var(--white); color:var(--brand); min-width:42px; min-height:42px; font-size:1.45rem; line-height:1 }
.cart { max-width:530px }
.card-details { align-self:flex-start; padding:6px 0; min-height:40px; text-align:left; color:var(--brand); text-decoration:underline; text-underline-offset:3px; font-size:.83rem }
.product-details { max-width:860px }
.product-details .panel-head .category { margin:0 0 5px }
.product-details .panel-head h2 { font-size:clamp(1.2rem,3vw,1.7rem); margin:0 }
.product-details-layout { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1fr); gap:22px }
.details-photo { margin:0 }
.details-photo img { width:100%; aspect-ratio:1; object-fit:contain; border-radius:12px; background:var(--soft) }
.details-photo figcaption { font-size:.82rem; margin-top:4px }
.photo-picker { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px }
.photo-option { padding:2px; border:1px solid var(--edge); background:var(--white) }
.photo-option[aria-pressed="true"] { border-color:var(--brand); outline:1px solid var(--brand) }
.photo-option img { display:block; width:54px; height:54px; object-fit:contain; border-radius:7px }
.details-price { font-size:1.2rem; margin:0 0 9px }
.details-description { font-size:.93rem }
.details-facts { display:grid; grid-template-columns:minmax(92px, 1fr) minmax(0, 1.8fr); gap:7px 12px; font-size:.87rem; margin:0 0 16px }
.details-facts dt { color:var(--muted) }
.details-facts dd { margin:0; overflow-wrap:anywhere }
.details-sources { margin:0; padding-left:18px; font-size:.86rem }
.details-sources a { color:var(--brand) }
@media(max-width:575px) {
  .product-details-layout { grid-template-columns:1fr; gap:16px }
  .details-photo img { max-height:42dvh }
}
.cart-row { display:grid; grid-template-columns:54px minmax(0,1fr) auto; align-items:center; gap:11px; padding:11px 0; border-bottom:1px solid var(--edge) }
.cart-row img,.cart-no-image { border-radius:7px; background:var(--soft); width:54px; height:54px; object-fit:contain }
.cart-detail strong { font-size:.91rem; overflow-wrap:anywhere }
.cart-detail p { margin:3px 0 0 }
.quantity { display:flex; gap:5px; align-items:center; font-size:.84rem }
.quantity button { width:37px; height:37px; color:var(--brand); background:var(--white); border:1px solid var(--edge); font-size:1rem }
.quantity span { min-width:18px; text-align:center }
.total { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:1.08rem }
.cart-summary p:empty { display:none }
.order-text { min-height:140px }
.choices { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin:12px 0 }
.budget { position:relative }
.budget input { padding-right:57px }
.budget span { position:absolute; right:12px; top:50%; transform:translateY(-50%); font-size:.73rem; color:var(--muted); pointer-events:none }
.examples { margin-top:11px }
.examples button { font-size:.75rem }
.setup-form .primary { margin-top:10px }
.setup { max-width:540px; margin-block:48px }
.setup-form { margin-block:22px }
.duos { max-width:590px }
.duo-message { color:var(--muted); margin:13px 0; font-size:.9rem }
.duo-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
.duo-grid .card-photo { aspect-ratio:1.38 }
.duo-actions .total { margin:13px 0 2px }
.duo-budget-left { margin:0 0 10px; color:var(--muted); font-size:.84rem; text-align:right }
.duo-alternatives { display:flex; flex-wrap:wrap; justify-content:center; gap:0 16px; margin-top:4px }
.duo-alternatives .plain { font-size:.83rem; padding-block:9px }
.results { margin-top:28px }
.results .muted { margin:5px 0 }
.results .grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:12px }
.result-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:16px }
.result-actions .secondary { margin:0 }
#result-intro:empty { display:none }
.account-invite { display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--soft); border-radius:13px; padding:16px; margin-top:17px }
.account-invite p { color:var(--muted); margin:3px 0 0; font-size:.88rem }
.account-invite .primary { width:auto; flex:none }
.account { max-width:500px }
.account-form { display:grid; gap:12px }
.check-field { display:flex; align-items:flex-start; gap:8px; margin:7px 0 }
.check-field input { width:18px; height:18px; flex:none; margin:0; accent-color:var(--brand) }
.profile-preferences { padding-left:20px; margin-block:12px }
.profile-preferences li { margin-top:4px }
#account-status:empty { display:none }
@media (max-width:940px) {
  .frame { width:calc(100% - 44px) }
  .grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
}
@media (max-width:650px) {
  .frame { width:calc(100% - 28px) }
  .top-inner { min-height:59px; gap:7px }
  .wordmark { font-size:1.52rem }
  .top-actions { gap:6px }
  .plain,.bag-button { font-size:.78rem }
  .bag-button { min-height:39px; gap:5px }
  .bag-button svg { width:15px; height:15px }
  .hero { display:block; min-height:auto; padding:25px 16px; margin-block:14px; border-radius:13px }
  .hero p { margin-top:7px; font-size:.87rem }
  .hero-question { margin-top:16px }
  .hero-question input,.hero-action { width:100%; flex:auto }
  .hero .examples { gap:5px }
  .hero .examples button { padding-inline:7px; min-height:35px; font-size:.68rem }
  .hero-photos { display:none }
  h1 { font-size:clamp(1.98rem,7.8vw,3rem) }
  .catalogue { scroll-margin-top:70px }
  .browse { flex-wrap:wrap; gap:7px }
  .sort select { max-width:135px; padding-inline:8px; font-size:.77rem }
  .browse input { font-size:.87rem }
  .browse input,.sort select { min-height:43px }
  .filters { flex-wrap:nowrap; overflow-x:auto; padding-block:4px; margin-top:9px; scrollbar-width:thin }
  .filters button { flex:none; padding:5px 11px; min-height:35px; font-size:.78rem }
  .grid,.results .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px }
  .card-copy { padding:9px 9px 7px }
  .card-copy h3 { font-size:.87rem }
  .card-actions { padding:0 9px 9px; align-items:stretch; flex-direction:column }
  .add { min-height:38px }
  .panel { padding:15px; width:calc(100% - 16px); max-height:calc(100dvh - 16px) }
  .duo-presets { gap:5px }
  .duo-presets button { font-size:.76rem; padding-inline:9px }
  .duo-choices { gap:8px }
  .duo-choices select { font-size:.82rem; min-height:46px; padding-inline:8px }
  .cart-row { gap:8px }
  .account-invite { flex-direction:column; align-items:stretch; gap:9px }
  .account-invite .primary { width:100% }
  #catalogue-title,#results-title { scroll-margin-top:72px }
}
@media (max-width:350px) {
  .frame { width:calc(100% - 20px) }
  .sort select { max-width:113px; font-size:.72rem }
  .top-actions { gap:3px }
  .wordmark { font-size:1.35rem }
}
.guide-settings { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-top:16px }
.guide-settings label { display:grid; gap:5px; font-size:.8rem; flex:1; min-width:140px }
.guide-settings input,.guide-settings select { min-height:44px; background:#fff; color:var(--ink); border:1px solid #d8b4b4; border-radius:8px; width:100%; padding:10px }
.purpose { display:flex; gap:5px; flex-basis:100% }
.purpose button,.conversation-actions button { padding:9px 14px; min-height:44px; border:1px solid var(--edge); background:var(--white); color:var(--brand); font-size:.85rem }
.purpose button[aria-pressed=true] { background:var(--brand); color:white; border-color:white }
.conversation { background:var(--soft); border:1px solid var(--edge); border-radius:14px; padding:16px 20px; margin:20px 0 }
.conversation p { margin:0 0 9px; overflow-wrap:anywhere }
.conversation-actions { display:flex; flex-wrap:wrap; gap:7px }
#shopping-status:empty,#reservation-status:empty { display:none }
#shopping-status { padding-top:9px; color:var(--brand) }
.budget-left { font-weight:650; color:var(--brand) }
.compare-bar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; background:var(--soft); padding:12px 16px; border-radius:10px; margin-top:14px }
.card-tools { display:flex; flex-wrap:wrap; gap:2px 10px; padding:0 13px 10px }
.card-tools button { font-size:.78rem; min-height:40px; padding:5px 0; text-align:left }
.card-tools button[aria-pressed=true] { color:var(--brand); font-weight:750; text-decoration:underline }
.comparison { max-width:940px }
.comparison-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:.88rem }
.comparison-table td,.comparison-table th { padding:12px 8px; border-bottom:1px solid var(--edge); text-align:left; vertical-align:top; overflow-wrap:anywhere }
.comparison-table th { width:20%; color:var(--muted); font-weight:500 }
.comparison-table img { width:100%; height:150px; object-fit:contain }
.replacement { max-width:790px }
.replacement .grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
.cart-detail .plain { padding:2px 0; min-height:36px; font-size:.8rem; color:var(--brand) }
.complements { border-top:1px solid var(--edge); margin-top:28px; padding-top:20px }
#reserve-cart,#save-selection { margin-bottom:9px }
.reservation-lines { padding-left:20px; font-size:.9rem }
.excluded-choice { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:.85rem }
@media(max-width:650px) {
 .conversation { padding:14px }
 .guide-settings { gap:8px }
 .guide-settings label { font-size:.74rem; min-width:120px }
 .card-tools { padding:0 9px 9px }
 .replacement .grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
 .comparison-table { font-size:.73rem }
 .comparison-table td,.comparison-table th { padding:8px 4px }
 .comparison-table img { height:100px }
 .comparison-table th { width:18% }
}

/* Parcours conseil : une décision visible à la fois. */
:root { --paper:#fffdfb; --white:#fff; --soft:#fbefee; --edge:#ece3df }
.top { background:#fffdfbf5 }
.top-inner { min-height:76px }
.wordmark { font-size:1.7rem }
.top-actions { gap:20px }
.top-actions .plain { font-weight:550; color:var(--ink) }
.hero { display:block; background:none; color:var(--ink); border:0; border-radius:0; max-width:760px; min-height:490px; margin:58px auto 30px; padding:20px 0 40px }
.hero h1 { max-width:100%; font-size:clamp(2.8rem,5vw,4.4rem); line-height:1.12; letter-spacing:-.045em }
.hero h1 em { color:var(--brand); font-style:normal }
.hero .eyebrow,.eyebrow { font-family:inherit; color:var(--brand); font-size:.72rem; font-weight:700; letter-spacing:.12em; margin:0 0 22px }
.hero p.hero-description { color:var(--muted); font-size:1rem; line-height:1.6; max-width:49ch; margin-top:20px }
.hero-question { display:grid; grid-template-columns:minmax(0,1fr) auto; max-width:none; gap:10px; margin-top:36px }
.hero-question label { grid-column:1/-1; font-size:.88rem; margin:0 0 2px }
.hero-question input { min-height:56px; font-size:1rem; padding:14px 17px; background:white; border-color:#cdbab6 }
.hero-action { min-height:56px; padding:12px 22px; background:var(--brand); border:1px solid var(--brand); color:white; font-weight:650 }
.hero-action:hover { background:#801624; color:white }
.hero-action:focus-visible,.hero input:focus-visible,.hero .examples button:focus-visible { outline-color:var(--brand) }
.hero .examples { margin-top:14px; gap:8px }
.hero .examples button { color:var(--muted); border-color:var(--edge); font-size:.83rem; font-weight:500; min-height:42px; padding:8px 15px }
.hero .examples button:hover { background:var(--soft); color:var(--brand) }
.budget-step { max-width:540px; min-height:520px; margin:36px auto 60px }
.budget-step h2 { font-size:2.5rem; line-height:1.15; margin-top:20px }
.budget-step .eyebrow { letter-spacing:.02em; margin:22px 0 8px; text-transform:none }
.budget-step .back-link { padding-left:0; font-weight:500; min-height:44px }
.budget-presets { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 22px }
.budget-presets button { flex:1; min-height:52px; padding:10px; border:1px solid #d8beb9; border-radius:9px; background:white; color:var(--brand); font-size:.94rem; font-weight:600 }
.budget-presets button:hover { background:var(--soft) }
.budget-step #guide-budget { min-height:52px }
.budget-step .primary { margin-top:22px; min-height:52px }
.skip-budget { display:block; margin:10px auto; min-height:44px; font-weight:500 }
.optional-settings { margin-top:14px; font-size:.87rem }
summary { cursor:pointer; min-height:44px; padding-block:12px; color:var(--muted); font-size:.86rem; touch-action:manipulation }
summary:focus-visible { outline:3px solid var(--brand); outline-offset:3px }
.optional-settings .guide-settings { margin-top:3px }
.purpose button { border-radius:8px }
.conversation { max-width:980px; margin:30px auto 24px; background:none; border:0; border-bottom:1px solid var(--edge); border-radius:0; padding:0 0 16px }
.conversation-line { display:flex; justify-content:space-between; align-items:center; gap:16px }
.conversation-line p { margin:0; font-weight:600; font-size:.95rem }
.conversation-line button { min-height:44px; font-size:.86rem; font-weight:500 }
#budget-summary { color:var(--muted); font-size:.85rem; margin:0; padding:4px 0; min-height:36px; font-weight:400; text-align:left; text-decoration:underline; text-decoration-color:#ccbdb8; text-underline-offset:4px }
#shopping-status { margin:8px 0 0; font-size:.9rem }
#advice-status { text-align:center; padding:20px; }
#advice-status.is-loading { padding:90px 20px; min-height:360px }
.results { max-width:980px; margin:0 auto 50px }
.results h2 { font-size:clamp(1.9rem,3vw,2.5rem); line-height:1.2 }
.results #result-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:24px }
.featured-card { grid-column:1/-1; display:grid; grid-template-columns:minmax(230px,.9fr) minmax(0,1.1fr); grid-template-rows:1fr auto auto; border-radius:16px }
.featured-card .card-photo { grid-column:1; grid-row:1/4; aspect-ratio:auto; min-height:320px; padding:16px; background:#f7f3ef }
.featured-card .card-photo img { max-height:360px; object-fit:contain }
.featured-card .card-copy { grid-column:2; padding:28px 28px 10px }
.featured-card .card-copy h3 { font-size:1.4rem; font-weight:600; line-height:1.35; margin:10px 0 }
.featured-card .reason { font-size:.94rem; line-height:1.5; margin:12px 0 }
.featured-card .card-details { font-weight:500; font-size:.84rem }
.featured-card .card-actions { grid-column:2; padding:10px 28px; align-items:center; gap:15px }
.featured-card .price { font-size:1.25rem }
.featured-card .add { width:100%; background:var(--brand); color:white; border-color:var(--brand); min-height:49px; font-size:.94rem }
.card-tools { display:block; padding:0 13px 8px; border-top:1px solid var(--edge); margin:0 13px; }
.card-tools summary { font-size:.76rem; min-height:40px; padding-block:10px }
.card-tools .tool-buttons { display:flex; flex-wrap:wrap; gap:20px }
.featured-card .card-tools { grid-column:2; margin:6px 28px 7px; padding:0 }
.card-copy .category { font-weight:500; color:var(--muted) }
.card-details { font-weight:500 }
.results .result-actions { justify-content:center; gap:24px; margin-top:24px }
.result-actions .secondary { font-weight:550 }
.refine-options { margin:16px 0; text-align:center }
.refine-options .conversation-actions { justify-content:center; gap:8px }
.refine-options button { border:0; background:transparent; color:var(--brand); min-height:44px; font-size:.85rem }
.selection-next { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 20px; margin-top:20px; border:1px solid var(--edge); border-radius:12px; background:#fff }
.selection-next p { margin:0; font-size:.9rem }
.selection-next .primary { width:auto; min-height:46px; font-size:.88rem }
.complements { margin-top:16px; padding-top:0 }
.complements>summary { color:var(--brand); font-weight:550 }
.complements .grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
.cart-more { margin:14px 0; border-block:1px solid var(--edge); }
.cart-more .secondary { margin:8px 0 }
#account-invite { display:block; padding:0; background:none; margin:9px 0; text-align:center; font-size:.82rem }
#save-selection { min-height:50px; margin-top:20px }
#cart-budget { font-size:.87rem; color:var(--muted); font-weight:500 }
.foot { margin-top:36px }
@media(max-width:650px) {
 .top-inner { min-height:65px }
 .top-actions { gap:10px }
 .top-actions .plain { font-size:.78rem }
 .wordmark { font-size:1.32rem }
 .hero { min-height:480px; margin:28px auto 10px; padding:16px 3px 30px }
 .hero .eyebrow { margin-bottom:24px; font-size:.67rem }
 .hero h1 { font-size:clamp(2.45rem,9vw,3.5rem) }
 .hero p.hero-description { font-size:.94rem; margin-top:18px }
 .hero-question { grid-template-columns:1fr; margin-top:28px }
 .hero-question input { font-size:16px; min-height:54px }
 .hero-action { width:100%; min-height:52px }
 .hero .examples { gap:6px; margin-top:16px }
 .hero .examples button { padding:8px 11px; font-size:.78rem }
 .budget-step { margin:20px auto 40px; min-height:480px; padding-inline:3px }
 .budget-step h2 { font-size:2.1rem }
 .budget-presets { gap:7px }
 .budget-presets button { font-size:.8rem; padding:9px 5px }
 .conversation { margin:18px auto 20px }
 .results { margin-bottom:28px }
 .results #result-grid { gap:12px; margin-top:18px }
 .featured-card { display:flex; grid-column:1/-1 }
 .featured-card .card-photo { width:100%; aspect-ratio:1.5; min-height:0; height:auto; max-height:270px; padding:12px; overflow:hidden }
 .featured-card .card-photo img { width:100%; height:100%; max-height:245px }
 .featured-card .card-copy { padding:16px 18px 8px }
 .featured-card .card-copy h3 { font-size:1.2rem; margin:6px 0 }
 .featured-card .reason { font-size:.87rem; margin:8px 0 }
 .featured-card .card-actions { padding:6px 18px 12px; flex-direction:row; align-items:center }
 .featured-card .price { font-size:1.14rem }
 .featured-card .add { min-height:48px }
 .featured-card .card-tools { margin:0 18px 5px }
 .card-tools { margin-inline:9px; padding-inline:0 }
 .selection-next { padding:12px; flex-wrap:wrap; gap:10px }
 .selection-next .primary { flex:1; min-width:155px }
 .complements .grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
 .refine-options .conversation-actions { flex-direction:column }
}
@media(max-width:380px) {
 .top .wordmark { font-size:1.15rem }
 .top-actions { gap:4px }
 #open-cart>span:not(.count) { display:none }
 #open-cart { padding-inline:7px }
}
