/* JAPANITIES UI v2 — one consistent layer, loaded after style.css.
   Principles: one container width, one section rhythm, one radius scale, alternating white/cream bands. */
:root{
  --ui-ink:#1d1d1f;--ui-muted:#68686d;--ui-line:#e8e4de;--ui-cream:#f7f4ef;--ui-wine:#732b40;--ui-wine-soft:#f3e8ec;
  --ui-r:16px;--ui-r-sm:10px;--ui-wrap:1160px;--ui-gutter:clamp(20px,4vw,40px);--ui-sec:clamp(56px,7vw,96px);
  --ui-shadow:0 1px 2px rgba(20,20,30,.05),0 10px 30px rgba(20,20,30,.07);
}

/* ---------- global: shape language ---------- */
body .card,body .guide-card,body .article-row,body .story,body .food-card,body .hm-recipe,
body .home-page .card,body .home-page .guide-card,body .home-page .article-row,body .home-page .story{border-radius:var(--ui-r)!important}
body .card>img,body .card>.ev-cover,body .photo-guide>img,body .article-row>img,body .food-card>img,body .food-card>.ev-cover,
body .home-page .card>img,body .home-page .photo-guide>img,body .home-page .article-row>img{border-radius:var(--ui-r-sm)!important}
body .home-page .card .eyebrow,body .home-page .article-row .eyebrow,body .home-page .date-chip{border-radius:8px!important}
body .button,body button.wine,body .outline,body .home-page .button,body .home-page .outline,body .home-page button.wine{border-radius:999px!important}

/* ---------- global: slim consent bar ---------- */
#analytics-consent{left:16px!important;right:auto!important;bottom:16px!important;max-width:400px!important;padding:14px 16px!important;border:1px solid var(--ui-line)!important;border-radius:14px!important;font-size:13px!important;line-height:1.6!important;box-shadow:0 14px 40px rgba(20,20,30,.18)!important}
#analytics-consent strong{font-size:14px!important}
#analytics-consent p{margin:6px 0!important;color:var(--ui-muted)}
#analytics-consent>div{margin-top:10px!important;gap:8px!important}
#analytics-consent button{padding:9px 10px!important;font-size:13px!important;border-radius:999px!important;border-color:#c9c4bd!important;min-height:38px}
#analytics-consent button:last-child{background:var(--ui-ink)!important;color:#fff!important;border-color:var(--ui-ink)!important}
@media(max-width:700px){#analytics-consent{left:10px!important;right:10px!important;max-width:none!important;bottom:calc(76px + env(safe-area-inset-bottom))!important}}

/* ---------- global: calmer inner-page heroes ---------- */
.page-hero{min-height:clamp(380px,58svh,560px)}
.page-hero.compact{min-height:clamp(300px,44svh,420px)}

/* ---------- home ---------- */
.home-hero{margin-bottom:0}
.home-hero .hero-location{display:none}
.hm-wrap{max-width:calc(var(--ui-wrap) + var(--ui-gutter)*2);margin:0 auto;padding:0 var(--ui-gutter)}
.hm-main{padding:0!important;max-width:none!important;background:#fff}
body:has(.hm-main){background:#fff}

/* quick access strip overlapping the hero */
.hm-quick{position:relative;z-index:6;margin-top:-56px}
.hm-quick ul{list-style:none;margin:0;padding:10px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;background:#fff;border-radius:22px;box-shadow:0 18px 48px rgba(20,20,30,.16),0 0 0 1px rgba(0,0,0,.04)}
.hm-quick a{display:grid;justify-items:center;align-content:start;gap:3px;padding:16px 8px 14px;border-radius:16px;text-align:center;color:var(--ui-ink);text-decoration:none;transition:background .2s,transform .2s}
.hm-quick a:hover,.hm-quick a:focus-visible{background:var(--ui-cream)}
.hm-quick a:active{transform:scale(.98)}
.hm-ico{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--ui-wine-soft);color:var(--ui-wine);margin-bottom:6px}
.hm-ico svg{width:22px;height:22px}
.hm-quick b{font-size:14px;font-weight:700;letter-spacing:.01em}
.hm-quick small{font-size:12px;line-height:1.5;color:var(--ui-muted)}

/* section rhythm */
.hm-sec{padding-top:var(--ui-sec)}
.hm-band{margin-top:var(--ui-sec);padding:var(--ui-sec) 0;background:var(--ui-cream)}
.hm-sec+.hm-band,.hm-band+.hm-sec{margin-top:0}
.hm-sec+.hm-sec{margin-top:0}
.hm-main .section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 28px!important;padding:0!important;border:0!important}
.hm-main .section-title h2{font-size:clamp(26px,3vw,34px)!important;line-height:1.3;letter-spacing:-.02em;margin:6px 0 0}
.hm-main .section-title .eyebrow{color:var(--ui-wine);font-size:12px;letter-spacing:.14em;font-weight:700}
.hm-main .section-title .underlink{border:0;background:none;color:var(--ui-wine);font-weight:700;font-size:14px;padding:8px 0;white-space:nowrap}
.hm-main .card-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}

/* food band */
.hm-food{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center}
.hm-food-copy .eyebrow{color:var(--ui-wine);font-size:12px;letter-spacing:.14em;font-weight:700}
.hm-food-copy h2{font-size:clamp(30px,3.6vw,46px);line-height:1.3;letter-spacing:-.025em;margin:10px 0 16px}
.hm-food-copy p{color:var(--ui-muted);font-size:16px;line-height:1.9;max-width:30em;margin:0}
.hm-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:28px}
.hm-link{color:var(--ui-wine);font-weight:700;font-size:14px;text-decoration:none}.hm-link:hover{text-decoration:underline;text-underline-offset:4px}
.hm-recipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hm-recipe{display:flex;flex-direction:column;background:#fff;overflow:hidden;color:inherit;text-decoration:none;box-shadow:var(--ui-shadow);transition:transform .25s,box-shadow .25s}
.hm-recipe:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(20,20,30,.06),0 18px 40px rgba(20,20,30,.12)}
.hm-recipe img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:0!important}
.hm-recipe div{padding:14px 16px 18px;display:grid;gap:4px}
.hm-recipe b{font-size:15px;line-height:1.5}
.hm-recipe span{font-size:12.5px;color:var(--ui-wine);font-weight:700}

/* map call-to-action under the spots */
.hm-mapbar{display:grid;grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:32px;padding:14px 26px 14px 14px;border:1px solid var(--ui-line);border-radius:var(--ui-r);background:#fff;color:inherit;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.hm-mapbar:hover{border-color:#cfc7bd;box-shadow:var(--ui-shadow)}
.hm-mapbar img{width:104px;height:72px;object-fit:cover;border-radius:var(--ui-r-sm)!important}
.hm-mapbar b{display:block;font-size:16px}.hm-mapbar span{display:block;font-size:13px;color:var(--ui-muted);margin-top:3px}
.hm-mapbar i{font-style:normal;font-size:22px;color:var(--ui-wine)}

/* life + news inside the new scaffold */
.hm-main .guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.hm-main .consular-notice{margin:0 0 24px}
.hm-main .article-list{display:grid;gap:0;border-top:1px solid var(--ui-line)}
.hm-main .article-row{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;align-items:center;padding:22px 0;border-bottom:1px solid var(--ui-line);background:none!important;box-shadow:none!important;border-radius:0!important}
.hm-main .article-row>img{width:240px;height:150px;object-fit:cover}
.hm-main .article-row h3{font-size:20px;line-height:1.6;margin:8px 0}
.hm-main .article-row p{color:var(--ui-muted);font-size:14.5px;line-height:1.8;margin:0}

/* closing note */
.hm-about{margin-top:var(--ui-sec);padding:clamp(56px,6vw,84px) 0;background:var(--ui-cream);text-align:center}
.hm-about .eyebrow{color:var(--ui-wine);font-size:12px;letter-spacing:.14em;font-weight:700}
.hm-about h2{font-size:clamp(24px,3vw,34px);line-height:1.5;letter-spacing:-.02em;margin:10px auto 14px;max-width:18em}
.hm-about p{max-width:36em;margin:0 auto 24px;color:var(--ui-muted);line-height:1.9;font-size:15px}

/* ---------- tablet ---------- */
@media(max-width:1000px){
  .hm-quick ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hm-food{grid-template-columns:1fr}
  .hm-main .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---------- phone ---------- */
@media(max-width:700px){
  .hm-quick{margin-top:-34px}
  .hm-quick ul{padding:8px;border-radius:18px;gap:2px}
  .hm-quick a{padding:12px 4px 10px}
  .hm-ico{width:36px;height:36px;border-radius:11px;margin-bottom:4px}.hm-ico svg{width:20px;height:20px}
  .hm-quick b{font-size:13px}.hm-quick small{display:none}
  .hm-main .card-grid.three{grid-template-columns:1fr;gap:24px}
  .hm-recipes{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--ui-gutter)*-1);padding:2px var(--ui-gutter) 14px;scrollbar-width:none}
  .hm-recipes::-webkit-scrollbar{display:none}
  .hm-recipe{flex:0 0 62%;scroll-snap-align:start}
  .hm-main .section-title{align-items:center;margin-bottom:20px!important}
  .hm-mapbar{grid-template-columns:76px minmax(0,1fr) auto;gap:14px;padding:12px 18px 12px 12px}
  .hm-mapbar img{width:76px;height:56px}.hm-mapbar b{font-size:14.5px}.hm-mapbar span{font-size:12px}
  .hm-main .guide-grid{grid-template-columns:1fr}
  .hm-main .article-row{grid-template-columns:104px minmax(0,1fr);gap:14px;padding:16px 0;align-items:start}
  .hm-main .article-row>img{width:104px;height:84px}
  .hm-main .article-row h3{font-size:16px;margin:6px 0 4px}
  .hm-main .article-row p{display:none}
}

/* ---------- fixes found in review ---------- */
/* legacy rule made the 3rd card of every 3-card grid span full width on tablets/phones */
body .card-grid.three>.card:nth-child(3):last-child{grid-column:auto;grid-template-columns:none;display:block}
body .card-grid.three>.card:has(.date-chip):nth-child(3):last-child{display:flex}
body .hm-main~.site-footer,body .hm-main+.site-footer{margin-top:0!important}
.hm-main{padding-bottom:0!important}
@media(max-width:700px){
  body{padding-bottom:env(safe-area-inset-bottom)!important}
  #analytics-consent{bottom:calc(10px + env(safe-area-inset-bottom))!important}
}

/* ---------- news ---------- */
body .news-page{max-width:calc(var(--ui-wrap) + var(--ui-gutter)*2)!important;padding:0 var(--ui-gutter) var(--ui-sec)!important}
body:has(.news-page) .page-hero{min-height:clamp(340px,46svh,440px)}
.news-learning{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 8px;padding:0!important;border:0!important}
.news-learning>div{padding:16px 22px;border:1px solid var(--ui-line);border-radius:14px;background:var(--ui-cream)}
.news-learning h2{font-size:17px!important;line-height:1.5;margin:0}
.news-learning p{font-size:13px!important;line-height:1.6;margin:2px 0 0!important;color:var(--ui-muted)}
.news-page .chips{margin:18px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.news-lead-in{display:flex;align-items:baseline;gap:12px;margin:36px 0 0;color:var(--ui-wine);font-size:12px;letter-spacing:.12em;font-weight:700}
.news-lead-in span{font-weight:500;color:var(--ui-muted);letter-spacing:.04em}
.news-day{margin-top:18px}
.news-day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px 0 14px;margin-bottom:22px;border-bottom:2px solid var(--ui-ink)}
.news-day-head h2{margin:0!important;font-size:clamp(22px,2.4vw,28px)!important;line-height:1.35;letter-spacing:-.01em}
.news-day-head small{display:block;margin-top:2px;font-size:13px;font-weight:500;color:var(--ui-muted)}
.news-count{font-size:12.5px;color:var(--ui-muted);white-space:nowrap}
.news-day+.news-day{margin-top:44px}

