.festival-page{color:#24374f;max-width:1200px;margin:auto;padding:30px 32px 70px}.festival-hero{padding:35px 0 28px}.festival-hero h1{letter-spacing:-1.5px;margin:9px 0 15px;font-size:clamp(29px,4vw,44px)}.festival-hero>p{color:#526278;line-height:1.8}.festival-summary{color:#64758a;flex-wrap:wrap;gap:10px 24px;margin-top:24px;font-size:13px;display:flex}.festival-summary strong{color:#246855;font-size:20px}.festival-filters{background:#f3f6f4;border:1px solid #dce5df;border-radius:16px;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:24px;display:grid}.festival-filters label{color:#4d6257;flex-direction:column;gap:8px;font-size:12px;font-weight:600;display:flex}.festival-filters select,.festival-filters input{color:#24374f;width:100%;min-width:0;min-height:46px;font:inherit;background:#fff;border:1px solid #d0dbd4;border-radius:8px;padding:10px 12px;font-size:14px}.festival-search{grid-column:span 2}.festival-filter-actions{grid-column:1/-1;gap:9px;display:flex}.festival-filter-actions button{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#2e6653;border:1px solid #2e6653;border-radius:8px;padding:8px 24px}.festival-filter-actions button[type=reset]{color:#2e6653;background:#fff}.festival-filter-note{color:#58695e;grid-column:1/-1;font-size:12px;line-height:1.7}.festival-result{color:#53645c;margin:28px 0 20px;font-size:14px}.festival-list-section{margin:30px 0 42px}.festival-list-section>h2{letter-spacing:-.5px;margin-bottom:16px;font-size:21px}.festival-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.festival-card{background:#fff;border:1px solid #e1e7e3;border-radius:13px;flex-direction:column;min-width:0;padding:24px 22px;display:flex;box-shadow:0 4px 15px #263e3110}.festival-card-top{color:#65766b;justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;font-size:11px;display:flex}.festival-status{color:#7b633c;white-space:nowrap;background:#f2efe7;border-radius:20px;padding:5px 8px;font-size:10px}.festival-status.confirmed{color:#236046;background:#e5f1e9}.festival-status.past{color:#6b6b6b;background:#eee}.festival-card h3{letter-spacing:-.5px;color:#24374f;font-size:20px;line-height:1.5}.festival-ja{color:#7c877f;margin:4px 0 19px;font-size:11px}.festival-location{color:#52695a;font-size:12px}.festival-date{color:#28644c;margin:9px 0 14px;font-size:14px;font-weight:600;line-height:1.8}.festival-description{color:#4d5f55;font-size:13px;line-height:1.85}.festival-date-note{color:#8b7658;margin:12px 0;font-size:11px;line-height:1.7}.festival-card-links{color:#28644c;flex-direction:column;gap:10px;margin-top:auto;padding-top:22px;font-size:12px;font-weight:600;display:flex}.festival-source{color:#849088;margin-top:18px;font-size:10px}.festival-source a{text-decoration:underline}.festival-editorial-note{color:#657269;border-top:1px solid #dce4df;margin-top:35px;padding-top:24px}.festival-editorial-note h2{margin-bottom:12px;font-size:16px}.festival-editorial-note p{margin:10px 0;font-size:12px;line-height:1.9}.festival-empty,.festival-error,.festival-empty-region{background:#f5f7f5;border-radius:10px;padding:24px;font-size:14px;line-height:1.8}.festival-error{color:#a43224}.festival-section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.festival-section-heading h2{margin-top:6px;font-size:24px}.festival-section-heading>a{color:#28644c;font-size:12px}.festival-section-note{color:#6f7d73;margin:12px 0 18px;font-size:12px;line-height:1.8}.destination-festivals{border-top:1px solid #dce5df;margin:40px 0;padding-top:28px}[data-festival-empty][hidden],[data-festival-error][hidden]{display:none}@media (width<=950px){.festival-grid,.festival-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.festival-page{padding:22px 18px 45px}.festival-hero{padding:20px 0 25px}.festival-grid{grid-template-columns:1fr}.festival-filters{gap:14px 10px;padding:18px 14px}.festival-card{padding:22px}.festival-section-heading{flex-direction:column;align-items:start}.festival-section-heading h2{font-size:21px}}.festival-now{margin:12px 0 32px}.festival-now .festival-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.festival-now .festival-section-heading span{color:#667c6d;font-size:12px}.festival-filters{flex-direction:column;gap:20px;display:flex}.festival-filter-panel{flex-wrap:wrap;gap:14px;display:flex}.festival-filter-panel>label{flex:1;min-width:170px}.festival-filter-panel[data-filter-section=month],.festival-filter-panel[data-filter-section=date]{display:block}.filter-label{color:#4d6257;margin-bottom:10px;font-size:12px;font-weight:700;display:block}.festival-months,.festival-quick-dates,.festival-region-shortcuts,.festival-chips,.festival-view-switch{flex-wrap:wrap;gap:8px;display:flex}.festival-page button{font:inherit;cursor:pointer}.festival-months button,.festival-quick-dates button,.festival-region-shortcuts button,.festival-chips button,.festival-view-switch button,.festival-empty button,.calendar-toolbar button,.festival-mobile-tabs button{color:#345c49;background:#fff;border:1px solid #cddcd2;border-radius:9px;min-height:44px;padding:10px 14px;font-size:12px}.festival-page button[aria-pressed=true]{color:#fff;background:#27634d;border-color:#27634d}.festival-months button{flex:1;min-width:58px;padding:10px 8px}.festival-date-fields{align-items:center;gap:12px;margin-bottom:12px;display:flex}.festival-date-fields label{flex:1}.festival-more{align-items:end}.festival-more .festival-search{flex:2}.festival-filter-actions{margin:0}.festival-region-shortcuts{margin:18px 0}.festival-chips{margin:12px 0}.festival-chips button{background:#e8f2ec;min-height:36px;padding:7px 12px}.festival-view-switch{justify-content:flex-end}.festival-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.festival-category{color:#667969;margin:0 0 10px;font-size:11px}.festival-mobile-tabs{display:none}.festival-calendar{margin:24px 0}.calendar-toolbar{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.calendar-toolbar input{font:inherit;border:1px solid #ccdace;border-radius:8px;padding:10px}.festival-calendar>p{color:#647568;margin:12px 0;font-size:12px;line-height:1.8}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{text-align:center;background:#eef4ef;padding:10px;font-size:12px}.calendar-day,.calendar-blank{border:1px solid #e0e8e1;min-width:0;min-height:105px;padding:8px}.calendar-day time{font-size:12px;font-weight:700}.calendar-day a{color:#28634a;overflow-wrap:anywhere;background:#e5f1e8;border-radius:4px;margin-top:5px;padding:4px;font-size:11px;line-height:1.5;display:block}.calendar-day.today{outline-offset:-2px;outline:2px solid #3e805c}.calendar-day summary{cursor:pointer;margin-top:7px;font-size:11px}[hidden]{display:none!important}@media (width<=950px){.festival-now .festival-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-months{flex-wrap:nowrap;overflow:auto}.festival-months button{flex:none}}@media (width<=600px){.festival-now .festival-grid{scroll-snap-type:x mandatory;gap:12px;display:flex;overflow-x:auto}.festival-now .festival-card{scroll-snap-align:start;min-width:85%}.festival-mobile-tabs{z-index:4;background:#fff;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px 0;display:grid;position:sticky;top:0}.festival-filters{gap:0;padding:12px}.festival-filter-panel{padding:5px 0 12px;display:none}.festival-filter-panel.mobile-open{display:flex}.festival-filter-panel[data-filter-section=month],.festival-filter-panel[data-filter-section=date]{display:none}.festival-filter-panel[data-filter-section=month].mobile-open,.festival-filter-panel[data-filter-section=date].mobile-open{display:block}.festival-filter-panel>label{min-width:120px}.festival-filter-note{margin:0;font-size:11px}.festival-date-fields{gap:5px}.festival-filters input{padding:10px 7px}.festival-region-shortcuts{flex-wrap:nowrap;overflow-x:auto}.festival-region-shortcuts button{flex:none}.festival-quick-dates{gap:6px}.festival-quick-dates button{padding:9px 12px}.calendar-day,.calendar-blank{min-height:85px;padding:4px}.calendar-day a{padding:2px;font-size:10px}.calendar-toolbar{gap:8px}.calendar-toolbar label{font-size:12px}.festival-now .festival-section-heading{gap:5px}}
