:root {
  --cocoa: #5c3a21;
  --cocoa-deep: #3d2517;
  --vanilla: #e6f2ff;
  --cream: #fffdd0;
  --pink: #ffb7c5;
  --ink: #5c3a21;
  --muted: rgba(92, 58, 33, .78);
  --card: rgba(230, 242, 255, .58);
  --line: rgba(92, 58, 33, .14);
  --shadow: 0 18px 55px rgba(92, 58, 33, .14);
}

/* Generated news template only; scoped to the dedicated article view. */
.news-article{max-width:860px;margin:0 auto}.news-article .news-content{font-size:1.06rem;line-height:2;overflow-wrap:anywhere}.news-article .news-content p{white-space:pre-wrap}.news-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}@media(max-width:640px){.news-article{padding-inline:0}.news-article .news-content{font-size:1rem;line-height:1.9}}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  line-height: 1.8;
}
body.night {
  --cream: #3d2517; --vanilla: #5c3a21; --ink: #fffdd0; --muted: rgba(255,253,208,.78);
  --card: rgba(92, 58, 33, .82); --line: rgba(255, 183, 197, .35);
  --night-text: #fff3d6; --night-soft: #f4d8b7; --night-panel: #70452d; --night-panel-deep: #2b1a10; --night-border: rgba(255,183,197,.52);
  background: #3d2517;
}
body.night { color: var(--night-text); }
a { color: var(--cocoa); text-decoration: none; }
body.night a { color: var(--pink); }
a:hover { color: var(--pink); }
img { max-width: 100%; display: block; }
.wrap { width: min(1160px, calc(100% - 36px)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 30; backdrop-filter: blur(18px);
  background: rgba(255,253,208,.88); border-bottom: 1px solid var(--line);
}
body.night .site-header { background: rgba(61,37,23,.92); }
.nav { min-height: 72px; display: flex; gap: 22px; align-items: center; justify-content: space-between; position:relative; }
.brand { display:flex; align-items:center; gap: 10px; color: var(--cocoa-deep); font-weight: 900; letter-spacing: .05em; white-space: nowrap; }
body.night .brand { color: var(--night-text); }
.brand-mark { width: 39px; height: 39px; display:grid; place-items:center; overflow:hidden; border-radius: 14px 14px 14px 4px; background: var(--pink) url("../img/favicon.ico") center / cover no-repeat; color: transparent; font-size:0; box-shadow: 4px 4px 0 rgba(92,58,33,.13); }
.nav-links { display:flex; align-items:center; gap: 16px; flex-wrap: wrap; justify-content:flex-end; }
.nav-links a { padding: 7px 9px; color: var(--ink); font-size: .94rem; border-radius: 12px; }
.nav-links a:hover, .nav-links a[aria-current="page"] { background: var(--pink); color: var(--cocoa-deep); }
.theme-toggle { border: 1px solid var(--cocoa); background: var(--pink); color: var(--cocoa-deep); border-radius: 999px; cursor:pointer; padding: 7px 11px; font-weight:800; }
body.night .theme-toggle { border-color:var(--night-border); }
.hero { position: relative; overflow:hidden; min-height: min(820px, calc(100svh - 72px)); padding: 64px 0 82px; background: var(--cream); display:flex; align-items:center; }
.hero::before { content:""; position:absolute; inset: 0; background: var(--vanilla); opacity:.46; clip-path: polygon(0 0, 52% 0, 41% 100%, 0 100%); pointer-events:none; }
.hero-grid { position:relative; display:grid; grid-template-columns: .9fr 1.1fr; gap: 42px; align-items:center; }
.hero-copy { position:relative; z-index:3; padding:12px 0 0 34px; }
.hero-kicker { display:inline-flex; align-items:center; gap:10px; color:var(--cocoa); font-size:.72rem; font-weight:900; letter-spacing:.15em; }
body.night .hero-kicker, body.night .hero-subtitle, body.night .eyebrow { color:var(--night-soft); }
.hero-kicker-dot { display:grid; place-items:center; width:28px; height:28px; border-radius:10px 10px 10px 3px; background:var(--pink); color:var(--cocoa-deep); box-shadow:4px 4px 0 rgba(92,58,33,.12); }
.hero-subtitle { margin:-8px 0 18px; color:var(--cocoa); font-size:1rem; font-weight:800; letter-spacing:.18em; }
.eyebrow { display:inline-flex; gap:8px; align-items:center; color: var(--cocoa); font-weight: 800; letter-spacing: .12em; font-size:.8rem; text-transform: uppercase; }
h1,h2,h3 { line-height: 1.25; color: var(--cocoa-deep); margin: 0 0 16px; }
body.night h1, body.night h2, body.night h3 { color: var(--night-text); }
h1 { font-size: clamp(2.8rem, 6vw, 5.3rem); letter-spacing: 0; }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: 1.2rem; }
.lead { font-size: 1.12rem; color: var(--muted); max-width: 62ch; }
body.night .lead, body.night .section-head p { color:var(--night-soft); }
.hero-actions { display:flex; flex-wrap:wrap; gap: 12px; margin-top: 28px; }
.hero-tags { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 25px; }
.hero-tags span { padding:5px 10px; border:1px solid rgba(92,58,33,.25); border-radius:999px; background:rgba(230,242,255,.62); color:var(--cocoa); font-size:.78rem; font-weight:800; }
.hero-route { max-width:510px; padding:16px 18px 14px; border:1px solid rgba(92,58,33,.22); border-radius:18px; background:rgba(255,253,208,.68); box-shadow:6px 6px 0 rgba(92,58,33,.08); }
.route-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--cocoa); font-size:.78rem; font-weight:900; letter-spacing:.05em; }
.route-heading a { color:var(--cocoa); font-size:.75rem; }
.route-line { display:flex; align-items:center; gap:7px; margin-top:13px; }
.route-line i { flex:1; height:2px; min-width:10px; background:var(--pink); }
.route-node { display:grid; place-items:center; min-width:42px; height:29px; padding:0 7px; border-radius:999px; border:1px solid rgba(92,58,33,.25); background:var(--vanilla); color:var(--cocoa); font-size:.7rem; font-weight:900; }
.route-node.active { background:var(--cocoa); color:var(--cream); border-color:var(--cocoa); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius: 999px; padding: 12px 21px; font-weight: 800; cursor:pointer; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(92,58,33,.18); }
.button-primary { color: var(--cream); background: var(--cocoa); }
.button-secondary { color: var(--cocoa-deep); background: var(--pink); }
.hero-art { position:relative; min-height: 470px; border-radius: 32px; overflow:hidden; background: var(--vanilla); box-shadow: var(--shadow); transform: perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(1deg); transition: transform .2s ease; border: 3px solid var(--pink); cursor:pointer; }
.hero-visual { position:relative; min-height:570px; z-index:2; }
.hero-art { width:min(100%, 570px); height:520px; min-height:0; margin:22px 8% 0 auto; }
.hero-art img { width:100%; height:100%; min-height:410px; object-fit:cover; }
.hero-art::after { content:""; position:absolute; inset: 0; background: rgba(61,37,23,.28); }
.art-caption { position:absolute; left:24px; right:24px; bottom:18px; z-index:1; display:grid; gap:3px; color:var(--cream); text-shadow:0 2px 8px var(--cocoa-deep); }
.art-caption span { color:var(--pink); font-size:.72rem; font-weight:900; letter-spacing:.16em; }
.art-caption strong { font-size:1rem; }
.hero-stamp { position:absolute; z-index:4; top:26px; right:2%; display:grid; place-items:center; width:94px; height:94px; border:2px solid var(--cocoa); border-radius:50%; transform:rotate(12deg); background:var(--pink); color:var(--cocoa-deep); box-shadow:5px 5px 0 rgba(92,58,33,.14); }
.hero-stamp span { font-size:.65rem; font-weight:900; letter-spacing:.16em; }
.hero-stamp strong { margin-top:-3px; font-family:Georgia,serif; font-size:1.8rem; line-height:1; }
.hero-stamp small { font-size:.52rem; font-weight:900; letter-spacing:.1em; }
.hero-mini { position:absolute; z-index:4; overflow:hidden; margin:0; border:3px solid var(--cream); border-radius:17px; background:var(--vanilla); box-shadow:7px 7px 0 rgba(92,58,33,.16); }
.hero-mini img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.hero-mini:hover img { transform:scale(1.07); }
.hero-mini span { position:absolute; left:10px; right:10px; bottom:8px; color:var(--cream); font-size:.7rem; font-weight:900; text-shadow:0 2px 7px var(--cocoa-deep); }
.hero-mini-top { top:73px; left:-18px; width:150px; height:112px; transform:rotate(-7deg); }
.hero-mini-bottom { right:-8px; bottom:38px; width:176px; height:124px; transform:rotate(6deg); }
.hero-visual-note { position:absolute; left:7%; bottom:0; display:flex; align-items:center; gap:9px; color:var(--cocoa); font-size:.72rem; font-weight:900; letter-spacing:.08em; }
.note-line { width:32px; height:2px; background:var(--pink); }
.hero-next { position:absolute; z-index:3; bottom:21px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:11px; color:var(--cocoa); font-size:.72rem; font-weight:900; letter-spacing:.12em; }
.hero-next i { display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--cocoa); border-radius:50%; font-style:normal; }
.section { padding: 74px 0; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom: 25px; }
.section-head p { max-width: 58ch; margin:0; color: var(--muted); }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card { background: var(--card); border: 1px solid rgba(92,58,33,.25); border-radius: 18px; padding: 23px; box-shadow: 8px 8px 0 rgba(92,58,33,.08), -5px -5px 16px rgba(255,255,255,.42); backdrop-filter: blur(12px); }
.card p:last-child { margin-bottom:0; }
.resource-section { padding-top: 62px; padding-bottom: 82px; }
.resource-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; max-width:1040px; }
.resource-card { position:relative; display:grid; grid-template-columns:54px 1fr 34px; gap:16px; align-items:start; min-height:235px; padding:28px 26px; overflow:hidden; background:var(--card); border:1px solid rgba(92,58,33,.25); border-radius:22px; color:var(--ink); box-shadow:8px 8px 0 rgba(92,58,33,.08), -5px -5px 16px rgba(255,255,255,.42); backdrop-filter:blur(12px); transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.resource-card::after { content:""; position:absolute; right:-32px; bottom:-42px; width:150px; height:150px; border-radius:50%; background:var(--vanilla); opacity:.75; }
.resource-card:hover { transform:translateY(-5px); border-color:var(--pink); box-shadow:10px 13px 0 rgba(92,58,33,.1), -5px -5px 16px rgba(255,255,255,.46); }
.resource-card-pink { background:rgba(255,183,197,.23); }
.resource-card-pink::after { background:var(--pink); opacity:.4; }
.resource-index { position:relative; z-index:1; color:var(--pink); font-family:Georgia,serif; font-size:2.2rem; font-weight:700; line-height:1; }
.resource-card h2 { position:relative; z-index:1; margin:14px 0 10px; font-size:clamp(1.55rem, 2.4vw, 2.15rem); }
.resource-card p { position:relative; z-index:1; max-width:42ch; color:var(--muted); }
.resource-arrow { position:relative; z-index:1; justify-self:end; display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--cocoa); border-radius:50%; color:var(--cocoa); font-size:1.1rem; transition:transform .25s ease, background .25s ease; }
.resource-card:hover .resource-arrow { transform:rotate(45deg); background:var(--pink); }
.feature-card { position:relative; overflow:hidden; }
.feature-card .icon { font-size: 1.8rem; }
.feature-card::after { content:""; position:absolute; right:-26px; bottom:-36px; width:110px; height:110px; border-radius:50%; background: rgba(255,183,197,.22); }
.gallery { display:grid; grid-template-columns: 1.4fr 1fr 1fr; grid-auto-rows: 170px; gap:14px; }
.gallery figure { margin:0; overflow:hidden; position:relative; border-radius:18px; background:var(--vanilla); }
.gallery figure { border: 3px solid var(--vanilla); box-shadow: 0 8px 0 rgba(92,58,33,.1); }
.gallery figure:first-child { grid-row: span 2; }
.gallery img { width:100%; height:100%; object-fit:cover; transition: transform .45s ease; }
.gallery figure:hover img { transform: scale(1.05); }
.gallery figure:hover { border-color: var(--pink); }
.gallery figcaption { position:absolute; left:12px; right:12px; bottom:10px; color:var(--cream); font-size:.85rem; text-shadow:0 2px 8px var(--cocoa-deep); }
.image-section { padding-top: 30px; }
.image-wall { display:grid; grid-template-columns: 1.35fr 1fr 1fr; grid-template-rows: 205px 205px; gap:16px; }
.image-wall figure { min-width:0; min-height:0; margin:0; position:relative; overflow:hidden; border:3px solid var(--vanilla); border-radius:22px; background:var(--vanilla); box-shadow:8px 8px 0 rgba(92,58,33,.11); }
.image-wall figure::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 38%, rgba(61,37,23,.78)); pointer-events:none; }
.image-wall figure:hover { border-color:var(--pink); transform:translateY(-3px); transition:transform .25s ease, border-color .25s ease; }
.image-wall figure:hover img { transform:scale(1.06); }
.image-wall img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.image-wall .wall-main { grid-row:1 / span 2; }
.image-wall .wall-wide { grid-column:2 / span 2; }
.image-wall figcaption { position:absolute; z-index:1; left:20px; right:20px; bottom:16px; display:grid; gap:3px; color:var(--cream); text-shadow:0 2px 8px var(--cocoa-deep); }
.image-wall figcaption span { color:var(--pink); font-size:.75rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.image-wall figcaption strong { font-size:1.05rem; }
.timeline { border-left: 2px solid var(--pink); margin: 10px 0 0 8px; padding-left: 26px; }
.timeline-item { position:relative; margin-bottom: 24px; }
.timeline-item::before { content:""; position:absolute; left:-35px; top:10px; width:14px; height:14px; border-radius:50%; background:var(--cocoa); border:3px solid var(--cream); }
.pill { display:inline-block; padding: 4px 10px; border-radius: 999px; background: var(--vanilla); color: var(--cocoa); font-size:.78rem; font-weight: 800; }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:24px 0; }
.fact { padding:14px; border-radius:16px; background:rgba(255,183,197,.16); border:1px solid var(--line); }
.fact strong { display:block; color:var(--cocoa); }
.page-hero { padding: 65px 0 36px; background: var(--vanilla); border-bottom: 3px solid var(--pink); }
.prose { max-width: 860px; }
.prose h2 { margin-top: 44px; }
.prose h3 { margin-top: 28px; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.callout { padding: 18px 20px; border-left: 4px solid var(--pink); background: rgba(230,242,255,.72); border-radius: 0 15px 15px 0; }
body.night .callout { background: rgba(230,242,255,.2); }
.faq-list details { background:var(--card); border:1px solid var(--line); border-radius:16px; padding: 15px 18px; margin: 10px 0; }
.faq-list summary { cursor:pointer; font-weight:800; color:var(--cocoa-deep); }
body.night .faq-list summary { color:var(--cream); }
.footer { margin-top: 65px; padding: 42px 0 30px; background: var(--cocoa-deep); color: var(--cream); }
.footer a { color: var(--pink); }
.footer-grid { display:grid; grid-template-columns: 1.2fr 1fr 1fr; gap:28px; }
.footer small { color:var(--vanilla); }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 14px; }
.updated { font-size:.88rem; color: var(--muted); }
.news-belt { overflow:hidden; border:2px solid var(--pink); border-radius:22px; background:var(--vanilla); padding:14px 0; box-shadow: inset 0 0 0 5px rgba(255,253,208,.45); }
.news-track { display:flex; width:max-content; gap:16px; animation: sweets-scroll 28s linear infinite; }
.news-belt:hover .news-track { animation-play-state:paused; }
.news-item { width:230px; min-height:120px; padding:18px; border-radius:50% 50% 42% 42%; background:var(--pink); border:3px solid var(--cream); box-shadow:0 7px 0 rgba(92,58,33,.14); color:var(--cocoa-deep); }
.news-item:nth-child(even) { background:var(--cream); }
.news-item strong { display:block; font-size:.95rem; }
.store-menu { position:relative; border:3px double var(--cocoa); background:var(--cream); box-shadow: 10px 10px 0 rgba(92,58,33,.12); }
.store-menu::before { content:"MENU · LA SOLEIL"; display:block; color:var(--cocoa); font-size:.75rem; letter-spacing:.18em; margin-bottom:8px; }
.store-menu .button-primary { background:var(--cocoa); }
.store-menu .button-primary:hover { background:var(--pink); color:var(--cocoa-deep); }
@keyframes sweets-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes welcome-pulse { 0%,100% { box-shadow: var(--shadow); } 50% { box-shadow: 0 0 0 9px rgba(255,183,197,.45), var(--shadow); } }
.hero-art.welcome-pulse { animation: welcome-pulse .65s ease; }
body.night .nav-links a { color:var(--night-text); }
body.night .nav-links a:hover, body.night .nav-links a[aria-current="page"] { color:var(--cocoa-deep); }
body.night .eyebrow, body.night .hero-kicker, body.night .hero-subtitle { color:var(--pink); }
body.night .section-head p, body.night .lead, body.night .updated { color:var(--night-soft); }
body.night .card, body.night .resource-card { color:var(--night-text); background:rgba(112,69,45,.96); border-color:var(--night-border); }
body.night .card h2, body.night .card h3, body.night .resource-card h2 { color:var(--night-text); }
body.night .card p, body.night .resource-card p, body.night .prose p, body.night .prose li { color:var(--night-soft); }
body.night .resource-card-pink { background:rgba(112,69,45,.96); }
body.night .resource-card::after { background:var(--night-panel-deep); opacity:.42; }
body.night .resource-card-pink::after { background:var(--pink); opacity:.18; }
body.night .resource-index { color:var(--pink); }
body.night .resource-arrow { color:var(--night-text); border-color:var(--night-border); }
body.night .fact { background:rgba(112,69,45,.82); border-color:var(--night-border); color:var(--night-text); }
body.night .fact strong { color:var(--pink); }
body.night .pill { background:var(--night-panel-deep); border:1px solid var(--night-border); color:var(--night-text); }
body.night .hero-tags span { background:rgba(112,69,45,.92); color:var(--night-text); border-color:var(--night-border); }
body.night .hero-route { background:rgba(43,26,16,.9); border-color:var(--night-border); }
body.night .route-heading, body.night .route-heading a { color:var(--night-text); }
body.night .route-node { background:var(--night-panel); color:var(--night-text); border-color:var(--night-border); }
body.night .route-node.active { background:var(--pink); color:var(--cocoa-deep); }
body.night .hero-next { color:var(--night-text); }
body.night .hero-next i { border-color:var(--night-border); }
body.night .news-belt { background:var(--night-panel-deep); border-color:var(--pink); }
body.night .news-item { background:var(--pink); color:var(--cocoa-deep); }
body.night .news-item:nth-child(even) { background:var(--night-panel); color:var(--night-text); }
body.night .news-item:nth-child(even) strong { color:var(--pink); }
body.night .callout { background:var(--night-panel); color:var(--night-text); border-color:var(--pink); }
body.night .callout a { color:var(--pink); }
body.night .faq-list details { background:var(--night-panel); color:var(--night-soft); border-color:var(--night-border); }
body.night .faq-list summary { color:var(--night-text); }
body.night .page-hero { background:var(--night-panel); }
body.night .store-menu { background:var(--night-panel); color:var(--night-text); border-color:var(--night-border); }
body.night .store-menu::before { color:var(--night-soft); }
body.night .store-menu .button-primary { background:var(--pink); color:var(--cocoa-deep); }
body.night .image-wall figcaption { color:var(--night-text); }
body.night .image-wall figcaption span { color:var(--pink); }
body.night .timeline-item::before { border-color:var(--night-panel-deep); }
body.night .footer { color:var(--night-text); background:var(--night-panel-deep); }
body.night .footer h3, body.night .footer p, body.night .footer small { color:var(--night-text); }
body.night .footer a { color:var(--pink); }
body.night .button-secondary { color:var(--cocoa-deep); }
body.night .button-primary { background:var(--pink); color:var(--cocoa-deep); }
body.night .art-caption, body.night .art-caption strong { color:var(--night-text); }
body.night .art-caption span, body.night .hero-visual-note { color:var(--pink); }
body.night .hero-mini span { color:var(--night-text); }
body.night .faq-list summary { color:var(--night-text); }
body.night .footer .footer-links a { color:var(--pink); }
.skip-link { position:absolute; left:-999px; }
.skip-link:focus { left:10px; top:10px; z-index:100; padding:8px; background:var(--cream); }
@media (max-width: 850px) {
  .nav { align-items:flex-start; padding:13px 0; flex-wrap:wrap; }
  .nav-links { width:100%; gap:4px; justify-content:flex-start; }
  .nav-links a { font-size:.88rem; padding:5px 7px; }
  .hero-grid { grid-template-columns:1fr; gap:28px; }
  .hero { min-height:auto; padding-top:54px; padding-bottom:70px; }
  .hero-copy { padding-left:0; }
  .hero-visual { min-height:470px; }
  .hero-art { width:88%; height:410px; min-height:0; margin:18px auto 0; transform:none; }
  .hero-art img { min-height:0; }
  .hero-mini-top { left:0; top:44px; }
  .hero-mini-bottom { right:0; bottom:22px; }
  .hero-stamp { right:1%; top:2px; transform:rotate(8deg) scale(.82); }
  .hero-visual-note { left:9%; }
  .hero-next { bottom:17px; }
  .grid-3 { grid-template-columns:1fr; }
  .grid-2 { grid-template-columns:1fr; }
  .resource-grid { grid-template-columns:1fr; }
  .gallery { grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .gallery figure:first-child { grid-row:span 1; grid-column:span 2; }
  .facts { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .image-wall { grid-template-columns:1fr 1fr; grid-template-rows:220px 170px 170px; }
  .image-wall .wall-main { grid-row:1 / span 2; }
  .image-wall .wall-wide { grid-column:1 / span 2; grid-row:3; }
}
@media (min-width: 851px) {
  .site-header .nav-links { max-height:0; opacity:0; overflow:hidden; transition:max-height .35s ease, opacity .25s ease; }
  .site-header:hover .nav-links, .site-header:focus-within .nav-links { max-height:160px; opacity:1; }
  .nav::after { content:""; position:absolute; right:4px; top:9px; width:38px; height:28px; background:var(--pink); clip-path:polygon(0 100%,0 18%,28% 0,50% 28%,72% 0,100% 18%,100% 100%); pointer-events:none; }
  .site-header:hover .nav::after, .site-header:focus-within .nav::after { opacity:.25; }
}
@media (max-width: 480px) {
  .wrap { width:min(100% - 24px, 1160px); }
  h1 { font-size:2.7rem; }
  .hero-subtitle { font-size:.82rem; }
  .hero-route { padding:13px 12px; }
  .route-line { gap:4px; }
  .route-node { min-width:36px; padding:0 4px; font-size:.62rem; }
  .hero-visual { min-height:400px; }
  .hero-art { width:84%; height:320px; }
  .hero-mini-top { width:112px; height:84px; left:-2px; }
  .hero-mini-bottom { width:128px; height:92px; right:-2px; bottom:22px; }
  .hero-stamp { width:72px; height:72px; top:0; }
  .hero-stamp strong { font-size:1.35rem; }
  .hero-stamp span { font-size:.5rem; }
  .hero-stamp small { font-size:.42rem; }
  .hero-visual-note { left:6%; font-size:.62rem; }
  .section { padding:52px 0; }
  .gallery { grid-template-columns:1fr; }
  .gallery figure:first-child { grid-column:auto; }
  .facts { grid-template-columns:1fr; }
  .resource-card { grid-template-columns:42px 1fr 30px; min-height:210px; padding:22px 18px; gap:10px; }
  .resource-card h2 { font-size:1.45rem; }
  .image-wall { display:grid; grid-template-columns:1fr; grid-template-rows:none; }
  .image-wall .wall-main, .image-wall .wall-wide { grid-column:auto; grid-row:auto; min-height:220px; }
}
