/* GiftScope — holiday gift guide */
:root{
  --bg:#fbf7f0; --paper:#fff; --soft:#f4ede1; --ink:#1d2725; --ink-2:#4b5654; --muted:#737c79; --line:#e6ddcf;
  --pine:#1f5c4a; --pine-2:#174a3b; --pine-soft:#e3efe9; --berry:#c2353a; --berry-2:#a32a2f; --gold:#e3a72f; --gold-soft:#fbf0d6;
  --amz:#ffd814; --amz-2:#f7ca00;
  --r:16px; --r-sm:10px; --shadow:0 1px 2px rgba(29,39,37,.06),0 6px 20px rgba(29,39,37,.07);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --display:"Fraunces",Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--font)}
img{max-width:100%;display:block}
a{color:var(--pine)}
a:hover{color:var(--berry)}
h1,h2,h3{line-height:1.15;margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.muted{color:var(--muted)}
.small{font-size:.85rem}

/* header */
.top{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top__in{display:flex;align-items:center;gap:20px;min-height:64px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font:600 1.35rem/1 var(--display);letter-spacing:-.01em}
.logo svg{width:30px;height:30px;color:var(--berry)}
.logo b{color:var(--pine);font-weight:800}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{padding:8px 12px;border-radius:999px;text-decoration:none;color:var(--ink-2);font-weight:500;font-size:.95rem}
.nav a:hover{background:var(--soft);color:var(--ink)}
.nav a[aria-current]{background:var(--pine-soft);color:var(--pine-2)}
.nav a:first-child{background:var(--berry);color:#fff}
.nav a:first-child:hover{background:var(--berry-2)}
.menu-btn{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;font:600 .9rem var(--font);color:var(--ink)}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:64px;background:#fff;flex-direction:column;padding:12px 20px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .nav.is-open{display:flex}
  .nav a{padding:12px 14px}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 18px;font:600 .95rem/1.2 var(--font);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .15s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn--lg{padding:14px 24px;font-size:1.02rem}
.btn--primary{background:var(--berry);color:#fff}
.btn--primary:hover{background:var(--berry-2);color:#fff}
.btn--ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:var(--pine);color:var(--pine)}
.btn--amz{background:var(--amz);color:#111;border-color:#fcd200;padding:9px 14px;font-size:.9rem}
.btn--amz:hover{background:var(--amz-2);color:#111}
.link-btn{background:none;border:0;color:var(--berry);font:600 .9rem var(--font);cursor:pointer;padding:4px;text-decoration:underline}

/* hero */
.hero{background:radial-gradient(1200px 400px at 85% -10%,var(--gold-soft),transparent 60%),linear-gradient(180deg,#fff 0%,var(--bg) 100%);border-bottom:1px solid var(--line);overflow:hidden}
.hero__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;padding-top:56px;padding-bottom:56px}
.eyebrow{display:inline-block;margin:0 0 14px;padding:6px 12px;border-radius:999px;background:var(--pine-soft);color:var(--pine-2);font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.hero h1{font:800 clamp(2.2rem,5vw,3.6rem)/1.05 var(--display);letter-spacing:-.02em}
.hero h1 em{font-style:normal;color:var(--berry);background:linear-gradient(transparent 70%,var(--gold-soft) 70%)}
.lead{font-size:1.12rem;color:var(--ink-2);max-width:62ch;margin:16px 0 0}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero__note{margin:14px 0 0;color:var(--muted);font-size:.9rem}
.hero__stack{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hero__stack li{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:10px;aspect-ratio:1;min-width:0;overflow:hidden;transform:rotate(calc((var(--i) - 2.5) * 1.6deg))}
.hero__stack li:nth-child(even){translate:0 18px}
.hero__stack img{width:100%;height:100%;object-fit:contain;display:block}
@media (max-width:860px){.hero__in{grid-template-columns:1fr;padding-top:36px;padding-bottom:36px}.hero__stack{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.hero__stack li{padding:4px;border-radius:10px}.hero__stack li:nth-child(even){translate:0 8px}}
@media (max-width:520px){.hero__stack{grid-template-columns:repeat(3,minmax(0,1fr))}.hero__stack li:nth-child(n+4){display:none}}

/* bands & headings */
.band{padding:52px 0}
.band--soft{background:var(--soft)}
.band--pine{background:var(--pine);color:#fff}
.band--pine .h2{color:#fff}
.h2{font:700 clamp(1.5rem,3vw,2rem)/1.15 var(--display);letter-spacing:-.01em}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}
.sec-head a{font-weight:600;text-decoration:none;white-space:nowrap}

/* tiles */
.tiles{display:grid;gap:14px}
.tiles--age{grid-template-columns:repeat(6,1fr)}
.tiles--theme{grid-template-columns:repeat(7,1fr)}
@media (max-width:1000px){.tiles--age{grid-template-columns:repeat(3,1fr)}.tiles--theme{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.tiles--theme{grid-template-columns:repeat(2,1fr)}.tiles--age{grid-template-columns:repeat(2,1fr)}}
.tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 10px;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s}
.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--pine);color:var(--ink)}
.tile__emoji{font-size:2rem;line-height:1.1}
.tile__big{font:800 1.5rem/1.2 var(--display);color:var(--pine)}
.tile__lbl{font-weight:600}
.tile__n{font-size:.8rem;color:var(--muted)}
.tile--theme{padding:16px 8px}
.tile--theme .tile__lbl{font-size:.92rem;line-height:1.25}

/* pills */
.pills{display:flex;flex-wrap:wrap;gap:12px}
.pill{display:flex;flex-direction:column;padding:14px 20px;border-radius:var(--r);background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:150px}
.pill b{font:700 1.25rem var(--display)}
.pill span{font-size:.85rem;color:var(--muted)}
.pill:hover{border-color:var(--berry);color:var(--ink)}
.band--pine .pill{border-color:transparent}
.pill--sm{min-width:0;padding:10px 16px}
.pill--sm b{font:600 1rem var(--font)}

/* page head */
.phead{background:linear-gradient(180deg,#fff,var(--bg));border-bottom:1px solid var(--line);padding:24px 0 32px}
.phead h1{font:800 clamp(1.9rem,4vw,2.8rem)/1.1 var(--display);letter-spacing:-.02em;margin-top:14px;display:flex;align-items:center;gap:14px}
.phead__emoji{font-size:.9em}
.phead__facts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0}
.phead__facts span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:500;color:var(--ink-2)}
.disclose{font-size:.82rem;color:var(--muted);margin:14px 0 16px}
.crumbs{font-size:.85rem;color:var(--muted)}
.crumbs a{color:var(--ink-2);text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* filters */
.list-wrap{padding-top:24px;padding-bottom:48px}
.filters{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:22px;display:grid;gap:10px}
.filters>*{min-width:0}
.fgroup{display:flex;gap:12px;align-items:flex-start;min-width:0}
.fgroup__chips{min-width:0}
.fgroup__label{flex:0 0 72px;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:7px}
.fgroup__chips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{border:1px solid var(--line);background:var(--bg);color:var(--ink-2);border-radius:999px;padding:6px 12px;font:500 .86rem var(--font);cursor:pointer}
.fchip:hover{border-color:var(--pine)}
.fchip[aria-pressed=true]{background:var(--pine);border-color:var(--pine);color:#fff}
.fbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:10px;font-size:.9rem}
.fbar select{font:500 .9rem var(--font);padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;margin-left:6px}
.fcount{color:var(--muted);margin-left:auto}
@media (max-width:640px){
  .fgroup{flex-direction:column;gap:6px}
  .fgroup__label{flex:none;padding:0}
  .fgroup__chips{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:4px;scrollbar-width:none}
  .fchip{flex:none}
}

/* grid & cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:18px}
.card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.card[hidden]{display:none}
.card__media{position:relative;background:#fff;aspect-ratio:1;display:block;padding:18px;border-bottom:1px solid var(--soft)}
.card__media img{width:100%;height:100%;object-fit:contain;display:block}
.card__rank{position:absolute;top:10px;left:10px;background:var(--ink);color:#fff;font:700 .78rem var(--font);padding:3px 8px;border-radius:999px}
.card__pick{position:absolute;top:10px;right:10px;background:var(--gold);color:#3b2a00;font:700 .72rem var(--font);padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.card__meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0;font-size:.8rem;color:var(--muted)}
.chip-age{background:var(--pine-soft);color:var(--pine-2);font-weight:700;padding:2px 8px;border-radius:6px}
.card__title{font:600 1.02rem/1.3 var(--font)}
.card__title a{color:var(--ink);text-decoration:none}
.card__title a:hover{color:var(--berry)}
.card__blurb{margin:0;font-size:.9rem;color:var(--ink-2);line-height:1.5}
.card__rating{display:flex;align-items:center;gap:6px;margin:0;font-size:.85rem;font-weight:600}
.stars{--r:4.5;position:relative;display:inline-block;width:80px;height:15px;background:linear-gradient(90deg,var(--gold) calc(var(--r)/5*100%),#e4dccd calc(var(--r)/5*100%));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 15'%3E%3Cg%3E%3Cpath id='s' d='M7.5 0l2.2 4.7 5.1.6-3.8 3.5 1 5.1-4.5-2.6L3 13.9l1-5.1L.2 5.3l5.1-.6z'/%3E%3Cuse href='%23s' x='16'/%3E%3Cuse href='%23s' x='32'/%3E%3Cuse href='%23s' x='48'/%3E%3Cuse href='%23s' x='64'/%3E%3C/g%3E%3C/svg%3E") 0 0/100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 15'%3E%3Cg%3E%3Cpath id='s' d='M7.5 0l2.2 4.7 5.1.6-3.8 3.5 1 5.1-4.5-2.6L3 13.9l1-5.1L.2 5.3l5.1-.6z'/%3E%3Cuse href='%23s' x='16'/%3E%3Cuse href='%23s' x='32'/%3E%3Cuse href='%23s' x='48'/%3E%3Cuse href='%23s' x='64'/%3E%3C/g%3E%3C/svg%3E") 0 0/100% 100%}
.card__rating .muted{font-weight:400}
.card__buy{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:6px}
.price{font:800 1.25rem var(--display);color:var(--ink)}
.price sup{font:500 .7rem var(--font);color:var(--muted);margin-left:1px}
.pnote{font-size:.8rem;color:var(--muted);margin:18px 0 0}
.empty{text-align:center;padding:40px 0;color:var(--ink-2)}

/* how */
.how__list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0;margin:22px 0 0;list-style:none;counter-reset:h}
.how__list li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;counter-increment:h;color:var(--ink-2)}
.how__list li::before{content:counter(h);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--berry);color:#fff;font-weight:700;margin-bottom:10px}
.how__list b{display:block;color:var(--ink);margin-bottom:4px}
@media (max-width:760px){.how__list{grid-template-columns:1fr}}

/* prose */
.prose{max-width:760px;padding-top:28px;padding-bottom:56px;font-size:1.05rem}
.prose p{margin:0 0 16px}

/* gift finder */
.phead--finder{padding-bottom:20px}
.finder{padding-top:24px;padding-bottom:56px}
.steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 24px;counter-reset:st}
.steps li{flex:1;counter-increment:st;font-size:.82rem;font-weight:600;color:var(--muted);border-top:4px solid var(--line);padding-top:8px}
.steps li::before{content:counter(st) ". "}
.steps li.is-on{color:var(--pine-2);border-color:var(--pine)}
.qtitle{font:700 clamp(1.4rem,3vw,1.8rem)/1.2 var(--display);margin-bottom:18px}
.qtitle small{display:block;font:400 .95rem var(--font);color:var(--muted);margin-top:6px}
.opts{display:grid;gap:12px}
.opts--age{grid-template-columns:repeat(3,1fr)}
.opts--theme{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.opts--budget{grid-template-columns:repeat(3,1fr)}
@media (max-width:640px){.opts--age,.opts--budget{grid-template-columns:repeat(2,1fr)}}
.opt{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:20px 12px;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s,transform .15s,background .15s}
.opt:hover{border-color:var(--pine);transform:translateY(-2px)}
.opt b{font-size:1.05rem}
.opt small{color:var(--muted)}
.opt__emoji{font-size:2rem}
.opt--sm{padding:14px 10px;flex-direction:row;justify-content:flex-start;text-align:left;gap:10px}
.opt--sm .opt__emoji{font-size:1.5rem}
.opt--sm b{font-size:.95rem}
.opt[aria-pressed=true]{border-color:var(--pine);background:var(--pine-soft)}
.qnav{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.results-head .qtitle{margin-bottom:6px}

/* footer */
.foot{background:var(--ink);color:#c9d1ce;margin-top:0;padding:48px 0 24px;font-size:.92rem}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline;color:#fff}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.foot__grid h2{font:700 .8rem var(--font);text-transform:uppercase;letter-spacing:.08em;color:#8e9a96;margin-bottom:10px}
.foot__grid>div>a{display:block;padding:3px 0}
.foot__grid a span{color:#8e9a96}
.logo--foot{color:#fff}
.logo--foot b{color:#9fd3bd}
.foot__legal{border-top:1px solid #33403d;margin-top:32px;padding-top:18px;font-size:.8rem;color:#8e9a96}
.foot__legal strong{color:#c9d1ce}
@media (max-width:860px){.foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot__grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* guides */
.wrap--narrow{max-width:900px}
.gtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr));gap:16px}
.gtile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s}
.gtile:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--ink)}
.gtile__imgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:12px;background:#fff;border-bottom:1px solid var(--soft)}
.gtile__imgs img{width:100%;aspect-ratio:1;object-fit:contain}
.gtile__body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.gtile__body b{font:700 1.1rem/1.25 var(--display)}
.gtile__body span{color:var(--ink-2);font-size:.9rem}
.gtile__body small{color:var(--muted);margin-top:4px}
.guide{padding-top:28px;padding-bottom:40px}
.guide .h2{margin:36px 0 14px}
.qp{background:var(--gold-soft);border:1px solid #f0dca8;border-radius:var(--r);padding:18px 20px}
.qp h2{font:700 1.15rem var(--display);margin-bottom:10px}
.qp ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.qp li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.qp__lbl{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--berry-2);min-width:150px}
.qp a{font-weight:600;color:var(--ink)}
.qp__price{color:var(--ink-2);margin-left:auto}
.tips{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--ink-2)}
.tips b{color:var(--ink)}
.picks{display:grid;gap:18px}
.pick{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;scroll-margin-top:84px}
.pick__media{position:relative;display:block;aspect-ratio:1}
.pick__media img{width:100%;height:100%;object-fit:contain;display:block}
.pick__body{display:flex;flex-direction:column;gap:8px}
.pick__body p{margin:0;color:var(--ink-2)}
.pick__title{font:700 1.25rem/1.25 var(--display)}
.pick__title a{color:var(--ink);text-decoration:none}
.pick__title a:hover{color:var(--berry)}
.pick .card__buy{justify-content:flex-start;gap:18px}
.card__pick--inline{position:static}
@media (max-width:620px){.pick{grid-template-columns:1fr}.pick__media{max-width:260px;margin:0 auto;width:100%}}
.cta-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:var(--pine-soft);border-radius:var(--r);padding:18px 20px;margin-top:28px}
.cta-box span{color:var(--ink-2);flex:1 1 300px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px;margin-bottom:10px}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin:8px 0 0;color:var(--ink-2)}