.news-lead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(20px,3vw,40px);align-items:center;margin-bottom:30px;color:inherit;text-decoration:none}
.news-lead .news-illustration,.news-lead>img,.news-lead>.ev-cover{border-radius:var(--ui-r);overflow:hidden}
.news-lead .news-illustration img{aspect-ratio:3/2;width:100%;object-fit:cover}
.news-lead .news-illustration figcaption{font-size:11px}
.news-lead h3{font-size:clamp(22px,2.4vw,30px);line-height:1.5;letter-spacing:-.015em;margin:8px 0 6px}
.news-lead:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.news-cat{display:inline-block;font-size:12px;font-weight:700;color:var(--ui-wine);letter-spacing:.04em}
.news-fr-title{font-size:15px;line-height:1.6;color:#6f3846;margin:0 0 10px}
.news-lead .news-desc{font-size:15px;line-height:1.85;color:var(--ui-muted);margin:0 0 12px}
.news-lead small{font-size:12px;color:var(--ui-muted)}

body .news-page .card-grid.three{gap:22px;margin-top:0}
body .news-page .bilingual-news-card{padding:0!important;background:#fff;border:1px solid var(--ui-line);box-shadow:none;overflow:hidden;display:flex;flex-direction:column}
body .news-page .bilingual-news-card .card-body{padding:16px 18px 20px}
body .news-page .bilingual-news-card h3{font-size:17px;line-height:1.6;margin:6px 0 4px}
body .news-page .bilingual-news-card .news-fr-title{font-size:13.5px}
body .news-page .bilingual-news-card p[lang=ja]{font-size:13.5px;color:var(--ui-muted);line-height:1.8}
body .news-page .bilingual-news-card small{font-size:11.5px}
body .news-page .bilingual-news-card .eyebrow{background:none;color:var(--ui-wine);padding:0;font-weight:700}

.news-rows{display:grid;grid-template-columns:1fr 1fr;column-gap:36px}
.news-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--ui-line);color:inherit;text-decoration:none}
.news-row:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.news-thumb{position:relative;display:block;width:112px;height:76px;border-radius:10px;overflow:hidden;background:var(--ui-cream)}
.news-thumb img,.news-thumb .ev-cover{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.news-thumb i{position:absolute;right:4px;bottom:4px;font-style:normal;font-size:11px;font-weight:700;line-height:1;padding:3px 5px;border-radius:5px;background:rgba(0,0,0,.62);color:#fff}
.news-row h3{font-size:15.5px;line-height:1.55;margin:3px 0 2px}
.news-row .news-fr-title{font-size:13px;margin:0}
.news-more{display:flex;justify-content:center;margin:34px 0 6px}
.news-notices{margin-top:56px;padding:6px 26px 14px;border-radius:var(--ui-r);background:var(--ui-cream)}
.news-notices .news-day-head{border-bottom-color:var(--ui-line)}
.news-notices .news-row{border-bottom-color:#e2ddd5}
.news-empty{margin:40px 0;color:var(--ui-muted)}

@media(max-width:1000px){.news-rows{grid-template-columns:1fr}.news-lead{grid-template-columns:1fr}}
@media(max-width:700px){
  .news-learning{grid-template-columns:1fr;gap:10px;margin-top:20px}
  .news-learning>div{padding:12px 16px}
  .news-page .chips{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(var(--ui-gutter)*-1);padding-right:var(--ui-gutter);scrollbar-width:none}
  .news-page .chips::-webkit-scrollbar{display:none}
  .news-page .chip{flex:none}
  .news-lead-in{margin-top:26px}
  .news-day-head{margin-bottom:16px}
  .news-lead h3{font-size:21px}
  .news-row{grid-template-columns:96px minmax(0,1fr);gap:12px}
  .news-thumb{width:96px;height:68px}
  body .news-page .card-grid.three{grid-template-columns:1fr;gap:16px}
  .news-notices{padding:2px 16px 8px;margin-top:40px}
}
.news-thumb .ev-cover{padding:8px!important;justify-content:center!important;align-items:center!important;text-align:center}
.news-thumb .ev-cover b{font-size:13px!important;line-height:1.4!important;letter-spacing:0!important;word-break:keep-all}
.news-thumb .ev-cover span,.news-thumb .ev-cover::before,.news-thumb .ev-cover::after{display:none!important}

/* ======================================================================
   Typography scale (Japanese-first)
   label 12.5 · meta 13 · small 14 · body 15 (16 on desktop) · reading 15.5/16 · card title 17 · h2 24–32
   No visible text below 12px except decorative marks. Paragraphs get a Japanese-friendly line height.
   ====================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:15px;line-height:1.8}
@media(min-width:900px){body{font-size:16px}}

/* labels: eyebrows, tags, chips, badges */
.eyebrow,.hero-kicker,.hero-kicker2,.news-cat,.ja-badge,.pr,.checked-at,.art-date,.card-when,.guide-read,.chip,
.city-menu-title,.city-menu-note,.city-menu i,.site-footer h4,.hero-actions a,.alert-band b,.alert-band i,
.ev-price button i,.news-language-label,.grape-label,.wine-style-pill{font-size:12.5px!important;line-height:1.5}
.chip,.hero-actions a{font-size:13px!important}
.city-btn{font-size:12px!important}

/* meta lines */
.card-body small,.card small,.news-count,.ev-note,.small,.muted.small,.audio-settings-note,.text-button{font-size:13px}
.site-footer small,.site-footer .footer-bottom{font-size:12.5px}

/* secondary body copy in cards and lists */
.card-body p,.guide-card p,.article-row p,.food-card p,.news-row p,.hm-recipe span{font-size:14.5px;line-height:1.8}
.card-body h3,.guide-card h3,.food-card h3{font-size:clamp(16.5px,1.5vw,18px);line-height:1.55;letter-spacing:0}

/* long-form reading: details, guides, recipes, articles */
.article-sections p,.article-sections li,.article-sections td,.article-sections th,.detail-description,.food-sections li,.food-sections p,
.ev-detail p,.ev-detail li,.standalone-article .detail-body p{font-size:15.5px;line-height:1.95}
@media(min-width:900px){.article-sections p,.article-sections li,.article-sections td,.article-sections th,.detail-description,.food-sections li,.food-sections p,.ev-detail p,.ev-detail li,.standalone-article .detail-body p{font-size:16px}}
.article-sections h2,.food-sections h2{font-size:clamp(20px,2.2vw,24px);line-height:1.5}
.article-sections td,.article-sections th{line-height:1.7}

/* section headings outside the home page */
.container .section>h2,.container .section-title h2,.news-page h2,.food-page h2{font-size:clamp(22px,2.4vw,30px);line-height:1.4;letter-spacing:-.01em}

/* ======================================================================
   Compact phone layouts: events + shared hero stats
   ====================================================================== */
@media(max-width:700px){
  .hero-facts{display:grid!important;grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none!important;padding:0 4px!important}
  .hero-fact{padding:14px 4px!important;border-top:0!important;border-left:1px solid var(--ui-line)!important}
  .hero-fact:first-child{border-left:0!important}
  .hero-fact b{font-size:22px!important}
  .hero-fact span{font-size:12px!important;line-height:1.4}
  body:has(.events-page) .page-hero,body:has(.food-page) .page-hero{min-height:300px}
  body:has(.events-page) .page-hero-inner,body:has(.food-page) .page-hero-inner{padding:34px 20px 52px}
  body:has(.events-page) .hero-lead,body:has(.food-page) .hero-lead{display:none}
  body:has(.events-page) .hero-cta .hero-btn.ghost{display:none}
  .ev-panel{gap:10px;margin:4px 0 12px}
  .ev-tabs button,.ev-view button{padding:6px 4px;font-size:13.5px}
  .ev-search{padding:3px 3px 3px 14px}
  .ev-search button{padding:8px 16px}
  .news-lead .news-illustration img,.news-lead>img{aspect-ratio:16/10;max-height:230px}
}
body .city-btn{font-size:12px!important}
body .city-btn span{font-size:11px!important}
.date-chip i{font-size:12px!important}
.news-illustration figcaption,.news-illustration figcaption span{font-size:11.5px!important}
.coming-card,.coming-card span,.coming-card i,.coming-card b,.coming-card small{font-size:12px}
.hero-location b{font-size:12px!important}

/* life guide: tighter on phones */
@media(max-width:700px){
  .life-topics{gap:16px!important}
  .topic-photo{height:140px!important;min-height:0!important;aspect-ratio:auto!important}
  .topic-photo img{width:100%;height:100%!important;object-fit:cover}
  .topic-body{padding:18px!important}
  .life-topic h2{font-size:21px!important}
}

/* every inner-page hero: shorter on phones so content starts sooner */
@media(max-width:700px){
  .page-hero{min-height:clamp(300px,44svh,400px)}
  .page-hero-inner{padding:34px 20px 52px}
  .page-hero h1{font-size:clamp(28px,8.4vw,36px);line-height:1.35}
  .page-hero .hero-lead{font-size:14px;line-height:1.85}
}

/* food page: consistent eyebrow, tighter rhythm, 2-column recipe grid on phones */
.food-page .section>.eyebrow{border:0!important;padding:0!important;color:var(--ui-wine)!important;font-weight:700;letter-spacing:.14em}
.food-page .section{padding-top:clamp(36px,5vw,64px)}
.food-page .section+.section{padding-top:clamp(28px,4vw,48px)}
@media(max-width:700px){
  .food-page{padding-top:0!important}
  .food-page .section{padding-top:32px}
  .food-grid:not(.two){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  .food-grid:not(.two) .food-card>div{padding:12px 12px 14px;gap:5px}
  .food-grid:not(.two) .food-card h3{font-size:15px;line-height:1.5}
  .food-grid:not(.two) .food-card p{display:none}
  .food-grid:not(.two) .food-card .eyebrow{font-size:12px!important}
  .food-grid:not(.two) .food-meta{flex-direction:column;gap:2px;font-size:12.5px}
}
html body .header .city-btn{font-size:12px!important}
html body .header .city-btn span{font-size:11px!important}
html body .coming-card span,html body .coming-card .jp{font-size:12px!important}

/* ======================================================================
   Bilingual parity (news articles): Japanese and French read at the same optical size.
   Latin letters in the Japanese UI font look larger/heavier than kana at the same px,
   so French uses a Latin face, a slightly smaller size and the same weight as Japanese.
   ====================================================================== */
:root{--latin:"Inter","Helvetica Neue",-apple-system,"Segoe UI",Arial,sans-serif}
.bilingual-article [lang="fr"],.news-glossary [lang="fr"],.news-grammar [lang="fr"],.news-parallel [lang="fr"],.news-page [lang="fr"]{font-family:var(--latin)}
/* ja inside French blocks keeps the Japanese face */
.bilingual-article [lang="ja"],.news-grammar [lang="ja"],.news-glossary [lang="ja"]{font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif}

/* one heading scale for the three learning sections: text · vocabulary · grammar */
.news-glossary h2,.news-grammar .grammar-section-heading h2,.news-parallel>h2{font-size:clamp(24px,3vw,30px)!important;line-height:1.45;font-weight:800;margin:8px 0 0}
/* '日本語 / Français' headings: both languages identical in size, weight and color (vocabulary and grammar alike) */
.news-grammar .grammar-section-heading h2>span,.news-glossary h2>span,.news-parallel>h2>span{font-size:1em!important;font-weight:inherit!important;color:inherit!important}

/* grammar panels: same weight, FR optically matched to JA */
.grammar-panel-heading h3{font-size:22px;font-weight:700;line-height:1.5;letter-spacing:0}
.grammar-panel[lang="fr"] .grammar-panel-heading h3,.grammar-panel-heading h3[lang="fr"]{font-size:21px;font-weight:700;letter-spacing:-.005em}
.grammar-note-title{font-size:16.5px;font-weight:600;line-height:1.7}
.grammar-note-title[lang="fr"],.grammar-panel[lang="fr"] .grammar-note-title{font-size:16px}
.grammar-pattern{font-size:16px;font-weight:600}
.grammar-explanation{font-size:15.5px;line-height:1.95}
.grammar-panel[lang="fr"] .grammar-explanation{font-size:15.5px;line-height:1.85}
.news-grammar blockquote{font-size:17px;line-height:1.95}
.news-grammar blockquote[lang="fr"]{font-size:16.5px;line-height:1.85}
.news-grammar blockquote ruby{ruby-position:over}
.grammar-field-label,.grammar-panel-label{font-size:12.5px;font-weight:600}

/* parallel text and vocabulary: same pairing */
.news-parallel p[lang="fr"],.news-parallel p[lang="fr"] .news-word{font-size:15.5px;line-height:1.95}
.news-parallel p[lang="ja"],.news-parallel p[lang="ja"] .news-word{font-size:16px}
.news-parallel h3[lang="fr"]{font-size:20px;font-weight:700;line-height:1.55}
.news-parallel h3[lang="ja"]{font-size:21px;font-weight:700;line-height:1.55}
.news-glossary td,.news-glossary th{font-size:14px}
.news-glossary td[lang="fr"],.news-glossary .news-word[lang="fr"]{font-size:13.5px}
.grammar-panel[lang="fr"] .grammar-note-title{font-weight:500}
.grammar-panel[lang="fr"] .grammar-note-title [lang="ja"]{font-weight:600}

/* ======================================================================
   One scale for the same role everywhere (audit result)
   section h2 30 · feature h2 40 · card title 18 · row title 17 · card text 14.5 · button 15/700 · eyebrow 700 · table 15
   ====================================================================== */
:root{--h2:clamp(24px,2.5vw,30px)}
.hm-main .section-title h2,.container .section-title h2,.container .section>h2,.news-page .news-lead-in+h2,.food-page .section>h2,.hm-about h2,.news-day-head h2{font-size:var(--h2)!important;font-weight:800!important;line-height:1.4}
.hm-food-copy h2{font-size:clamp(28px,3.2vw,40px)!important;font-weight:800}
.hm-about h2{font-size:var(--h2)!important}

/* card titles */
.card-body h3,.guide-card h3,.food-card h3,.life-topic h3,.article-row h3,.wine-learning-guides .card h3{font-size:18px!important;font-weight:700!important;line-height:1.55!important}
body .news-page .bilingual-news-card h3{font-size:17px!important;font-weight:700!important}
.news-row h3,.hm-main .article-row h3{font-size:17px!important;font-weight:700!important}
.hm-recipe b,.food-grid:not(.two) .food-card h3{font-size:16px!important;font-weight:700!important}

/* card text */
.card-body p,.guide-card p,.food-card p,.article-row p,.wine-learning-guides .card p,body .news-page .bilingual-news-card p[lang=ja]{font-size:14.5px!important;line-height:1.8!important}
body .news-page .bilingual-news-card .news-fr-title,.news-row .news-fr-title{font-size:13.5px!important}

/* buttons: one size and weight */
.button,.outline,button.wine,a.wine,.home-feature-actions .button{font-size:15px!important;font-weight:700!important;line-height:1.4}
.hero-btn{font-size:16px!important;font-weight:700!important}
.news-audio .outline,.news-audio button,.news-glossary .outline{font-size:13px!important;font-weight:600!important}
.chip{font-weight:600!important}
#analytics-consent button{font-weight:600!important}

/* labels */
.eyebrow,.hero-kicker2{font-weight:700!important}

/* tables */
.article-table td,.article-table th,.food-sections td,.food-sections th{font-size:15px!important;line-height:1.75}
.news-glossary td,.news-glossary th{font-size:14.5px!important}
.news-glossary td[lang="fr"],.news-glossary .news-word[lang="fr"]{font-size:14px!important}

/* French pages: Latin letterforms everywhere, not the Japanese UI face */
html[lang="fr"] body,html[lang="fr"] h1,html[lang="fr"] h2,html[lang="fr"] h3,html[lang="fr"] h4,html[lang="fr"] .brand,
html[lang="fr"] .eyebrow,html[lang="fr"] .city-btn,html[lang="fr"] .underlink,html[lang="fr"] .hero-btn,html[lang="fr"] .button,
html[lang="fr"] .outline,html[lang="fr"] button,html[lang="fr"] input{font-family:var(--latin),"Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif}
html[lang="fr"] .page-hero h1,html[lang="fr"] .hero h1{font-weight:800;letter-spacing:-.02em}
html[lang="fr"] .page-hero h1{font-size:clamp(30px,5vw,54px)}
@media(max-width:700px){body:has(.news-page) .page-hero h1,body:has(.news-page) .page-hero.compact h1{font-size:clamp(28px,8.4vw,36px)!important;line-height:1.35}}

/* first paint: the crawler-ready HTML stays in the document but is not shown until the app has rendered (no layout flash) */
#app[data-ssr]{visibility:hidden;animation:ssr-reveal 0s 5s forwards}
@keyframes ssr-reveal{to{visibility:visible}}
body:has(#app[data-ssr])::after{content:"";position:fixed;left:50%;top:46%;width:30px;height:30px;margin:-15px 0 0 -15px;border:2px solid #e6e3df;border-top-color:#1d1d1f;border-radius:50%;animation:ui-spin .8s linear infinite;z-index:5}
@keyframes ui-spin{to{transform:rotate(360deg)}}
/* hero copy stays legible over bright architecture */
.home-hero .hero-content>p{text-shadow:0 1px 14px rgba(0,0,0,.6)}
.home-hero h1{text-shadow:0 2px 26px rgba(0,0,0,.4)}
/* no decorative icons: glyph marks inherit the text colour */
.ic-wrap{display:none}
/* related links at the end of detail pages */
.related-block{margin-top:56px;padding-top:36px;border-top:1px solid #e6e3df}
.related-block h2{font-size:clamp(22px,2.4vw,28px);margin:0 0 22px}

/* date-chip event cards: one layout everywhere a card grid is used (home, event detail "近い日程", search, lists) */
.card-grid .card:has(.date-chip){display:flex;flex-direction:column;position:relative;padding:0;gap:0;overflow:hidden;height:100%;align-content:normal;grid-template-columns:none;column-gap:0}
.card-grid .card:has(.date-chip)>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center;flex:none;margin:0}
.card-grid .card:has(.date-chip)>.ev-cover{display:flex;width:100%;height:auto;min-height:0;aspect-ratio:3/2;flex:none;padding:24px;justify-content:flex-end}
.card-grid .card:has(.date-chip) .date-chip{position:absolute;top:14px;left:14px;z-index:1;grid-area:auto;width:64px;padding:10px 6px;background:rgba(255,255,255,.96);color:#1d1d1f;border:1px solid rgba(0,0,0,.08)}
.card-grid .card:has(.date-chip) .card-body{grid-area:auto;padding:22px;flex:1;width:100%;min-width:0}
.card-grid .card:has(.date-chip) .card-body h3{line-height:1.6}
@media(max-width:700px){.card-grid .card:has(.date-chip)>img,.card-grid .card:has(.date-chip)>.ev-cover{aspect-ratio:16/10}.card-grid .card:has(.date-chip) .card-body{padding:20px}.card-grid .card:has(.date-chip) .date-chip{top:12px;left:12px}}

/* ---------------- overlap fixes (review of buttons/controls) ---------------- */
/* the round "scroll down" arrow sat on top of the second hero button on phones */
@media(max-width:700px){.page-hero .scroll-cue{display:none}.page-hero-inner{padding-bottom:44px}}
/* wine: the sticky level switch used the same top offset as the sticky header and overlapped it */
.wine-levels{position:static!important}
/* map pins: raise the hovered/selected pin above its neighbours */
.leaflet-marker-icon.bordeaux-pin:hover{z-index:9999!important}
/* cookie notice: compact on phones so it never hides page buttons */
@media(max-width:700px){
  #analytics-consent{left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;padding:12px 14px!important;font-size:12.5px!important;line-height:1.55!important;border-radius:12px!important;max-width:none!important}
  #analytics-consent strong{font-size:14px!important}
  #analytics-consent p{margin:4px 0!important}
  #analytics-consent>div{gap:8px!important;margin-top:8px!important}
  #analytics-consent button{padding:9px 10px!important;font-size:13px!important;min-height:40px}
}
/* home hero legibility: darker scrim + solid white text */
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.42) 50%,rgba(0,0,0,.66) 100%)!important}
.hero h1,.hero-content h1{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.55)!important}
.hero p,.hero .hero-lead,.hero-content p,.hero-kicker{color:#fff!important;font-weight:500;text-shadow:0 1px 12px rgba(0,0,0,.6)}
/* grammar notes: gist line, highlighted target, bulleted points */
.grammar-note-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.grammar-note-gist{font-size:13.5px;font-weight:400;color:var(--muted,#6b6b70);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
details[open]>summary .grammar-note-gist{display:none}

.grammar-points{margin:6px 0 0;padding-left:1.2em;display:grid;gap:6px}
.grammar-points li{font-size:15px;line-height:1.85}
/* vocabulary: part of speech / gender / number chips and in-article examples */
.vocab-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.vocab-chip{font-size:11.5px;font-weight:600;line-height:1;padding:4px 7px;border-radius:999px;background:#eceae6;color:#3a3a3d}
.vocab-example{margin-top:8px;padding:8px 10px;background:#f6f5f1;border-left:3px solid #d8d4cc;border-radius:4px;display:grid;gap:6px}
.vocab-example p{margin:0;font-size:13.5px;line-height:1.8}
.vocab-ex-label{display:block;font-size:11px;font-weight:700;color:#6b6b70;margin-bottom:1px}
.news-word-popup .vocab-chips{margin:8px 0}
.news-word-popup .vocab-example p{font-size:14px}
.news-vocab-list mark.gram-hl,.news-word-popup mark.gram-hl{background:#ffe9a8;color:inherit;padding:0 2px;border-radius:3px;font-weight:700}

mark.gram-hl{color:inherit;padding:1px 3px;border-radius:3px;font-weight:700;background:#ffe3a3}
mark.gram-hl.gh1,.gram-legend i.gh1{background:#ffe3a3}
mark.gram-hl.gh2,.gram-legend i.gh2{background:#bfe0ff}
mark.gram-hl.gh3,.gram-legend i.gh3{background:#f7c6d0}
.gram-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:2px 0 10px;font-size:12.5px;color:#4a4a4f}
.gram-legend-item{display:inline-flex;align-items:center;gap:6px}
.gram-legend i{width:14px;height:14px;border-radius:3px;display:inline-block}
.grammar-term{font-size:12.5px;font-weight:600;color:#6d2f3f}
/* unified study cards: vocabulary + grammar share one look */
.study-card,.news-grammar-note{background:#fff;border:1px solid #e3e0da;border-radius:12px;padding:14px 16px}
.news-grammar-note{margin-bottom:10px;border-bottom:1px solid #e3e0da}
.news-grammar-note>summary{padding:0}
.vocab-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.vocab-search{flex:1 1 220px;min-width:0;border:1px solid #d8d4cc;border-radius:999px;padding:10px 16px;font-size:15px;background:#fff}
.vocab-filters{display:flex;flex-wrap:wrap;gap:6px}
.vocab-filters button{border:1px solid #d8d4cc;background:#fff;border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer;min-height:38px}
.vocab-filters button.on{background:#1d1d1f;border-color:#1d1d1f;color:#fff}
.vocab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:760px){.vocab-grid{grid-template-columns:1fr}}
.vocab-card[hidden]{display:none}
.vocab-card header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}
.vocab-term{font-size:18px!important;font-weight:700;text-align:left}
.vocab-ja{font-size:16px;color:#3a3a3d}
.vocab-mean{margin:8px 0 0;font-size:14.5px;line-height:1.75}
/* grammar card: example first, structure as a compact line, less chrome */
.news-grammar-content{display:flex;flex-direction:column;gap:10px;padding-top:10px}
.news-grammar-content .grammar-field-label{font-size:12px;font-weight:700;color:#6b6b70;letter-spacing:.02em;margin:0}
.news-grammar-content blockquote{margin:0;padding:10px 14px;border-left:3px solid #d8d4cc;background:#faf9f6;border-radius:0 8px 8px 0;font-size:16.5px;line-height:2}
.news-grammar-content .gram-legend{margin:-2px 0 0}
.news-grammar-content .grammar-structure{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:0;background:none;border:0}
.news-grammar-content .grammar-pattern{margin:0;font-size:14.5px;font-weight:700;color:#6d2f3f;background:#f3eeef;padding:5px 10px;border-radius:6px}
.news-grammar-content .grammar-points{margin:0}
.news-grammar-note>summary{display:flex;gap:12px;align-items:flex-start;cursor:pointer;list-style:none}
.news-grammar-note>summary::-webkit-details-marker{display:none}
.grammar-note-title{font-size:16.5px;font-weight:700}
@media(max-width:700px){.news-grammar-content blockquote{font-size:16px}.grammar-panel-heading p{display:none}}
.news-vocab-list:not(.filtering) .vocab-extra:not(.revealed){display:none}
.vocab-more{text-align:center;margin:16px 0 4px}
.vocab-ex-toggle{margin-top:8px}
.vocab-ex-toggle>summary{cursor:pointer;font-size:13px;font-weight:700;color:#6d2f3f;list-style:none;padding:6px 0}
.vocab-ex-toggle>summary::-webkit-details-marker{display:none}
.vocab-ex-toggle>summary::before{content:"＋ "}
.vocab-ex-toggle[open]>summary::before{content:"− "}
.vocab-ex-toggle .vocab-example{margin-top:4px}
/* vocabulary as one-line accordion rows */
.vocab-grid{grid-template-columns:1fr!important;gap:8px}
.vocab-card{padding:0!important;overflow:hidden}
.vocab-card>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:12px 16px;min-height:52px}
.vocab-card>summary::-webkit-details-marker{display:none}
.vocab-card>summary::after{content:"＋";grid-column:4;color:#6d2f3f;font-weight:700}
.vocab-card[open]>summary::after{content:"−"}
.vocab-card>summary .vocab-chips{margin:0;grid-column:1/-1;order:5}
.vocab-card>summary{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 24px}
.vocab-card>summary .vocab-term{font-size:16.5px;font-weight:700}
.vocab-card>summary::after{grid-column:3;grid-row:1;text-align:right}
.vocab-body{padding:0 16px 14px;border-top:1px solid #eeebe5}
.vocab-detail{margin-top:10px;font-size:13px;min-height:40px}
.vocab-card header{display:none}
@media(min-width:900px){.vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start}}
@media(min-width:900px){.vocab-grid{grid-template-columns:1fr!important}.vocab-card>summary{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) auto 24px}.vocab-card>summary .vocab-chips{grid-column:auto;order:0}.vocab-card>summary::after{grid-column:4}}
.vocab-pair{display:inline-flex;align-items:center;gap:6px;min-width:0}
.vocab-speak{display:inline-flex}
.vocab-speak-btn{width:34px;height:34px;border-radius:50%;border:1px solid #d8d4cc;background:#fff;cursor:pointer;display:inline-grid;place-items:center;padding:0;font-size:15px;line-height:1;flex:none}
.vocab-speak-btn:hover{background:#f3eeef}
.vocab-speak-btn svg{width:17px;height:17px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:700px){.vocab-card>summary{grid-template-columns:minmax(0,1fr) 24px}.vocab-card>summary .vocab-pair:nth-of-type(1){grid-column:1}.vocab-card>summary::after{grid-column:2;grid-row:1}.vocab-card>summary .vocab-pair:nth-of-type(2){grid-column:1}}
.sent-speak{margin:0 4px 0 2px;vertical-align:middle}
.sent-speak .vocab-speak-btn{width:28px;height:28px;border-color:#e3e0da;background:#faf9f6}
.sent-speak .vocab-speak-btn svg{width:15px;height:15px}
/* aligned vocabulary rows: fixed column widths so every word starts at the same x */
@media(min-width:701px){.vocab-card>summary{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 190px 24px!important;column-gap:16px}.vocab-pair{justify-self:start}.vocab-card>summary .vocab-chips{justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap}}
.gram-verbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.gram-verb{font-size:14px;font-weight:600;padding:4px 10px;border-radius:6px;background:#eef3f8;color:#1f3a56}
/* grammar: same collapsed list pattern as vocabulary */
.news-grammar-list>summary{cursor:pointer;padding:16px;border:1px solid #e5dacf;background:#faf6f0;border-radius:8px;font-weight:600}
.news-grammar-list .gram-list{display:grid;gap:8px}
.gram-item[hidden]{display:none}
.news-grammar-list .news-grammar-note{margin-bottom:0}
.news-grammar .grammar-section-heading p.small{margin:6px 0 0}

.vocab-chip.lvl{background:#1d1d1f;color:#fff}
.vocab-chip.lvl-A1,.vocab-chip.lvl-A2{background:#2f6f4f}
.vocab-chip.lvl-B1,.vocab-chip.lvl-B2{background:#8a5a14}
.vocab-chip.lvl-C{background:#7b2d3f}
.vocab-tools{flex-direction:column;align-items:stretch;gap:8px}
.vocab-count{min-height:1em;color:#6b6b70}
.vocab-tools .vocab-search{flex:none;width:100%;height:46px}
/* play buttons (sentences + words) */
.vocab-speak-btn{background:#1d1d1f!important;border:0!important;color:#fff!important}
.vocab-speak-btn:hover{background:#3a3a3d!important}
.vocab-speak-btn svg{width:13px;height:13px;margin-left:1px}
.sent-line{display:inline}
.sent-speak{margin:0 6px 0 0!important;vertical-align:middle}
.sent-speak .vocab-speak-btn{width:26px;height:26px;background:#1d1d1f!important}
.vocab-speak-btn{width:30px;height:30px}
/* clickable words + word sheet */
.news-word.w{cursor:pointer;border-radius:3px;text-decoration:none;color:inherit;background:none;border:0;padding:0;font:inherit}
.news-word.w:hover,.news-word.w:focus-visible,.news-word.active{background:#ffe9a8}
.news-word.active{outline:1px solid #d9a441}
.lv-colors .news-word[data-lv="A1"],.lv-colors .news-word[data-lv="A2"]{color:#1f7a4d}
.lv-colors .news-word[data-lv="B1"],.lv-colors .news-word[data-lv="B2"]{color:#a8650d}
.lv-colors .news-word[data-lv="C"]{color:#a1263f}
.word-tools{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between;margin:10px 0 4px;font-size:13px;color:#6b6b70}
.wt-toggle{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.wt-toggle input{width:16px;height:16px}
.word-sheet{position:fixed;z-index:1200;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));max-height:min(78vh,640px);overflow:auto;background:#fff;border:1px solid #d8d4cc;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.22);padding:16px 16px 18px}
.word-sheet[hidden]{display:none}
@media(max-width:700px){.word-sheet{left:0;right:0;bottom:0;width:100%;max-height:72vh;border-radius:16px 16px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}}
.ws-close{position:absolute;top:8px;right:10px;width:36px;height:36px;border:0;background:#f3f1ec;border-radius:50%;font-size:20px;cursor:pointer}
.wp-tabs{display:flex;gap:4px;border-bottom:1px solid #e5e1d9;margin:0 40px 12px 0}
.wp-tabs button{border:0;background:none;padding:10px 14px;font-size:14.5px;font-weight:700;color:#6b6b70;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.wp-tabs button.on{color:#1d1d1f;border-bottom-color:#1d1d1f}
.wp-pane[hidden]{display:none}
.wp-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}
.wp-fr.big{font-size:20px;font-weight:800}
.wp-ja{font-size:18px}
.wp-def,.wp-form{font-size:14.5px;line-height:1.7;margin:6px 0}
.wp-ctx{margin-top:12px;padding:10px 12px;background:#faf9f6;border-left:3px solid #d8d4cc;border-radius:0 8px 8px 0}
.wp-ctx p{margin:4px 0 0;font-size:15px;line-height:1.9}
.wp-gblock{margin:0 0 14px}
.wp-gblock p{margin:4px 0;font-size:14.5px;line-height:1.75}
.wp-gblock blockquote{margin:6px 0;padding:8px 12px;border-left:3px solid #d8d4cc;background:#faf9f6;font-size:15px;line-height:1.9}
.wp-toks{margin:6px 0 0;padding-left:1.1em;display:grid;gap:6px;font-size:14px;line-height:1.7}
.wp-note{color:#4a4a4f}
.wp-exlist{list-style:none;margin:6px 0 12px;padding:0;display:grid;gap:10px}
.wp-ex{padding:10px 12px;background:#faf9f6;border-radius:8px}
.wp-ex-main{display:flex;gap:8px;align-items:flex-start;font-size:15px;line-height:1.85}
.wp-ex-tr{margin:4px 0 0 36px;font-size:13.5px;color:#4a4a4f;line-height:1.7}
.wp-ex-src{display:inline-block;margin:4px 0 0 36px;font-size:12.5px}
.wp-none,.wp-loading{font-size:13.5px;color:#6b6b70}
.word-panel-host .wp-tabs{margin-right:0}
/* all clickable words look like plain text (no underline, no colour) */
.bilingual-article .news-word,.news-word{color:inherit!important;text-decoration:none!important;border:0!important;border-bottom:0!important;background:none;padding:0!important;font:inherit!important;letter-spacing:inherit;cursor:pointer;box-shadow:none!important;text-underline-offset:0}
.bilingual-article .news-word:hover,.bilingual-article .news-word:focus-visible,.news-word.active{background:#ffe9a8!important}
.bilingual-article.lv-colors .news-word[data-lv="A1"],.bilingual-article.lv-colors .news-word[data-lv="A2"]{color:#1f7a4d!important}
.bilingual-article.lv-colors .news-word[data-lv="B1"],.bilingual-article.lv-colors .news-word[data-lv="B2"]{color:#a8650d!important}
.bilingual-article.lv-colors .news-word[data-lv="C"]{color:#a1263f!important}
/* one sentence per line, title play buttons, level colours A/B/C */
.sent-line{display:block!important;margin:0 0 .55em}
.news-parallel p .sent-line:last-child{margin-bottom:0}
h1 .sent-speak,h3 .sent-speak,.news-title-fr .sent-speak{margin-right:8px!important}
.wt-toggle b{display:inline-block;min-width:18px;text-align:center;border-radius:4px;padding:0 4px;color:#fff;font-size:12px}
.wt-toggle .lvA{background:#1f7a4d}.wt-toggle .lvB{background:#a8650d}.wt-toggle .lvC{background:#a1263f}
.bilingual-article.lv-colors .news-word[data-lv="A1"],.bilingual-article.lv-colors .news-word[data-lv="A2"]{color:#17703f!important}
.bilingual-article.lv-colors .news-word[data-lv="B1"],.bilingual-article.lv-colors .news-word[data-lv="B2"]{color:#b25e00!important}
.bilingual-article.lv-colors .news-word[data-lv="C"]{color:#b0203a!important}
/* quieter play buttons: ghost circle, fills on hover */
.vocab-speak-btn,.sent-speak .vocab-speak-btn{background:transparent!important;color:#8a8a90!important;border:1px solid #d9d5cd!important;width:24px!important;height:24px!important;display:inline-grid;place-items:center;transition:background .15s,color .15s,border-color .15s}
.vocab-speak-btn svg{width:10px!important;height:10px!important;margin-left:1px}
.vocab-speak-btn:hover,.vocab-speak-btn:focus-visible{background:#1d1d1f!important;color:#fff!important;border-color:#1d1d1f!important}
h1 .sent-speak .vocab-speak-btn,h3 .sent-speak .vocab-speak-btn,.news-title-fr .sent-speak .vocab-speak-btn{width:26px!important;height:26px!important}
.sent-speak{margin-right:7px!important;opacity:.9}
.vocab-pair .vocab-speak-btn{width:26px!important;height:26px!important}
/* news language view: ja only / both / fr only */
.view-switch{display:inline-flex;gap:0;margin:10px 0 2px;border:1px solid #d8d4cc;border-radius:999px;overflow:hidden;background:#fff}
.view-switch button{border:0;background:none;padding:9px 16px;font-size:13.5px;font-weight:700;color:#6b6b70;cursor:pointer;min-height:40px}
.view-switch button.on{background:#1d1d1f;color:#fff}
.bilingual-article.view-ja .news-title-fr,.bilingual-article.view-ja .news-parallel>[lang="fr"],.bilingual-article.view-ja .news-parallel>.news-language[lang="fr"]{display:none!important}
.bilingual-article.view-fr h1[lang="ja"],.bilingual-article.view-fr .news-parallel>[lang="ja"],.bilingual-article.view-fr .news-parallel>.news-language[lang="ja"]{display:none!important}
.bilingual-article.view-ja .news-parallel,.bilingual-article.view-fr .news-parallel{grid-template-columns:1fr!important}
@media(max-width:700px){.view-switch{display:flex;width:100%}.view-switch button{flex:1;padding:9px 6px;font-size:12.5px}}
.news-illustration figcaption{font-size:11.5px;line-height:1.5;color:#6b6b70;padding:6px 2px 0}
.news-illustration figcaption a{color:inherit;text-decoration:underline}
/* vocabulary / grammar openers: clearly a button */
.news-vocab-list>summary,.news-grammar-list>summary{display:flex!important;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:18px 20px!important;border:1.5px solid #1d1d1f!important;background:#fff!important;border-radius:12px!important;font-size:17px;font-weight:800;color:#1d1d1f}
.news-vocab-list>summary::-webkit-details-marker,.news-grammar-list>summary::-webkit-details-marker{display:none}
.news-vocab-list>summary::after,.news-grammar-list>summary::after{content:"＋";font-size:22px;font-weight:400;margin-left:auto;order:3}
.news-vocab-list[open]>summary::after,.news-grammar-list[open]>summary::after{content:"−"}
.news-vocab-list>summary:hover,.news-grammar-list>summary:hover{background:#faf9f6!important}
.sum-count{font-size:13px;font-weight:700;background:#1d1d1f;color:#fff;border-radius:999px;padding:3px 11px}
/* "coming soon" cards: one size for every title */
html body .coming-card h3{font-size:17px!important;font-weight:700!important;line-height:1.4!important;letter-spacing:0!important;margin:0 0 10px!important}
html body .coming-card span{font-size:13px!important;font-weight:400!important}
html body .coming-grid .coming-card{padding:22px 24px!important;display:flex;flex-direction:column;justify-content:center;min-height:116px}
html body .coming-card h3,html body .coming-card h3.jp,html body .coming-card h3 *,html body .coming-card h3 .jp{font-size:17px!important;font-weight:700!important;line-height:1.4!important}
/* sentence playback: translation under the sentence, pause/stop controls */
.sent-tr{display:block;margin:-.15em 0 .7em 34px;padding:.1em 0 .1em 12px;border-left:2px solid #d9d5cd;color:#55555a;font-size:.94em;line-height:1.7}
.sent-tr::before{content:attr(data-label);display:inline-block;margin-right:8px;font-size:11px;font-weight:600;letter-spacing:.04em;color:#8a8a90}
.sent-speak{display:inline-flex;gap:4px;align-items:center}
.vocab-speak-btn.stop{width:24px!important;height:24px!important;background:transparent!important;color:#8a8a90!important;border:1px solid #d9d5cd!important;border-radius:50%;display:inline-grid;place-items:center;padding:0}
.vocab-speak-btn.is-playing{background:#1d1d1f!important;color:#fff!important;border-color:#1d1d1f!important}
.vocab-speak-btn.is-paused{background:#1d1d1f!important;color:#fff!important;border-color:#1d1d1f!important}
h1 .sent-tr,.news-title-fr+.sent-tr{margin-left:0}
/* vocabulary list: choose which language to read from */
.vocab-from{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.vocab-from-label{font-size:12px;color:#6a6a70;margin-right:4px}
.vocab-from button{font:inherit;font-size:13px;font-weight:600;padding:5px 12px;border:1px solid #d9d5cd;background:#fff;color:#55555a;border-radius:999px;cursor:pointer}
.vocab-from button.on{background:#1d1d1f;color:#fff;border-color:#1d1d1f}
.from-ja .vocab-card>summary .vocab-pair:nth-of-type(1){order:-1}
.from-ja .vocab-card>summary .vocab-pair:nth-of-type(2){order:-2}
.from-ja .vocab-card>summary .vocab-ja{font-size:17px;font-weight:700}
.from-ja .vocab-card>summary .vocab-term{font-size:15px!important;font-weight:500!important;color:#55555a}
/* "読むときの注意" is guidance, not news: smaller and quieter */
.news-note{margin-top:.4em;padding-top:.6em;border-top:1px solid #ece9e3}
.news-note h3{font-size:12.5px!important;font-weight:600!important;color:#8a8a90!important;margin:0 0 .3em!important;letter-spacing:.02em}
.news-note p,.news-note li{font-size:12.5px!important;line-height:1.7!important;color:#6a6a70!important}
.news-note .sent-line{margin:0 0 .3em!important}
.news-note .vocab-speak-btn,.news-note .sent-speak .vocab-speak-btn{width:20px!important;height:20px!important}
.news-note .vocab-speak-btn svg{width:11px!important;height:11px!important}
.news-note rt{font-size:.5em}
/* Japanese line breaking: break between phrases, never inside a word; strict kinsoku */
:lang(ja),[lang="ja"]{line-break:strict}
:lang(ja) p,:lang(ja) li,[lang="ja"] p,[lang="ja"] li,.sent,.sent-tr{text-wrap:pretty}
h1:lang(ja),h2:lang(ja),h3:lang(ja),[lang="ja"] h1,[lang="ja"] h2,[lang="ja"] h3{text-wrap:balance}

/* ===================== CAMELLIA THEME — bright, calm, professional ===================== */
:root{
 --wine:#c8232c;--accent:#c8232c;--shu:#c8232c;
 --ink:#2b2523;--muted:#6f6560;--paper:#fffdfa;--ivory:#fdf6f0;--cream:#fdf6f0;--line:#efe3da;
 --leaf:#1f5d4a;--leaf-soft:#e7f1ec;--petal:#fbe8e4;--gold:#c9a35a;--radius:16px;
 --shadow-s:0 1px 2px rgba(80,40,30,.05),0 6px 18px rgba(120,60,40,.06);
 --shadow-m:0 2px 4px rgba(80,40,30,.05),0 14px 34px rgba(120,60,40,.10);
}
body{background:linear-gradient(180deg,#fffdfa 0,#fffaf6 420px,#fffdfa 100%);color:var(--ink)}
/* header */
.header{background:rgba(255,253,250,.94)!important;backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(201,163,90,.18)}
.brand{display:inline-flex!important;align-items:center;gap:11px;color:var(--ink)}
.brand::before{content:"";flex:none;width:38px;height:38px;border-radius:50%;background:url(/assets/camellia-mark.webp) center/cover no-repeat;box-shadow:0 0 0 1px rgba(201,163,90,.55)}
.brand span{display:none!important}
.header nav a{color:#4a403c}
.header nav a:hover,.header nav .active,.header nav a[aria-current]{color:var(--wine)!important;border-bottom:0!important;background:var(--petal);border-radius:999px;padding:9px 16px!important}
.header nav a{border-radius:999px;padding:9px 16px!important}
.search-icon{background:#fff;border-color:var(--line);color:var(--wine)}
/* buttons */
button.wine,.wine.button,.button.wine{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important;border-radius:999px!important;box-shadow:0 6px 16px rgba(200,35,44,.22);transition:transform .15s,box-shadow .15s,background .15s}
button.wine:hover,.wine.button:hover{background:#ad1b23!important;transform:translateY(-1px);box-shadow:0 10px 22px rgba(200,35,44,.28)}
.outline{border-color:#e6d6cb!important;background:#fff!important;color:var(--ink);border-radius:999px!important}
.outline:hover{background:var(--petal)!important;border-color:#f0b8b2!important;color:var(--wine)}
/* chips / segmented / filters */
.chip,.vocab-filters button,.vocab-from button,.view-switch button{background:#fff;border-color:var(--line);color:#5a4f4a}
.chip:hover,.vocab-filters button:hover{background:var(--petal);border-color:#f2c4be;color:var(--wine)}
.chip.selected,.vocab-filters button.on,.vocab-from button.on,.view-switch button.on{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important}
.segmented{background:#fff;border-color:var(--line)}.segmented .on{background:var(--petal);color:var(--wine);box-shadow:none}
/* hero (home and page heroes): bright photo, soft milk overlay, dark text */
.hero,.page-hero{border-radius:22px;box-shadow:var(--shadow-m);background:#fdf3ec;color:var(--ink)}
.hero-photo,.page-hero-img{filter:saturate(1.06)}
.page-hero-shade{background:radial-gradient(ellipse 66% 74% at 50% 48%,rgba(255,250,245,.86) 0,rgba(255,250,245,.58) 52%,rgba(255,250,245,.18) 100%)!important}
.page-hero-img{filter:brightness(1.15) saturate(1.05)!important}
.hero-shade{background:radial-gradient(ellipse 60% 52% at 50% 44%,rgba(255,250,245,.82) 0,rgba(255,250,245,.55) 48%,rgba(255,250,245,0) 100%),linear-gradient(0deg,rgba(255,250,245,.5),rgba(255,250,245,0) 28%)!important}
.hero h1,.hero p,.hero-kicker,.hero-location,.page-hero h1,.page-hero p,.page-hero-kicker,.page-hero .hero-kicker,.page-hero .lead{color:var(--ink)!important;text-shadow:none!important}
.hero-kicker,.page-hero-kicker,.page-hero .hero-kicker{color:var(--wine)!important}
.hero-facts,.hero-fact{color:var(--ink)}
.hero .search-form,.page-hero .search-form{background:#fff;border-color:#efdcd2;box-shadow:var(--shadow-s)}
/* cards and panels */
.card,.guide-card,.news-card,.event-card,.place-row,.article-row,.news-glossary,.study-card,.vocab-card{border-radius:var(--radius)}
.guide-card,.news-card,.card-body,.study-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-s)}
.guide-card:hover,.news-card:hover,.card:hover .card-body{border-color:#f0b8b2;box-shadow:var(--shadow-m)}
.explore-home,.life-home,.empty,.detail-facts,.demo-badge,.admin-note{background:var(--ivory)!important}
.explore-home,.life-home{border:1px solid var(--line)}
.quick-links a:hover strong{color:var(--wine)}
.eyebrow,.news-parallel .news-language-label{color:var(--wine)!important}
.underlink{border-bottom-color:var(--wine);color:var(--wine)}
a:hover .eyebrow{color:#ad1b23}
/* section rhythm */
.section{margin-top:72px}
h2{letter-spacing:-.03em}
/* footer */
footer{background:linear-gradient(180deg,#fff7f1,#fdf0e8);border-top:1px solid var(--line);color:var(--muted)}
/* news */
.news-audio{background:#fff;border-color:var(--line);box-shadow:var(--shadow-s)}
.news-audio .outline{border-radius:999px!important}
.news-note{border-top-color:#f1e4db}
.vocab-speak-btn.is-playing,.vocab-speak-btn.is-paused{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important}
.sent-tr{border-left-color:#f0b8b2}
.word-sheet{border-top:3px solid var(--wine)}
.news-vocab-list>summary,.news-grammar-list>summary{background:var(--ivory);border:1px solid var(--line);color:var(--ink)}
.sum-count{background:var(--wine);color:#fff}
/* links in body */
.detail-body a:not(.button){color:var(--wine)}
/* focus */
button:focus-visible,a:focus-visible{outline:3px solid #f0a8a2}
/* dialogs and toast */
dialog{border-radius:22px}
#toast{background:#3a2e2b}
::selection{background:#fbd9d4}

.hero-fact,.hero-facts button,.hero-facts a,.hero-location{background:rgba(255,255,255,.92)!important;color:var(--ink)!important;border:1px solid #f0ddd3!important;border-radius:999px;box-shadow:var(--shadow-s);backdrop-filter:blur(6px)}
.hero-facts{background:none!important}
.hero-fact:hover,.hero-facts button:hover{background:var(--petal)!important;color:var(--wine)!important}
.hero-actions a{background:rgba(255,255,255,.94)!important;color:var(--ink)!important;border:1px solid #f0ddd3;border-radius:999px;padding:9px 18px;font-weight:600;box-shadow:var(--shadow-s)}
.hero-actions a:hover{background:var(--petal)!important;color:var(--wine)!important}

/* bright footer */
.site-footer,body .site-footer{background:linear-gradient(180deg,#fff8f3,#fdeee6)!important;background-image:linear-gradient(180deg,#fff8f3,#fdeee6)!important;color:var(--muted)!important;border-top:1px solid var(--line)!important;box-shadow:0 -1px 0 rgba(201,163,90,.2)}
.site-footer::before,.site-footer::after{display:none!important}
.site-footer,.site-footer p,.site-footer span,.footer-bottom,.footer-bottom *,.footer-top p{color:var(--muted)!important}
.site-footer h4{color:var(--wine)!important;letter-spacing:.14em}
.site-footer nav a,.site-footer a{color:#4a403c!important}
.site-footer nav a:hover,.site-footer a:hover{color:var(--wine)!important;text-decoration:none}
.site-footer nav a[aria-current="true"]{color:var(--wine)!important}
.site-footer .soon,.site-footer nav :not(a){color:#a39890!important}
.site-footer .soon i{border-color:#e6d6cb!important;color:#a39890}
.footer-grid{border-bottom:1px solid #eadbd0!important}
.footer-legal{border-color:#eadbd0!important}
.footer-bottom button{color:var(--wine)!important}
.site-footer .brand{color:var(--ink)!important}
.site-footer .brand::before{width:44px;height:44px}
@media(max-width:700px){
 .brand{font-size:25px!important;letter-spacing:-1.2px!important;gap:7px!important}
 .brand::before{width:30px;height:30px}
 .header .city-switch,.header .city-menu>button{padding-left:12px;padding-right:12px}
}
@media(max-width:430px){.brand{font-size:22px!important}.brand::before{width:27px;height:27px}}
@media(max-width:430px){
 .brand{font-size:19.5px!important;letter-spacing:-.9px!important;gap:6px!important}
 .brand::before{width:25px;height:25px}
 .header{padding-left:14px!important;padding-right:14px!important}
}
/* remaining dark "selected" states -> camellia */
.ev-tabs button.on,.ev-view button.on,.ev-price button.on,.ev-price button[data-price="free"].on,.ev-price button[data-price="paid"].on{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important}
.ev-tabs,.ev-view,.ev-price{background:#fff}
.lang-switch a[aria-current=true]{background:var(--wine)!important;color:#fff!important}
.city-btn:hover,.city-btn[aria-expanded="true"]{background:var(--petal)!important;color:var(--wine)!important;border-color:#f0b8b2!important}
.quick-links a,.home-page .quick-links a{background:#fff!important;color:var(--ink)!important}
.wine-hero,.photo-intro,.wine-maniac{color:var(--ink)}
.alert-band b{background:var(--wine)}
.vocab-chip.lvl,.vocab-chip.lvl-A1,.vocab-chip.lvl-A2{background:var(--leaf-soft);color:var(--leaf);border-color:#cfe3d9}
.underlink:hover{background:none;color:#ad1b23}
@media(max-width:430px){
 .header{gap:6px!important}
 .brand{font-size:18px!important}
 .brand::before{width:23px;height:23px}
 .city-switch .city-btn,.city-btn{font-size:10.5px!important;padding-left:9px!important;padding-right:9px!important;min-width:0}
}
@media(max-width:430px){
 .header .city-switch{width:auto!important;max-width:100px!important;flex:0 1 auto}
 .header .city-switch .city-btn{width:auto!important;min-width:0!important;padding:0 8px!important;height:34px;font-size:10px!important;letter-spacing:0!important;white-space:nowrap}
 .header .lang-switch{padding:2px}
}
/* hero buttons */
.hero-btn.primary{background:var(--wine)!important;color:#fff!important;border-color:var(--wine)!important;box-shadow:0 8px 20px rgba(200,35,44,.25)}
.hero-btn.primary:hover{background:#ad1b23!important}
.hero-btn.ghost{background:#fff!important;color:var(--ink)!important;border:1px solid #f0ddd3!important;box-shadow:var(--shadow-s)}
.hero-btn.ghost:hover{background:var(--petal)!important;color:var(--wine)!important}
.scroll-cue{background:#fff!important;color:var(--wine)!important;border:1px solid #f0ddd3!important;box-shadow:var(--shadow-s)}
.hero-facts .hero-fact,.hero-fact{color:var(--ink)!important}
.hero-fact strong,.hero-fact b{color:var(--wine)!important}

/* full logo (supplied artwork) replaces the wordmark */
.brand{font-size:0!important;letter-spacing:0!important;gap:0!important;color:transparent!important;line-height:0}
.brand::before{width:76px!important;height:76px!important;border-radius:0!important;background:url(/assets/logo-camellia.webp) center/contain no-repeat!important;box-shadow:none!important}
.header{min-height:92px}
.site-footer .brand::before{width:120px!important;height:120px!important}
@media(max-width:700px){.brand::before{width:56px!important;height:56px!important}}
@media(max-width:430px){.brand::before{width:50px!important;height:50px!important}}

/* full-bleed heroes: edge to edge on every screen width */
.hero,.hero.home-hero,.page-hero,.page-hero.compact{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important}
.hero,.hero.home-hero{height:clamp(520px,72vh,820px)!important}
.hero-photo,.page-hero-img{width:100%!important;height:100%!important;object-fit:cover!important}
.hero-content{margin-left:auto!important;margin-right:auto!important;max-width:760px!important;padding-left:0!important;padding-right:0!important;text-align:center;left:0;right:0}
@media(min-width:1500px){.hero,.page-hero{max-width:none!important;margin:0!important}}
@media(max-width:700px){.hero,.hero.home-hero{height:auto!important;min-height:520px}}

/* footer: camellia (tsubaki) pattern */
.site-footer,body .site-footer{background-color:#fff6f0!important;background-image:linear-gradient(180deg,rgba(255,250,246,.55),rgba(255,246,240,.35)),url(/assets/patterns/tsubaki.svg)!important;background-size:auto,260px 220px!important;background-repeat:repeat!important;border-top:1px solid #f0d9cc!important}
.site-footer .footer-grid,.site-footer .footer-bottom{position:relative}
.site-footer .footer-grid{background:rgba(255,253,250,.92);border:1px solid #f0ddd3;border-radius:22px;padding:34px 36px 30px!important;box-shadow:var(--shadow-s)}
.site-footer .footer-bottom{background:rgba(255,253,250,.88);border:1px solid #f0ddd3;border-radius:999px;padding:12px 24px!important;margin-top:18px;box-shadow:var(--shadow-s)}
.site-footer .footer-legal{background:rgba(255,253,250,.9);border-radius:16px;padding:14px 20px}
@media(max-width:700px){.site-footer .footer-grid{padding:22px 18px 18px!important;border-radius:18px}.site-footer .footer-bottom{border-radius:18px;padding:12px 16px!important}.site-footer,body .site-footer{background-size:auto,200px 170px!important}}

/* ===== cuteness layer: camellia icons everywhere, softer shapes ===== */
:root{--ic-red:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-16 -16 32 32%22%3E%3Cg transform=%22rotate(0)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23d7262b%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23f0666a%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(72)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23d7262b%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23f0666a%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(144)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23d7262b%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23f0666a%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(216)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23d7262b%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23f0666a%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(288)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23d7262b%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23f0666a%22 opacity=%22.6%22/%3E%3C/g%3E%3Ccircle r=%223.4%22 fill=%22%23f2c94c%22/%3E%3Ccircle cx=%222.4%22 cy=%220.0%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%221.7%22 cy=%221.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%220.0%22 cy=%222.4%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-1.7%22 cy=%221.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-2.4%22 cy=%220.0%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-1.7%22 cy=%22-1.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-0.0%22 cy=%22-2.4%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%221.7%22 cy=%22-1.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3C/svg%3E");--ic-pink:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-16 -16 32 32%22%3E%3Cg transform=%22rotate(0)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23f4a9a3%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23fde3df%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(72)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23f4a9a3%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23fde3df%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(144)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23f4a9a3%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23fde3df%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(216)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23f4a9a3%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23fde3df%22 opacity=%22.6%22/%3E%3C/g%3E%3Cg transform=%22rotate(288)%22%3E%3Cpath d=%22M0,0 C-7,-2 -9,-12 0,-14 C9,-12 7,-2 0,0Z%22 fill=%22%23f4a9a3%22/%3E%3Cpath d=%22M0,-3 C-3,-4 -4,-9 0,-10 C4,-9 3,-4 0,-3Z%22 fill=%22%23fde3df%22 opacity=%22.6%22/%3E%3C/g%3E%3Ccircle r=%223.4%22 fill=%22%23f2c94c%22/%3E%3Ccircle cx=%222.4%22 cy=%220.0%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%221.7%22 cy=%221.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%220.0%22 cy=%222.4%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-1.7%22 cy=%221.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-2.4%22 cy=%220.0%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-1.7%22 cy=%22-1.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%22-0.0%22 cy=%22-2.4%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3Ccircle cx=%221.7%22 cy=%22-1.7%22 r=%22.7%22 fill=%22%23e0a526%22/%3E%3C/svg%3E");--ic-leaf:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-16 -16 32 32%22%3E%3Cg transform=%22rotate(-35)%22%3E%3Cpath d=%22M-12,0 C-6,-11 6,-11 12,0 C6,11 -6,11 -12,0Z%22 fill=%22%232a6b55%22/%3E%3Cpath d=%22M-11,0 L10,0%22 stroke=%22%23fff%22 stroke-opacity=%22.5%22 stroke-width=%221%22/%3E%3C/g%3E%3C/svg%3E")}
.guide-icon,.empty>span{font-size:0!important;display:block;width:34px;height:34px;background:var(--ic-red) center/contain no-repeat}
.guide-card:nth-child(3n+2) .guide-icon{background-image:var(--ic-pink)}
.guide-card:nth-child(3n) .guide-icon{background-image:var(--ic-leaf)}
.eyebrow::before{content:"";display:inline-block;width:15px;height:15px;margin-right:7px;vertical-align:-3px;background:var(--ic-red) center/contain no-repeat}
.hero-kicker::before,.page-hero-kicker::before{content:"";display:inline-block;width:15px;height:15px;margin-right:8px;vertical-align:-3px;background:var(--ic-red) center/contain no-repeat}
.news-note h3::before,.news-glossary h2::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;background:var(--ic-pink) center/contain no-repeat}
.site-footer h4::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;background:var(--ic-red) center/contain no-repeat}
.card>img,.card .thumb{border-radius:20px}
.guide-card,.news-card,.study-card{border-radius:22px}
.explore-home,.life-home,.empty{border-radius:28px}
.quick-links a{border-radius:999px}
.header nav{gap:6px;font-size:15px;font-weight:600}
.header nav a{padding:10px 18px!important}
.brand::before{width:62px!important;height:62px!important}
.section{margin-top:84px}
.section-title{margin-bottom:30px}
body{background-image:radial-gradient(circle at 12% 0,rgba(251,232,228,.55),transparent 38%),radial-gradient(circle at 92% 10%,rgba(231,241,236,.5),transparent 34%),linear-gradient(180deg,#fffdfa 0,#fffaf6 420px,#fffdfa 100%)}
@media(max-width:700px){.brand::before{width:50px!important;height:50px!important}.section{margin-top:64px}.header nav{font-size:14px}.header nav a{padding:9px 12px!important}}
@media(max-width:430px){.brand::before{width:46px!important;height:46px!important}.header nav a{padding:8px 10px!important}}
/* hero facts: tidy stat strip instead of giant pills */
.hero-facts-wrap{background:transparent!important;border:0!important;padding:0 20px!important;margin:-44px 0 0!important;position:relative;z-index:3}
.hero-facts{display:grid!important;grid-auto-flow:column;grid-auto-columns:1fr;gap:0!important;max-width:1040px;margin:0 auto!important;padding:0!important;background:#fff!important;border:1px solid var(--line);border-radius:20px;box-shadow:0 10px 30px rgba(120,60,40,.12);overflow:hidden}
.hero-facts .hero-fact,.hero-facts>*{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;min-height:0!important;height:auto!important;padding:18px 12px!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.hero-facts>*+*{border-left:1px solid var(--line)!important}
.hero-facts b,.hero-facts strong,.hero-fact>:first-child{font-size:clamp(24px,2.6vw,32px)!important;line-height:1.1;color:var(--wine)!important;font-weight:800}
.hero-facts span,.hero-fact>:last-child:not(:first-child){font-size:13px!important;font-weight:600;color:var(--muted)!important}
@media(max-width:700px){.hero-facts-wrap{padding:0 12px!important;margin-top:-30px!important}.hero-facts .hero-fact,.hero-facts>*{padding:12px 6px!important}.hero-facts span{font-size:11px!important}}
.scroll-cue{bottom:62px!important}.hero-facts>*+*{border-left:1px solid var(--line)!important}
.wine-learning-guides .card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important}


/* =====================================================================
   JAPANITIES design system — editorial, high-contrast, photo-led
   (single coherent layer; replaces earlier experiments)
   ===================================================================== */
:root{--ink:#141210;--ink-2:#3a3430;--muted:#6b625c;--paper:#fff;--bg:#f7f3ef;--line:#e8e1db;
--accent:#c8232c;--wine:#c8232c;--shu:#c8232c;--accent-d:#a31a22;--blush:#fbeae7;--r-s:8px;--r-m:14px;--r-l:22px;
--sg-pink:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2244%22 height=%2222%22 viewBox=%220 0 40 20%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2220%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2215%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2210%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%225%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%220%22 r=%2220%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%220%22 r=%2215%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%220%22 r=%2210%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%220%22 r=%225%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2220%22 cy=%2210%22 r=%2220%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2220%22 cy=%2210%22 r=%2215%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2220%22 cy=%2210%22 r=%2210%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2220%22 cy=%2210%22 r=%225%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%2220%22 r=%2220%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%2220%22 r=%2215%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%2220%22 r=%2210%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%220%22 cy=%2220%22 r=%225%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%2220%22 r=%2220%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%2220%22 r=%2215%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%2220%22 r=%2210%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3Ccircle cx=%2240%22 cy=%2220%22 r=%225%22 fill=%22%23fbf6f2%22 stroke=%22%23f3ddd7%22 stroke-width=%221%22/%3E%3C/svg%3E")}
body{color:var(--ink-2);background:#fff!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
p{line-height:1.85}
html{scroll-padding-top:92px}
::selection{background:#fbd5d2}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* ---- header ---- */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92)!important;-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line)!important;box-shadow:none!important;view-transition-name:site-header}
html.scrolled .header{box-shadow:0 10px 30px rgba(20,18,16,.08)!important}
.header .brand::before{background-image:url(/assets/logo-wide.webp)!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:left center!important;border:0!important;border-radius:0!important;box-shadow:none!important;width:104px!important;height:60px!important;transition:width .25s,height .25s}
html.scrolled .header .brand::before{width:88px!important;height:50px!important}
.header nav a{position:relative;padding:11px 16px!important;font-size:14.5px;font-weight:700;color:var(--ink)!important;background:none!important;box-shadow:none!important;border-radius:0!important}
.header nav a::after{content:""!important;position:absolute;left:16px;right:16px;bottom:3px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.header nav a:hover::after,.header nav a.active::after{transform:scaleX(1)}
.header nav a.active{color:var(--accent)!important}
.city-switch .city-btn{border:0!important;background:transparent!important;color:var(--ink)!important;font-weight:800;letter-spacing:.05em;padding:10px 12px!important}
.lang-switch{display:inline-flex!important;border:2px solid var(--ink)!important;border-radius:999px!important;background:#fff!important;padding:0!important;overflow:hidden;gap:0!important;box-shadow:none!important}
.lang-switch a{padding:8px 18px!important;font-size:13.5px!important;font-weight:800!important;letter-spacing:.06em;line-height:1;color:var(--ink)!important;background:transparent!important;border-radius:0!important;text-decoration:none!important}
.lang-switch a[aria-current="true"],.lang-switch a[aria-current="page"]{background:var(--ink)!important;color:#fff!important}
.lang-switch a:not([aria-current]):hover{background:var(--bg)!important}

/* ---- hero: dark photo, big white type, left aligned ---- */
.hero-shade,.page-hero-shade{background:linear-gradient(90deg,rgba(12,8,6,.62) 0,rgba(12,8,6,.3) 55%,rgba(12,8,6,.08) 100%),linear-gradient(180deg,rgba(12,8,6,.3) 0,rgba(12,8,6,0) 35%,rgba(12,8,6,.6) 100%)!important}
.hero-content,.page-hero-inner{max-width:1200px!important;width:100%;margin:0 auto!important;padding-left:32px!important;padding-right:32px!important;text-align:left!important;align-items:flex-start!important}
.hero-content>*,.page-hero-inner>*{margin-left:0!important;margin-right:0!important;align-self:flex-start!important;text-align:left!important}
.hero h1,.page-hero h1{color:#fff!important;font-weight:800!important;letter-spacing:-.01em!important;line-height:1.2!important;font-size:clamp(38px,5.6vw,78px)!important;text-shadow:0 2px 28px rgba(0,0,0,.35)!important}
.hero p,.page-hero p,.hero-lead{color:#fff!important;max-width:620px;text-shadow:0 1px 14px rgba(0,0,0,.4)}
.hero-kicker,.hero-kicker2,.page-hero-kicker{display:inline-flex;background:var(--accent)!important;color:#fff!important;padding:8px 16px!important;border-radius:6px!important;font-size:11.5px!important;font-weight:800!important;letter-spacing:.16em!important;text-transform:uppercase;line-height:1.2;margin-bottom:22px!important}
.hero-kicker::before,.hero-kicker2::before,.page-hero-kicker::before{content:none!important}
.hero-actions{justify-content:flex-start!important;gap:10px}
.hero-actions a{background:rgba(255,255,255,.94)!important;color:var(--ink)!important;border:0!important;border-radius:999px;padding:12px 24px!important;font-size:13px!important;font-weight:800;letter-spacing:.05em;line-height:1.2;box-shadow:0 6px 20px rgba(0,0,0,.18)!important}
.hero-actions a:hover{background:#fff!important;transform:translateY(-1px)}
.hero-content .searchbox,.hero-content form{width:100%;max-width:640px}
.hero-location,.hero-caption{color:rgba(255,255,255,.88)!important}
.hero-btn.ghost{background:transparent!important;color:#fff!important;border:2px solid #fff!important}
.scroll-cue{background:#fff;color:var(--ink);bottom:62px!important}
.hero-petals{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3;display:block!important}
.hero-petals i{display:none}

/* ---- sections ---- */
.hm-sec{background:none!important;padding:76px 0 8px}
.hm-band,.hm-sec+.hm-band+.hm-sec+.hm-band{background:var(--sg-pink) #fbf6f2!important;background-size:44px 22px!important;padding:88px 0 96px;margin-top:40px}
.hm-band::before,.hm-band::after{content:none!important}
.hm-about{background:var(--ink)!important;color:#fff!important;margin-top:88px;padding:96px 0}
.hm-about h2{color:#fff!important}
.hm-about p{color:rgba(255,255,255,.82)!important}
.hm-about .outline{background:transparent!important;color:#fff!important;border-color:#fff!important}
.hm-about .outline:hover{background:#fff!important;color:var(--ink)!important}
.section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:2px solid var(--ink);padding-top:24px;margin-bottom:40px}
.section-title .eyebrow,.hm-food-copy .eyebrow,.hm-about .eyebrow{display:block!important;background:none!important;padding:0!important;color:var(--accent-d)!important;font-size:11.5px!important;font-weight:800!important;letter-spacing:.18em!important;margin:0 0 10px!important;text-transform:uppercase}
.hm-about .eyebrow{color:#ff8a90!important}
.eyebrow::before{content:none!important}
.section-title h2,.hm-food-copy h2,.hm-wrap>h2,.hm-about h2,h2.section{font-size:clamp(28px,3.4vw,46px)!important;font-weight:800!important;line-height:1.2;letter-spacing:-.01em!important;background:none!important;padding:0!important;margin:0;color:var(--ink);display:block!important;width:auto}
.hm-about h2{color:#fff!important}
.underlink,.section-title>a{font-size:14px;font-weight:800;color:var(--ink)!important;border-bottom:2px solid var(--accent);padding:0 0 3px;white-space:nowrap}
.underlink:hover{color:var(--accent)!important}

/* ---- cards ---- */
.card,.article-row{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:var(--r-m)!important;overflow:hidden}
.card>img,.card .ev-cover,.card .thumb{border-radius:var(--r-m)!important;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.card:hover>img,.card:hover .ev-cover{transform:scale(1.04)}
.card:hover{transform:none!important}
.card-body{padding:16px 2px 4px!important;background:transparent!important}
.card h3,.guide-card h3,.article-row h3{font-weight:800!important;font-size:19px;line-height:1.45;letter-spacing:0;color:var(--ink)}
.card:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--accent)}
.card-body .eyebrow{display:inline-block!important;background:var(--blush)!important;color:var(--accent-d)!important;padding:5px 10px!important;border-radius:6px;font-size:11px!important;letter-spacing:.06em!important;text-transform:none;margin-bottom:10px!important;line-height:1.2}
.card-body .eyebrow::before{content:none!important}
.guide-card,.hm-recipe,.hm-mapbar{background:#fff!important;border:1px solid var(--line)!important;border-radius:var(--r-m)!important;box-shadow:none!important;transition:border-color .2s,transform .2s,box-shadow .2s}
.guide-card:hover,.hm-recipe:hover,.hm-mapbar:hover{border-color:var(--ink)!important;transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,18,16,.1)!important}
.date-chip{background:#fff!important;color:var(--ink)!important;border:0!important;border-radius:8px!important;padding:8px 11px!important;box-shadow:0 6px 18px rgba(20,18,16,.18)!important;transform:none!important}
.date-chip b{color:var(--accent);font-family:inherit}
.pr,.pr-partial{border-radius:6px!important;font-size:11.5px;font-weight:700;padding:4px 10px!important;line-height:1.2}

/* ---- buttons, chips, forms ---- */
.wine.button,button.wine,a.wine{background:var(--accent)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:14px 30px!important;font-weight:800!important;letter-spacing:.04em;line-height:1.2;box-shadow:0 4px 14px rgba(200,35,44,.28)!important;transition:transform .15s,box-shadow .15s,background .15s}
.wine.button:hover,button.wine:hover,a.wine:hover{background:var(--accent-d)!important;transform:translateY(-1px);box-shadow:0 8px 20px rgba(200,35,44,.34)!important}
.outline,.hero-btn.primary{border-radius:999px!important;font-weight:800;letter-spacing:.03em;line-height:1.2}
.outline{background:#fff!important;color:var(--ink)!important;border:2px solid var(--ink)!important;padding:12px 26px!important;transition:background .15s,color .15s,transform .15s}
.outline:hover{background:var(--ink)!important;color:#fff!important;transform:translateY(-1px)}
.chip,.chips button,.chips a,.vocab-filters button,.ev-tabs button,.ev-view button,.ev-price button{border:1.5px solid var(--line)!important;background:#fff!important;color:var(--ink)!important;border-radius:999px!important;padding:9px 18px!important;font-weight:700;line-height:1.2;transition:border-color .15s,background .15s}
.chip:hover,.chips button:hover,.chips a:hover{border-color:var(--ink)!important}
.chip.on,.chips .on,.chips button[aria-pressed="true"],.vocab-filters .on,.ev-tabs .on,.ev-view .on,.ev-price .on,[data-period].on{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}
.chip.on *,.chips .on *{color:#fff!important}
.wine-origin-selector nav{display:flex;flex-wrap:wrap;gap:12px}
.wine-origin-selector a{display:inline-flex;align-items:center;gap:10px;padding:14px 24px!important;border-radius:999px!important;background:#fff!important;border:2px solid var(--line)!important;color:var(--ink)!important}
.wine-origin-selector a span{font-size:12px;font-weight:700;color:var(--muted)!important}
.wine-origin-selector a small{font-size:11px;font-weight:700;background:var(--bg);color:var(--muted);border-radius:999px;padding:2px 9px}
.wine-origin-selector a:hover{border-color:var(--ink)!important}
.wine-origin-selector a.selected,.wine-origin-selector a[aria-current="page"]{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}
.wine-origin-selector a.selected *,.wine-origin-selector a[aria-current="page"] *{color:#fff!important}
.wine-origin-selector a.selected small{background:rgba(255,255,255,.2)}

/* ---- stat strip under inner heroes ---- */
.hero-facts-wrap{background:transparent!important;border:0!important;padding:0 24px!important;margin:-44px 0 0!important;position:relative;z-index:3}
.hero-facts{display:grid!important;grid-auto-flow:column;grid-auto-columns:1fr;gap:0!important;max-width:1040px;margin:0 auto!important;padding:0!important;background:#fff!important;border:1px solid var(--line);border-radius:var(--r-m);box-shadow:0 16px 40px rgba(20,18,16,.12);overflow:hidden}
.hero-facts .hero-fact,.hero-facts>*{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;min-height:0!important;padding:18px 12px!important;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.hero-facts>*+*{border-left:1px solid var(--line)!important}
.hero-facts b{font-size:clamp(24px,2.6vw,34px)!important;line-height:1.1;color:var(--accent)!important;font-weight:800}
.hero-facts span{font-size:13px!important;font-weight:700;color:var(--muted)!important}

/* ---- footer: camellia, quiet ---- */
.site-footer{position:relative;border-top:1px solid var(--line)!important}
.site-footer::before{content:"";position:absolute;inset:0;background:rgba(255,253,250,.62);pointer-events:none}
.site-footer>*{position:relative}

/* ---- source cards ---- */
.src-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.src-card{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px;text-decoration:none!important;color:var(--ink)!important;transition:transform .2s,box-shadow .2s,border-color .2s}
.src-card:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:0 16px 34px rgba(20,18,16,.1)}
.src-mark{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:20px;color:hsl(var(--h) 55% 30%);background:hsl(var(--h) 70% 92%);font-family:Georgia,serif}
.src-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.src-body b{font-size:12.5px;letter-spacing:.05em;color:var(--accent-d)}
.src-title{font-size:14.5px;font-weight:700;line-height:1.5;color:var(--ink)}
.src-body small{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:2px}
.src-body small i{font-style:normal;color:var(--accent-d);font-weight:700}
.news-sources h2{font-size:18px}
.wine-learning-guides .card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important}

/* ---- motion ---- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .16s ease both}
::view-transition-new(root){animation:vt-in .32s cubic-bezier(.2,.8,.2,1) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}
::view-transition-group(site-header){animation-duration:0s}
.read-progress{position:fixed;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#c8232c,#ee7b83);transform-origin:0 50%;transform:scaleX(0);opacity:0;z-index:100;transition:opacity .2s;pointer-events:none}
.fx .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.fx .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.fx .reveal{opacity:1;transform:none;transition:none}.hero-petals{display:none!important}}

/* ---- responsive ---- */
@media(max-width:900px){.hero-content,.page-hero-inner{padding-left:22px!important;padding-right:22px!important}.hm-sec{padding-top:56px}.hm-band{padding:64px 0 72px}.hm-about{padding:72px 0}.section-title{margin-bottom:28px}}
@media(max-width:700px){.header .brand::before{width:84px!important;height:48px!important}html.scrolled .header .brand::before{width:72px!important;height:42px!important}.header nav a{padding:9px 12px!important;font-size:14px}.lang-switch a{padding:7px 13px!important}.hero h1,.page-hero h1{font-size:clamp(32px,9.6vw,46px)!important}.hero-facts-wrap{padding:0 12px!important;margin-top:-30px!important}.hero-facts .hero-fact,.hero-facts>*{padding:12px 6px!important}.hero-facts span{font-size:11px!important}}
@media(max-width:430px){.header .brand::before{width:74px!important;height:43px!important}}
/* card frame cleanup: no stray borders / curved edges */
.card,.card-body,.card a{border:0!important;box-shadow:none!important;outline:0}
.card-body{border-radius:0!important}
.card::before,.card::after,.card-body::before,.card-body::after{content:none!important}
.card{border-radius:0!important;overflow:visible!important}
.card>img,.card .ev-cover{overflow:hidden}
.card .ev-cover,.card>img{display:block}
.news-more{display:flex;justify-content:center;margin:56px 0 8px}
.news-more .outline{padding:16px 40px!important;font-size:15px}
/* source cards with preview thumbnail */
.src-card.has-thumb{flex-direction:column;gap:0;padding:0;overflow:hidden}
.src-card.has-thumb .src-mark{position:relative;width:100%;height:auto;aspect-ratio:16/9;border-radius:0;font-size:34px;overflow:hidden}
.src-card.has-thumb .src-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.src-card.has-thumb:hover .src-thumb{transform:scale(1.04)}
.src-card.has-thumb .src-credit{position:absolute;left:8px;bottom:8px;background:rgba(20,18,16,.72);color:#fff;font:700 10.5px/1 var(--font,sans-serif);letter-spacing:.04em;padding:5px 8px;border-radius:5px}
.src-card.has-thumb .src-body{padding:14px 16px 16px}
.src-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
/* about band: everything centred on one axis */
.hm-about .hm-wrap{display:flex;flex-direction:column;align-items:center;text-align:center}
.hm-about .eyebrow{display:inline-block!important;margin:0 0 14px!important}
.hm-about h2,.hm-about p{text-align:center!important;margin-left:auto!important;margin-right:auto!important;max-width:780px}
.hm-about h2{margin-bottom:18px!important}
.hm-about p{margin-bottom:32px!important}
/* news: JA and FR shown at the same size, same weight */
body .news-page .bilingual-news-card h3,body .news-page .bilingual-news-card .news-fr-title,.news-row h3,.news-row .news-fr-title,.news-lead h3,.news-lead .news-fr-title{font-size:19px!important;font-weight:800!important;line-height:1.5!important;color:var(--ink)!important;margin:0 0 8px!important}
body .news-page .bilingual-news-card .news-desc,.news-lead .news-desc{font-size:14px!important;font-weight:400!important;line-height:1.75!important;color:var(--muted)!important;margin:0 0 8px!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body .news-page .bilingual-news-card .news-desc[lang="fr"],.news-lead .news-desc[lang="fr"]{font-size:14px!important}
.news-day-head h2{display:flex;flex-direction:column;gap:2px}
.news-day-head h2 span,.news-day-head h2 small{display:block!important;font-size:clamp(24px,2.6vw,32px)!important;font-weight:800!important;line-height:1.3!important;color:var(--ink)!important;margin:0!important;letter-spacing:-.005em}
.curfew-band{background:var(--accent)!important;color:#fff!important;border-bottom:0!important;justify-content:center;text-align:left;padding:11px 24px;font-size:13.5px;font-weight:700;text-decoration:none}
.curfew-band b{background:#fff!important;color:var(--accent)!important;border-radius:6px!important;padding:3px 10px!important;font-size:12px;letter-spacing:.04em;white-space:nowrap}
.curfew-band span{flex:0 1 auto!important;color:#fff}
.curfew-band i{font-style:normal;text-decoration:underline;white-space:nowrap}
@media(max-width:700px){.curfew-band{flex-wrap:wrap;gap:6px 10px;padding:10px 16px;font-size:12.5px}}
/* recipes embedded in a seasonal guide */
.season-recipes{margin-top:72px;border-top:2px solid var(--ink);padding-top:28px}
.season-recipe{margin:48px 0 0;padding:32px;background:#fff;border:1px solid var(--line);border-radius:var(--r-m);scroll-margin-top:100px}
.season-recipe h3{font-size:clamp(22px,2.4vw,30px);font-weight:800;color:var(--ink);margin:18px 0 8px}
.season-recipe .detail-image{border-radius:var(--r-m);width:100%;max-height:420px;object-fit:cover}
.season-recipe .food-sections h2{font-size:19px}
@media(max-width:700px){.season-recipe{padding:20px 16px}}
.header nav a{white-space:nowrap}
@media(max-width:1180px){.header nav a{padding:10px 11px!important;font-size:13.5px}.header nav a::after{left:11px;right:11px}.lang-switch a{padding:7px 14px!important}}
@media(max-width:900px){.header .brand::before{width:84px!important}.city-switch .city-btn{padding:8px!important}}
.season-month{margin-top:40px}
.season-month-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:22px}
.season-month-head b{font-size:clamp(28px,3.4vw,42px);font-weight:800;color:var(--ink);line-height:1}
.season-month-head span{font-size:13px;font-weight:700;color:var(--accent-d);letter-spacing:.08em}
/* plum-blossom (ume) pattern */
.site-footer,body .site-footer{background:url(/assets/patterns/ume-coral.svg?v=1) 0 0/160px 200px repeat #fffdf6!important}
.site-footer::before{background:rgba(255,253,246,.0)!important}
@media(max-width:700px){.site-footer,body .site-footer{background-size:120px 150px!important}}

.sec-src{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--muted,#6b6560)}.sec-src span{font-weight:700;margin-right:6px}.sec-src a{color:var(--accent,#9b2226);text-decoration:underline;text-underline-offset:3px;display:inline-block;margin-right:10px}
/* every source card has a thumbnail area: photo if available, otherwise a branded tile */
.src-card .src-mark{position:relative;width:100%;height:auto;aspect-ratio:16/9;border-radius:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.src-card .src-ini{font-family:Georgia,serif;font-size:44px;line-height:1;font-weight:800;color:hsl(var(--h) 55% 30%)}
.src-card .src-fname{font-style:normal;font-size:13px;font-weight:800;letter-spacing:.06em;color:hsl(var(--h) 45% 32%);text-align:center;padding:0 10px}
.src-card .src-thumb{z-index:1}
.src-card .src-credit{z-index:2}
.src-card{flex-direction:column;gap:0;padding:0;overflow:hidden}
.src-card .src-body{padding:14px 16px 16px}
/* sake hub */
.sake-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:8px}
.sake-tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:28px 24px 24px;background:#fff;border:2px solid var(--line);border-radius:var(--r-m);color:var(--ink)!important;text-decoration:none!important;min-height:210px;transition:transform .2s,border-color .2s,box-shadow .2s}
.sake-tile .sake-fr{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-d)}
.sake-tile strong{font-size:clamp(26px,3vw,36px);font-weight:800;line-height:1.2}
.sake-tile p{font-size:14px;line-height:1.7;color:var(--muted);margin:2px 0 14px}
.sake-badge{margin-top:auto;align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.06em;padding:6px 14px;border-radius:999px;background:var(--bg);color:var(--muted)}
.sake-badge.on{background:var(--accent);color:#fff}
.sake-tile.ready:hover{transform:translateY(-4px);border-color:var(--ink);box-shadow:0 18px 40px rgba(20,18,16,.12)}
.sake-tile.soon{background:repeating-linear-gradient(135deg,#faf6f2 0 10px,#fff 10px 20px);border-style:dashed;cursor:default}
.sake-tile.soon strong{color:#6b625c}
/* inline sources inside article sections: thumbnail chips */
.sec-src{margin:14px 0 4px;display:block}
.sec-src-label{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}
.sec-src-list{display:flex;flex-direction:column;gap:10px}
.sec-src-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;text-decoration:none!important;color:var(--ink)!important;transition:border-color .2s,box-shadow .2s}
.sec-src-card:hover{border-color:var(--ink);box-shadow:0 10px 24px rgba(20,18,16,.1)}
.sec-thumb{position:relative;flex:none;width:96px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:hsl(var(--h) 70% 92%)}
.sec-thumb b{font-family:Georgia,serif;font-size:24px;color:hsl(var(--h) 55% 30%)}
.sec-thumb .src-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sec-src-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.sec-src-text em{font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:.05em;color:var(--accent-d)}
.sec-src-text span{font-size:13.5px;font-weight:700;line-height:1.45;color:var(--ink)}
/* hierarchical header menu */
.header nav .nav-item{position:relative;display:inline-flex;align-items:center}
.header nav .nav-item>a{display:inline-flex;align-items:center;gap:4px}
.header nav .nav-item>a[aria-haspopup]::before{content:none}
.header nav .nav-item.has-dd>a::after{display:block}
.header nav .dd{position:absolute;top:calc(100% - 4px);left:50%;min-width:230px;transform:translate(-50%,8px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 50px rgba(20,18,16,.16);padding:8px;opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s;z-index:80}
.header nav .dd::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.header nav .nav-item:hover .dd,.header nav .nav-item:focus-within .dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.header nav .dd .dd-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px!important;border-radius:9px;font-size:14px;font-weight:700;color:var(--ink)!important;white-space:nowrap;text-decoration:none}
.header nav .dd a.dd-item::after{content:none!important}
.header nav .dd a.dd-item:hover{background:var(--bg)}
.header nav .dd .dd-item.soon{color:#9a918b!important;cursor:default}
.header nav .dd .dd-item.soon i{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.04em;background:var(--bg);color:var(--muted);border-radius:999px;padding:3px 9px}
@media(max-width:900px){.header nav .dd{display:none}}
.hm-about .about-sub{font-size:15px;opacity:.85;max-width:720px}
/* footer: the camellia mark only */
.site-footer .brand::before{background-image:url(/assets/camellia-mark.webp?v=2)!important;background-position:left center!important;width:84px!important;height:84px!important}
/* new logo: plum blossom + mizuhiki knot */
.header .brand::before{background-image:url(/assets/logo-ume.webp?v=1)!important;background-size:contain!important;background-position:left center!important;width:88px!important;height:64px!important}
html.scrolled .header .brand::before{width:74px!important;height:54px!important}
.site-footer .brand::before{background-image:url(/assets/ume-mark.webp?v=1)!important;width:84px!important;height:84px!important}
@media(max-width:700px){.header .brand::before{width:68px!important;height:50px!important}html.scrolled .header .brand::before{width:60px!important;height:44px!important}}
@media(max-width:430px){.header .brand::before{width:60px!important;height:44px!important}}
/* sub-menus on phones: open by tap, shown as a panel under the header */
.header .m-dd{position:absolute;left:12px;right:12px;top:100%;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(20,18,16,.22);padding:8px;z-index:95}
.header .m-dd .dd-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:9px;font-size:15px;font-weight:700;color:var(--ink)!important;text-decoration:none}
.header .m-dd a.dd-item:active,.header .m-dd a.dd-item:hover{background:var(--bg)}
.header .m-dd .dd-parent{display:flex;border-bottom:1px solid var(--line);border-radius:9px 9px 0 0;color:var(--accent-d)!important}
.header .m-dd .dd-item.soon{color:#9a918b!important}
.header .m-dd .dd-item.soon i{font-style:normal;font-size:11px;font-weight:800;background:var(--bg);color:var(--muted);border-radius:999px;padding:3px 9px}
.header nav .nav-item.open>a{color:var(--accent)!important}
.header nav .nav-item.open>a::after{transform:scaleX(1)}
@media(max-width:900px){.header nav .dd{display:none!important}}
@media(min-width:901px){.header .m-dd{display:none}}
/* asanoha (hemp-leaf) footer pattern */
.site-footer,body .site-footer{background:url(/assets/patterns/asanoha.svg?v=3) 0 0/46.19px 80px repeat #fffdf9!important}
@media(max-width:700px){.site-footer,body .site-footer{background-size:40.41px 70px!important}}

/* Anime editorial theme — color and surface only; existing typography stays intact. */
:root{
 --ink:#342e2b;--ink-2:#433b35;--muted:#70665d;--paper:#fffdf9;
 --bg:#faf5ec;--ivory:#faf4ee;--cream:#faf4ee;--line:#e5ddcf;
 --accent:#b83036;--accent-d:#92242a;--wine:#b83036;--shu:#b83036;
 --blush:#f5eee1;--petal:#f5eee1;--leaf:#386453;--leaf-soft:#edf4ed;
 --ui-ink:#342e2b;--ui-muted:#70665d;--ui-line:#e5ddcf;
 --ui-cream:#faf4ee;--ui-wine:#b83036;--ui-wine-soft:#f5eee1;
 --ui-shadow:0 6px 22px rgba(78,59,38,.07);
}
body,body:has(.hm-main),.hm-main{background:var(--paper)!important}
::selection{background:#dce9dd;color:#342e2b}
.header{background:rgba(255,253,249,.96)!important;border-bottom-color:var(--line)!important}
html.scrolled .header{box-shadow:0 4px 20px rgba(78,59,38,.06)!important}
.header nav .dd,.header .m-dd{background:#fffdfb;border-color:var(--line);box-shadow:0 12px 32px rgba(78,59,38,.12)}
.header nav .dd a.dd-item:hover,.header .m-dd a.dd-item:hover{background:var(--blush)!important}
.lang-switch{border-color:var(--accent-d)!important;background:#fffdfb!important}
.lang-switch a[aria-current="true"],.lang-switch a[aria-current="page"]{background:var(--accent-d)!important}
.hm-band,.hm-sec+.hm-band+.hm-sec+.hm-band{background:linear-gradient(135deg,#faf4e8,#faf5ed)!important}
.hm-quick ul{background:#fffdfb;border:1px solid var(--line);box-shadow:0 8px 28px rgba(78,59,38,.1)}
.hm-quick a:hover,.hm-quick a:focus-visible{background:var(--blush)}
.hm-ico{background:var(--blush);color:var(--accent-d)}
.hm-quick li:nth-child(3n+2) .hm-ico{background:var(--leaf-soft);color:var(--leaf)}
.hm-quick li:nth-child(3n) .hm-ico{background:#edf4ed;color:#386453}
.hm-about{background:#edf3ed!important;color:var(--ink)!important;border-top:1px solid #dce7dc;border-bottom:1px solid #dce7dc}
.hm-about h2,.hm-about p{color:var(--ink)!important}
.hm-about .eyebrow{color:var(--leaf)!important}
.hm-about .outline{color:var(--leaf)!important;border-color:var(--leaf)!important;background:transparent!important}
.hm-about .outline:hover{background:var(--leaf)!important;color:#fff!important}
body .card,body .food-card,body .hm-recipe,body .guide-card{border-radius:16px!important}
body .card>img,body .food-card>img,body .hm-recipe>img{border-radius:14px!important}
.guide-card,.hm-recipe,.hm-mapbar,.sake-tile,.src-card,.sec-src-card{background:#fffdfb!important;border-color:var(--line)!important;box-shadow:0 3px 14px rgba(78,59,38,.04)!important}
.card-body .eyebrow{background:var(--blush)!important;color:var(--accent-d)!important}
.wine.button,button.wine,a.wine{background:var(--accent)!important;box-shadow:0 3px 10px rgba(146,36,42,.12)!important}
.wine.button:hover,button.wine:hover,a.wine:hover{background:var(--accent-d)!important;box-shadow:0 5px 16px rgba(146,36,42,.18)!important}
.outline{border:1px solid #bd9188!important;color:var(--accent-d)!important;background:#fffdfb!important}
.outline:hover{background:var(--blush)!important;color:var(--accent-d)!important;border-color:var(--accent-d)!important}
.chip,.chips button,.chips a,.vocab-filters button,.ev-tabs button,.ev-view button,.ev-price button{border-color:#cec0ad!important;background:#fffdfb!important}
.chip.on,.chips .on,.chips button[aria-pressed="true"],.vocab-filters .on,.ev-tabs .on,.ev-view .on,.ev-price .on,[data-period].on{background:var(--accent-d)!important;border-color:var(--accent-d)!important;color:#fff!important}
.segmented{background:var(--blush);border-color:var(--line)}
.segmented .on{color:var(--accent-d);background:#fffdfb;box-shadow:0 1px 5px rgba(78,59,38,.1)}
.search-form{background:#fffdfb;border-color:var(--line);box-shadow:0 4px 18px rgba(78,59,38,.08)}
.news-vocab-list>summary{background:var(--blush);border-color:var(--line);border-radius:12px}
.news-grammar-note{border-color:var(--line)}
.news-grammar-content blockquote{border-color:#8cae97;background:var(--leaf-soft)}
.read-progress{background:linear-gradient(90deg,var(--accent),#da7974)}
.site-footer,body .site-footer{border-top:1px solid var(--line);background-color:#fff9f3!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--leaf)!important;outline-offset:4px}
@media(hover:hover){.guide-card:hover,.hm-recipe:hover,.sake-tile:not(.soon):hover,.src-card:hover,.sec-src-card:hover{border-color:#b83036!important;box-shadow:0 6px 22px rgba(78,59,38,.09)!important}}
@media(max-width:700px){
 .chip,.chips button,.chips a,.ev-tabs button,.ev-view button,.ev-price button,.vocab-filters button,.segmented button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .header .m-dd .dd-item{min-height:48px}
 .toolbar{flex-wrap:wrap;gap:12px}
 .hm-quick ul{box-shadow:0 5px 18px rgba(78,59,38,.08)}
 .section-title{flex-wrap:wrap;gap:14px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Event label navigates; the adjacent mobile arrow opens filters. */
.header nav .event-sub-toggle{display:none}
@media(max-width:900px){.header nav .event-sub-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:0 7px;color:var(--accent-d);border-radius:8px}.header nav .event-sub-toggle:hover,.header nav .event-sub-toggle[aria-expanded="true"]{background:var(--blush)}.header nav .nav-item:has(.event-sub-toggle)>a{padding-right:2px!important}}

/* Anime UI refinement: shared surfaces and clear interaction without typography changes. */
:root{--surface:#fffefa;--surface-green:#edf4ed;--surface-cream:#faf4e8;--soft-shadow:0 4px 18px rgba(78,59,38,.055)}
body .container .card,body .hm-main .card{background:var(--surface)!important;border:1px solid var(--line)!important;overflow:hidden!important;box-shadow:var(--soft-shadow)!important;transition:border-color .18s,box-shadow .18s}
body .container .card .card-body,body .hm-main .card .card-body{padding:20px!important;background:var(--surface)!important;box-shadow:none!important}
body .container .card>img,body .hm-main .card>img{border-radius:0!important}
body .card .card-body .eyebrow{background:var(--surface-cream)!important;border:1px solid #eadfc9;border-radius:8px!important}
.hm-quick ul{gap:8px;padding:12px}
.hm-quick a{border:1px solid transparent;transition:background .18s,border-color .18s}
.hm-quick a:hover,.hm-quick a:focus-visible{background:var(--surface-cream);border-color:#e4d7bd}
.hm-quick li:nth-child(even) a:hover,.hm-quick li:nth-child(even) a:focus-visible{background:var(--surface-green);border-color:#ccddce}
.hm-ico{border:1px solid #e8dcc7;box-shadow:0 2px 0 rgba(78,59,38,.035)}
.hm-quick li:nth-child(3n+2) .hm-ico,.hm-quick li:nth-child(3n) .hm-ico{border-color:#d6e4d7}
.section-title{border-top:1px solid var(--line);padding-top:24px}
.section-title .eyebrow::before,.hm-food-copy>.eyebrow::before{content:"";display:inline-block;width:8px;height:8px;margin-right:9px;background:var(--accent);border-radius:50%;box-shadow:4px -3px 0 var(--surface-green);vertical-align:middle}
.hero-actions a{border:1px solid rgba(255,255,255,.75)!important;box-shadow:0 3px 10px rgba(35,30,24,.12)!important}
.hero-actions a:hover{background:var(--surface-cream)!important;color:var(--accent-d)!important}
body .button,body button.wine,body .outline{border-radius:12px!important}
.header nav .dd,.header .m-dd{border-radius:16px;padding:10px}
.header nav .dd a.dd-item:hover,.header .m-dd a.dd-item:hover{background:var(--surface-green)!important}
.news-vocab-list>summary{background:var(--surface-cream);border-radius:12px}
.news-grammar-note{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 18px;margin-bottom:12px;overflow:hidden}
.news-grammar-note[open]{border-color:#b9ccbb;background:#fbfdf9}
.news-grammar-note>summary{min-height:52px}
.news-grammar-content{padding-bottom:18px}
.guide-read{color:var(--accent-d)}
@media(hover:hover){body .container .card:hover,body .hm-main .card:hover{border-color:#ca9b91!important;box-shadow:0 7px 24px rgba(78,59,38,.09)!important}.guide-card:hover,.hm-recipe:hover,.hm-mapbar:hover{transform:translateY(-2px)}}
@media(max-width:700px){
 body .container .card .card-body,body .hm-main .card .card-body{padding:16px!important}
 .hm-quick ul{gap:4px;padding:8px}
 .hm-quick a{padding:12px 4px}
 .news-grammar-note{padding:0 14px}
 .hero-actions{flex-wrap:wrap;gap:8px}
 .hero-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .section-title .underlink{min-height:44px;display:inline-flex;align-items:center}
 .guide-card:hover,.hm-recipe:hover,.hm-mapbar:hover{transform:none}
}

.contributor-credit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.contributor-credit a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.contributor-credit a:hover{background:var(--leaf-soft)}

/* Home-screen shortcut: explicit action and accessible platform instructions. */
.install-site-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;margin-top:18px;background:var(--surface)!important;color:var(--accent-d)!important;border:1px solid #bd9188!important;border-radius:12px;max-width:100%;white-space:normal;text-align:left}
.install-site-button:hover{background:var(--leaf-soft)!important}
#install-help{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;background:#fffdf9;color:#342e2b;border:1px solid #e5ddcf;border-radius:18px;padding:28px;box-shadow:0 12px 50px #0002}
#install-help::backdrop{background:rgba(30,25,22,.45)}
#install-help h2{margin-bottom:14px}#install-help p{color:#70665d}#install-help ol{padding-left:24px;margin:22px 0}#install-help li{padding-left:6px;margin:14px 0}#install-help li::marker{color:#92242a;font-weight:700}#install-help button{min-height:44px}
@media(display-mode:standalone){.install-site-button{display:none!important}}
@media(max-width:600px){#install-help{padding:22px}.install-site-button{width:100%}}

.install-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;background:#fff;border:1px solid var(--line,#e8e1db);border-radius:14px;box-shadow:0 10px 30px rgba(20,18,16,.18);font-size:.88rem;line-height:1.4;color:#141210}
.install-bar span{flex:1}
.install-bar-go{flex:none;min-height:40px;padding:8px 14px;border:0;border-radius:10px;background:#c8232c;color:#fff;font-weight:700;font-size:.9rem}
.install-bar-x{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#6a6560;font-size:1.3rem;line-height:1}
@media(min-width:901px),(display-mode:standalone){.install-bar{display:none!important}}

#install-help .ic-inline{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin:0 4px;padding:3px 6px;border:1px solid #c9c2ba;border-radius:8px;background:#fff;color:#1f6feb}
#install-help .ic-inline svg{display:block}

/* My JAPANITIES: local favorites and vocabulary. */
.personal-header-link{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;color:var(--accent-d)}
.personal-header-link:hover{background:var(--leaf-soft)}
.personal-article-actions{display:flex;justify-content:flex-end;margin:20px 0 10px}
.personal-save{min-height:44px;padding:10px 16px;border:1px solid #bd9188;border-radius:12px;background:#fffdf9;color:var(--accent-d)}
.personal-save[aria-pressed="true"]{background:var(--leaf-soft);border-color:#a8c1ab;color:var(--leaf)}
.word-save{width:100%;margin-bottom:12px}
.personal-heading{padding:44px 0 28px;max-width:780px}.personal-heading h1{margin-bottom:12px}.personal-heading p{margin-top:12px}
.personal-storage-note{padding:14px 18px;background:var(--leaf-soft);border:1px solid #d6e4d7;border-radius:12px;color:#435d49;font-size:13px}
.personal-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px;flex-wrap:wrap}
.personal-tabs button{min-height:48px;padding:10px 18px;border:1px solid var(--line);border-radius:12px;background:#fffdf9;display:flex;align-items:center;gap:12px}
.personal-tabs button[aria-pressed="true"]{background:var(--accent-d);border-color:var(--accent-d);color:#fff}.personal-tabs span{padding:1px 8px;border-radius:6px;background:#ffffff30}
.personal-tools{margin:0 0 24px;max-width:500px}.personal-tools label{display:block;margin-bottom:8px}.personal-tools input{width:100%;min-height:48px;padding:10px 14px;border:1px solid #cbbda7;border-radius:12px;background:#fffefa;color:var(--ink)}
.personal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.personal-list [hidden]{display:none!important}
.personal-favorite,.personal-word{min-width:0;background:#fffefa;border:1px solid var(--line);border-radius:16px;padding:18px;overflow-wrap:anywhere;box-shadow:var(--soft-shadow)}
.personal-favorite>a{display:flex;align-items:flex-start;gap:16px}.personal-favorite img{width:110px;aspect-ratio:1;object-fit:cover;border-radius:12px;flex:none}.personal-favorite h2,.personal-word h2{font-size:20px;line-height:1.65}.personal-read{display:inline-block;margin-top:12px;color:var(--accent-d)}
.personal-favorite>button,.personal-card-actions button{display:block;margin:12px 0 0 auto;min-height:44px;padding:8px 12px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.personal-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.personal-card-actions a{color:var(--accent-d);padding:10px 0}.personal-card-actions button{margin:0}
.personal-word details{margin:16px 0}.personal-word summary{cursor:pointer;min-height:44px;padding:10px 14px;background:var(--leaf-soft);border-radius:10px}.personal-meaning p{padding:12px 2px;white-space:pre-line}.personal-meaning p+p{border-top:1px solid var(--line)}
.personal-empty{grid-column:1/-1;text-align:center;padding:48px 24px;background:var(--surface-cream);border:1px solid var(--line);border-radius:18px}.personal-empty>span{display:block;font-size:30px;color:var(--accent-d);margin-bottom:14px}.personal-empty h2{font-size:24px}.personal-empty p{margin:16px auto 24px;max-width:540px;color:var(--muted)}
.personal-status:empty{display:none}.personal-status{position:fixed;left:50%;transform:translateX(-50%);bottom:100px;z-index:120;background:#342e2b;color:#fff;padding:12px 20px;border-radius:12px;max-width:calc(100% - 32px);width:max-content;box-shadow:0 4px 20px #0002}
@media(max-width:900px){.mobile-dock{grid-template-columns:repeat(6,minmax(0,1fr))!important}.header{gap:10px}.personal-header-link{min-width:40px;min-height:44px}}
@media(max-width:700px){.personal-list{grid-template-columns:1fr}.personal-heading{padding-top:28px}.personal-favorite img{width:88px}.personal-tabs{gap:8px}.personal-tabs button{flex:1;justify-content:center;padding:10px}.personal-empty{padding:32px 18px}.personal-header-link{border:0;min-width:36px}.personal-article-actions{justify-content:flex-start}.personal-save{max-width:100%}}

@media(max-width:700px){.header{grid-template-columns:auto auto minmax(0,1fr) 36px 36px!important}.header .lang-switch{grid-column:3!important}.header .personal-header-link{grid-column:4!important;grid-row:1;justify-self:end}.header .search-icon{grid-column:5!important;grid-row:1}.header nav{grid-column:1/-1!important}}

/* Personalized anime avatars, independent of typefaces. */
.anime-avatar{display:block;width:100%;height:auto}
.personal-header-link.has-avatar{width:44px;padding:1px;border:0}.personal-header-link.has-avatar .anime-avatar{width:42px;height:42px}
.avatar-profile{display:flex;align-items:center;gap:24px;margin-bottom:30px;padding:24px;background:var(--leaf-soft);border:1px solid #d6e4d7;border-radius:18px}.avatar-profile>[data-profile-avatar]{width:112px;flex:none}.avatar-profile h2{font-size:22px}.avatar-profile p{margin:8px 0 14px;color:var(--muted)}
#avatar-editor{width:min(880px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--line);border-radius:20px;background:#fffdf9;color:var(--ink);overflow:auto;box-shadow:0 16px 60px #0003}
#avatar-editor::backdrop{background:rgba(36,29,24,.45)}
#avatar-editor>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}
#avatar-editor>header h2{font-size:23px}#avatar-editor>header button{min-width:44px;min-height:44px;border-radius:10px;font-size:26px}
.avatar-editor-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;padding:24px}.avatar-preview{position:sticky;top:20px;align-self:start;background:var(--leaf-soft);border-radius:20px;padding:8px}.avatar-fields{min-width:0}
.avatar-fields fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}.avatar-fields legend{margin-bottom:10px;font-weight:600}
.avatar-options{display:flex;gap:8px;flex-wrap:wrap}.avatar-options button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid #cdbfae;border-radius:12px;background:#fffefa;color:var(--ink);font-size:13px}
.avatar-options button[aria-pressed="true"]{border:2px solid var(--accent-d);padding:7px 11px;background:#faf0e8;box-shadow:0 0 0 2px #b8303610}
.avatar-options button[data-avatar-key="hair"]{flex-direction:column;flex:1 0 78px;max-width:110px;padding:6px}.avatar-options button[data-avatar-key="hair"][aria-pressed="true"]{padding:5px}.avatar-hair-thumb{display:block;width:62px}
.color-options button{flex-direction:column;min-width:62px;flex:1;padding:8px 6px}.color-options button[aria-pressed="true"]{padding:7px 5px}.avatar-swatch{width:28px;height:28px;border-radius:50%;border:1px solid #0002;box-shadow:inset 0 0 0 2px #ffffff70}
.avatar-editor-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:#fffdf9}.avatar-editor-actions button{min-height:44px}.avatar-editor-actions span{color:var(--accent-d)}
@media(max-width:650px){.avatar-profile{padding:16px;gap:16px}.avatar-profile>[data-profile-avatar]{width:84px}.avatar-profile h2{font-size:19px}.avatar-profile p{font-size:13px}.avatar-profile .outline{padding:10px 14px!important}#avatar-editor{max-height:calc(100dvh - 16px)}#avatar-editor>header{padding:12px 16px}.avatar-editor-layout{grid-template-columns:1fr;gap:16px;padding:16px}.avatar-preview{position:static;width:150px;margin:auto}.avatar-options button[data-avatar-key="hair"]{flex-basis:calc(33.333% - 8px);max-width:none}.avatar-hair-thumb{width:52px}.color-options button{min-width:48px;padding-left:3px;padding-right:3px;font-size:11px}.avatar-editor-actions{position:sticky;bottom:0;flex-wrap:wrap;padding:12px 16px}.avatar-editor-actions span{width:100%}.avatar-editor-actions span:empty{display:none}.avatar-editor-actions .wine{flex:1}.personal-header-link.has-avatar{min-width:36px;width:36px}.personal-header-link.has-avatar .anime-avatar{width:36px;height:36px}}

/* Detailed painted anime portraits replace the simplified vector avatars. */
img.anime-avatar{aspect-ratio:1;object-fit:cover;border-radius:50%;background:#faf4e8;border:1px solid var(--line)}.avatar-preview{background:#faf4e8}.avatar-hair-thumb img{width:100%;height:auto}

/* Saved vocabulary: list/cards and deliberate, keyboard-accessible practice. */
.word-collection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 22px}.word-view-toggle{display:flex;gap:6px}.word-view-toggle button{min-height:44px;padding:9px 16px;border:1px solid #cdbfae;border-radius:10px;background:#fffefa}.word-view-toggle button[aria-pressed="true"]{background:var(--leaf-soft);border-color:var(--leaf);color:var(--leaf)}
.personal-list.word-list-view{grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}.word-list-view .personal-word{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr) auto;gap:10px 22px;align-items:start;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:16px 20px}.word-list-view .personal-word:last-child{border-bottom:0}.word-list-view .personal-word h2{grid-column:1}.word-list-view .personal-word>p{grid-column:1}.word-list-view .personal-word details{grid-column:2;grid-row:1/span 2;margin:0}.word-list-view .personal-card-actions{grid-column:3;grid-row:1/span 2;flex-direction:column;align-items:flex-end;gap:4px}.word-list-view .personal-word summary{background:transparent;border:1px solid var(--line)}
#word-quiz{width:min(680px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--line);border-radius:18px;background:#fffdf9;color:var(--ink);overflow:auto;box-shadow:0 16px 60px #0003}#word-quiz::backdrop{background:rgba(36,29,24,.45)}#word-quiz>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line)}#word-quiz>header h2{font-size:22px}#word-quiz>header button{min-width:44px;min-height:44px;font-size:26px}#word-quiz-body{padding:24px;overflow-wrap:anywhere}#word-quiz-body>p{margin-bottom:20px}#word-quiz-body button{min-height:44px}#word-quiz fieldset{border:0;padding:0;margin:24px 0}#word-quiz legend{font-weight:600;margin-bottom:10px}.quiz-mode-options{display:flex;gap:10px;flex-wrap:wrap}.quiz-mode-options label{display:flex;gap:8px;align-items:center;min-height:48px;flex:1;white-space:nowrap;border:1px solid #cdbfae;border-radius:12px;padding:10px 14px;cursor:pointer}.quiz-mode-options label:has(:checked){background:var(--leaf-soft);border-color:var(--leaf)}.quiz-mode-options input{accent-color:var(--leaf)}.quiz-field{display:grid;gap:8px;margin:18px 0}.quiz-field select{min-height:48px;padding:8px 12px;border:1px solid #cdbfae;border-radius:10px;background:#fffefa;color:var(--ink)}.quiz-hint{font-size:13px;color:var(--muted);margin:18px 0}#quiz-setup-error{color:var(--accent-d);margin-bottom:16px}.quiz-progress{display:flex;justify-content:space-between;gap:12px;font-size:14px}#word-quiz progress{width:100%;height:8px;margin:12px 0 24px;accent-color:var(--leaf)}.quiz-prompt{font-size:24px;line-height:1.75;margin:0 0 24px;white-space:pre-line}.quiz-choices{display:grid;gap:12px;margin-bottom:18px}.quiz-choices button{display:flex;align-items:center;gap:14px;white-space:pre-line;text-align:left;padding:16px;border:1px solid #cdbfae;border-radius:12px;background:#fffefa;color:var(--ink)}.quiz-choices button>span{width:26px;height:26px;display:grid;place-items:center;flex:none;border-radius:7px;background:var(--surface-cream)}.quiz-choices button:hover:enabled{border-color:var(--leaf);background:var(--leaf-soft)}.quiz-choices button:disabled{opacity:1;cursor:default}.quiz-choices button b{margin-left:auto;font-size:12px;white-space:nowrap}.quiz-choices .quiz-correct{border:2px solid var(--leaf);background:var(--leaf-soft)}.quiz-choices .quiz-incorrect{border:2px solid var(--accent-d);background:#fcefeb}.quiz-feedback{padding:20px;border:1px solid var(--line);border-radius:14px;background:#faf4e8}.quiz-feedback.is-correct{background:var(--leaf-soft);border-color:#b9ccbb}.quiz-feedback p{margin:12px 0;white-space:pre-line}.quiz-feedback button{margin-top:12px}.quiz-results h3{font-size:32px;margin:8px 0 18px}.quiz-results ul{padding-left:20px;margin:24px 0}.quiz-results li{padding:12px 0;border-bottom:1px solid var(--line)}.quiz-results li p{white-space:pre-line}.quiz-result-actions{display:flex;gap:10px;flex-wrap:wrap}#word-quiz-answer label{display:block;margin-bottom:8px}#quiz-written{width:100%;min-height:50px;padding:12px;border:1px solid #cdbfae;border-radius:10px;background:#fffefa;color:var(--ink)}
@media(max-width:650px){.word-collection-toolbar{align-items:stretch}.word-collection-toolbar>.wine{flex:1}.word-list-view .personal-word{grid-template-columns:1fr;gap:10px;padding:16px}.word-list-view .personal-word details,.word-list-view .personal-card-actions{grid-column:1;grid-row:auto}.word-list-view .personal-card-actions{flex-direction:row;align-items:center}#word-quiz>header{padding:12px 16px}#word-quiz>header h2{font-size:19px}#word-quiz-body{padding:18px}.quiz-prompt{font-size:21px}.quiz-choices button{padding:14px;gap:10px}.quiz-mode-options{gap:6px}.quiz-mode-options label{padding:9px}.quiz-result-actions>button{width:100%}}

.profile-identity{min-width:0;flex:1}.profile-identity h2{overflow-wrap:anywhere}#profile-name-form{margin-top:20px;max-width:520px}#profile-name-form label{display:block;margin-bottom:8px}.profile-name-inputs{display:flex;gap:10px;align-items:stretch}.profile-name-inputs input{min-width:0;flex:1;width:100%;min-height:48px;padding:10px 14px;border:1px solid #b8c8b9;border-radius:10px;background:#fffefa;color:var(--ink)}.profile-name-inputs button{white-space:nowrap}#profile-name-hint{display:block;margin-top:8px;color:var(--muted);font-size:12px}#profile-name-status{display:block;margin-top:8px;color:var(--leaf);font-size:14px}@media(max-width:650px){.avatar-profile{align-items:flex-start}.profile-name-inputs{flex-wrap:wrap}.profile-name-inputs input{flex-basis:100%}.profile-name-inputs button{width:100%;min-height:44px}}

/* The personal avatar is the final action, at the right edge. */
.header .personal-header-link{order:9}.header .search-icon{order:8}@media(max-width:700px){.header .search-icon{grid-column:4!important}.header .personal-header-link{grid-column:5!important}}
@media(max-width:1000px){.header .search-icon{order:4}.header .personal-header-link{order:5}.header nav{order:6}}
/* Refined French-first vocabulary collection. */
.word-filter-panel{margin:0 0 24px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#faf8f3}.word-filter-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.word-filter-fields label{display:grid;gap:7px;font-size:13px;color:var(--muted)}.word-filter-fields select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #d5cabb;border-radius:9px;background:#fffefa;color:var(--ink)}.word-filter-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px}.word-filter-footer>span{margin-right:auto;color:var(--muted)}.word-filter-footer button{min-height:44px;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.word-filter-status:empty{display:none}.word-filter-status{margin-top:12px;font-size:13px;color:var(--leaf)}
.personal-list .word-refined{box-shadow:none;border-color:#e4ded4;padding:22px}.word-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}.word-title-row h2{font-size:22px;line-height:1.5;letter-spacing:0;min-width:0}.word-title-row button{flex:none;min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:#fffdf9;color:var(--muted);font-size:12px}.word-meta-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.word-meta-tags span{padding:3px 9px;border-radius:6px;border:1px solid #e4ded4;background:#faf8f3;color:#70665d;font-size:11px;line-height:1.5}.word-meta-tags .word-mastered-tag{background:var(--leaf-soft);border-color:#c8d9cb;color:var(--leaf)}.word-french-definition{margin:12px 0 16px;font-size:15px;line-height:1.75;color:#625c55}.word-refined details{margin:14px 0}.word-refined summary{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;color:var(--muted);font-size:13px}.word-refined .personal-card-actions{padding-top:12px;border-top:1px solid var(--line);font-size:12px;gap:10px}.word-refined .personal-card-actions button{padding:6px 8px}.word-refined .personal-card-actions .word-mastery{margin-right:auto;color:var(--muted);text-decoration:none}.word-refined .personal-card-actions .word-mastery[aria-pressed="true"]{color:var(--leaf);background:var(--leaf-soft);border-radius:8px}.word-refined .personal-card-actions a{padding:8px 0}
.word-list-view .personal-word.word-refined{grid-template-columns:minmax(150px,1fr) minmax(0,2fr) auto;grid-template-areas:"title definition actions" "tags translation actions";gap:4px 24px;padding:18px 22px}.word-list-view .word-title-row{grid-area:title}.word-list-view .word-meta-tags{grid-area:tags;margin:8px 0}.word-list-view .word-french-definition{grid-area:definition;margin:0}.word-list-view .word-refined details{grid-area:translation;margin:8px 0 0}.word-list-view .word-refined summary{border-top:0;padding:8px 0}.word-list-view .word-refined .personal-card-actions{grid-area:actions;border:0;padding:0;justify-content:flex-start}.word-list-view .word-refined .personal-card-actions .word-mastery{margin-right:0}
@media(max-width:760px){.word-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.word-filter-panel{padding:14px}.word-list-view .personal-word.word-refined{grid-template-columns:1fr;grid-template-areas:"title" "tags" "definition" "translation" "actions";gap:4px;padding:18px}.word-list-view .word-refined .personal-card-actions{flex-direction:row;align-items:center;padding-top:10px;border-top:1px solid var(--line)}.word-list-view .word-refined .personal-card-actions .word-mastery{margin-right:auto}.personal-list .word-refined{padding:18px}.word-title-row h2{font-size:21px}.word-filter-footer{gap:8px 12px}.word-filter-footer>span{width:100%}.word-filter-footer button{font-size:12px}}


/* Larger, aligned hairstyle tiles and round header portraits. */
.avatar-fields fieldset:has([data-avatar-key="hair"]) .avatar-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.avatar-options button[data-avatar-key="hair"]{width:100%;max-width:none;min-height:150px;padding:10px;justify-content:flex-start;gap:8px}.avatar-options button[data-avatar-key="hair"][aria-pressed="true"]{padding:9px}.avatar-hair-thumb{width:96px}.avatar-options button[data-avatar-key="hair"]>span:last-child{min-height:40px;display:flex;align-items:center;justify-content:center;line-height:1.5}.avatar-profile>[data-profile-avatar]{width:144px}.avatar-preview{width:100%}.personal-header-link.has-avatar img{border-radius:50%!important;aspect-ratio:1;object-fit:cover}@media(max-width:650px){.avatar-fields fieldset:has([data-avatar-key="hair"]) .avatar-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.avatar-hair-thumb{width:104px}.avatar-options button[data-avatar-key="hair"]{min-height:164px}.avatar-options button[data-avatar-key="hair"]>span:last-child{min-height:36px}.avatar-profile>[data-profile-avatar]{width:110px}}

.word-title-text{min-width:0}.word-title-text .word-reading{display:block;margin-top:2px;color:#6a6560;font-size:.95rem;letter-spacing:.04em}
.word-list-view .personal-word.word-refined>.word-title-row{grid-area:title}
.word-list-view .personal-word.word-refined>.word-meta-tags{grid-area:tags}
.word-list-view .personal-word.word-refined>.word-french-definition{grid-area:definition;grid-column:2;grid-row:1}
.word-list-view .personal-word.word-refined>details{grid-area:translation}
.word-list-view .personal-word.word-refined>.personal-card-actions{grid-area:actions}
@media(max-width:760px){.word-list-view .personal-word.word-refined>.word-french-definition{grid-area:definition;grid-column:1;grid-row:auto}}

.word-status-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.word-status-chips button{min-height:40px;padding:8px 14px;border:1px solid var(--line,#e8e1db);border-radius:999px;background:#fff;color:#141210;font-weight:700;font-size:.92rem}
.word-status-chips button span{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:#f1ebe4;font-size:.8rem}
.word-status-chips button[aria-pressed=true]{background:#141210;border-color:#141210;color:#fff}
.word-status-chips button[aria-pressed=true] span{background:rgba(255,255,255,.2)}
.personal-meaning p{margin:6px 0}.personal-meaning b{display:inline-block;min-width:3.4em;margin-right:6px;padding:1px 6px;border-radius:6px;background:#f1ebe4;font-size:.72rem;letter-spacing:.04em;text-align:center}
.personal-meaning .word-french-definition{grid-area:auto;margin:6px 0}
.personal-meaning .word-no-meaning{color:#6a6560;font-size:.9rem}
.word-list-view .personal-word.word-refined{grid-template-areas:"title translation actions" "tags translation actions"}
@media(max-width:760px){.word-list-view .personal-word.word-refined{grid-template-areas:"title" "tags" "translation" "actions"}}

/* Modular painted wardrobe: circular portrait above, full figure in the profile. */
.avatar-fullbody{position:relative;display:block;width:100%;aspect-ratio:280/720;isolation:isolate;overflow:hidden;border-radius:16px;background:#faf4e8}
.avatar-fullbody>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;border:0!important;border-radius:0!important;background:transparent!important}
.avatar-bg-0{background:#faf4e8}.avatar-bg-1{background:#e8f0e5}.avatar-bg-2{background:#f9e8e5}
.avatar-profile>[data-profile-avatar]{width:170px}.avatar-profile{gap:32px}
#avatar-editor{width:min(1000px,calc(100% - 28px))}.avatar-editor-layout{grid-template-columns:230px minmax(0,1fr);gap:28px}
.avatar-preview{padding:0;background:transparent}.avatar-preview .avatar-fullbody{max-height:60dvh;width:auto;max-width:100%;margin:auto}
.avatar-preview>small{display:block;text-align:center;font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}
.avatar-editor-actions{position:sticky;bottom:0;z-index:5;box-shadow:0 -3px 12px #fffdf9d9}
.avatar-edit-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:10px}
.avatar-edit-tabs button{flex:1;min-height:46px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fffefa;font:inherit;color:var(--ink)}
.avatar-edit-tabs button[aria-selected="true"]{color:var(--accent-d);border-color:var(--accent-d);background:#faf0e8;font-weight:600}
.outfit-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.outfit-options button{flex-direction:column;padding:9px;gap:8px;min-width:0;font-size:13px;line-height:1.5}
.outfit-options button[aria-pressed="true"]{padding:8px}.outfit-thumb{display:block;width:74px;max-width:100%}.outfit-thumb .avatar-fullbody{border-radius:8px}
.outfit-bg-dot{display:block;width:40px;height:40px;border:1px solid #cdbfae;border-radius:50%}
.avatar-options button:focus-visible,.avatar-edit-tabs button:focus-visible{outline:3px solid var(--leaf);outline-offset:3px}
@media(max-width:650px){
 .avatar-profile{display:grid;grid-template-columns:1fr;gap:18px}.avatar-profile>[data-profile-avatar]{width:140px;margin:auto}.profile-identity h2{text-align:center}.profile-identity>.outline{display:block;margin:auto}
 #avatar-editor{width:calc(100% - 16px)}.avatar-editor-layout{grid-template-columns:1fr;padding:16px;gap:20px}.avatar-preview .avatar-fullbody{height:260px;width:auto;max-height:none}.avatar-preview{position:static}.avatar-preview>small{margin-top:5px}
 .avatar-edit-tabs{margin-bottom:18px}.avatar-fields fieldset:has([data-avatar-key="hair"]) .avatar-options{grid-template-columns:repeat(2,minmax(0,1fr))}.outfit-thumb{width:68px}.outfit-options button{font-size:12px}.avatar-editor-actions{padding:12px;gap:8px}
}
@media(prefers-reduced-motion:no-preference){.avatar-options button,.avatar-edit-tabs button{transition:border-color .15s,background .15s}}

/* ---- compact word list ---- */
.personal-tools{margin:8px 0 10px;max-width:none}.personal-tools label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.personal-tools input{min-height:42px;padding:8px 12px}
.word-collection-toolbar{margin:0 0 8px;gap:8px}.word-collection-toolbar>.wine{min-height:42px;padding:8px 14px;font-size:.92rem}.word-view-toggle button{min-height:42px;padding:6px 14px}
.word-status-chips{margin:6px 0 8px;gap:6px}.word-status-chips button{min-height:34px;padding:4px 12px;font-size:.85rem}
.word-filter-fold{margin:0 0 12px}.word-filter-fold>summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 12px;border:1px solid var(--line,#e8e1db);border-radius:999px;background:#fff;font-weight:700;font-size:.85rem;cursor:pointer;list-style:none}.word-filter-fold>summary::-webkit-details-marker{display:none}.word-filter-fold>summary::before{content:'▾';color:#6a6560}.word-filter-fold[open]>summary::before{content:'▴'}
.wff-count{min-width:20px;padding:0 6px;border-radius:999px;background:#c8232c;color:#fff;font-size:.72rem;text-align:center}
.word-filter-fold .word-filter-panel{margin-top:8px;padding:12px}
.personal-list:has(.word-compact){gap:8px}.personal-list.word-list-view:has(.word-compact){gap:0}
.personal-list .personal-word.word-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "meaning meaning";align-items:center;gap:0 10px;padding:9px 12px;border-radius:12px}
.word-list-view .personal-word.word-compact{border-radius:0;border-width:0 0 1px 0}.word-list-view .personal-word.word-compact:last-child{border-bottom:0}
.word-compact .wc-main{grid-area:main;min-width:0}.word-compact .wc-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}
.word-compact .wc-line h2{margin:0;font-size:1.08rem;line-height:1.4;font-weight:800;letter-spacing:0}.word-compact .word-reading{font-size:.85rem;color:#6a6560}
.word-compact .wc-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.word-compact .wc-tags span{padding:0 7px;border-radius:6px;background:#f1ebe4;color:#5a554f;font-size:.7rem;line-height:1.7}.word-compact .wc-tags .word-mastered-tag{background:#e3f1e8;color:#25613b}
.word-compact .wc-actions{grid-area:actions;display:flex;gap:4px}
.word-compact .wc-ico{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:0;border:1px solid #e4ded4;border-radius:10px;background:#fff;color:#3b3733;text-decoration:none}
.word-compact .wc-ico:hover{background:#f6f1ea}.word-compact .wc-check[aria-pressed=true]{background:#2f7a4a;border-color:#2f7a4a;color:#fff}.word-compact .wc-del:hover{color:#c8232c;border-color:#e0b3b6}
.personal-list .word-compact>details.word-translation{grid-area:meaning;margin:0;padding:0}.word-compact details summary{min-height:28px;padding:2px 0;background:transparent;border:0;border-radius:0;font-size:.8rem;color:#6a6560}
.word-compact .personal-meaning{padding:2px 0 6px}.word-compact .personal-meaning p{margin:4px 0;padding:0;font-size:.92rem}
.word-compact.is-mastered .wc-line h2{opacity:.7}
@media(max-width:700px){.personal-list .personal-word.word-compact{padding:8px 10px}.word-compact .wc-ico{width:34px;height:34px}}

.personal-list .personal-word.word-compact>details.word-translation{border:0!important;background:none!important;box-shadow:none!important;border-radius:0}
.personal-list .personal-word.word-compact>details.word-translation>summary{border:0!important;background:none!important;box-shadow:none!important;padding:2px 0}
.personal-list .personal-word.word-compact>details.word-translation[open]{padding-bottom:2px}
.word-compact .personal-meaning{border:0;background:none;padding:2px 0 4px}
@media(max-width:700px){.word-compact .wc-actions{gap:3px}.word-compact .wc-ico{width:32px;height:32px;border-radius:9px}.word-compact .wc-ico svg{width:16px;height:16px}.word-compact .wc-line h2{font-size:1.02rem}}

/* labelled action buttons (replaces icon-only) */
.personal-list .personal-word.word-compact{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main main" "meaning actions";align-items:start;gap:2px 8px}
.personal-list .personal-word.word-compact>.wc-actions{grid-area:actions;justify-content:flex-end;flex-wrap:wrap;align-self:center}
.personal-list .personal-word.word-compact>details.word-translation[open]{grid-column:1 / -1;grid-row:3}
.word-compact .wc-btn{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 9px;border:1px solid #e4ded4;border-radius:9px;background:#fff;color:#3b3733;font-size:.78rem;font-weight:700;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer}
.word-compact .wc-btn:hover{background:#f6f1ea}.word-compact .wc-btn.wc-check[aria-pressed=true]{background:#2f7a4a;border-color:#2f7a4a;color:#fff}.word-compact .wc-btn.wc-del:hover{color:#c8232c;border-color:#e0b3b6}
.word-compact .wc-ico{display:none}
@media(max-width:700px){.word-compact .wc-actions{gap:3px}.word-compact .wc-btn{min-height:30px;padding:0 7px;font-size:.72rem}}

.word-examples{margin-top:8px;padding-top:8px;border-top:1px dashed #e4ded4}.word-examples>b{display:inline-block;margin-bottom:4px;padding:1px 8px;border-radius:6px;background:#f1ebe4;font-size:.72rem;letter-spacing:.04em}
.word-ex{padding:6px 0;border-bottom:1px solid #f1ebe4}.word-ex:last-child{border-bottom:0}.word-ex p{margin:2px 0;font-size:.9rem;line-height:1.55}.word-ex .word-ex-tr{color:#6a6560;font-size:.84rem}.word-ex a{font-size:.78rem;color:#c8232c;font-weight:700;text-decoration:none}
.word-ex-wait,.word-ex-none{color:#6a6560;font-size:.85rem;margin:2px 0}
/* A small collar overlap keeps the modular head and neckline joined. */
.avatar-fullbody>img.avatar-head{transform-origin:0 0;transform:translate(var(--head-x),var(--head-y)) scale(var(--head-scale-x,.66));-webkit-mask-image:var(--head-mask);mask-image:var(--head-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}



/* Keep the neckline anchored while giving every outfit the same adult stature. */
.avatar-fullbody>img:not(.avatar-head){transform-origin:50% 20.833333%;transform:scaleY(var(--body-scale-y,1.04))}

/* ---- word quiz redesign ---- */
#word-quiz-body{padding:18px 22px 22px}
.qz-lead{margin:0 0 14px;color:#3b3733}.qz-lead b{color:#c8232c}
.qz-setup fieldset{border:0;margin:0 0 16px;padding:0}.qz-setup legend{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:800;font-size:.95rem}.qz-setup legend i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#141210;color:#fff;font-style:normal;font-size:.75rem}
.qz-opts{display:grid;gap:8px}.qz-opts-3{grid-template-columns:repeat(3,minmax(0,1fr))}.qz-opts-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.qz-opt{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:68px;padding:10px 8px;border:2px solid #e4ded4;border-radius:14px;background:#fff;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.qz-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}.qz-opt-main{font-weight:800;font-size:1.05rem}.qz-opt small{color:#6a6560;font-size:.74rem;line-height:1.35}
.qz-opt:hover{border-color:#c9c2ba}.qz-opt:has(input:checked){border-color:#c8232c;background:#fff4f4;box-shadow:0 0 0 3px rgba(200,35,44,.12)}.qz-opt:has(input:checked) .qz-opt-main::before{content:'✓ ';color:#c8232c}.qz-opt:has(input:focus-visible){outline:3px solid #141210;outline-offset:2px}
.qz-start{width:100%;min-height:52px;font-size:1.05rem}
.qz-progress{display:flex;align-items:center;gap:12px;margin-bottom:14px}.qz-step{font-weight:800;font-size:1.15rem;white-space:nowrap}.qz-step small{color:#6a6560;font-weight:600;font-size:.85rem}
.qz-bar{flex:1;height:10px;border-radius:999px;background:#eee7df;overflow:hidden}.qz-bar i{display:block;height:100%;border-radius:999px;background:#c8232c;transition:width .3s}
.qz-score{font-weight:800;color:#2f7a4a;white-space:nowrap}
.qz-card{padding:22px 18px;border:1px solid #e4ded4;border-radius:16px;background:#faf6f0;text-align:center;margin-bottom:14px}.qz-q-label{margin:0 0 8px;color:#6a6560;font-size:.88rem;font-weight:700}.qz-card .quiz-prompt{margin:0;font-size:1.7rem;line-height:1.4;overflow-wrap:anywhere}
.qz-choices{display:grid;gap:10px}
.qz-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 14px;border:2px solid #e4ded4;border-radius:14px;background:#fff;color:#141210;text-align:left;font-size:1rem;cursor:pointer;transition:border-color .15s,background .15s,transform .05s}
.qz-choice:hover:not(:disabled){border-color:#bdb5aa;background:#fbf8f3}.qz-choice:active:not(:disabled){transform:scale(.995)}
.qz-letter{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:#f1ebe4;font-weight:800;color:#3b3733}.qz-text{flex:1;line-height:1.5;overflow-wrap:anywhere}.qz-mark{flex:none;width:24px;text-align:center;font-weight:800}
.qz-choice.is-picked{border-color:#141210;background:#fff;box-shadow:0 0 0 3px rgba(20,18,16,.12)}.qz-choice.is-picked .qz-letter{background:#141210;color:#fff}.qz-choice.is-picked .qz-mark{color:#141210}
.qz-choice.is-correct{border-color:#2f7a4a;background:#eaf6ee}.qz-choice.is-correct .qz-letter{background:#2f7a4a;color:#fff}.qz-choice.is-correct .qz-mark{color:#2f7a4a;font-size:1.2rem}
.qz-choice.is-wrong{border-color:#c8232c;background:#fdecec}.qz-choice.is-wrong .qz-letter{background:#c8232c;color:#fff}.qz-choice.is-wrong .qz-mark{color:#c8232c;font-size:1.2rem}
.qz-choice.is-dim{opacity:.5}.qz-choice:disabled{cursor:default}
.qz-actions{display:flex;align-items:center;gap:14px;margin-top:14px}.qz-actions .wine{flex:1;min-height:50px;font-size:1.02rem}.qz-actions .wine:disabled{opacity:.4;cursor:not-allowed}
.qz-keys{margin:8px 0 0;text-align:center}
.qz-write input{width:100%;min-height:52px;padding:10px 14px;font-size:1.15rem;border:2px solid #e4ded4;border-radius:12px}.qz-write input:focus{border-color:#141210;outline:0}
.quiz-feedback{margin-top:14px;padding:14px 16px;border-radius:14px;border:2px solid transparent}.quiz-feedback.is-correct{background:#eaf6ee;border-color:#2f7a4a}.quiz-feedback.is-incorrect{background:#fdecec;border-color:#c8232c}
.quiz-feedback h4{margin:0 0 6px;font-size:1.15rem}.quiz-feedback.is-correct h4{color:#25613b}.quiz-feedback.is-incorrect h4{color:#a31d25}.quiz-feedback p{margin:4px 0}.qz-fb-word{font-size:1.1rem}
.qz-tag{display:inline-block;min-width:3.2em;margin-right:6px;padding:1px 6px;border-radius:6px;background:rgba(255,255,255,.7);font-size:.7rem;text-align:center}
.quiz-feedback .wine{width:100%;min-height:50px;margin-top:10px}
@media(max-width:520px){#word-quiz-body{padding:14px 14px 18px}.qz-opts-3{grid-template-columns:repeat(3,minmax(0,1fr))}.qz-opt{min-height:64px}.qz-card .quiz-prompt{font-size:1.45rem}.qz-choice{min-height:56px}}

.qz-dirs{display:grid;gap:8px}
.qz-dir-opt{position:relative;display:grid;gap:4px;padding:10px 14px;border:2px solid #e4ded4;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.qz-dir-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.qz-dir-opt:hover{border-color:#c9c2ba}.qz-dir-opt:has(input:checked){border-color:#c8232c;background:#fff4f4;box-shadow:0 0 0 3px rgba(200,35,44,.12)}.qz-dir-opt:has(input:focus-visible){outline:3px solid #141210;outline-offset:2px}
.qz-dir-head{display:flex;align-items:center;gap:8px}.qz-dir-head b{display:inline-block;min-width:46px;padding:2px 10px;border-radius:8px;background:#141210;color:#fff;font-size:.92rem;text-align:center}.qz-dir-head i{font-style:normal;font-weight:800;color:#c8232c}.qz-dir-opt:has(input:checked) .qz-dir-head::after{content:'✓ 選択中';margin-left:auto;font-size:.8rem;font-weight:800;color:#c8232c}
.qz-dir-line{display:flex;align-items:baseline;gap:8px;font-size:.92rem;color:#3b3733}.qz-dir-line em{flex:none;min-width:3em;font-style:normal;font-size:.72rem;font-weight:800;color:#6a6560;background:#f1ebe4;border-radius:6px;padding:1px 6px;text-align:center}
.qz-dir-chip{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 8px;font-weight:800}.qz-dir-chip span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid #e4ded4;font-size:.85rem}.qz-dir-chip em{font-style:normal;font-size:.7rem;color:#6a6560;font-weight:700}.qz-dir-chip i{font-style:normal;color:#c8232c}

.personal-empty-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px}.personal-empty-links .button{min-width:7.5em}

.study-panel{margin:0 0 16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fffefa}
.study-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.study-stats div{text-align:center;padding:10px 4px;border-radius:12px;background:#f8f2ea}
.study-stats b{display:block;font-size:1.35rem;line-height:1.2;color:#9d1f27}
.study-stats span{display:block;font-size:.72rem;color:#6a6560;margin-top:2px}
.study-actions{display:flex;flex-wrap:wrap;gap:10px}
.study-actions button{flex:1 1 200px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.study-actions button small{font-size:.78rem;opacity:.85;font-weight:700}
.study-actions button[disabled]{opacity:.45;cursor:not-allowed}
.fav-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 14px}
.fav-sort{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#6a6560;font-weight:700}
.fav-sort select{min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fffdf9;font:inherit}
.personal-events{display:block}
.pe-head{font-size:1.05rem;margin:18px 0 10px}
.pe-list{display:grid;gap:12px}
.personal-event{display:flex;flex-direction:column;gap:12px}
.personal-event.is-past{opacity:.65}
.pe-place{margin:4px 0 6px;font-size:.88rem;color:#6a6560}
.pe-actions{display:flex;flex-wrap:wrap;gap:8px}
.pe-actions a.wc-btn{text-decoration:none}
.backup-fold{margin:28px 0 8px;border:1px solid var(--line);border-radius:14px;background:#fffefa;padding:0 16px}
.backup-fold summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:800}
.backup-body{padding:0 0 16px}
.backup-body p{margin:0 0 12px;font-size:.9rem;color:#4a4540}
.backup-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.backup-actions .button{cursor:pointer;display:inline-flex;align-items:center}
.backup-note{font-size:.8rem!important;color:#6a6560!important}
.qz-speak{display:inline-flex;align-items:center;gap:6px;margin:10px 0 0;min-height:40px;padding:6px 14px;border:1px solid #e4ded4;border-radius:999px;background:#fff;font:inherit;font-size:.85rem;font-weight:700;color:#3a3530;cursor:pointer}
.qz-speak:hover{border-color:#c8232c;color:#c8232c}
.qz-fb-word .qz-speak{margin:0 0 0 10px;min-height:34px;vertical-align:middle}
@media(max-width:560px){.study-stats{grid-template-columns:repeat(2,1fr)}}
.demo-band{border-bottom:1px solid rgba(255,255,255,.35)!important}

.ev-credit{margin:6px 0 0;font-size:.75rem;color:#6a6560;text-align:right}
.ev-sources{margin:26px 0 8px}
.ev-sources h2{font-size:1.05rem;margin:0 0 12px}

.date-chip{width:auto!important;min-width:64px;white-space:nowrap;padding-left:12px!important;padding-right:12px!important}.date-chip b{white-space:nowrap}
.card:has(.date-chip) .date-chip{width:auto!important;min-width:72px}

/* Mobile menu: every item with a sub-menu shows the same small chevron; the events toggle keeps a normal touch target but no extra gap. */
.header nav .nav-chev{display:none}
@media(max-width:900px){
.header nav .nav-chev{display:inline-block;margin-left:3px;font-style:normal;font-size:12px;line-height:1;color:var(--accent-d);transform:translateY(-2px)}
.header nav .event-sub-toggle{min-width:26px;padding:0 4px;margin-left:-3px;font-size:12px}
.header nav .nav-item:has(.event-sub-toggle){margin-right:4px}
}

.zodiac-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.zodiac-options button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;border:1px solid #d8c7b6;border-radius:14px;background:#fffdf9;color:#39352f;font:inherit;cursor:pointer}.zodiac-options button[aria-pressed=true]{border:2px solid #9d3038;background:#f8eee8}.zodiac-options .anime-avatar{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%}.zodiac-options span{font-size:.85rem}.zodiac-options button:focus-visible{outline:3px solid #9d3038;outline-offset:2px}@media(max-width:380px){.zodiac-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
.anime-avatar.zodiac-avatar{box-sizing:border-box;padding:8%;background:#fffaf1;object-fit:contain}

/* Compact reference tables inside two-column news articles (e.g. the twelve signs). */
.news-language .article-table table{width:100%}
.news-language .article-table td,.news-language .article-table th{padding:8px 8px;font-size:14px;line-height:1.45;vertical-align:middle}
.news-language .article-table td:nth-child(1),.news-language .article-table td:nth-child(2),.news-language .article-table td:nth-child(4){white-space:nowrap}.news-language .article-table td:nth-child(3){font-variant-numeric:tabular-nums;line-height:1.7;word-break:keep-all;min-width:150px}

/* Table of contents: a run of numbered sections (e.g. the twelve animals) becomes one entry with small numbered chips. */
.news-dossier-toc .toc-group{grid-column:1/-1;border-top:1px solid #dfdbd4}
.news-dossier-toc .toc-group>button{border-top:0}
.news-dossier-toc .toc-kids{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 14px}
.news-dossier-toc .toc-kids .toc-chip{display:inline-flex;align-items:center;gap:6px;width:auto;padding:6px 12px;border:1px solid #d8d3cb;border-radius:999px;background:#fff;font-size:14px;line-height:1.3}
.news-dossier-toc .toc-kids .toc-chip b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#813447;color:#fff;font-size:11px}

/* The twelve animal pictures in the zodiac article are small illustrations: show them at about 30% of the column. */
.news-sec-fig:has(img[src*="/avatars/zodiac-v1/"]){width:30%;min-width:112px;margin-left:0;margin-right:auto}
.news-sec-fig img[src*="/avatars/zodiac-v1/"]{width:100%;height:auto}
