/* Navigation */
.topbar{background:#f6f5f0;color:#6c6d65;font-size:10px;letter-spacing:.06em}.topbar>.container{height:29px;display:flex;justify-content:space-between;align-items:center}.demo-indicator{font-family:Arial,sans-serif;letter-spacing:.1em;font-size:9px}.demo-indicator i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:7px}.site-header{background:#fff}.header-main{height:86px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;gap:10px;align-items:center;font-size:27px;letter-spacing:-.075em;font-weight:900;line-height:1.15}.logo-mark{color:var(--accent);width:32px;height:42px;transform:rotate(-9deg)}.logo small{font-size:20px;letter-spacing:0}.logo em{display:block;font-style:normal;font-size:9px;letter-spacing:.2em;font-weight:600;margin-top:8px}.header-tools{display:flex;align-items:center;gap:27px}.saved-link{font-size:12px;display:flex;gap:7px;align-items:center}.saved-link .icon{width:18px}.saved-link b{font:600 10px Arial;background:var(--accent);color:#fff;border-radius:20px;padding:4px 6px}.header-search{display:flex;align-items:center;justify-content:center;width:34px;height:40px}.language-menu{position:relative;font-size:12px}.language-menu summary{display:flex;gap:8px;align-items:center;cursor:pointer;list-style:none;min-height:44px}.language-menu summary::-webkit-details-marker{display:none}.language-menu .icon{width:17px}.language-menu summary>.icon:last-child{width:12px}.language-options{position:absolute;top:100%;right:0;min-width:180px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);z-index:50}.language-options a{display:flex;justify-content:space-between;gap:18px;padding:10px;border-radius:5px}.language-options a:hover{background:var(--soft)}.language-options small{color:var(--muted);font-size:9px}.menu-toggle{display:none;background:none;width:44px;height:44px}.main-nav{display:flex;justify-content:space-between;align-items:center;height:49px;border-top:1px solid var(--line);font-size:12px;font-weight:650}.main-nav a{height:100%;display:flex;align-items:center;gap:7px;position:relative}.main-nav a[aria-current]::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.main-nav .icon{width:17px}.main-nav a:hover{color:var(--accent)}
/* Home hero and search */
.hero-wrap{max-width:1440px;margin:14px auto 0;padding:0 28px}.hero{height:490px;position:relative;isolation:isolate;border-radius:19px;overflow:hidden;color:#fff;background:#182d40}.hero-photo{position:absolute;inset:0;z-index:-2}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c172c8c,#111b2920 65%),linear-gradient(0deg,#11192355,transparent 35%);z-index:-1}.hero-content{padding:57px 6%;position:relative}.hero-eyebrow{display:flex;gap:12px;align-items:center;font-size:12px;letter-spacing:.14em;margin-bottom:16px}.hero-eyebrow span{display:inline-block;width:24px;height:1px;background:#ffc568}.hero h1{font-size:clamp(36px,4vw,56px);line-height:1.65;letter-spacing:.08em;margin-bottom:15px;font-weight:800;text-shadow:0 2px 16px #0002}.hero-description{font-size:14px;line-height:2.1;letter-spacing:.03em;color:#fffffff0}.hero-discover{display:inline-flex;align-items:center;gap:9px;font-size:12px;border-bottom:1px solid #ffffff60;padding:6px 0}.hero-discover .icon{width:16px}.hero-bottom{display:flex;justify-content:space-between;position:absolute;bottom:21px;left:6%;right:25px;align-items:center}.hero-bottom>span{font:9px Arial;letter-spacing:.19em}.hero-bottom small{font-size:9px;opacity:.8}.hero-search-box{position:relative;margin:-1px auto 0;padding:25px 32px 24px;background:#fff;border:1px solid var(--line);border-top:0;box-shadow:0 10px 25px #222b2810;border-radius:0 0 14px 14px;width:calc(100% - 90px);z-index:1}.search-heading{display:flex;align-items:center;gap:20px;margin-bottom:17px}.search-heading strong{font-size:14px}.search-heading>span{font:9px Arial;letter-spacing:.1em;color:#92958b}.search-form{display:flex;gap:0;align-items:stretch}.search-keyword{position:relative;display:flex;align-items:center;flex:1.25;min-width:180px}.search-keyword>.icon{position:absolute;left:14px;width:19px;color:#8d9189}.search-keyword input{height:57px;width:100%;border:1px solid var(--line);background:#f9faf7;border-radius:7px 0 0 7px;padding:0 16px 0 40px;font-size:12px;outline-offset:0}.search-selects{display:flex;flex:1.7;min-width:0}.search-selects>label{position:relative;border:1px solid var(--line);border-left:0;flex:1;min-width:0;padding:7px 10px;background:#f9faf7}.search-selects label>span{display:flex;align-items:center;gap:4px;font-size:9px;color:#85867f}.search-selects .icon{width:12px;height:12px}.search-selects select{border:0;background:transparent;width:100%;font-size:11px;min-height:25px;font-weight:600}.search-hero>.button{margin-left:12px;padding-inline:23px;font-size:13px;border-radius:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:49px;border:1px solid transparent;padding:11px 23px;border-radius:7px;font-size:13px;font-weight:650;transition:background .18s,transform .18s}.button .icon{width:18px;height:18px}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-outline{background:#fff;border-color:#d7d9d1}.button-outline:hover{background:var(--soft);border-color:#999f94}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#454941}.discovery-chips{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding-top:23px}.discovery-chips>span{font-size:11px;font-weight:600;margin-right:3px}.discovery-chips a{font-size:11px;border:1px solid var(--line);border-radius:30px;padding:7px 13px;display:flex;gap:6px;align-items:center}.discovery-chips .icon{width:15px;height:15px;color:var(--accent)}.discovery-chips a:hover{background:#fff5ec;border-color:#eccaba}.first-section{padding-top:57px}.first-section .section-heading{margin-bottom:18px}.section-meta{display:flex;justify-content:space-between;align-items:center;margin:0 0 21px}.month-stamp{font-size:13px;display:flex;gap:5px;align-items:baseline}.month-stamp b{font:bold 32px Arial;color:var(--accent)}.month-stamp small{font:11px Arial;color:#8b8b81;margin-left:6px}
/* Cards */
.event-card{min-width:0;border-radius:var(--radius);border:1px solid var(--line);background:#fff;overflow:hidden;transition:box-shadow .2s,transform .2s;position:relative}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-media{position:relative;aspect-ratio:1.57;overflow:hidden;background:var(--cream)}.card-media>a{height:100%;display:block}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.event-card:hover .card-media img{transform:scale(1.045)}.image-label{position:absolute;left:12px;bottom:11px;font-size:9px;line-height:1.5;padding:4px 7px;background:#fffefa;border-radius:3px;color:#595c53;letter-spacing:.03em}.save-button{position:absolute;right:10px;top:10px;width:34px;height:34px;background:#fffffff2;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0001}.save-button .icon{width:17px;height:17px}.save-button[aria-pressed=true]{color:var(--accent);background:#fff4ea}.save-button[aria-pressed=true] .icon{fill:currentColor}.card-body{padding:18px}.card-location{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:3px;white-space:nowrap;overflow:hidden}.card-location>.icon{width:13px;height:13px;color:var(--accent);margin-right:2px}.card-location>span{overflow:hidden;text-overflow:ellipsis}.event-card h3{font-size:17px;margin:8px 0;letter-spacing:.01em;line-height:1.65}.event-card h3 a:hover{color:var(--accent)}.card-copy{font-size:11px;color:var(--muted);line-height:1.85;min-height:40px;margin-bottom:13px}.card-date{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:550}.card-date .icon{width:14px;height:14px;color:#868d7e}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.card-tags a,.card-tags>span{font-size:9px;padding:2px 8px;border-radius:4px;background:#f1f1ed;color:#686e62}.card-tags a:hover{color:var(--accent);background:#fff0e8}.card-tags .tag-green{color:#3e7662;background:#edf5ed}.card-detail{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #efefe9;font-size:10px;font-weight:600}.card-detail .icon{width:16px;height:16px;color:var(--accent)}.recommendation-section{background:var(--soft)}.editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.editor-card{height:380px;position:relative;border-radius:12px;overflow:hidden;background:#394e40;color:#fff}.editor-card>a{display:block;height:100%}.editor-card img{height:100%;width:100%;object-fit:cover;transition:transform .4s}.editor-card:hover img{transform:scale(1.045)}.editor-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:22px 25px;background:linear-gradient(0deg,#0e1c1cdc,transparent 80%)}.editor-number{font:italic 29px Georgia,serif;text-shadow:0 1px 3px rgba(0,0,0,.8),0 0 2px rgba(0,0,0,.6)}.editor-number small{font:8px Arial;letter-spacing:.13em;margin-left:8px}.editor-location{font-size:10px;opacity:.8}.editor-card h3{font-size:23px;line-height:1.7;margin:9px 0 15px}.editor-name{display:flex;justify-content:space-between;align-items:center;font-size:11px;border-top:1px solid #ffffff4d;padding-top:15px}.editor-name .icon{width:18px}.weekend-section{display:grid;grid-template-columns:1fr 1.7fr;gap:70px;align-items:center}.weekend-intro h2{font-size:35px;line-height:1.7;margin:12px 0}.weekend-intro p{color:var(--muted);font-size:13px}.weekend-dates{display:block;font:600 15px var(--font);margin-bottom:23px}.weekend-list article+article{border-top:1px solid var(--line)}.weekend-list article>a{display:flex;align-items:center;gap:22px;padding:18px 0}.weekend-list img{width:133px;height:92px;object-fit:cover;border-radius:7px}.weekend-list h3{font-size:17px;margin:4px 0 8px}.weekend-list p{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:var(--muted)}.weekend-list p .icon{width:13px;height:13px}.weekend-list article>a>.icon{margin-left:auto;width:19px}.ad-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:140px;background:#f8f8f5;border:1px solid #e9e9e2;border-radius:5px;color:#9a9d93;text-align:center;gap:9px}.ad-slot>span{font:8px Arial;letter-spacing:.2em}.ad-slot>div{font-size:11px;color:#85887f}.ad-slot>small{font:8px Arial;border:1px solid #d9dcd3;padding:1px 4px}.ad-sidebar{min-height:280px}.ad-article{min-height:180px;margin-block:36px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.category-tile{display:flex;align-items:center;gap:12px;padding:17px 18px;border:1px solid var(--line);border-radius:9px;transition:background .2s}.category-tile>span{width:38px;height:38px;display:grid;place-items:center;background:#fff3e8;color:var(--accent);border-radius:50%}.category-tile>span .icon{width:24px;height:24px}.category-tile strong{font-size:12px}.category-tile>.icon{width:14px;margin-left:auto;color:#91988b}.category-tile:nth-child(3n+2)>span{color:#9a803f;background:#f5f1df}.category-tile:nth-child(3n)>span{color:#557d71;background:#edf4ee}.category-tile:hover{background:var(--soft);border-color:#c3c7ba}.surprise-section{background:#f6eacd;padding:65px 0;margin-block:25px;position:relative;overflow:hidden}.surprise-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:80px;align-items:center}.surprise-image{position:relative}.surprise-image>img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:11px;transform:rotate(-2deg)}.surprise-sticker{position:absolute;right:-29px;top:-30px;background:var(--accent);color:#fff;width:120px;height:120px;border-radius:50%;transform:rotate(13deg);display:flex;flex-direction:column;justify-content:center;align-items:center;font:750 16px Arial;line-height:1.15;box-shadow:0 0 0 7px #f6eacd}.surprise-sticker>span{font-size:35px;margin-top:2px}.surprise-kicker{font-size:14px;font-weight:650;margin:18px 0 10px}.surprise-copy h2{font-size:38px;line-height:1.65;letter-spacing:.06em;margin-bottom:21px}.surprise-copy>p:not(.surprise-kicker){font-size:14px;line-height:2;color:#666354}.surprise-copy>.text-link{display:flex;width:max-content;margin-top:20px;font-size:11px}.surprise-copy>.text-link .icon{width:15px}.action-chips{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:24px}.action-chips>a{background:var(--soft);border:1px solid var(--line);border-radius:20px;padding:5px 16px;font-size:11px}.action-chips>a:hover{background:var(--cream)}
/* Discovery, ranking and articles */
.region-section{background:#f7f7f2}.region-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:27px 25px}.region-group h3{font-size:14px;border-bottom:1px solid #dddcd3;margin:0 0 12px;padding-bottom:10px}.region-group h3 a{display:flex;justify-content:space-between;align-items:center}.region-group h3 .icon{width:15px;color:var(--accent)}.region-group>div{display:flex;gap:7px 15px;flex-wrap:wrap}.region-group>div>a{font-size:12px;color:#6c7165;line-height:2}.region-group a:hover{color:var(--accent);text-decoration:underline}.month-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.month-grid>a{position:relative;display:flex;align-items:baseline;justify-content:center;gap:3px;padding:18px 3px;border:1px solid var(--line);border-radius:8px;font-size:11px;background:#fff}.month-grid>a>span{font:500 26px Arial}.month-grid>a.is-current{color:#fff;background:var(--accent);border-color:var(--accent)}.month-grid>a>small{position:absolute;top:-12px;background:#292b29;color:#fff;padding:2px 7px;font-size:8px;border-radius:4px}.month-grid>a:hover{border-color:var(--accent)}.season-links{display:flex;gap:28px;margin-top:19px;justify-content:center;font-size:10px;color:var(--muted)}.ranking-section{background:var(--soft)}.ranking-tabs{display:flex;gap:26px;border-bottom:1px solid #dedfd5;margin-bottom:11px}.ranking-tabs button{background:none;padding:9px 4px 14px;border-bottom:2px solid transparent;font-size:13px;color:var(--muted)}.ranking-tabs button[aria-selected=true]{color:var(--accent);border-color:var(--accent);font-weight:700}.ranking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:25px}.ranking-card{display:flex;align-items:center;gap:13px;position:relative;padding-left:27px;min-width:0}.rank-number{position:absolute;left:0;top:0;font:italic 20px Georgia;color:var(--accent)}.ranking-card>img{width:92px;height:100px;object-fit:cover;border-radius:7px}.ranking-card>div{min-width:0}.ranking-card small{font-size:10px;color:var(--muted)}.ranking-card h3{font-size:14px;margin:5px 0}.ranking-card div>span{display:block;font-size:10px;line-height:1.6;color:var(--muted)}.ranking-card:hover h3{color:var(--accent)}.article-card>a{display:block}.article-media{position:relative;aspect-ratio:1.6;overflow:hidden;border-radius:10px;background:var(--soft)}.article-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.article-card:hover img{transform:scale(1.045)}.article-category{display:block;font-size:10px;color:var(--accent);margin-top:20px;font-weight:600}.article-card h3{font-size:20px;line-height:1.75;margin:8px 0 10px}.article-card p{font-size:12px;color:var(--muted)}.article-read{display:flex;align-items:center;gap:15px;font-size:11px}.article-read .icon{width:16px;color:var(--accent)}.about-banner{margin-block:20px 75px;background:#f6f1e7;border-radius:12px;padding:37px 50px;display:flex;align-items:center;justify-content:space-between;gap:28px}.about-banner>div{position:relative;padding-left:61px}.about-banner>div>.icon{position:absolute;left:0;top:5px;width:36px;height:48px;color:var(--accent);transform:rotate(-10deg)}.about-banner h2{font-size:24px;margin:5px 0 12px}.about-banner p{font-size:13px;color:var(--muted);margin:0}.about-banner>.button{white-space:nowrap;background:transparent}
/* Footer */
.site-footer{background:#f7f7f3;border-top:1px solid var(--line);padding:65px 0 0}.footer-top{display:flex;justify-content:space-between;gap:70px;padding-bottom:47px}.footer-top>div:first-child{flex:1}.footer-top h2{font-size:26px;margin:15px 0}.footer-top p{font-size:12px;color:var(--muted);line-height:2}.footer-brand{display:flex;gap:8px;align-items:center;font-size:19px;font-weight:800;letter-spacing:-.04em;margin-top:24px}.footer-brand .icon{color:var(--accent);width:22px;height:29px}.footer-links{display:flex;gap:60px;padding-top:15px}.footer-links h3{font-size:12px;margin-bottom:19px}.footer-links a{display:block;font-size:11px;color:#6d7368;margin-bottom:12px}.footer-links a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid #e2e4da;display:flex;justify-content:space-between;gap:30px;padding-block:20px}.footer-bottom p{font-size:9px;color:#818679;margin:0;line-height:1.8}.footer-bottom>p:first-child{white-space:nowrap;font-family:Arial}
/* Listing */
.breadcrumb{padding-top:18px;color:var(--muted)}.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 9px;padding:0;margin:0;font-size:10px}.breadcrumb li{display:flex;align-items:center;gap:8px}.breadcrumb .icon{width:10px;height:10px}.breadcrumb a:hover{color:var(--accent)}.filter-panel{align-self:start;background:var(--soft);padding:22px;border:1px solid var(--line);border-radius:10px}.filter-panel>h2{font-size:16px;display:flex;align-items:center;gap:9px;margin-bottom:23px}.filter-panel>h2>.icon{width:18px;color:var(--accent)}.search-listing{display:flex;flex-direction:column;gap:14px}.search-listing .search-keyword{min-width:0;flex:initial}.search-listing .search-keyword input{border-radius:5px;height:46px;background:#fff;padding-left:34px;font-size:11px}.search-listing .search-keyword>.icon{left:10px;width:15px}.search-listing .search-selects{display:flex;flex-direction:column;gap:14px;flex:initial}.search-listing .search-selects>label{border:0;padding:0;background:none}.search-listing .search-selects label>span{font-size:11px;font-weight:600;color:var(--ink);margin-bottom:5px}.search-listing select,.search-extra select{width:100%;background:#fff;border:1px solid #dfe1d9;border-radius:5px;padding:8px;font-size:12px;min-height:43px;font-weight:400}.search-extra{display:flex;flex-direction:column;gap:14px}.search-extra label{font-size:11px}.search-extra select{margin-top:5px}.checkbox-label{display:flex;gap:8px;align-items:center;min-height:36px;font-size:13px}.checkbox-label>input{accent-color:var(--accent);width:17px;height:17px;flex-shrink:0}.filter-reset{display:block;text-align:center;text-decoration:underline;font-size:11px;color:var(--muted);margin-top:16px}.active-region{font-size:11px}.results-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.results-toolbar>p{font-size:12px;margin:0}.results-toolbar strong{font:600 27px Arial;margin-right:5px}.results-toolbar p>span{display:block;font-size:12px}.results-toolbar form{display:flex;gap:5px}.results-toolbar select{max-width:160px;font-size:11px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:9px;min-height:41px}.sort-submit{font-size:11px;border:1px solid var(--line);border-radius:4px;background:var(--soft);min-width:39px}.demo-notice{display:flex;align-items:flex-start;gap:8px;padding:13px 17px;border-radius:6px;background:#fff8ed;color:#83704d;font-size:11px;line-height:1.8;margin-bottom:24px}.demo-notice .icon{width:16px;height:16px;margin-top:2px}.results-panel>.ad-slot{margin-top:32px}.browse-more{border-top:1px solid var(--line);margin-top:36px;padding-top:24px;display:flex;flex-wrap:wrap;gap:15px}.browse-more h2{font-size:16px;width:100%;margin:0}.browse-more>a{font-size:12px;border:1px solid var(--line);padding:10px 15px;border-radius:6px;display:flex;align-items:center;gap:12px}.browse-more .icon{width:14px}.pagination{display:flex;justify-content:center;gap:9px;margin-block:34px}.pagination a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;font-size:13px}.pagination a[aria-current]{background:var(--accent);color:#fff;border-color:var(--accent)}.pagination .icon{width:16px}.empty-state{background:var(--soft);text-align:center;padding:52px 22px;border-radius:10px}.empty-state>.icon{width:38px;height:38px;color:var(--accent);margin-bottom:15px}.empty-state h2{font-size:23px;margin:8px 0 14px}.empty-state p{font-size:13px;color:var(--muted)}.empty-state .button{margin-top:12px}
/* Event & long-form */
.event-heading{padding-top:36px}.event-topline{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-bottom:20px;font-size:12px}.event-topline>a{display:flex;align-items:center;gap:5px;color:var(--muted)}.event-topline .icon{width:16px;color:var(--accent)}.badge{border-radius:5px;padding:4px 9px;font-size:10px;font-weight:600}.badge-demo{background:#fff1dc;color:#9b681b}.event-tagline{font-size:15px;color:#727869;margin-bottom:10px}.event-heading h1{font-size:40px;margin:0 0 9px}.event-english{font:12px Arial;letter-spacing:.06em;color:#8b9284}.event-actions{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:25px 0}.event-actions>.card-tags{margin:0}.event-actions>.card-tags a{font-size:11px;padding:4px 10px}.event-actions>div:last-child{display:flex;gap:9px}.event-actions .button{font-size:11px;min-height:41px;padding:7px 14px}.event-actions [aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.event-hero>img{width:100%;aspect-ratio:2.4;object-fit:cover;border-radius:13px}.event-hero figcaption,.feature-hero figcaption{font-size:10px;color:var(--muted);text-align:right;margin-top:8px}.event-info{border:1px solid #e7d8bc;border-radius:9px;overflow:hidden;margin-bottom:32px}.info-heading{padding:20px 24px;background:#f9f3e8;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}.info-heading h2{font-size:18px;margin:0;display:flex;align-items:center;gap:9px}.info-heading .icon{color:var(--accent);width:20px}.info-heading>span{font:8px Arial;color:#9e9481;letter-spacing:.1em}.event-info dl{margin:0;padding:8px 24px}.event-info dl>div{display:grid;grid-template-columns:145px 1fr;gap:17px;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.event-info dl>div:last-child{border:0}.event-info dt{color:#767c70}.event-info dd{margin:0}.event-info dd small{font-size:9px;background:#f4eee2;padding:3px 6px;border-radius:3px;margin-left:8px;white-space:nowrap}.event-info dd a{color:var(--accent);text-decoration:underline}.event-info dd a>.icon{width:14px}.table-of-contents{padding:25px 29px;border:1px solid var(--line);border-radius:9px;background:var(--soft);margin-block:30px}.table-of-contents>strong{font-size:14px}.table-of-contents ol{columns:2;margin:15px 0 0;padding-left:21px;column-gap:32px}.table-of-contents li{font-size:12px;padding:5px 0;break-inside:avoid;color:#66715f}.table-of-contents a:hover{color:var(--accent)}.article-bottom-tags{display:flex;flex-wrap:wrap;gap:9px;margin:32px 0}.article-bottom-tags a{font-size:11px;color:#697460;background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:6px 10px}.editor-note{border-block:1px solid var(--line);padding:25px 0;display:flex;align-items:center;gap:19px}.editor-avatar{display:grid;place-items:center;width:60px;height:60px;background:var(--cream);border-radius:50%;flex-shrink:0;color:var(--accent)}.editor-avatar .icon{height:35px;width:28px}.editor-note h3{font-size:14px;margin:0 0 4px}.editor-note p{font-size:11px;color:var(--muted);margin:0}.editor-note a{font-size:10px;color:var(--accent);text-decoration:underline}.sidebar-panel{background:var(--soft);border:1px solid var(--line);padding:24px 16px;border-radius:9px;margin-bottom:25px}.sidebar-panel h2{font-size:17px;margin-bottom:13px}.sidebar-panel p{font-size:12px;color:var(--muted);line-height:2}.sidebar-panel .text-link{font-size:11px}.article-sidebar>.ad-slot{margin-block:25px}.sidebar-panel .button{font-size:11px;padding-inline:14px}.feature-hero img{width:100%;aspect-ratio:2.5;object-fit:cover;border-radius:12px}.feature-article>.event-grid{margin-top:40px}.about-visual{position:relative;margin-bottom:55px;overflow:hidden;border-radius:12px;background:#163343}.about-visual img{width:100%;aspect-ratio:2.8;object-fit:cover}.about-visual>div{position:absolute;inset:0;display:flex;align-items:center;padding:40px 60px;background:linear-gradient(90deg,#152633ad,transparent)}.about-visual h2{color:#fff;font-size:36px;line-height:1.8;margin:0}.notice-box{padding:25px;background:#fff5e4;border-radius:8px;font-size:13px}.notice-box>p{font-size:13px;margin:12px 0 0;line-height:1.9}.contact-form>label{display:block;font-size:13px;font-weight:650;margin-bottom:22px}.contact-form label>span:not(:only-child){font-size:9px;color:var(--accent);margin-left:5px}.contact-form input:not([type=checkbox]):not([type=hidden]):not([type=submit]),.contact-form textarea{width:100%;padding:12px;border:1px solid #cfd4c8;border-radius:5px;background:#fff;margin-top:8px}.contact-form .checkbox-label{display:flex;margin-top:20px}.contact-form .checkbox-label>span{font-size:12px;color:var(--ink);font-weight:400}.contact-form .checkbox-label a{color:var(--accent);text-decoration:underline}.contact-form>small{display:block;color:var(--muted);font-size:11px;margin-top:-12px}.contact-form>.demo-note{margin-top:12px}.contact-preview{padding:28px;background:var(--soft);border-radius:10px}.contact-preview h2{font-size:24px}.contact-preview>p{font-size:13px}.contact-preview dt{font-size:11px;color:var(--muted);margin-top:18px}.contact-preview dd{margin:3px 0;font-size:14px;overflow-wrap:anywhere}.contact-preview .button{margin-top:25px}.form-errors{background:#fff0ec;color:#ae321d;padding:20px;font-size:13px;border-radius:8px;margin-bottom:20px}.not-found{text-align:center;padding-block:75px 100px}.error-number{font:italic 125px Georgia;color:var(--accent);display:block;line-height:1.3;letter-spacing:-.05em}.error-number>span{display:inline-block;font-size:65px;transform:rotate(15deg);margin-left:12px;color:#d1b569}.not-found h1{font-size:29px;margin-top:24px}.not-found p{color:var(--muted)}.not-found>div{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;margin-top:30px}.language-page{text-align:center;padding-block:75px}.language-page>p{max-width:700px;margin:25px auto;color:var(--muted)}.language-page .button{margin-bottom:40px}.language-art{max-width:800px;margin:auto}.language-art img{width:100%;aspect-ratio:2;object-fit:cover;border-radius:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:100;background:#263c33;color:#fff;padding:12px 24px;border-radius:8px;box-shadow:0 4px 30px #0002;font-size:13px;max-width:calc(100% - 32px);width:max-content;text-align:center}
/* Tablet */
@media(max-width:1100px){.hero-wrap{padding-inline:18px}.hero-search-box{width:calc(100% - 50px);padding:22px}.search-heading>span{display:none}.search-hero>.button{padding-inline:17px;font-size:11px}.search-selects{flex:1.9}.search-keyword{min-width:150px;flex:1}.search-keyword input{font-size:11px}.header-tools{gap:18px}.main-nav{font-size:11px}.logo{font-size:25px}.category-grid{grid-template-columns:repeat(3,1fr)}.region-grid{grid-template-columns:repeat(5,1fr);gap:25px 18px}.editor-card{height:360px}.editor-overlay{padding:18px}.editor-card h3{font-size:21px}.surprise-inner{gap:55px}.surprise-copy h2{font-size:32px}.ranking-grid{gap:20px}.ranking-card{padding-left:20px;gap:8px}.ranking-card>img{width:70px;height:90px}.ranking-card h3{font-size:12px}.ranking-card div>span{font-size:9px}.rank-number{font-size:16px}.footer-links{gap:30px}.footer-top{gap:35px}.about-banner{padding:30px}.about-banner h2{font-size:22px}.weekend-section{gap:35px}.weekend-list img{width:110px;height:88px}}
@media(max-width:800px){.header-main{height:75px}.main-nav{font-size:10px}.header-tools{gap:15px}.saved-link>span{display:none}.hero{height:465px}.hero-content{padding:44px 6%}.hero h1{font-size:43px}.hero-search-box{width:calc(100% - 30px);padding:20px}.search-hero{flex-wrap:wrap;gap:10px}.search-hero .search-keyword{flex:1 0 100%}.search-hero .search-keyword input{border-radius:5px;height:48px;font-size:13px}.search-hero .search-selects{flex:1}.search-hero .search-selects>label:first-child{border-left:1px solid var(--line);border-radius:5px 0 0 5px}.search-hero .search-selects>label:last-child{border-radius:0 5px 5px 0}.search-hero>.button{margin:0}.hero-description{font-size:13px}.editor-grid{gap:14px}.editor-card{height:320px}.editor-card h3{font-size:18px}.editor-name{font-size:10px}.editor-overlay{padding:16px}.editor-number{font-size:23px}.editor-number small{font-size:6px;margin-left:3px}.weekend-section{grid-template-columns:1fr 1.5fr;gap:28px}.weekend-intro h2{font-size:28px}.weekend-list article>a{gap:14px}.weekend-list img{width:87px;height:80px}.weekend-list h3{font-size:14px}.weekend-list .small-label{font-size:9px}.category-tile{padding:14px;gap:8px}.category-tile strong{font-size:11px}.surprise-inner{gap:37px}.surprise-copy h2{font-size:28px}.surprise-sticker{width:90px;height:90px;font-size:12px;top:-20px;right:-19px}.surprise-sticker>span{font-size:27px}.surprise-copy>p:not(.surprise-kicker){font-size:12px}.surprise-copy .eyebrow{font-size:8px}.surprise-kicker{font-size:12px}.region-grid{grid-template-columns:repeat(3,1fr)}.month-grid{grid-template-columns:repeat(6,1fr);gap:16px 10px}.ranking-grid{grid-template-columns:1fr}.ranking-card{padding-left:38px;gap:20px}.ranking-card>img{width:100px;height:80px}.rank-number{font-size:23px}.ranking-card h3{font-size:16px}.ranking-card div>span{font-size:11px}.ranking-card small{font-size:11px}.footer-top{flex-direction:column;gap:28px}.footer-links{justify-content:space-between}.footer-top h2 br{display:none}.footer-bottom{flex-direction:column;gap:14px}.about-banner{flex-direction:column;align-items:flex-start}.about-banner>.button{margin-left:61px}.filter-panel{padding:20px}.search-listing{display:grid;grid-template-columns:1fr auto;gap:16px}.search-listing .search-selects{flex-direction:row;grid-column:1 / -1;grid-row:2;gap:10px}.search-listing .search-keyword{grid-column:1/-1}.search-listing .search-extra{grid-column:1/-1;flex-direction:row;align-items:flex-end;gap:16px}.search-extra>label{flex:1}.search-extra>.checkbox-label{flex:1;align-self:flex-end;margin-bottom:4px}.search-listing>.button{grid-column:1/-1}.filter-reset{margin-top:12px}.event-heading h1{font-size:34px}.event-hero>img{aspect-ratio:1.8}}
/* Mobile */
@media(max-width:600px){.topbar>.container{height:26px}.topbar span:first-child{font-size:8px;letter-spacing:0}.demo-indicator{font-size:7px;letter-spacing:.03em}.header-main{height:70px}.logo{font-size:21px;gap:6px}.logo small{font-size:16px}.logo-mark{width:26px;height:35px}.logo em{font-size:7px;margin-top:6px;letter-spacing:.14em}.header-tools{gap:6px}.saved-link{display:none}.header-search{width:28px;height:44px}.header-search .icon{width:19px}.language-menu summary{gap:3px}.language-menu summary>.icon:first-child{width:18px}.language-menu summary>span{display:none}.language-menu summary>.icon:last-child{width:9px}.menu-toggle{display:grid;place-items:center;width:33px}.menu-toggle .icon{width:23px}.main-nav{display:none;height:auto;padding-block:12px;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;font-size:12px;gap:0 18px}.main-nav.is-open{display:grid}.main-nav a{height:auto;min-height:47px;padding:9px 0;border-bottom:1px solid var(--line)}.main-nav a[aria-current]::after{display:none}.hero-wrap{padding:0 10px;margin-top:3px}.hero{height:431px;border-radius:12px}.hero-photo img{object-position:63% center}.hero::after{background:linear-gradient(90deg,#101d338f,#131f2730),linear-gradient(0deg,#101b2a70,transparent 35%)}.hero-content{padding:35px 22px}.hero-eyebrow{font-size:10px;letter-spacing:.08em;gap:8px;margin-bottom:20px}.hero-eyebrow span{width:17px}.hero h1{font-size:32px;line-height:1.75;letter-spacing:.045em;margin-bottom:20px}.hero-description{font-size:11px;line-height:2.1;letter-spacing:0}.hero-description br{display:none}.hero-discover{font-size:10px;margin-top:6px}.hero-bottom{bottom:18px;left:22px;right:16px}.hero-bottom>span{font-size:6px;letter-spacing:.14em}.hero-bottom small{font-size:7px}.hero-search-box{width:calc(100% - 14px);padding:21px 17px 18px;margin-top:-1px;border-radius:0 0 11px 11px}.search-heading{margin-bottom:13px}.search-heading strong{font-size:13px}.search-hero{gap:10px}.search-hero .search-keyword input{font-size:12px;height:48px}.search-hero .search-selects{flex:1 0 100%}.search-hero .search-selects>label{padding:6px}.search-selects label>span{font-size:8px}.search-selects select{font-size:10px;font-weight:500;min-height:28px}.search-hero>.button{width:100%;min-height:46px;font-size:13px}.discovery-chips{gap:7px;padding-top:20px;justify-content:flex-start}.discovery-chips>span{width:100%;font-size:10px;margin-bottom:1px}.discovery-chips a{font-size:9px;padding:6px 9px;gap:4px}.discovery-chips .icon{width:13px;height:13px}.first-section{padding-top:37px}.first-section .section-heading{margin-bottom:8px}.section-meta{margin-bottom:15px}.month-stamp b{font-size:29px}.demo-note{font-size:10px}.event-card{border-radius:11px}.card-media{aspect-ratio:1.7}.card-body{padding:18px 20px}.card-location{font-size:11px}.event-card h3{font-size:19px;margin:7px 0}.card-copy{font-size:12px;min-height:0;margin-bottom:12px}.card-date{font-size:12px}.card-tags a,.card-tags>span{font-size:10px}.card-detail{font-size:11px;margin-top:14px;padding-top:11px}.save-button{width:39px;height:39px;right:12px;top:12px}.save-button .icon{width:19px;height:19px}.image-label{font-size:9px}.editor-grid{grid-template-columns:1fr;gap:20px}.editor-card{height:365px}.editor-overlay{padding:24px}.editor-card h3{font-size:19px;max-width:280px}.editor-number{font-size:30px}.editor-number small{font-size:8px;margin-left:7px}.editor-name{font-size:12px}.editor-location{font-size:11px}.weekend-section{display:block}.weekend-intro h2{font-size:27px}.weekend-intro h2>br{display:none}.weekend-intro p{font-size:12px}.weekend-dates{font-size:13px;margin:16px 0}.weekend-intro .button{margin-bottom:20px;min-height:43px;font-size:11px}.weekend-list article>a{gap:14px}.weekend-list img{width:98px;height:82px}.weekend-list h3{font-size:14px;margin:3px 0 7px}.weekend-list p{font-size:10px}.weekend-list article>a>.icon{width:16px}.ad-slot{min-height:110px}.ad-article{min-height:180px}.category-grid{grid-template-columns:repeat(2,1fr);gap:9px}.category-tile{padding:13px 9px;gap:7px}.category-tile>span{width:29px;height:29px;flex-shrink:0}.category-tile>span .icon{width:21px;height:21px}.category-tile strong{font-size:10px;letter-spacing:-.03em}.category-tile>.icon{width:11px}.surprise-section{padding-block:44px;margin-block:10px}.surprise-inner{display:flex;flex-direction:column;gap:35px}.surprise-image{width:calc(100% - 22px);margin-right:7px}.surprise-image>img{aspect-ratio:1.45}.surprise-sticker{width:87px;height:87px;right:-15px;top:-19px}.surprise-copy{width:100%;padding:0 6px}.surprise-copy h2{font-size:33px;line-height:1.6;margin-bottom:18px}.surprise-copy .eyebrow{font-size:9px}.surprise-kicker{font-size:13px;margin-top:14px}.surprise-copy>p:not(.surprise-kicker){font-size:13px}.surprise-copy>.text-link{font-size:11px}.action-chips{gap:7px}.action-chips>a{padding:4px 12px;font-size:10px}.region-grid{grid-template-columns:repeat(2,1fr);gap:26px 22px}.region-group h3{font-size:14px}.region-group>div{gap:5px 15px}.region-group>div>a{font-size:12px}.month-grid{gap:15px 8px}.month-grid>a{padding:16px 3px;font-size:10px;border-radius:6px}.month-grid>a>span{font-size:23px}.month-grid>a>small{font-size:7px;top:-10px}.season-links{gap:17px;font-size:9px}.ranking-tabs{gap:23px}.ranking-tabs button{font-size:12px}.ranking-card{gap:13px;padding-left:30px}.ranking-card>img{width:85px;height:85px}.ranking-card h3{font-size:14px}.ranking-card div>span{font-size:10px}.rank-number{font-size:21px}.article-card h3{font-size:21px}.article-category{margin-top:15px}.article-card p{font-size:12px}.article-grid{gap:32px}.about-banner{margin-block:12px 45px;padding:26px 20px;gap:24px}.about-banner>div{padding-left:0}.about-banner>div>.icon{position:static;margin-bottom:17px;width:28px;height:36px}.about-banner h2{font-size:21px}.about-banner p{font-size:12px}.about-banner p>br{display:none}.about-banner>.button{margin-left:0}.site-footer{padding-top:39px}.footer-top{padding-bottom:29px}.footer-top h2{font-size:25px}.footer-top h2 br{display:block}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:24px 17px}.footer-links h3{font-size:11px;margin-bottom:14px}.footer-links a{font-size:11px;margin-bottom:12px;min-height:24px}.footer-links>div:last-child{grid-column:1/-1;display:flex;gap:12px 18px;flex-wrap:wrap}.footer-links>div:last-child>h3{width:100%;margin:0}.footer-links>div:last-child>a{margin:0;font-size:10px}.footer-bottom{padding-block:18px}.footer-bottom p{font-size:8px}.breadcrumb{padding-top:14px}.breadcrumb ol{font-size:9px;gap:4px 7px}.page-heading h1{font-size:29px}.page-heading>p{font-size:13px}.filter-panel{padding:18px}.filter-panel>h2{font-size:15px;margin-bottom:17px}.search-listing .search-selects{gap:8px}.search-listing select{font-size:10px;padding:7px 4px}.search-listing .search-selects label>span{font-size:9px}.search-listing .search-extra{gap:10px;flex-wrap:wrap}.search-extra>label{flex:1 1 40%}.search-extra>.checkbox-label{flex-basis:100%;margin-bottom:0}.search-listing>.button{min-height:44px}.results-toolbar{align-items:center}.results-toolbar strong{font-size:25px}.results-toolbar>p{font-size:10px}.results-toolbar select{font-size:10px;width:125px;padding:8px 5px}.demo-notice{font-size:10px;padding:12px}.browse-more{gap:9px}.browse-more>a{font-size:11px;padding:8px}.event-heading{padding-top:26px}.event-topline{font-size:10px;gap:9px;margin-bottom:17px}.event-tagline{font-size:12px}.event-heading h1{font-size:28px;line-height:1.6}.event-english{font-size:10px}.event-actions{flex-direction:column;align-items:flex-start;gap:18px;margin-top:20px}.event-hero>img{aspect-ratio:1.45;border-radius:9px}.event-hero figcaption{font-size:8px}.info-heading{padding:17px}.info-heading h2{font-size:16px}.info-heading>span{display:none}.event-info dl{padding:4px 17px}.event-info dl>div{grid-template-columns:89px 1fr;gap:12px;font-size:12px;padding:12px 0}.event-info dd small{margin-left:0;display:inline-block}.table-of-contents{padding:22px}.table-of-contents ol{columns:1}.table-of-contents li{font-size:12px}.editor-note{gap:14px}.editor-avatar{width:48px;height:48px}.editor-note p{font-size:10px}.editor-note h3{font-size:13px}.feature-hero img{aspect-ratio:1.6}.feature-article>.page-heading h1{font-size:28px}.about-visual{margin-bottom:32px}.about-visual img{aspect-ratio:1.2}.about-visual>div{padding:25px}.about-visual h2{font-size:25px}.contact-form>label{font-size:13px}.contact-form .checkbox-label>span{font-size:11px}.not-found{padding-block:50px 65px}.error-number{font-size:100px}.not-found h1{font-size:23px}.not-found p{font-size:13px}.not-found>div{gap:12px}.language-page{padding-block:45px}.language-page h1{font-size:29px}.language-page>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.event-card:hover{transform:none}}

.main-nav .mobile-saved-link{display:none}@media(max-width:600px){.hero h1{font-size:clamp(22px,7vw,30px);letter-spacing:.01em}.main-nav .mobile-saved-link{display:flex}.language-menu summary{min-width:28px;justify-content:center}}

/* Float the search panel slightly over the hero, with four rounded corners. */
.hero-search-box{margin-top:-28px;border-top:1px solid var(--line);border-radius:14px}
.hero-bottom{bottom:44px}
@media(max-width:600px){.hero-search-box{margin-top:-22px;border-radius:11px}.hero-bottom{bottom:34px}}

/* Legibility: keep small interface text above 4.5:1 on its surface. */
.search-selects label>span,.search-heading>span,.month-stamp small,.ad-slot,.ad-slot>div,.ad-slot>small,.event-english,.info-heading>span,.footer-bottom p{color:var(--muted)}.card-location{font-size:11px}.card-copy{font-size:12px}.card-date{font-size:12px}.card-tags a,.card-tags>span{padding:4px 8px}.card-detail{font-size:11px}.search-keyword input::placeholder{color:#6b7066}


/* Keep the external map within the article column and reserve its height. */
.event-map{margin:24px 0 16px;border:1px solid var(--line,#e5e5e0);border-radius:12px;overflow:hidden;background:var(--surface,#f6f6f2)}
.event-map iframe{display:block;width:100%;height:clamp(280px,45vw,420px);border:0}
.event-map-address{overflow-wrap:anywhere}
.prose .event-map-actions{margin-top:16px}
.prose .event-map-actions a{font-size:14px;text-decoration:none}
/* A quiet invitation for festival organizers, below the footer navigation. */
.footer-navigation{min-width:0}
.footer-organizers{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding:16px 18px;border:1px solid #d9d2bb;border-radius:8px;background:#fffaf0;color:var(--ink);font-size:12px;transition:background-color .2s,border-color .2s}
.footer-organizers>span{display:flex;align-items:center;gap:10px}
.footer-organizers .icon{color:var(--accent);width:19px;height:22px;flex-shrink:0}
.footer-organizers:hover{background:#fff3dc;border-color:var(--accent)}
.organizers-intro{padding:40px;border:1px solid #e9dfce;border-radius:14px;background:#fffaf2;margin-bottom:40px}
.organizers-mark .icon{width:32px;height:40px;color:var(--accent)}
.organizers-intro h2{font-size:clamp(23px,3vw,32px);line-height:1.6;margin:18px 0}
.organizers-intro>p{color:var(--muted);line-height:2}
@media(max-width:600px){.footer-organizers{font-size:12px;padding:15px 12px;gap:10px;margin-top:24px}.organizers-intro{padding:25px 20px}}

.event-contribution{margin:20px 0 28px;text-align:right}.event-contribution .button{max-width:100%;min-height:44px;padding:9px 16px;font-size:13px;font-weight:500;color:var(--text,#333)}
.prose .event-access-list{margin:20px 0 28px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.event-access-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:start;padding:18px 20px}
.event-access-list>div+div{border-top:1px solid var(--line)}
.event-access-list dt{background:#fcf0e9;color:#a83c29;font-size:13px;font-weight:700;line-height:1.6;text-align:center;padding:7px 10px;border-radius:6px}
.event-access-list dd{margin:0;line-height:1.9;overflow-wrap:anywhere}
@media(max-width:600px){.event-access-list>div{grid-template-columns:90px minmax(0,1fr);gap:10px;padding:14px 12px}.event-access-list dt{min-width:0;padding:7px 6px;overflow-wrap:anywhere}.event-access-list dd{min-width:0;font-size:14px}}
.prose .general-visit-tips{margin:22px 0;padding:20px 24px;background:#faf7f1;border-radius:10px}
.prose .general-visit-tips-label{font-size:13px;font-weight:700;color:#796249;margin:0 0 12px}
.prose .general-visit-tips ul{margin:0;padding-left:1.3em}.prose .general-visit-tips li+li{margin-top:12px}
.prose .event-map-address{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.event-map-label{display:inline-block;flex-shrink:0;padding:5px 10px;border-radius:6px;background:#fcf0e9;color:#a83c29;font-size:12px;font-weight:700;line-height:1.6}
.prose .event-map-note{font-size:12px;line-height:1.7;font-weight:400;color:#71716a;margin:0 0 12px}

/* Event facts: two columns on wider screens, stacked on phones. */
.event-info dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.event-info dl>div{grid-template-columns:110px minmax(0,1fr);gap:12px;align-content:start;min-width:0}
.event-info dl>div:last-child{border-bottom:1px solid var(--line)}
.event-info dd{min-width:0;overflow-wrap:anywhere}
.event-info-badges{display:flex;flex-wrap:wrap;gap:6px}
.event-info dd a.event-info-badge{display:inline-flex;align-items:center;min-height:32px;padding:4px 10px;border:1px solid #e6cfb9;border-radius:999px;background:#fff4e9;color:#91451e;font-size:12px;line-height:1.5;text-decoration:none;max-width:100%}
.event-info dd a.event-info-badge:hover{background:#fce5d0;border-color:#c88755}
.event-info dd a.event-info-badge:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:700px){.event-info dl{grid-template-columns:minmax(0,1fr)}.event-info dl>div{grid-template-columns:89px minmax(0,1fr)}.event-info dl>div:last-child{border-bottom:0}.event-info dd a.event-info-badge{min-height:36px}}

.event-info .event-info-date{line-height:2}
.event-date-row{display:grid;min-width:0}
.event-date-row.has-period-name{grid-template-columns:7em minmax(0,1fr);column-gap:8px}
.event-period-name{overflow-wrap:anywhere}
.event-period-value{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:6px;min-width:0}
.event-period-value>span{overflow-wrap:anywhere}
.event-info .event-info-date .event-period-value small{margin-left:0;white-space:nowrap}
.event-main-period{font-weight:700}
.event-info .event-info-date small{display:inline-block;vertical-align:middle;margin-left:6px;line-height:1.5}
@media(min-width:701px){.event-info dl>div:nth-last-child(-n+2){border-bottom:0}}

/* Compact tourism cards: three visible on desktop, two on mobile. */
.article-main{min-width:0}
.prose .spot-scope{font-size:12px;color:var(--muted)}
.spot-cards{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/3);gap:12px;margin:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;align-items:stretch}
.spot-cards:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.spot-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;scroll-snap-align:start}
.spot-card-image>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.spot-card-body{display:flex;flex-direction:column;flex:1;padding:12px}.prose .spot-card h3{font-size:14px;margin:6px 0;line-height:1.6;overflow-wrap:anywhere}
.prose .spot-card p{font-size:12px;line-height:1.7;margin:6px 0}.spot-category{font-size:10px;color:var(--muted)}
.prose .spot-card .spot-city{font-size:11px;color:var(--muted)}.spot-card-body>a{margin-top:auto;font-size:12px;display:inline-flex;align-items:center;min-height:32px}
.prose .spot-card .spot-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.spot-credit{margin-top:8px;font-size:10px;overflow-wrap:anywhere;color:var(--muted)}.spot-credit summary{cursor:pointer;min-height:28px}.prose .spot-credit p{font-size:10px}
@media(max-width:600px){.spot-cards{grid-auto-columns:calc((100% - 10px)/2);gap:10px}.spot-card-body{padding:10px}.prose .spot-card h3{font-size:13px}.spot-card-body>a{min-height:40px}}

.prose .spot-card-image{position:relative;margin:0;flex-shrink:0}
.spot-card-image figcaption{position:absolute;right:5px;bottom:5px;padding:2px 5px;border-radius:3px;background:#fffffff0;color:#65645b;font-size:9px;line-height:1.5}
.spot-carousel{position:relative;margin:16px 0}
.spot-cards::-webkit-scrollbar{display:none}
.spot-carousel-controls{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}
.spot-carousel-controls[hidden]{display:none}
.spot-carousel-controls button{box-shadow:0 2px 8px #00000012;display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #d9d4c8;border-radius:50%;background:#fff;color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
.spot-carousel-controls button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#fff5eb}
.spot-carousel-controls button:disabled{opacity:.3;cursor:default}
.spot-carousel-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}


@media(max-width:600px){.spot-carousel-controls button{width:44px;height:44px}}

.spot-carousel-footer{display:flex;align-items:center;gap:16px;margin-top:12px}.prose .spot-carousel-footer>.spot-scope{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}

/* Compact discovery panels shared by all festival detail pages. */
.sidebar-stories,.sidebar-ranking{padding:20px 16px;background:#fff}
.sidebar-story-list{list-style:none;padding:0;margin:0}
.sidebar-story-list>li+li{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}
.sidebar-story{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:start;gap:12px}
.sidebar-story-image{position:relative;overflow:hidden;border-radius:6px;background:var(--soft)}
.sidebar-story-image img{display:block;width:100%;height:76px;object-fit:cover}
.sidebar-story-image small{position:absolute;right:3px;bottom:3px;padding:1px 3px;border-radius:2px;background:#fffffff0;color:var(--muted);font-size:8px;line-height:1.5}
.sidebar-story-category{display:block;margin-bottom:5px;font-size:10px;color:var(--accent)}
.sidebar-story-copy strong{display:block;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.sidebar-story:hover strong{color:var(--accent)}
.sidebar-panel .sidebar-more{display:flex;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);white-space:normal}
.sidebar-ranking .ranking-tabs{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:3px;margin-bottom:10px}
.sidebar-ranking .ranking-tabs button{min-width:0;min-height:44px;padding:7px 0;font-size:10px;letter-spacing:0}
.sidebar-ranking .demo-note{font-size:10px;line-height:1.7}
.sidebar-ranking .ranking-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:18px}
.sidebar-ranking .ranking-card{gap:12px;padding:0;align-items:flex-start}
.sidebar-ranking .ranking-card+.ranking-card{border-top:1px solid var(--line);padding-top:14px}
.sidebar-ranking .ranking-card>img{width:60px;height:60px;flex-shrink:0;border-radius:6px}
.sidebar-ranking .rank-number{top:0;left:0;display:grid;place-items:center;width:23px;height:23px;border-radius:6px 0;background:var(--accent);color:#fff;font:italic 15px Georgia,serif}
.sidebar-ranking .ranking-card+.ranking-card .rank-number{top:14px}
.sidebar-ranking .ranking-card small{font-size:10px}
.sidebar-ranking .ranking-card h3{font-size:13px;line-height:1.65;margin:3px 0 0;overflow-wrap:anywhere}
.ranking-card>div{flex:1}.ranking-card .ranking-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ranking-meta>small{flex-shrink:0}.ranking-card .ranking-meta>.ranking-date{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:10px;line-height:1.6;white-space:nowrap}
.ranking-date .icon{width:13px;height:13px;flex-shrink:0;margin-top:2px}
.ranking-card div>.ranking-copy{display:block;margin-top:5px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
@media(max-width:800px){:is(.page-event,.page-feature,.page-ranking) .article-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;margin-top:36px}:is(.page-event,.page-feature,.page-ranking) .article-sidebar>.sidebar-panel,:is(.page-event,.page-feature,.page-ranking) .article-sidebar>.ad-slot{margin:0}}
@media(max-width:600px){:is(.page-event,.page-feature,.page-ranking) .article-sidebar{grid-template-columns:minmax(0,1fr)}.sidebar-story{grid-template-columns:80px minmax(0,1fr)}.sidebar-story-image img{height:80px}.sidebar-ranking .ranking-tabs button{font-size:12px}.sidebar-story-copy strong,.sidebar-ranking .ranking-card h3{font-size:14px}}

/* Feature articles use the same two-column layout as festival details. */
.feature-article .feature-hero{margin-bottom:0}
.feature-article .article-main>.feature-prose{max-width:none;margin:0 0 32px}
.feature-article .article-main>.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.feature-article .article-main>.ad-slot{margin-block:32px}
@media(max-width:600px){.feature-article .article-main>.event-grid{grid-template-columns:minmax(0,1fr)}}

/* Licensed documentary photographs: preserve the full frame and attribution. */
.event-photos{margin-bottom:32px}.event-photo-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;border-radius:12px;background:#f4f3ee}.event-photo-slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start}.event-photo-slide img{display:block;width:100%;height:clamp(240px,45vw,560px);object-fit:contain;background:#242720}.event-photo-slide figcaption{padding:14px 18px;font-size:11px;line-height:1.8;overflow-wrap:anywhere}.event-photo-slide figcaption span{display:block}.event-photo-slide figcaption a{text-decoration:underline}.event-photo-controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:12px;font-size:13px}.event-photo-controls[hidden]{display:none}.event-photo-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer}.event-photo-controls button:disabled{opacity:.35;cursor:default}.event-photo-track:focus-visible,.event-photo-controls button:focus-visible{outline:3px solid #ec971f;outline-offset:3px}
/* Documentary photos sit beside the overview; the hero remains the featured image. */
.prose .event-about{display:flow-root}.prose .event-about>.event-photos{float:right;width:44%;max-width:340px;margin:0 0 20px 24px}.prose .event-photo-slide{margin:0}.prose .event-photo-slide img{height:240px;max-width:100%;border-radius:0}.prose .event-photo-slide figcaption{padding:10px 12px;font-size:10px}.prose .event-photo-slide figcaption a{font-size:inherit}.prose .event-photo-controls{margin-top:8px}
@media(max-width:600px){.prose .event-about{display:flex;flex-direction:column}.prose .event-about>h2{order:0}.prose .event-about>p{order:1}.prose .event-about>.event-photos{float:none;order:2;width:100%;max-width:none;margin:8px 0 20px}.prose .event-about>.om-field-sources{order:3}.prose .event-photo-slide img{height:260px}}
/* Stack frames to switch in place, reserving the tallest caption's space. */
.event-photos.is-static-switch .event-photo-track{display:grid;overflow:hidden;scroll-snap-type:none;touch-action:pan-y pinch-zoom}.event-photos.is-static-switch .event-photo-slide{grid-area:1/1;visibility:hidden;pointer-events:none}.event-photos.is-static-switch .event-photo-slide.is-active{visibility:visible;pointer-events:auto}
.event-photo-open{display:block;position:relative;width:100%;padding:0;border:0;background:#242720;cursor:zoom-in;text-align:left;color:#fff}.event-photo-overlay{position:absolute;inset:auto 0 0;padding:28px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;pointer-events:none;font-size:11px;line-height:1.6;text-shadow:0 1px 2px #000}.event-photo-overlay>span{display:block;overflow-wrap:anywhere}.event-photo-credit{font-size:10px;line-height:1.8;color:var(--muted,#666)}.event-photo-credit summary{cursor:pointer;padding:2px 0}.event-photo-credit span{display:block;overflow-wrap:anywhere}.event-photo-credit a{color:inherit;text-decoration:underline}.event-photos.is-static-switch .event-photo-slide{opacity:0;transition:opacity .24s ease,visibility 0s linear .24s}.event-photos.is-static-switch .event-photo-slide.is-active{opacity:1;transition:opacity .24s ease;z-index:1}.event-photo-open:focus-visible{outline:3px solid #ec971f;outline-offset:-3px}
.event-photo-dialog{border:0;padding:48px 16px 16px;width:min(1100px,94vw);max-width:94vw;max-height:92dvh;background:#171a17;color:#fff;border-radius:12px;overflow:auto}.event-photo-dialog::backdrop{background:rgba(0,0,0,.84)}.event-photo-dialog figure{margin:0}.event-photo-large-frame{position:relative}.event-photo-large-frame img{display:block;max-width:100%;width:100%;height:min(70dvh,800px);object-fit:contain}.event-photo-dialog-close{position:absolute;right:8px;top:4px;width:44px;height:40px;border:0;background:transparent;color:#fff;font-size:32px;cursor:pointer}.event-photo-dialog figcaption{padding:10px 2px}.event-photo-dialog .event-photo-credit{color:#ddd}.event-photo-dialog .event-photo-overlay{font-size:12px}.event-photo-dialog-close:focus-visible{outline:2px solid #fff}html:has(.event-photo-dialog[open]){overflow:hidden}
@media(prefers-reduced-motion:reduce){.event-photos.is-static-switch .event-photo-slide,.event-photos.is-static-switch .event-photo-slide.is-active{transition:none}}
.event-photo-overlay{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.event-photo-overlay>.event-photo-author{min-width:0;text-align:left}.event-photo-overlay>.event-photo-date{flex-shrink:0;text-align:right;white-space:nowrap}
/* Mobile search: compact results with location/date on the same row. */
@media(max-width:600px){
.listing-layout .filter-panel{padding:14px;margin-bottom:18px}.listing-layout .filter-panel>h2{margin-bottom:12px}.listing-layout .search-listing{gap:10px}.listing-layout .search-listing .search-selects{gap:8px}.listing-layout .search-listing .search-selects label>span{font-size:11px}.listing-layout .search-listing select{font-size:12px;min-height:44px}.listing-layout .search-listing .search-keyword input{font-size:16px;height:44px}.listing-layout .search-extra{gap:8px}.listing-layout .filter-reset{margin-top:10px}.listing-layout .results-toolbar{margin-bottom:14px}.listing-layout .event-grid{gap:12px}.listing-layout .event-card{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:stretch}.listing-layout .card-media{aspect-ratio:auto;min-height:150px;height:100%}.listing-layout .card-media img{height:100%;object-fit:cover}.listing-layout .image-label{left:5px;right:5px;bottom:6px;font-size:8px;padding:3px 4px}.listing-layout .save-button{width:36px;height:36px;right:6px;top:6px}.listing-layout .card-body{padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-content:start}.listing-layout .event-card h3{grid-column:1/-1;order:0;font-size:15px;line-height:1.6;margin:0}.listing-layout .card-location{grid-column:1;order:1;font-size:10px;min-width:0;flex-wrap:wrap;gap:0 2px;white-space:normal;line-height:1.5}.listing-layout .card-location>span{max-width:100%;overflow-wrap:anywhere}.listing-layout .card-date{grid-column:2;order:1;font-size:10px;margin:0;gap:3px;align-self:start;white-space:nowrap}.listing-layout .card-date .icon,.listing-layout .card-location .icon{width:12px;height:12px;flex-shrink:0}.listing-layout .card-copy{grid-column:1/-1;order:2;font-size:11px;line-height:1.65;margin:0;min-height:0}.listing-layout .card-tags{grid-column:1/-1;order:3;gap:4px;margin:0}.listing-layout .card-tags a,.listing-layout .card-tags>span{font-size:9px;padding:2px 6px}.listing-layout .card-detail{grid-column:1/-1;order:4;margin:0;padding-top:6px;font-size:10px;min-height:28px}
}
@media(max-width:360px){.listing-layout .event-card{grid-template-columns:78px minmax(0,1fr)}.listing-layout .card-body{padding:9px;gap:6px}.listing-layout .card-date{font-size:9px}}@media(max-width:600px){.page-listing .page-heading{padding-block:18px}.page-listing .page-heading .eyebrow{margin-bottom:8px}.page-listing .page-heading h1{font-size:24px;line-height:1.5;margin-bottom:8px}.page-listing .page-heading>p{font-size:12px;line-height:1.7;margin:0}.listing-layout .search-extra>.checkbox-label{min-height:36px}}
/* Mobile results retain every detail; the image fills the natural text height. */
@media(max-width:600px){
.listing-layout .event-card{grid-template-columns:36% minmax(0,1fr);align-items:stretch}
.listing-layout .card-media{width:100%;height:auto;min-height:160px;aspect-ratio:auto;align-self:stretch}
.listing-layout .card-media>a{position:absolute;inset:0}
.listing-layout .card-media img{width:100%;height:100%;object-fit:cover}
.listing-layout .card-body{min-height:0;aspect-ratio:auto;padding:12px;align-content:start;gap:7px 6px}
.listing-layout .card-copy{display:block;overflow:visible;-webkit-line-clamp:unset;max-height:none;font-size:12px;line-height:1.65}
.listing-layout .card-detail{display:flex;min-height:32px;padding-top:7px;font-size:11px}
.listing-layout .event-card h3{font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.listing-layout .card-location{overflow:visible}.listing-layout .card-location>span{overflow:visible;text-overflow:clip}
.listing-layout .card-date{white-space:normal}.listing-layout .card-date time{overflow-wrap:anywhere}
.listing-layout .card-tags{flex-wrap:wrap}
}
@media(max-width:360px){.listing-layout .card-body{padding:10px;column-gap:4px}.listing-layout .event-card h3{font-size:14px}.listing-layout .card-copy{font-size:11px}}

/* Place article actions beside the heading on desktop. */
@media(min-width:801px){
 .event-heading{display:flex;align-items:center;gap:32px;padding-bottom:25px}
 .event-heading-copy{flex:1;min-width:0}
 .event-heading-copy h1{overflow-wrap:anywhere}
 .event-heading .event-actions{flex:0 0 290px;flex-direction:column;align-items:flex-end;gap:16px;margin:0}
 .event-heading .event-actions>.card-tags{justify-content:flex-end;flex-wrap:wrap}
 .event-heading .event-actions>div:last-child{flex-wrap:wrap;justify-content:flex-end}
}
.card-date-range{min-width:0}.card-date-end{display:inline}.card-date:has(.card-date-end){align-items:flex-start}.card-date:has(.card-date-end)>.icon{flex-shrink:0;margin-top:3px}

@media(max-width:600px){.listing-layout .card-date:has(.card-date-end){grid-column:1/-1}.listing-layout .card-date:has(.card-date-end) .card-date-range{font-size:9px;letter-spacing:-.03em;white-space:nowrap}}

.card-timing-label{position:absolute;left:0;top:0;z-index:1;padding:6px 10px;border-radius:0 0 8px 0;background:#a34816;color:#fff;font-size:11px;font-weight:700;line-height:1.5;pointer-events:none}
.card-timing-label.is-ongoing{background:#267044}
.card-timing-label.is-scheduled{background:#356482}
.card-timing-label.is-cancelled{background:#963d3d}
.card-timing-label.is-postponed{background:#755384}
.card-timing-label.is-ended{background:#62675f}
@media(max-width:600px){.listing-layout .card-timing-label{font-size:10px;padding:5px 7px;max-width:calc(100% - 48px);box-sizing:border-box;overflow-wrap:anywhere}.listing-layout .card-media>.save-button{top:6px;right:6px;bottom:auto;left:auto;z-index:2}}

.card-media-labels{position:absolute;left:10px;right:10px;bottom:10px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:6px;pointer-events:none}
.card-media-labels>.image-label{position:static;max-width:100%}
.card-action-labels{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:4px;margin-left:auto;max-width:100%;pointer-events:auto}
.card-action-labels>a{display:inline-flex;white-space:nowrap;align-items:center;gap:3px;padding:4px 6px;border-radius:4px;background:#ffffffed;color:var(--ink);font-size:11px;font-weight:600;line-height:1.4}
.card-action-labels .icon{width:14px;height:14px;flex-shrink:0;color:var(--accent)}
.card-action-labels>.card-action-more{display:inline-flex;align-items:center;padding:4px 6px;border-radius:4px;background:#ffffffed;color:var(--ink);font-size:11px;line-height:1.4}
@media(max-width:600px){.listing-layout .card-media-labels{left:5px;right:5px;bottom:6px}.listing-layout .card-action-labels>a{font-size:10px;padding:3px 4px}.listing-layout .card-action-labels .icon{width:12px;height:12px}}
.event-hero{display:grid;grid-template-columns:minmax(0,1fr)}
.event-hero>img{grid-area:1/1;display:block}
.event-hero>.card-action-labels{grid-area:1/1;align-self:end;justify-self:end;z-index:1;margin:16px;max-width:calc(100% - 32px);gap:6px}
.event-hero>.card-action-labels>a{padding:7px 10px;font-size:13px;box-shadow:0 1px 5px #00000012}
.event-hero>.card-action-labels .icon{width:18px;height:18px}
.event-hero>figcaption{grid-area:2/1}
@media(max-width:600px){.event-hero>.card-action-labels{margin:10px;max-width:calc(100% - 20px)}.event-hero>.card-action-labels>a{font-size:11px;padding:6px 8px}.event-hero>.card-action-labels .icon{width:15px;height:15px}}
.event-photo-slide>figcaption{display:none}

.event-photo-dialog-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 0 12px}.event-photo-dialog-controls[hidden]{display:none}.event-photo-dialog-controls button{width:44px;height:44px;border:1px solid #777;border-radius:50%;background:#fff;color:#222;font-size:22px;cursor:pointer}.event-photo-dialog-controls button:disabled{opacity:.3;cursor:default}.event-photo-dialog-controls button:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Ranking page: spacious featured rows, followed by a single compact list. */
.ranking-expanded{max-width:1040px;margin-inline:auto}
.ranking-expanded .ranking-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.ranking-expanded .ranking-grid[hidden]{display:none}
.ranking-expanded .ranking-card{display:grid;grid-template-columns:40px 144px minmax(0,1fr);align-items:center;gap:24px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .2s,box-shadow .2s}
.ranking-expanded .ranking-card:hover{border-color:#c4b699;box-shadow:0 4px 18px #43371a0a}
.ranking-expanded .rank-number{position:static;font-size:27px;text-align:center;color:#8a8e82}
.ranking-expanded .ranking-card>img{width:144px;height:108px;object-fit:cover;border-radius:8px}
.ranking-expanded .ranking-card>div{min-width:0}
.ranking-expanded .ranking-card h3{font-size:21px;line-height:1.5;margin:8px 0}
.ranking-expanded .ranking-card .ranking-copy{font-size:13px;line-height:1.8}
.ranking-expanded .ranking-meta{gap:8px 16px}
.ranking-expanded .ranking-meta small{font-size:12px}
.ranking-expanded .ranking-meta>.ranking-date{font-size:12px;white-space:normal}
.ranking-expanded .ranking-podium{grid-template-columns:48px 30% minmax(0,1fr);align-items:start;padding:28px;gap:24px;border-color:#dfd6c4}
.ranking-expanded .ranking-podium>.rank-number{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#a87a29;color:#fff;font-size:25px}
.ranking-expanded .ranking-podium:nth-child(2)>.rank-number{background:#707f89}
.ranking-expanded .ranking-podium:nth-child(3)>.rank-number{background:#a36945}
.ranking-expanded .ranking-podium>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.ranking-expanded .ranking-podium h3{font-size:26px;margin:10px 0}
.ranking-expanded .ranking-podium .ranking-copy{font-size:15px;font-weight:600;color:var(--ink)}
.ranking-podium-details{margin-top:14px;font-size:13px;line-height:1.9;color:var(--muted)}
.ranking-podium-details p{margin:12px 0;overflow-wrap:anywhere}
.ranking-podium-details .icon{width:15px;height:15px;vertical-align:middle;margin-right:3px}
.ranking-card .ranking-timing{position:static;flex-shrink:0;white-space:nowrap;display:inline-block;padding:4px 9px;border-radius:4px;color:#fff;font-size:11px;font-weight:700;line-height:1.5}
.ranking-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.ranking-badges>span{padding:3px 8px;background:var(--soft);border-radius:4px;font-size:11px}
.ranking-read-more{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:18px;padding-top:12px;font-weight:600;color:var(--accent)}
@media(max-width:800px){.ranking-expanded .ranking-card{gap:16px;grid-template-columns:32px 112px minmax(0,1fr)}.ranking-expanded .ranking-card>img{width:112px;height:90px}.ranking-expanded .ranking-podium{grid-template-columns:36px 28% minmax(0,1fr);padding:20px;gap:16px}.ranking-expanded .ranking-podium>img{width:100%;height:auto}.ranking-expanded .ranking-podium h3{font-size:22px}.ranking-expanded .ranking-podium>.rank-number{width:34px;height:34px;font-size:22px}}
@media(max-width:600px){.ranking-expanded .ranking-card{grid-template-columns:24px 76px minmax(0,1fr);padding:14px 10px;gap:10px}.ranking-expanded .rank-number{font-size:20px}.ranking-expanded .ranking-card>img{width:76px;height:88px}.ranking-expanded .ranking-card h3{font-size:16px}.ranking-expanded .ranking-meta small,.ranking-expanded .ranking-meta>.ranking-date{font-size:10px}.ranking-expanded .ranking-card .ranking-copy{font-size:12px}.ranking-expanded .ranking-podium{grid-template-columns:36px minmax(0,1fr);padding:16px;gap:14px}.ranking-expanded .ranking-podium>img{width:100%;height:auto;aspect-ratio:16/9}.ranking-expanded .ranking-podium>div{grid-column:1/-1}.ranking-expanded .ranking-podium h3{font-size:22px}.ranking-expanded .ranking-podium .ranking-copy{font-size:14px}}
/* Unboxed ranking list with large, numbered lead images. */
.ranking-page-layout{padding-top:0}
.ranking-expanded .ranking-grid{gap:0}
.ranking-expanded .ranking-card{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:24px 0;box-shadow:none;background:transparent;grid-template-columns:32px 120px minmax(0,1fr);gap:18px}
.ranking-expanded .ranking-card:hover{box-shadow:none;border-color:var(--line)}
.ranking-expanded .ranking-card>img{width:120px;height:96px;border-radius:5px}
.ranking-expanded .ranking-podium{display:block;padding:0 0 32px;margin:0 0 32px;position:relative}
.ranking-expanded .ranking-podium>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px}
.ranking-expanded .ranking-podium>.rank-number{position:absolute;left:16px;top:16px;width:56px;height:56px;font-size:30px;box-shadow:0 2px 8px #0002;z-index:1}
.ranking-expanded .ranking-podium>div{padding-top:18px}
.ranking-expanded .ranking-podium h3{font-size:27px}
.ranking-expanded .ranking-podium .ranking-read-more{border:0;padding:0;margin-top:16px;justify-content:flex-end;gap:12px}
.ranking-expanded .ranking-podium .ranking-meta>.ranking-date{margin-left:auto}
@media(max-width:600px){.ranking-expanded .ranking-card{grid-template-columns:24px 76px minmax(0,1fr);gap:10px;padding:20px 0}.ranking-expanded .ranking-card>img{width:76px;height:88px}.ranking-expanded .ranking-podium{display:block;padding:0 0 24px;margin-bottom:24px}.ranking-expanded .ranking-podium>img{width:100%;height:auto}.ranking-expanded .ranking-podium>.rank-number{width:44px;height:44px;font-size:25px;left:12px;top:12px}.ranking-expanded .ranking-podium h3{font-size:22px}}
.ranking-expanded .ranking-meta>small{padding:3px 8px;border-radius:4px;background:var(--soft);color:var(--ink);font-weight:600}
.ranking-expanded .ranking-meta>.ranking-region{display:inline;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.ranking-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-top:16px}
.ranking-footer>.ranking-badges{flex:1;min-width:0;margin:0}
.ranking-expanded .ranking-podium .ranking-footer>.ranking-read-more{flex-shrink:0;margin:0 0 0 auto;font-size:12px;white-space:nowrap}
@media(max-width:600px){.ranking-footer{gap:10px}.ranking-footer>.ranking-badges{flex-basis:100%}.ranking-expanded .ranking-meta>.ranking-region{font-size:11px}}
.festival-calendar{padding-bottom:40px}
.festival-calendar-filter{margin:0 0 20px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}
.festival-calendar-filter>label{font-size:12px;color:var(--muted)}
.festival-calendar-filter-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;max-width:100%}
.festival-calendar-filter select{font:inherit;font-size:13px;min-height:40px;max-width:100%;width:230px;padding:7px 28px 7px 10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit}
.festival-calendar-filter .button{min-height:40px;padding:7px 12px}
.festival-calendar-filter a{font-size:12px;color:var(--muted);text-underline-offset:3px}
.festival-calendar-filter [hidden]{display:none!important}
.festival-calendar-results[aria-busy="true"]{opacity:.55;transition:opacity .15s}
.festival-calendar .section-heading{margin-bottom:14px}.festival-calendar .section-heading p{color:var(--muted);margin:8px 0 0;font-size:13px}
.festival-calendar-note{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:24px}
.festival-calendar-day{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;padding:24px 0;border-top:1px solid var(--line)}
.festival-calendar-day h3{margin:0;font-size:19px;line-height:1.6}.festival-calendar-day h3>span{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.festival-calendar-day h3>small{display:inline-block;background:var(--accent);color:#fff;padding:2px 10px;border-radius:4px;font-size:11px;margin-top:8px}
.festival-calendar-day ul{list-style:none;padding:0;margin:0;min-width:0}.festival-calendar-day li+li{border-top:1px dashed var(--line)}
.festival-calendar-day a{position:relative;display:flex;flex-direction:column;gap:5px;padding:14px 36px 14px 0}.festival-calendar-day li:first-child a{padding-top:0}.festival-calendar-day a>.icon{position:absolute;right:0;top:20px;width:18px;color:var(--accent)}
.festival-calendar-location{font-size:11px;color:var(--muted)}.festival-calendar-day strong{font-size:18px;line-height:1.5}.festival-calendar-copy{font-size:13px;line-height:1.8;color:var(--muted)}
.festival-calendar-day a:hover strong{color:var(--accent)}.festival-calendar-day.is-today h3 time{color:var(--accent)}
@media(max-width:600px){.festival-calendar-day{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px 0}.festival-calendar-day h3{display:flex;align-items:center;gap:10px;font-size:17px}.festival-calendar-day h3>small{margin:0}.festival-calendar-day strong{font-size:16px}.festival-calendar-copy{font-size:12px}}
.festival-calendar-day a{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:18px}
.festival-calendar-image{display:block;width:120px;height:90px;object-fit:cover;border-radius:6px}
.festival-calendar-text{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.festival-calendar-day a{grid-template-columns:88px minmax(0,1fr);gap:12px;padding-right:24px}.festival-calendar-image{width:88px;height:88px}.festival-calendar-day a>.icon{width:15px}}
.festival-calendar-day-number{font-size:.8em;font-weight:500;color:var(--muted);white-space:nowrap}

.category-groups{display:grid;gap:32px}.category-group-heading{font-size:18px;line-height:1.6;margin:0 0 16px;padding-left:12px;border-left:3px solid var(--accent)}
@media(max-width:600px){.category-groups{gap:26px}.category-group-heading{font-size:16px;margin-bottom:12px}}

.taxonomy-directory{margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}.taxonomy-directory>h2{font-size:24px;margin:0 0 8px}.taxonomy-directory>p{font-size:13px;color:var(--muted);margin:0 0 20px}@media(max-width:600px){.taxonomy-directory{margin-top:32px;padding-top:24px}.taxonomy-directory>h2{font-size:21px}}

.category-count{display:inline-block;font-size:.9em;font-weight:400;color:var(--muted);white-space:nowrap}.category-group .category-tile>span,.category-group .category-tile>.icon{flex-shrink:0}

.pagination{flex-wrap:wrap;align-items:center;max-width:100%}.pagination a{flex-shrink:0;width:auto;min-width:42px;padding-inline:6px;box-sizing:border-box}.pagination-gap{color:var(--muted);text-align:center;width:18px}.pagination a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:600px){.pagination{gap:4px}.pagination a{min-width:32px;height:40px;font-size:12px;padding-inline:4px}.pagination-gap{width:12px}}



.review-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid #dddcd6;border-radius:4px;background:#fffffff0;color:#62645d;font-size:11px;font-weight:500;line-height:1.5;max-width:100%;box-sizing:border-box}.review-badge>.icon{width:15px;height:15px;flex-shrink:0}.event-hero-labels{grid-area:1/1;align-self:end;z-index:1;margin:16px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:8px;min-width:0}.event-hero-labels>.card-action-labels{margin-left:auto;max-width:100%}.event-hero-labels>.card-action-labels>a{padding:7px 10px;font-size:13px;box-shadow:0 1px 5px #00000012}.event-hero-labels>.card-action-labels .icon{width:18px;height:18px}@media(max-width:600px){.event-hero-labels{margin:10px}.event-hero-labels>.card-action-labels>a{font-size:11px;padding:6px 8px}.event-hero-labels>.card-action-labels .icon{width:15px;height:15px}}

.share-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink);background:var(--paper);box-shadow:0 12px 50px #0003}.share-dialog::backdrop{background:#0008}.share-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.share-dialog-heading h2{font-size:19px;margin:0}.share-close{font-size:26px;min-width:40px;min-height:40px}.share-dialog>p{font-size:13px;color:var(--muted)}.share-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}.share-services a{display:grid;place-items:center;min-height:48px;border:1px solid var(--line);border-radius:7px;background:#fff;font-weight:600;font-size:14px}.share-services a:hover{background:var(--soft)}.share-dialog>label{font-size:12px}.share-copy{display:flex;gap:8px;margin-top:6px}.share-copy input{min-width:0;flex:1;border:1px solid var(--line);border-radius:5px;padding:8px;font-size:14px}.share-copy button{padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--soft);font-size:12px;flex-shrink:0}.share-feedback{min-height:20px;margin-bottom:0}.share-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:400px){.share-dialog{padding:18px}.share-dialog-heading h2{font-size:17px}}

.share-services .share-service{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:14px 6px}.share-social-icon{display:block;width:26px;height:26px;flex-shrink:0}.share-service-x .share-social-icon{color:#111}.share-service-line .share-social-icon{color:#06c755}.share-service-facebook .share-social-icon{color:#1877f2}

/* Editorial features lead; blog entries form a quieter reading list. */
.editorial-section-heading{margin-bottom:28px}.editorial-section-heading h2{font-size:28px;margin:8px 0}.editorial-section-heading p{font-size:13px;color:var(--muted);margin:0}.editorial-features{padding-bottom:50px}.editorial-features .article-media{aspect-ratio:1.4}.editorial-features .article-media img{width:100%;height:100%;object-fit:cover}.editorial-blogs{border-top:1px solid var(--line);padding-top:42px;padding-bottom:70px}.blog-list{max-width:960px}.blog-row+.blog-row{border-top:1px solid var(--line)}.blog-row>a{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;padding:24px 0}.blog-row-image img{width:100%;aspect-ratio:1.4;object-fit:cover;border-radius:8px}.blog-row-copy{min-width:0}.blog-row-copy time,.blog-article time{font-size:12px;color:var(--muted)}.blog-row-copy h3{font-size:20px;line-height:1.6;margin:5px 0 8px}.blog-row-copy p{font-size:13px;color:var(--muted);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blog-row a:hover h3{color:var(--accent)}.editorial-empty{padding:24px 0;color:var(--muted);font-size:14px}.editorial-more{margin-top:28px}.editorial-more summary{cursor:pointer;font-size:14px;padding:12px 0}.editorial-more .article-grid{margin-top:20px}.blog-article{padding-bottom:64px}.feature-prose img{max-width:100%;height:auto}.feature-prose figure{max-width:100%}@media(max-width:600px){.editorial-section-heading h2{font-size:24px}.editorial-features{padding-bottom:32px}.editorial-blogs{padding-top:30px}.blog-row>a{grid-template-columns:100px minmax(0,1fr);gap:14px;padding:20px 0}.blog-row-copy h3{font-size:16px}.blog-row-copy p{font-size:12px}.blog-row-image img{aspect-ratio:1}.blog-row-copy time{font-size:11px}}

.surprise-copy > [data-surprise-next],.surprise-copy > [data-surprise-next]:hover,.surprise-copy > [data-surprise-next]:active{background:transparent;border:0;padding:0}
[data-surprise-status]:empty{display:none}

/* A small paper note attached to the featured festival image. */
.surprise-sticker{right:14px;top:16px;width:auto;height:auto;padding:13px 20px;background:#fffaf0;color:#494438;border:1px solid #e2d6be;border-left:3px solid #b66d45;border-radius:2px;transform:rotate(2deg);display:block;font:600 16px/1.7 var(--font);letter-spacing:.06em;text-align:left;box-shadow:0 3px 10px #49391e18}
@media(max-width:600px){.surprise-sticker{right:-15px;top:-15px;width:auto;height:auto;padding:10px 15px;font-size:14px}}
.surprise-photo{position:relative;overflow:hidden;border-radius:11px;transform:rotate(-2deg)}
.surprise-photo-link>img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}
.surprise-image-caption{position:absolute;inset:auto 0 0;padding:44px 24px 20px;background:linear-gradient(0deg,rgba(30,28,23,.78),rgba(30,28,23,.38) 58%,transparent);color:#fffaf0;font-size:17px;line-height:1.65;overflow-wrap:anywhere;pointer-events:none;text-shadow:0 1px 3px #0005}
.surprise-image-location{display:block;font-size:11px;letter-spacing:.1em;color:#f1e7d6;margin-bottom:4px}
.surprise-image-title{display:block;font-weight:600;letter-spacing:.04em}
@media(max-width:600px){.surprise-photo-link>img{aspect-ratio:1.45}.surprise-image-caption{padding:34px 17px 14px;font-size:15px}.surprise-image-location{font-size:10px;margin-bottom:3px}}




.surprise-image-caption{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px 14px}.surprise-image-description{flex:1 1 180px;min-width:0}.surprise-image-caption>.card-action-labels{flex:0 1 auto;max-width:100%;margin-left:auto;text-shadow:none}.surprise-image-caption>.card-action-labels>a{padding:6px 8px;font-size:11px;box-shadow:0 1px 5px #00000012}@media(max-width:600px){.surprise-image-caption>.card-action-labels>a{padding:5px 7px;font-size:10px}}

.upcoming-controls{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin:0}.upcoming-controls>span{font-size:12px;color:var(--muted)}.upcoming-controls>div{display:flex;gap:8px;flex-shrink:0}.upcoming-controls button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink)}.upcoming-controls button:disabled{opacity:.3;cursor:default}.upcoming-controls button:not(:disabled):hover{background:var(--cream)}.upcoming-controls [data-upcoming-prev] .icon{transform:rotate(180deg)}.upcoming-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 88px)/4.1);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-block:6px 12px}.upcoming-track::-webkit-scrollbar{display:none}.upcoming-track>.event-card{scroll-snap-align:start;min-width:0}.upcoming-track:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:600px){.upcoming-track{grid-auto-columns:calc((100% - 16px)/1.1);gap:16px}.upcoming-controls>span{font-size:11px}.upcoming-controls{gap:10px}}


/* Fade only the next-card preview at the trailing edge. */
.upcoming-track{-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 88px)/41),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 88px)/41),transparent 100%)}
.upcoming-track.is-at-end{-webkit-mask-image:none;mask-image:none}
@media(max-width:600px){.upcoming-track{-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 16px)/11),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 16px)/11),transparent 100%)}}
.surprise-photo-link{display:block}.surprise-photo-link:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.surprise-sticker{pointer-events:none}

.home-blog-list{max-width:none;margin-top:32px;padding-top:8px;border-top:1px solid var(--line)}

/* Compact forecast block above event information. */
.event-weather-slot[hidden]{display:none}
.event-weather{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 20px;margin:0 0 24px;padding:12px 18px;border-block:1px solid var(--line);background:var(--soft)}
.event-weather-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 12px;min-width:0}
.event-weather-heading h3{margin:0;font-size:13px;font-weight:600;line-height:1.6;color:var(--ink)}
.event-weather-heading time{font-size:12px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.event-weather-location{font-size:11px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}
.event-weather-main{display:flex;align-items:center;gap:10px;min-width:0;max-width:360px}
.event-weather-icon{width:40px;height:40px;flex:0 0 40px;object-fit:contain}
.event-weather-condition{margin:0;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.event-weather-condition>strong{font-size:15px;font-weight:600;color:var(--ink)}
.event-weather-temperature{display:flex;align-items:baseline;gap:6px;flex-shrink:0;margin:0;padding-left:12px;border-left:1px solid var(--line);line-height:1.4}
.event-weather-temperature>span{font-size:10px;color:var(--muted)}
.event-weather-temperature>strong{font-size:18px;font-weight:500;color:var(--ink);white-space:nowrap}
.event-weather-temperature small{font-size:11px;margin-left:2px}
.event-weather-extra{grid-column:1/-1;display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 16px;font-size:12px;line-height:1.6}
.event-weather-extra p{margin:0;min-width:0;overflow-wrap:anywhere}
.event-weather-degrees{display:flex;gap:12px;flex-shrink:0;color:var(--muted)}
.event-weather-degrees>span{white-space:nowrap}
.event-weather-degrees strong{font-size:14px;font-weight:600;margin-left:3px}
.weather-high{color:#b85d49}.weather-low{color:#4e7e94}
.event-weather-wind>span{color:var(--muted)}
.event-weather-note{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 12px;font-size:10px;line-height:1.6;color:var(--muted)}
.event-weather-note a{text-decoration:underline;text-decoration-color:#c6c7bd;text-underline-offset:3px}
.event-weather-note a:hover{color:var(--accent)}
@media(max-width:700px){.event-weather{grid-template-columns:minmax(0,1fr);gap:5px;padding:11px 12px}.event-weather-heading{gap:2px 10px}.event-weather-main{max-width:none;gap:8px}.event-weather-icon{width:34px;height:34px;flex-basis:34px}.event-weather-temperature{margin-left:auto;padding-left:10px}.event-weather-condition>strong{font-size:14px}.event-weather-note{font-size:10px}}

/* Clearly disclose promoted festivals without changing card dimensions. */
.listing-layout .event-card.is-pr{border-color:#d8c6b5;background:#fffdfa}
.listing-layout .event-card.is-pr .event-pr-label{border-color:#d8c6b5;background:#fffefa;color:#806650}
.event-pr-label{display:inline-flex;align-items:center;padding:2px 9px;border:1px solid var(--accent);border-radius:3px;color:var(--accent);background:var(--paper,#fff);font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.08em}.card-media-labels>.event-pr-label{flex-shrink:0;background:#fffefa}.event-topline>.event-pr-label{margin-right:10px}

/* Keep editorial lists compact while retaining their text and imagery. */
.article-grid{row-gap:24px}
.article-grid .article-category{margin-top:12px}
.article-grid .article-card h3{margin:5px 0 7px;line-height:1.6}
.article-grid .article-card p{margin:0 0 8px;line-height:1.75}
.blog-list .blog-row>a{gap:20px;padding:18px 0}
.blog-list .blog-row-copy h3{margin:4px 0 6px}
.blog-list .blog-row-copy p{margin-bottom:6px;line-height:1.7}
.home-blog-list{margin-top:24px;padding-top:0}
@media(max-width:600px){
 .article-grid{row-gap:22px}
 .article-grid .article-media{aspect-ratio:1.9}
 .article-grid .article-category{margin-top:9px}
 .article-grid .article-card h3{font-size:18px;margin:4px 0 6px;line-height:1.55}
 .article-grid .article-card p{margin-bottom:6px;line-height:1.65}
 .blog-list .blog-row>a{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:14px 0;align-items:start}
 .blog-list .blog-row-copy h3{margin:3px 0 5px;line-height:1.5}
 .blog-list .blog-row-copy p{line-height:1.6;margin-bottom:5px}
 .home-blog-list{margin-top:20px}
}

/* Recent discoveries share the carousel on phones and retain the desktop grid. */
@media(min-width:601px){
 .new-section .upcoming-track{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;scroll-snap-type:none;padding:0;-webkit-mask-image:none;mask-image:none}
 .new-section .upcoming-controls{display:none}
}
@media(min-width:601px) and (max-width:1100px){.new-section .upcoming-track{grid-template-columns:repeat(2,minmax(0,1fr))}}

.editorial-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.editorial-tags .editorial-category{background:#f2ebdf;color:#786348}
.blog-row>.editorial-tags{margin:0 0 14px 200px}
.blog-row:has(>.editorial-tags)>a{padding-bottom:7px}
@media(max-width:600px){.blog-row>.editorial-tags{margin-left:100px;margin-bottom:12px}.editorial-tags{gap:4px}.editorial-tags>a,.editorial-tags>span{font-size:10px;padding:2px 6px}}

.event-editorial-links{margin:28px 0;padding:18px 0;border-block:1px solid var(--line)}
.event-editorial-links h2{font-size:18px;line-height:1.6;margin:0 0 10px}
.event-editorial-links ul{list-style:none;margin:0;padding:0}
.event-editorial-links li+li{border-top:1px solid var(--line)}
.event-editorial-links .event-editorial-title{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:13px}
.event-editorial-links .event-editorial-title>span{flex-shrink:0;font-size:10px;padding:0;background:none;color:var(--muted);border-radius:0}
.event-editorial-links strong{font-weight:500;line-height:1.7;overflow-wrap:anywhere}
.event-editorial-links .icon{flex-shrink:0;width:16px;margin-left:auto;color:var(--accent)}
.event-editorial-links .event-editorial-title:hover strong{color:var(--accent)}
@media(max-width:600px){.event-editorial-links h2{font-size:16px}.event-editorial-links .event-editorial-title{font-size:12px;gap:8px}}

.event-editorial-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start;padding:12px 0}.event-editorial-image{display:block}.event-editorial-image img{width:100%;aspect-ratio:1.4;object-fit:cover;border-radius:5px}.event-editorial-copy{min-width:0}.event-editorial-links .event-editorial-title{padding:0}.event-editorial-links .editorial-tags{margin-top:4px;gap:3px 10px}.event-editorial-links .editorial-tags>a{font-size:10px;padding:0;border:0;border-radius:0;background:none;color:var(--muted);line-height:1.7}.event-editorial-links .editorial-tags>a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media(max-width:600px){.event-editorial-item{grid-template-columns:76px minmax(0,1fr);gap:10px}.event-editorial-links .event-editorial-title{gap:5px}.event-editorial-title>.icon{display:none}}
.event-editorial-date{flex-shrink:0;white-space:nowrap;font-size:10px;line-height:1.5;color:var(--muted)}

.event-editorial-links .event-editorial-title{flex-wrap:nowrap;align-items:baseline}.event-editorial-title strong{min-width:0;flex:1}.event-editorial-links .event-editorial-title>span{white-space:nowrap}
/* Related reading and regional/seasonal navigation at the end of festival pages. */
.event-editorial-links{padding:22px 24px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.event-editorial-links h2{margin:0 0 16px;font-size:18px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
nav.event-editorial-links>ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
nav.event-editorial-links>ul>li{margin:0;border:0;min-width:0}
nav.event-editorial-links>ul>li>a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;height:100%;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:14px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}
nav.event-editorial-links>ul>li>a::after{content:"";width:7px;height:7px;flex:0 0 7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);color:var(--accent);margin-right:3px}
nav.event-editorial-links>ul>li>a:hover,nav.event-editorial-links>ul>li>a:focus-visible{border-color:var(--accent);color:var(--accent-dark)}
section.event-editorial-links .event-editorial-title{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;align-items:center;font-size:14px}
section.event-editorial-links .event-editorial-date{grid-column:1;grid-row:1;font-size:11px}
section.event-editorial-links .event-editorial-title>span{grid-column:2;grid-row:1;font-size:11px}
section.event-editorial-links .event-editorial-title>strong{grid-column:1/3;grid-row:2;font-weight:600}
section.event-editorial-links .event-editorial-title>.icon{grid-column:3;grid-row:1/3}
section.event-editorial-links .event-editorial-item:first-child{padding-top:0}
section.event-editorial-links .event-editorial-item:last-child{padding-bottom:0}
section.event-editorial-links .editorial-tags>a{font-size:12px}
@media(max-width:600px){
 .event-editorial-links{padding:18px 16px;margin:24px 0}
 .event-editorial-links h2{font-size:16px;margin-bottom:12px}
 nav.event-editorial-links>ul{grid-template-columns:minmax(0,1fr);gap:8px}
 nav.event-editorial-links>ul>li>a{padding:11px 12px;font-size:13px}
 section.event-editorial-links .event-editorial-title{grid-template-columns:auto minmax(0,1fr);font-size:13px;gap:4px 8px}
}

.editorial-related-events{margin:28px 0}
.editorial-related-events>h2{font-size:20px;line-height:1.6;margin:0 0 14px}
.editorial-event-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.editorial-event-row{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#fffdf8}
.editorial-event-image{flex:0 0 120px}.editorial-event-image img{width:100%;height:90px;object-fit:cover;border-radius:4px}
.editorial-event-copy{flex:1;min-width:0}.editorial-event-meta{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:10px;color:var(--muted);line-height:1.6}
.editorial-event-copy h3{font-size:18px;line-height:1.6;margin:4px 0}.editorial-event-copy p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.editorial-event-row>.icon{width:17px;color:var(--accent);flex-shrink:0}.editorial-event-row:hover{border-color:#c9b7a7}.editorial-event-row:hover h3{color:var(--accent)}
@media(max-width:600px){.editorial-related-events>h2{font-size:18px}.editorial-event-row{padding:11px;gap:11px}.editorial-event-image{flex-basis:84px}.editorial-event-image img{height:76px}.editorial-event-copy h3{font-size:16px}.editorial-event-copy p{font-size:11px}.editorial-event-row>.icon{display:none}}

/* Full festival information at the end of editorial articles. */
.editorial-event-list{gap:20px}
.editorial-event-row{align-items:flex-start;padding:22px;gap:22px}
.editorial-event-image{display:block;flex:0 0 32%}
.editorial-event-image img{height:auto;aspect-ratio:1.15}
.editorial-event-copy h3{font-size:22px;margin:6px 0 10px;line-height:1.55}
.editorial-event-meta{font-size:12px;gap:5px 14px}
.editorial-event-copy .editorial-event-tagline{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:10px}
.editorial-event-copy .editorial-event-intro{font-size:13px;line-height:1.9;margin-bottom:16px}
.editorial-event-details{margin:0;font-size:12px;line-height:1.8}
.editorial-event-details>div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.editorial-event-details dt{color:var(--muted)}.editorial-event-details dd{margin:0;overflow-wrap:anywhere}
.editorial-event-more{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;font-size:13px;font-weight:600;color:var(--accent)}.editorial-event-more .icon{width:17px}
@media(max-width:600px){.editorial-event-row{padding:15px;gap:14px;flex-wrap:wrap}.editorial-event-image{flex:0 0 100%}.editorial-event-image img{aspect-ratio:1.9}.editorial-event-copy{flex-basis:100%}.editorial-event-copy h3{font-size:21px}.editorial-event-copy .editorial-event-tagline{font-size:14px}.editorial-event-copy .editorial-event-intro{font-size:13px}}

/* Use the standard event card, laid out horizontally in editorial articles. */
.editorial-event-list>.event-card{display:grid;grid-template-columns:36% minmax(0,1fr);align-items:stretch}
.editorial-event-list .card-media{aspect-ratio:auto;min-height:230px;height:100%}
.editorial-event-list .card-media>a{position:absolute;inset:0}
.editorial-event-list .card-body{padding:20px;min-width:0}
.editorial-event-list .card-location{white-space:normal;flex-wrap:wrap;overflow:visible;font-size:12px}
.editorial-event-list .card-location>span{overflow:visible}
.editorial-event-list .event-card h3{font-size:21px;line-height:1.6;margin:7px 0}
.editorial-event-list .card-copy{font-size:13px;line-height:1.8;min-height:0;margin-bottom:14px}
.editorial-event-list .card-date{font-size:12px;align-items:flex-start}
.editorial-event-list .card-date-range{overflow-wrap:anywhere}
.editorial-event-list .card-tags{gap:5px}
.editorial-event-list .card-tags>a,.editorial-event-list .card-tags>span{font-size:10px}
.editorial-event-list .card-detail{font-size:12px}
.editorial-event-list .card-timing-label{max-width:calc(100% - 48px)}
.editorial-event-list .save-button{top:8px;right:8px;z-index:2}
@media(max-width:600px){
 .editorial-event-list>.event-card{grid-template-columns:34% minmax(0,1fr)}
 .editorial-event-list .card-body{padding:13px}
 .editorial-event-list .event-card h3{font-size:17px}
 .editorial-event-list .card-copy{font-size:12px;margin-bottom:11px}
 .editorial-event-list .card-location,.editorial-event-list .card-date{font-size:11px}
 .editorial-event-list .save-button{width:32px;height:32px;right:6px;top:6px}
 .editorial-event-list .card-timing-label{font-size:10px;padding:5px;max-width:calc(100% - 42px);overflow-wrap:anywhere}
 .editorial-event-list .card-media-labels{left:6px;right:6px;bottom:6px}
}
.sidebar-story-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;margin-bottom:5px}.sidebar-story-meta .sidebar-story-category{margin:0}.sidebar-story-meta time{font-size:10px;color:var(--muted);white-space:nowrap}

/* Compact sightseeing cards and click-to-open source notes. */
.spot-card{border-color:#e5dfd3;border-radius:10px;background:#fff;box-shadow:none}
.spot-category{align-self:flex-start;display:inline-block;padding:3px 8px;border:1px solid #e6dece;border-radius:4px;background:#f5f0e5;color:#756247;font-size:10px;font-weight:600;line-height:1.5}
.spot-card-meta{display:flex;align-items:center;gap:8px}.spot-card-meta .spot-category{flex-shrink:0}.prose .spot-card .spot-city{font-size:11px;color:var(--muted);line-height:1.6;min-width:0;overflow-wrap:anywhere}

.spot-card-body>a{gap:4px;text-underline-offset:3px}
.spot-credit-trigger{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:4px 0;border:0;background:none;color:var(--muted);font:inherit;font-size:10px;cursor:pointer;text-align:left}
.spot-credit-trigger:hover{color:var(--accent)}
.spot-credit-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.spot-credit[popover]{position:fixed;inset:auto;margin:0;padding:12px 14px;width:300px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);box-sizing:border-box;overflow:auto;border:1px solid #dfd7c7;border-radius:9px;background:#fffdf7;color:#6b6256;box-shadow:0 6px 24px #33281926;font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.spot-credit::backdrop{background:transparent}
.spot-credit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eee7dc;padding-bottom:5px;margin-bottom:6px}
.spot-credit-heading strong{font-size:11px;color:#504b42}
.spot-credit-heading button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;background:transparent;font-size:20px;color:inherit;cursor:pointer}
.prose .spot-credit p{font-size:11px;line-height:1.7;margin:6px 0}
.spot-credit a{color:var(--accent-dark,var(--accent));text-decoration:underline;text-underline-offset:2px}

.prose .spot-card h3{font-size:17px;line-height:1.6;margin:10px 0 6px}@media(max-width:600px){.prose .spot-card h3{font-size:15px}.spot-card-meta{gap:6px}}
.spot-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:6px;min-width:0}
.spot-card-actions>a{display:inline-flex;align-items:center;min-height:32px;font-size:12px;line-height:1.6;text-underline-offset:3px;min-width:0}
.spot-card-actions .spot-credit-trigger{align-self:auto;margin:0 0 0 auto;min-width:0;line-height:1.6;flex-shrink:0}
@media(max-width:600px){.spot-card-meta{flex-direction:column;align-items:flex-start;gap:4px}.spot-card-actions{flex-direction:column;align-items:flex-start;gap:2px}.spot-card-actions>a{font-size:11px;min-height:32px}.spot-card-actions .spot-credit-trigger{align-self:flex-start;margin:0;font-size:10px;flex-shrink:0}}

.weekend-list article>a>div{flex:1;min-width:0}.weekend-list img,.weekend-list article>a>.icon{flex-shrink:0}.weekend-meta{display:flex;align-items:center;gap:6px 10px}.weekend-meta>.small-label{flex-shrink:0}.weekend-event-date{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:10px;line-height:1.5;color:var(--muted)}.weekend-event-date>.icon{width:12px;height:12px;flex-shrink:0}.weekend-list p.weekend-tagline{display:block;line-height:1.7}@media(max-width:600px){.weekend-event-date{font-size:9px}.weekend-meta{gap:6px}}

/* Today's festivals: retain three complete entries, scroll within the list. */
.today-events{min-width:0}.today-event-list{max-height:420px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:10px}.today-event-list:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.today-scroll-hint{margin:8px 0 0;text-align:right;font-size:11px;color:var(--muted)}
.today-event-image{position:relative;display:block;flex-shrink:0;width:133px;height:92px;overflow:hidden;border-radius:7px}.weekend-list .today-event-image img{display:block;width:100%;height:100%;border-radius:0}.today-event-status{position:absolute;top:5px;left:5px;padding:2px 5px;background:#267044;color:#fff;border-radius:3px;font-size:9px;line-height:1.5;font-weight:600}.today-event-city{overflow-wrap:anywhere}.today-event-list .weekend-meta{flex-wrap:wrap}.today-event-list h3 .today-event-day{display:inline-block;font-size:11px;font-weight:400;color:var(--muted);margin-left:3px;white-space:nowrap}@media(max-width:600px){.today-event-image{width:98px;height:82px}.today-event-list h3 .today-event-day{font-size:10px}}
/* Keep event-card tags to one line; excess tags are counted by main.js. */
.event-card .card-tags{flex-wrap:nowrap;overflow:hidden;min-width:0}.event-card .card-tags>a,.event-card .card-tags>span{flex:0 0 auto;white-space:nowrap}.event-card .card-tags>[hidden]{display:none}.event-card .card-tags>.card-tags-more{background:transparent;padding-inline:3px;color:var(--muted)}

/* Home categories: five mobile rows with a faded glimpse of the next. */
.category-show-all[hidden]{display:none}
@media(max-width:600px){[data-category-collapse].is-collapsed{max-height:calc(var(--category-cutoff) + var(--category-preview));overflow:hidden;mask-image:linear-gradient(to bottom,#000 0,#000 calc(var(--category-cutoff) - 8px),#0009 var(--category-cutoff),#0003 calc(var(--category-cutoff) + var(--category-preview) * .6),transparent 100%)}.category-show-all{position:relative;z-index:1;margin-top:-14px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 0;background:none;color:var(--ink);font:inherit;font-size:13px;border:0;cursor:pointer}.category-show-all .icon{width:14px;height:14px;transform:rotate(90deg)}}

.surprise-actions>[data-surprise-next]{display:flex;align-items:center;width:max-content;margin-top:20px;font-size:11px;background:transparent;border:0;padding:0}.surprise-actions>[data-surprise-next]:hover,.surprise-actions>[data-surprise-next]:active{background:transparent}.surprise-actions>[data-surprise-next] .icon{width:15px;flex-shrink:0}
@media(max-width:600px){.surprise-actions{display:flex;align-items:center;gap:12px}.surprise-actions>.button{flex:0 1 auto;min-width:0;padding-inline:22px;font-size:11px;gap:6px}.surprise-actions>[data-surprise-next]{flex:1;min-width:0;width:auto;margin-top:0;font-size:11px;line-height:1.7;gap:5px;justify-content:flex-end;text-align:right;padding-right:10px}.surprise-actions>.button .icon{width:16px;flex-shrink:0}}

/* Accommodation recommendations share the article's quiet, paper-like treatment. */
.event-prose .event-lodging{font-size:14px;line-height:1.75}
.event-lodging .lodging-intro{display:flex;align-items:baseline;gap:9px}.event-lodging .lodging-intro p{margin:0;font-size:14px}.lodging-pr{font:11px Arial;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:1px 5px;flex-shrink:0}
.event-lodging .lodging-location,.event-lodging .lodging-date-note,.event-lodging .lodging-note{font-size:12px;color:var(--muted);margin:7px 0 14px}
.lodging-search{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;background:var(--soft);padding:16px;border-radius:6px}.lodging-search label{display:flex;flex-direction:column;gap:5px;font-size:12px;min-width:0;flex:1 1 145px}.lodging-search label:nth-child(3){flex:0 1 94px}.lodging-search input,.lodging-search select{min-width:0;width:100%;min-height:42px;padding:7px 8px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--text);font:inherit}.lodging-search .button{min-height:42px;font-size:12px;padding:8px 14px;margin:0;white-space:nowrap}.lodging-search .button:disabled{opacity:.6;cursor:wait}
.event-lodging .lodging-status{font-size:13px;margin:16px 0 8px}.lodging-status small{display:block;color:var(--muted);font-size:11px;font-weight:400}
.lodging-hotels{display:grid}.lodging-hotel{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);min-width:0}.lodging-hotel-image{flex:0 0 120px;align-self:flex-start}.lodging-hotel-image img{display:block;width:120px;height:90px;object-fit:cover;border-radius:4px;margin:0}.lodging-hotel-body{min-width:0;flex:1}.event-lodging .lodging-hotel h3{font-size:17px;line-height:1.55;margin:0 0 5px;padding:0;border:0}.event-lodging .lodging-hotel h3 a{color:inherit;text-decoration:none}.event-lodging .lodging-hotel p{margin:3px 0;font-size:12px;line-height:1.7}.lodging-hotel-address{color:var(--muted)}.lodging-hotel-access{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-lodging .lodging-hotel-link{display:inline-block;margin-top:7px;font-size:12px;color:var(--accent-dark);font-weight:600}.lodging-hotel small{display:block;font-size:11px;color:var(--muted)}
.lodging-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.event-lodging .lodging-more{font-size:13px;color:var(--accent-dark);font-weight:600}.lodging-retry{background:transparent;font:inherit;font-size:12px;color:var(--muted);padding:5px 0;text-decoration:underline}.lodging-retry[hidden]{display:none}.event-lodging .lodging-credit{font-size:10px;text-align:right}.event-lodging .lodging-credit a{color:var(--muted)}
@media(max-width:600px){.lodging-search{padding:12px;gap:10px}.lodging-search label{flex:1 1 calc(50% - 5px)}.lodging-search label:nth-child(3){flex:1 1 90px}.lodging-search .button{flex:1 1 150px}.lodging-hotel{gap:12px;padding:14px 0}.lodging-hotel-image{flex-basis:90px}.lodging-hotel-image img{width:90px;height:80px}.event-lodging .lodging-hotel h3{font-size:16px}.event-lodging .lodging-intro p{font-size:13px}}

.lodging-sample-note{padding:14px 16px;border:1px dashed var(--line);background:var(--soft);margin-bottom:18px;border-radius:5px}.event-lodging .lodging-sample-note p{font-size:12px;margin:6px 0 10px}.lodging-sample-note label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:12px}.lodging-sample-note select{background:#fff;border:1px solid var(--line);border-radius:4px;padding:6px;font:inherit}


.event-lodging .lodging-hotel .lodging-hotel-price{margin:9px 0 2px}.lodging-hotel-price strong{font-size:18px;font-weight:700;color:var(--accent-dark)}.lodging-hotel-price small{margin-top:2px;line-height:1.6}


.event-prose .lodging-heading{display:flex;align-items:center;gap:12px}.lodging-heading .lodging-pr{line-height:1.5;letter-spacing:normal}.event-lodging a.lodging-hotel{color:inherit;text-decoration:none}.event-lodging a.lodging-hotel:hover{background:var(--soft)}.event-lodging a.lodging-hotel:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lodging-hotel-link{text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.lodging-search{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.lodging-search label,.lodging-search label:nth-child(3),.lodging-search .button{width:100%;margin:0}.lodging-search input,.lodging-search select{min-height:46px;font-size:16px}.lodging-search .button{min-height:46px}.event-prose .lodging-heading{gap:9px}}


.prose .event-lodging a.lodging-hotel,.prose .event-lodging a.lodging-hotel:hover,.prose .event-lodging a.lodging-hotel:focus{color:inherit;text-decoration:none}.lodging-hotel-arrow{flex:0 0 14px;align-self:center;font:24px/1 Arial,sans-serif;color:var(--muted);text-align:center}.event-lodging .lodging-status.sr-only{margin:0}


.event-lodging .lodging-hotels{display:block;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:8px}.lodging-hotels:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.event-lodging .lodging-scroll-hint{font-size:11px;color:var(--muted);text-align:right;margin:8px 0 0}


@media(min-width:801px){.event-lodging .lodging-hotel{padding:12px 0;gap:14px}.lodging-hotel-image{flex-basis:100px}.lodging-hotel-image img{width:100px;height:75px}.lodging-hotel-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,190px);gap:4px 16px;align-content:start}.lodging-hotel-heading{grid-column:1/-1;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px}.event-lodging .lodging-hotel-heading h3,.event-lodging .lodging-hotel-heading p{margin:0}.event-lodging .lodging-hotel .lodging-hotel-access{grid-column:1;margin:0}.event-lodging .lodging-hotel .lodging-hotel-price{grid-column:2;grid-row:2;margin:0;text-align:right;align-self:center}.lodging-hotel-body>small{grid-column:1/-1}.lodging-hotel-price small{font-size:10px}}


@media(min-width:801px){.lodging-hotel-body{grid-template-columns:minmax(0,1fr) max-content}.lodging-hotel-price small{white-space:nowrap}}


@media(max-width:600px){.lodging-search{grid-template-columns:repeat(2,minmax(0,1fr))}.lodging-search label:nth-child(3),.lodging-search>.button{grid-column:1/-1}.lodging-search input[type="date"]{box-sizing:border-box;max-width:100%}}


/* Travel and packing recommendations: quiet borders and the existing accent. */
.trip-transport{margin:24px 0}.prose .trip-heading{display:flex;align-items:center;gap:12px}.trip-heading .lodging-pr{font-size:10px;letter-spacing:normal;white-space:nowrap}.trip-transport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trip-transport-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:5px;padding:16px;min-width:0}.prose a.trip-transport-card,.prose a.trip-product{color:inherit;text-decoration:none}.prose a.trip-transport-card:hover,.prose a.trip-product:hover{color:inherit;text-decoration:none;background:var(--soft)}.trip-transport-icon{flex:0 0 32px;color:var(--accent-dark)}.trip-transport-card>span:nth-child(2){min-width:0;flex:1}.trip-transport-card strong,.trip-transport-card span span,.trip-transport-card small{display:block}.trip-transport-card strong{font-size:15px}.trip-transport-card span span{font-size:12px;margin:4px 0}.trip-transport-card small{font-size:11px;color:var(--accent-dark)}.trip-arrow{font:24px/1 Arial,sans-serif;color:var(--muted)}.prose .trip-note,.trip-note{font-size:11px;line-height:1.8;color:var(--muted);margin:10px 0}.trip-gear{margin:32px 0}.prose .trip-gear-intro{font-size:14px;margin:0 0 16px}.trip-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.trip-product{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:5px;overflow:hidden;min-width:0}.trip-product-media{position:relative;width:100%;height:150px;background:#fff;flex-shrink:0}.trip-product-media>img{display:block;width:100%;height:100%;object-fit:contain;margin:0}.trip-product-media>.lodging-pr{position:absolute;top:7px;left:7px;background:rgba(255,255,255,.92);margin:0;font-size:10px;line-height:1.5}.trip-product-body{padding:12px;flex:1}.prose .trip-product h3{font-size:15px;line-height:1.65;margin:0 0 6px;padding:0;border:0}.trip-product small{display:block;font-size:10px;color:var(--muted)}.trip-product-price{display:block;font-size:18px;color:var(--accent-dark);margin-top:8px}.trip-product-cta{display:block;color:var(--accent-dark);font-size:12px;margin-top:8px}.trip-credit{text-align:right;font-size:10px;color:var(--muted)}.trip-product-status:empty{display:none}.trip-product-retry{background:none;color:var(--accent-dark);font:inherit;text-decoration:underline}.trip-product-retry[hidden]{display:none}.trip-sample-dialog{width:min(460px,calc(100% - 40px));padding:26px;border:1px solid var(--line);border-radius:6px;background:var(--paper,#fff);color:var(--text);margin:auto}.trip-sample-dialog::backdrop{background:rgba(0,0,0,.35)}.trip-sample-dialog h2{font-size:20px;margin:0 0 14px}.trip-sample-dialog p{font-size:14px;line-height:1.9;margin:0 0 20px}.trip-transport-card:focus-visible,.trip-product:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.trip-transport-grid,.trip-products{grid-template-columns:minmax(0,1fr)}.trip-transport-card{padding:14px}.trip-product{flex-direction:row;align-items:center}.trip-product-media{width:90px;height:100px;flex:0 0 90px}.trip-product-body{padding:12px;min-width:0}.prose .trip-product h3{font-size:14px}.trip-product-price{margin-top:4px}.prose .trip-heading{gap:8px}.trip-gear .trip-heading{font-size:21px}}
.prose .trip-transport a.trip-transport-card,.prose .trip-transport a.trip-transport-card:hover,.prose .trip-transport a.trip-transport-card:focus,.prose .trip-gear a.trip-product,.prose .trip-gear a.trip-product:hover,.prose .trip-gear a.trip-product:focus{color:inherit;text-decoration:none}
.trip-transport-card strong .lodging-pr{display:inline-block;vertical-align:middle;margin:0 0 0 5px;font-size:10px;line-height:1.5;font-weight:400;white-space:nowrap}
@media(max-width:600px){.trip-product-price-row{display:flex;align-items:baseline;gap:2px 8px;margin-top:4px}.trip-product-price-row .trip-product-price{flex-shrink:0;margin:0}.trip-product-price-row small{min-width:0;line-height:1.5}}
.sidebar-upcoming-date{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 3px;font-size:10px;color:var(--accent-dark);margin-bottom:4px}.sidebar-upcoming-date time{white-space:nowrap}.sidebar-upcoming-city{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.article-author{margin:30px 0;align-items:flex-start}.article-author .editor-avatar{overflow:hidden}.article-author-avatar{display:block;width:60px;height:60px;object-fit:cover;border-radius:50%;margin:0}.article-author-copy{min-width:0;overflow-wrap:anywhere}.article-author-label{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.article-author .article-author-bio{margin:5px 0 8px;font-size:12px;line-height:1.9}
@media(max-width:600px){.article-author{gap:14px;padding:20px 0}.article-author .editor-avatar,.article-author-avatar{width:48px;height:48px}}
.author-articles{margin:-10px 0 30px}.author-articles h3{font-size:14px;margin:0 0 8px}.author-articles ul{list-style:none;padding:0;margin:0}.author-articles li+li{border-top:1px solid var(--line)}.author-articles li a{display:grid;grid-template-columns:76px minmax(0,110px) minmax(0,1fr);align-items:baseline;gap:12px;padding:10px 0;color:inherit;text-decoration:none}.author-articles time{font-size:11px;color:var(--muted);white-space:nowrap}.author-article-category{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.author-article-title{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.author-articles a:hover .author-article-title{color:var(--accent-dark)}
@media(max-width:600px){.author-articles li a{grid-template-columns:70px minmax(0,75px) minmax(0,1fr);gap:8px;padding:9px 0}.author-articles time,.author-article-category{font-size:10px}}
.author-article-category{justify-self:start;max-width:100%;padding:2px 6px;border:1px solid var(--line);border-radius:3px;background:var(--soft);line-height:1.5}.author-article-category:empty{visibility:hidden}

/* Stretch the title link over the card while keeping its separate controls usable. */
.event-card .event-card-link{text-decoration:none}
.event-card .event-card-link::after{content:"";position:absolute;inset:0;z-index:1}
.event-card .event-card-link:focus-visible::after{outline:2px solid var(--accent);outline-offset:-3px;border-radius:var(--radius)}
.event-card .card-tags a{position:relative;z-index:2;text-decoration:none}
.event-card .card-media-labels,.event-card .save-button{z-index:2}
.event-card .card-action-labels a{text-decoration:none}/* MW WP Form uses the same contact fields and buttons as the site. */
.contact-form-actions{display:flex;flex-wrap:wrap;gap:12px}
.contact-form-actions input.button{width:auto;cursor:pointer}
.contact-consent{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:20px 0;font-size:12px}
.contact-consent label{display:inline-flex;align-items:center;gap:8px}
.contact-consent input[type=checkbox]{width:16px;height:16px;flex:none}
.contact-consent>a{color:var(--accent-dark);text-decoration:underline}
.contact-form .error{display:block;color:#a33229;font-size:12px;margin-top:6px}
.mw_wp_form_confirm .contact-form>label{white-space:pre-wrap;overflow-wrap:anywhere;border-bottom:1px solid var(--line);padding-bottom:16px}
.mw_wp_form_confirm #message-help{display:none}
.contact-form-actions input.button-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-size:14px;font-weight:600;padding:13px 25px}
.contact-form-actions input.button-outline{background:transparent;color:var(--ink);font-size:14px;padding:13px 25px}
.contact-form .contact-consent label>span{color:var(--ink);font-size:12px;margin-left:0}
.event-contribution{display:flex;flex-wrap:wrap;gap:12px}.contact-layout .photo-contribution-link{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.contact-layout .photo-contribution-link .button{min-width:0;padding:12px 8px;font-size:12px;white-space:normal;text-align:center;text-decoration:none}

/* Linked photographs beneath the article introduction. */
.event-photos-carousel{min-width:0;margin:24px 0 36px}
.event-photos-carousel .event-photo-track{gap:16px;background:transparent;border-radius:0;scrollbar-width:none}
.event-photos-carousel .event-photo-track::-webkit-scrollbar{display:none}
.event-photos-carousel .event-photo-slide{flex:0 0 calc((100% - 32px)/3);overflow:hidden;border-radius:12px}
.event-photos-carousel .event-photo-open{height:100%}
.event-photos-carousel .event-photo-slide img{height:auto;aspect-ratio:4/3;object-fit:cover}
.event-photos-carousel .event-photo-controls{justify-content:flex-end;margin-top:12px;gap:14px}
@media(max-width:600px){
 .event-photos-carousel .event-photo-track{gap:12px}
 .event-photos-carousel .event-photo-slide{flex-basis:88%}
}

/* Discreet photo navigation, overlaid within the photograph edges. */
.event-photos{position:relative}
.event-photos .event-photo-controls{position:absolute;inset:0 8px;display:flex;justify-content:space-between;align-items:center;margin:0;gap:0;pointer-events:none;z-index:2}
.event-photos .event-photo-controls[hidden]{display:none}
.event-photos .event-photo-controls button{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:1px solid rgba(55,48,38,.18);background:rgba(255,253,248,.94);color:#403b33;box-shadow:0 1px 5px rgba(0,0,0,.18);font-size:18px;line-height:1;pointer-events:auto;transition:background .2s}
.event-photos .event-photo-controls button:hover{background:#fff}
.event-photos .event-photo-controls button:disabled{visibility:hidden;pointer-events:none}

/* Lightbox motion and side navigation. */
.event-photo-dialog[open]{animation:photo-dialog-open .28s ease-out both}
.event-photo-dialog[open]::backdrop{animation:photo-backdrop-open .28s ease-out both}
.event-photo-dialog.is-closing{animation:photo-dialog-close .18s ease-in both}
.event-photo-dialog.is-closing::backdrop{animation:photo-backdrop-open .18s ease-in reverse both}
.event-photo-dialog-content figure{animation:photo-frame-in .22s ease-out both}
.event-photo-dialog .event-photo-dialog-controls{position:absolute;inset:48px 24px auto;height:min(70dvh,800px);margin:0;justify-content:space-between;pointer-events:none;z-index:3}
.event-photo-dialog-controls button{pointer-events:auto;flex:0 0 48px;width:48px;height:48px;background:rgba(255,253,248,.94);border:1px solid rgba(0,0,0,.15);box-shadow:0 2px 10px #0004}
.event-photo-dialog-controls button:disabled{visibility:hidden}
.event-photo-dialog-controls>span{position:absolute;top:-35px;left:50%;transform:translateX(-50%);font-size:12px;color:#ddd}
.event-photo-dialog-close{z-index:4}
.event-photo-large-frame{touch-action:pan-y pinch-zoom}
@keyframes photo-dialog-open{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:none}}
@keyframes photo-dialog-close{from{opacity:1;transform:none}to{opacity:0;transform:scale(.97)}}
@keyframes photo-backdrop-open{from{opacity:0}to{opacity:1}}
@keyframes photo-frame-in{from{opacity:.35;transform:scale(.985)}to{opacity:1;transform:none}}
@media(max-width:600px){.event-photo-dialog{padding-right:8px;padding-left:8px}.event-photo-dialog .event-photo-dialog-controls{left:12px;right:12px}.event-photo-dialog-controls button{flex-basis:44px;width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.event-photo-dialog[open],.event-photo-dialog[open]::backdrop,.event-photo-dialog-content figure{animation:none}}

/* Announcements share the site's editorial typography and sidebar. */
.news-layout{padding-bottom:72px}
.news-list-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--accent);padding-bottom:18px;gap:16px}
.news-list-heading h2{font-size:21px;margin:0}.news-list-heading>span{font-size:12px;color:var(--muted)}
.news-list{list-style:none;margin:0;padding:0}.news-list>li{border-bottom:1px solid var(--line)}
.news-row{display:flex;align-items:center;gap:24px;padding:27px 6px;color:inherit;text-decoration:none!important;transition:background .2s}
.news-row:hover{background:var(--soft)}.news-row:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.news-row-content{flex:1;min-width:0}.news-row>.icon{flex-shrink:0;width:22px;height:22px;color:var(--accent-dark)}
.news-meta{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.news-meta>.icon{width:16px;height:16px}
.news-row h3{font-size:21px;line-height:1.7;margin:7px 0 0;overflow-wrap:anywhere}.news-row p{font-size:14px;line-height:1.8;color:var(--muted);margin:8px 0 0}
.news-article-heading{padding:0 0 28px;border-bottom:1px solid var(--line);margin-bottom:32px}
.news-section-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.1em;color:var(--accent-dark);text-decoration:none!important;font-weight:700}.news-section-link span{letter-spacing:0;color:var(--muted);font-weight:400}
.news-article-heading h1{font-size:clamp(26px,2.7vw,36px);line-height:1.65;margin:16px 0 20px;overflow-wrap:anywhere}
.news-hero{margin:0 0 32px}.news-hero img{display:block;max-width:100%;height:auto;border-radius:12px}
.news-prose{overflow-wrap:anywhere}.news-prose>:first-child{margin-top:0}
.news-article-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:24px;margin-top:48px;font-size:13px}.news-article-footer>span{color:var(--muted)}
.news-empty{padding:32px 0;color:var(--muted)}
@media(max-width:800px){.news-page .article-sidebar{display:block;margin-top:48px}}
@media(max-width:600px){.news-layout{padding-bottom:44px}.news-row{padding:22px 2px;gap:16px}.news-row h3{font-size:18px}.news-row p{font-size:13px}.news-article-heading{padding-bottom:22px;margin-bottom:24px}.news-article-footer{flex-direction:column;align-items:flex-start;gap:16px;margin-top:32px}}

/* Keep search-result photo labels compact. */
.listing-layout .event-card .card-action-labels>a:nth-child(n+4){display:none}

/* Match the information-correction form field badges. */
.contact-form>label>span.om-form-label{display:inline-block;font-weight:400;color:#777;font-size:11px;margin-left:8px;vertical-align:middle}
.contact-form>label>span.om-form-required{color:var(--accent-dark,#a93426);border:1px solid currentColor;border-radius:3px;padding:0 5px;font-weight:600;line-height:1.6}

/* Uses the same high-priority assessment as the editorial content audit. */
.event-information-notice{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px;margin-top:0;margin-bottom:16px;padding:10px 14px;border:1px solid var(--line);border-radius:4px;background:#faf8f3;font-size:13px;line-height:1.7;color:var(--muted)}
.event-information-notice a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}
.event-information-notice a:focus-visible{outline:2px solid var(--accent-dark);outline-offset:3px}

.search-form option.search-region-option{font-weight:700}

.search-period{flex:1;min-width:0}
.search-period-title{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;margin-bottom:5px}
.search-period-switch{display:flex;gap:4px;margin-bottom:6px}
.search-period-switch button{flex:1;padding:5px 2px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;white-space:nowrap}
.search-period-switch button[aria-pressed="true"]{background:#eeede8;color:var(--ink);font-weight:700}
.search-period label{display:block}
.search-period label[hidden]{display:none}
.search-listing .search-period input[type="date"]{width:100%;min-width:0;box-sizing:border-box;min-height:44px;padding:8px 4px;border:1px solid #dfe1d9;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:12px}

/* Give the period controls their own row on phones. */
@media(max-width:600px){
 .listing-layout .search-listing .search-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
 .search-listing .search-period{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 10px;align-items:center}
 .search-listing .search-period-title{grid-column:1/-1;margin-bottom:0}
 .search-listing .search-period-switch{grid-column:2;grid-row:2;margin-bottom:0;min-width:0;gap:4px}
 .search-listing .search-period-switch button{min-width:0;min-height:44px;padding:6px 2px;font-size:12px}
 .search-listing .search-period label{grid-column:1;grid-row:2;min-width:0;margin:0}
 .search-listing .search-period select,.search-listing .search-period input[type="date"]{min-width:0;max-width:100%;min-height:44px;font-size:12px}
}

/* Period directly follows the keyword in both DOM and visual order. */
.search-listing>.search-period{grid-column:1/-1;grid-row:2;flex:initial;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-items:center}
.search-listing>.search-selects{grid-row:3}
.search-listing>.search-period .search-period-title{grid-column:1/-1;margin:0}
.search-listing>.search-period .icon{width:12px;height:12px}
.search-listing>.search-period .search-period-switch{grid-column:2;grid-row:2;min-width:0;margin:0}
.search-listing>.search-period .search-period-switch button{min-width:0;min-height:44px;font-size:12px}
.search-listing>.search-period label{grid-column:1;grid-row:2;min-width:0;margin:0}

@media(min-width:601px){
 .search-listing>.search-period{grid-template-columns:minmax(0,1fr);gap:5px}
 .search-listing>.search-period label{grid-column:1;grid-row:2}
 .search-listing>.search-period .search-period-switch{grid-column:1;grid-row:3}
 .search-listing>.search-period .search-period-switch button{min-height:28px;padding:3px 8px;font-size:11px;line-height:1.4}
}

.card-date .card-period-more{font-size:11px;font-weight:400;opacity:.7;white-space:nowrap;margin-left:5px}

.prefecture-map-link{margin-top:18px}.prefecture-map-link .button{max-width:100%;white-space:normal}


.listing-map-link{display:flex;width:100%;box-sizing:border-box;justify-content:center;gap:8px;margin-top:18px;padding:15px 12px;min-height:52px;white-space:normal;text-align:center;text-decoration:none}.listing-map-link span{min-width:0;font-size:13px;line-height:1.6}.listing-map-link .icon{width:18px;height:18px;flex-shrink:0}


.listing-map-link.button-outline{background:#fff;color:var(--ink);border:1px solid var(--line,#d7d9d1)}.listing-map-link.button-outline:hover{background:var(--soft);border-color:#999f94}


.browse-more>.listing-map-link-mobile{display:none}
@media(max-width:600px){.listing-filter-column>.listing-map-link-desktop{display:none}.browse-more>.listing-map-link-mobile{display:flex;margin-top:3px;padding:15px 12px;gap:8px}.browse-more>.listing-map-link-mobile .icon{width:18px}}

/* Collapsible search conditions on phones; always expanded on desktop. */
.filter-panel>summary{display:flex;align-items:center;gap:8px;list-style:none;margin-bottom:20px}
.filter-panel>summary::-webkit-details-marker{display:none}
.filter-panel>summary h2{margin:0;font-size:18px;line-height:1.6}
.filter-panel>summary>.icon:first-child{width:18px;color:var(--accent)}
.filter-panel>summary>.icon:last-child{display:none}
@media(min-width:601px){
 .filter-panel::details-content{content-visibility:visible}
 .filter-panel>.filter-panel-content{display:block}
}
@media(max-width:600px){
 .listing-layout .filter-panel{padding:10px 12px}
 .listing-layout .filter-panel>summary{cursor:pointer;min-height:28px;margin:0}
 .filter-panel>summary h2{font-size:14px}
 .filter-panel>summary>.icon:last-child{display:block;margin-left:auto;width:16px;height:16px;transition:transform .2s ease}
 .filter-panel[open]>summary>.icon:last-child{transform:rotate(180deg)}
 .listing-layout .filter-panel[open]>summary{margin-bottom:10px}
}
@media(prefers-reduced-motion:reduce){.filter-panel>summary>.icon:last-child{transition:none}}

/* Normalize native month/date controls, including iOS date-field sizing. */
@media(max-width:600px){
 .listing-layout .search-listing{--search-control-height:40px;gap:8px}
 .listing-layout .search-listing>.search-period{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
 .listing-layout .search-listing>.search-period label[data-period-panel]{box-sizing:border-box;width:100%;min-width:0;height:var(--search-control-height);padding:0;margin:0}
 .listing-layout .search-listing>.search-period label[data-period-panel][hidden]{display:none}
 .listing-layout .search-listing select,
 .listing-layout .search-listing input[type="search"],
 .listing-layout .search-listing .search-period input[type="date"]{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;height:var(--search-control-height);min-height:var(--search-control-height);max-height:var(--search-control-height);margin-bottom:0;border:1px solid #dfe1d9;border-radius:5px;background-color:#fff;font-family:inherit;font-size:14px;font-weight:400;line-height:normal}
 .listing-layout .search-listing select{padding:0 6px}
 .listing-layout .search-listing .search-period select{margin:0}
 .listing-layout .search-listing .search-period input[type="date"]{-webkit-appearance:none;appearance:none;padding:0 6px;margin:0;text-align:left}
 .listing-layout .search-listing .search-period input[type="date"]::-webkit-date-and-time-value{min-height:1em;text-align:left}
 .listing-layout .search-listing .search-period input[type="date"]::-webkit-datetime-edit{padding:0;min-width:0}
 .listing-layout .search-listing>.search-period .search-period-switch{height:var(--search-control-height);align-items:stretch}
 .listing-layout .search-listing>.search-period .search-period-switch button{box-sizing:border-box;height:var(--search-control-height);min-height:var(--search-control-height);padding:0 4px;line-height:1.4}
 .listing-layout .search-listing>.button{min-height:40px;padding-block:8px;font-size:13px}
}

@media(max-width:600px){.weekend-intro h2>br{display:block}}

/* Keep ordered-list numbers inside the content without left indentation. */
body ol,body .table-of-contents ol{padding-left:0;padding-inline-start:0;list-style-position:inside}

.sidebar-discovery-links{list-style:none;padding:0;margin:0}.sidebar-discovery-links li+li{border-top:1px solid var(--line)}.sidebar-discovery-links a{display:flex;align-items:center;gap:9px;padding:11px 0;font-size:12px;text-decoration:none}.sidebar-discovery-links a>span{flex:1;min-width:0}.sidebar-discovery-links small{color:var(--muted);font-size:10px;white-space:nowrap}.sidebar-discovery-links .icon{width:17px;height:17px;flex-shrink:0}.sidebar-discovery-links .icon:last-child{width:12px;color:var(--muted)}.sidebar-action-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sidebar-action-links a{display:flex;align-items:center;gap:7px;padding:10px 8px;background:#fff;border:1px solid var(--line);border-radius:5px;font-size:12px;text-decoration:none}.sidebar-action-links .icon{width:18px;height:18px;flex-shrink:0}.sidebar-discovery a:hover{color:var(--accent)}

/* Match the white editorial sidebar panels and the site's warm accent colours. */
.sidebar-panel.sidebar-discovery{padding:20px 16px;background:#fff}
.sidebar-discovery-links a{gap:10px;font-size:13px;line-height:1.65}
.sidebar-discovery-links a>.icon:first-child{box-sizing:content-box;width:19px;height:19px;padding:8px;border-radius:7px;background:var(--cream);color:var(--accent)}
.sidebar-discovery-links a>span{font-weight:600}
.sidebar-discovery-links small{font-size:11px;font-variant-numeric:tabular-nums}
.sidebar-action-links{gap:9px}
.sidebar-action-links a{min-height:48px;line-height:1.5;font-size:13px;border-color:var(--line);background:var(--soft);border-radius:7px;transition:background-color .18s,color .18s}
.sidebar-action-links .icon{color:var(--accent);width:20px;height:20px}
.sidebar-action-links a:hover,.sidebar-action-links a:focus-visible{background:var(--cream);color:var(--accent-dark)}
.sidebar-discovery-links a:hover>span,.sidebar-discovery-links a:focus-visible>span{color:var(--accent-dark)}

.sidebar-panel.sidebar-recent{padding:20px 16px;background:#fff}
.sidebar-recent .sidebar-recent-link{grid-template-columns:72px minmax(0,1fr) 12px;gap:10px;align-items:center;text-decoration:none}
.sidebar-recent .sidebar-story-image{border-radius:7px}
.sidebar-recent .sidebar-story-image img{height:72px}
.sidebar-recent .sidebar-story-copy strong{font-size:13px;line-height:1.65}
.sidebar-recent-location{display:flex;align-items:flex-start;gap:4px;margin-bottom:5px;color:var(--muted);font-size:10px;line-height:1.6;overflow-wrap:anywhere}
.sidebar-recent-location .icon{width:13px;height:13px;margin-top:2px;flex-shrink:0;color:var(--accent)}
.sidebar-recent-link>.icon{width:12px;height:12px;color:var(--muted)}
.sidebar-recent .sidebar-story-list>li+li{margin-top:12px;padding-top:12px}
.sidebar-recent-link:hover strong,.sidebar-recent-link:focus-visible strong{color:var(--accent-dark)}
/* Compact Rakuten review information; the score is the original API value. */
.lodging-hotel-review{display:inline-flex;align-items:center;gap:5px;max-width:100%;font-size:11px;line-height:1.6;white-space:nowrap;color:var(--muted);font-weight:400}
.lodging-hotel-stars{position:relative;display:inline-block;flex:none;font:12px/1 Arial,sans-serif;letter-spacing:1px;color:#d9d5cd}
.lodging-hotel-stars>span{position:absolute;inset:0 auto 0 0;width:var(--rating-fill);overflow:hidden;white-space:nowrap;color:#a77424}
.lodging-hotel-review-count{font-size:10px}
/* Hotel cards share the upcoming carousel's controls, motion and visual rhythm. */
.lodging-carousel{container-type:inline-size;min-width:0}
.event-lodging .lodging-hotels.upcoming-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 66px)/3.1);gap:22px;overflow-x:auto;overflow-y:hidden;max-height:none;padding:6px 0 12px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 66px)/31),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 66px)/31),transparent 100%)}
.event-lodging .lodging-hotels.upcoming-track::-webkit-scrollbar{display:none}
.event-lodging .lodging-hotels.is-at-end{-webkit-mask-image:none;mask-image:none}
.event-lodging .lodging-controls[hidden]{display:none}
.event-lodging a.lodging-hotel.event-card{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;scroll-snap-align:start;transition:box-shadow .2s,border-color .2s}
.event-lodging a.lodging-hotel.event-card:hover{background:#fff;border-color:#d7ccbc;box-shadow:var(--shadow)}
.event-lodging .lodging-hotel-image{position:relative;flex:none;align-self:stretch;width:100%;aspect-ratio:4/3;background:var(--soft);overflow:hidden}
.event-lodging .lodging-vacancy-label{position:absolute;top:10px;left:10px;z-index:1;padding:3px 9px;border-radius:3px;background:#267044;color:#fff;font-size:12px;font-weight:700;line-height:1.6}
.event-lodging .lodging-status.is-loading{display:flex;align-items:center;gap:9px;color:var(--muted)}
.event-lodging .lodging-status.is-loading::before{content:"";flex:0 0 16px;width:16px;height:16px;box-sizing:border-box;border:2px solid var(--line);border-top-color:var(--accent-dark);border-radius:50%;animation:lodging-loading-spin .8s linear infinite}
@keyframes lodging-loading-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.event-lodging .lodging-status.is-loading::before{animation:none}}
.event-lodging .lodging-hotel-image img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;margin:0}
.event-lodging .lodging-hotel-image.is-unavailable{display:grid;place-items:center;color:var(--muted);font-size:11px}
.event-lodging .lodging-hotel-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:14px;min-width:0}
.event-lodging .lodging-hotel-heading{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.event-lodging .lodging-hotel-heading h3{font-size:16px;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.event-lodging .lodging-hotel-heading .lodging-hotel-address{font-size:11px;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.event-lodging .lodging-hotel .lodging-hotel-access{font-size:11px;line-height:1.65;margin:0}
.event-lodging .lodging-hotel .lodging-hotel-price{margin:auto 0 0;padding-top:8px;border-top:1px solid var(--line);text-align:left;align-self:stretch}
.event-lodging .lodging-hotel-price small{white-space:normal;font-size:10px;line-height:1.5}
.event-lodging .lodging-hotel-review{gap:3px;font-size:11px}
@container(max-width:720px){.event-lodging .lodging-hotels.upcoming-track{grid-auto-columns:calc((100% - 44px)/2.1);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 44px)/21),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 44px)/21),transparent 100%)}}
@container(max-width:480px){.event-lodging .lodging-hotels.upcoming-track{grid-auto-columns:calc((100% - 16px)/1.1);gap:16px;-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 16px)/11),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - (100% - 16px)/11),transparent 100%)}}
.event-lodging .lodging-hotels.upcoming-track.is-at-end{-webkit-mask-image:none;mask-image:none}
@media(prefers-reduced-motion:reduce){.event-lodging a.lodging-hotel.event-card{transition:none}}
.event-lodging .lodging-more.button-outline{background:#fff;border-color:var(--line);color:var(--ink);text-decoration:none;line-height:1.6;text-align:center}
.event-lodging .lodging-more.button-outline:hover{background:var(--soft);border-color:#999f94;text-decoration:none}

/* Product recommendations share the festival carousel's controls and motion. */
.trip-product-carousel{container-type:inline-size}
.trip-gear .trip-products.upcoming-track{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 88px)/4.1);gap:22px;-webkit-mask-image:linear-gradient(to right,#000 0,#000 97%,transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 97%,transparent 100%)}
.trip-gear .trip-products.is-at-end{-webkit-mask-image:none;mask-image:none}
.trip-gear .trip-product-controls[hidden]{display:none}
.trip-gear .trip-product.event-card{display:flex;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;text-decoration:none;color:var(--ink)}
.trip-gear .trip-product.event-card:hover{background:#fff;box-shadow:var(--shadow)}
.trip-gear .trip-product-media{position:relative;width:100%;height:auto;min-height:0;aspect-ratio:4/3;flex:none;padding:0;overflow:hidden}
.trip-gear .trip-product-media>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;border-radius:0;margin:0;object-fit:contain}
.trip-gear .trip-product-body{display:flex;flex-direction:column;gap:6px;padding:14px;min-width:0}
.trip-gear .trip-product h3{font-size:15px;line-height:1.65;margin:0;border:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.trip-gear .trip-product-body>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.trip-gear .trip-product-price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.trip-gear .trip-product-price{margin:0;font-size:18px}
.trip-gear .trip-product-cta{font-size:11px;margin-top:2px}
@container(max-width:720px){.trip-gear .trip-products.upcoming-track{grid-auto-columns:calc((100% - 44px)/2.1)}}
@container(max-width:480px){.trip-gear .trip-products.upcoming-track{grid-auto-columns:calc((100% - 16px)/1.1);gap:16px}}

.event-tokyo-travel{display:inline-block;font-size:11px;font-weight:400;line-height:1.7;color:var(--muted);vertical-align:baseline}.event-info .event-tokyo-travel{margin-inline-start:10px}.event-tokyo-travel-note{display:block;margin-top:5px;font-size:10px;line-height:1.7;color:var(--muted)}


@media(max-width:600px){
 .recommendation-section .editor-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:88%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:0 0 12px;scrollbar-width:thin;scrollbar-color:#b7b9ad transparent}
 .recommendation-section .editor-grid>.editor-card{scroll-snap-align:start;min-width:0}
 .recommendation-section .editor-grid:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
}

/* Ranking rows: status on the thumbnail from fourth place onward. */
.ranking-expanded .ranking-thumbnail{position:relative;display:block;width:120px;height:96px;overflow:hidden;border-radius:5px}
.ranking-expanded .ranking-thumbnail>img{display:block;width:100%;height:100%;object-fit:cover}
.ranking-expanded .ranking-thumbnail>.card-timing-label{max-width:100%;box-sizing:border-box;padding:3px 5px;font-size:10px;overflow-wrap:anywhere}
@media(max-width:600px){.ranking-expanded .ranking-thumbnail{width:76px;height:88px}.ranking-expanded .ranking-thumbnail>.card-timing-label{font-size:9px;padding:3px 4px}}

/* Saved editorial companion notes: no runtime generation. */
.event-companion{display:flex;align-items:center;gap:16px;margin:24px 0}.event-companion figure{flex:none;width:64px;margin:0;text-align:center}.event-companion img{display:block;width:64px;height:64px;object-fit:contain;border-radius:50%;background:#f6f1e7}.event-companion figcaption{font-size:11px;line-height:1.5;margin-top:5px}.event-companion>p{position:relative;flex:1;min-width:0;margin:0;padding:17px 22px;border-radius:16px;background:#f6f1e7;font-size:15px;line-height:1.8;font-weight:600;overflow-wrap:anywhere}.event-companion>p:before{content:"";position:absolute;left:-12px;top:25px;border:6px solid transparent;border-right-color:#f6f1e7}
@media(max-width:450px){.event-companion{gap:10px}.event-companion figure{width:50px}.event-companion img{width:50px;height:50px}.event-companion>p{padding:14px;font-size:14px}}

.event-ended-notice{padding:16px 20px;margin:0 0 18px;border:1px solid #ddd4c4;border-radius:5px;background:#f8f5ef;color:#51483d;font-weight:600;line-height:1.8;text-align:center}

@media(max-width:600px){.surprise-image-caption .card-action-labels{display:none}}
