/* Chiba Gakugei High School | Festival 2026.
   The content styles are namespaced to #festival2026 for safe embedding. */
:root { color-scheme: light; }
.f-standalone { margin: 0; background: #fff; color: #182c3e; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; }
.f-standalone *, .f-standalone *::before, .f-standalone *::after { box-sizing: border-box; }
.f-standalone .f-skip { position: absolute; left: 12px; top: -70px; padding: 10px 15px; z-index: 1000; background: white; color: #132d45; }
.f-standalone .f-skip:focus { top: 10px; }
.f-site-header { background: #fff; border-bottom: 1px solid #e5e9ee; }
.f-site-header-inner { max-width: 1160px; margin: auto; min-height: 91px; padding: 16px 28px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.f-school-mark { text-decoration: none; color: #17334d; display: flex; flex-direction: column; line-height: 1.25; }
.f-school-mark:hover { opacity: .83; }
.f-school-name { font-size: 24px; font-weight: 800; letter-spacing: .16em; }
.f-school-en { margin-top: 7px; font-size: 10px; font-weight: 700; letter-spacing: .11em; }
.f-site-header nav { display:flex; flex-wrap: wrap; gap: 27px; }
.f-site-header nav a { color: #264358; text-decoration: none; font-size: 13px; font-weight: 700; }
.f-site-header nav a:hover { color: #9e3c6c; }
.f-site-footer { color: #e6edf1; background: #162e45; }
.f-site-footer-inner { max-width: 1160px; margin: auto; padding: 45px 28px; display:flex; justify-content:space-between; gap:30px; line-height: 1.9; font-size: 14px; }
.f-site-footer strong { font-size: 17px; }
.f-site-footer a { color: #e6edf1; font-weight: 700; }
.f-site-footer small { color: #afc0ca; }

#festival2026 {
 --f-ink:#114a28; --f-text:#1f2421; --f-muted:#5a6360; --f-rose:#1a6b3c;
 --f-rose-pale:#edf5ef; --f-navy:#114a28; --f-border:#dde2dd; --f-bg:#f6f7f4;
 width:100%; margin:0 auto; color:var(--f-text); background:#fff;
 font-family:"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
 line-height:1.85; font-size:15px; font-weight:500; -webkit-font-smoothing:antialiased;
}
#festival2026 *, #festival2026 *::before, #festival2026 *::after { box-sizing:border-box; }
#festival2026 a { color:inherit; }
#festival2026 a:focus-visible { outline:3px solid #226db2; outline-offset:3px; }
#festival2026 img { display:block; width:100%; max-width:100%; height:auto; }
#festival2026 h1, #festival2026 h2, #festival2026 h3, #festival2026 h4, #festival2026 p, #festival2026 figure { margin:0; }
#festival2026 h1, #festival2026 h2, #festival2026 h3, #festival2026 h4 { color:var(--f-ink); line-height:1.45; }
#festival2026 p { overflow-wrap:anywhere; }
#festival2026 ul { padding:0; margin:0; }
#festival2026 li { list-style:none; }
#festival2026 section[id] { scroll-margin-top:94px; }
#festival2026 .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Hero: school-site hierarchy and 2026 poster accent */
#festival2026 .f-hero { background:linear-gradient(126deg,#f6f7f4 6%,#f6f7f4 95%); position:relative; overflow:hidden; min-height:575px; padding:76px max(30px,calc((100% - 1110px)/2)); display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); align-items:center; gap:76px; }
#festival2026 .f-hero::before { content:""; position:absolute; width:610px; height:610px; top:-390px; right:-165px; border:1px solid rgba(138,54,94,.16); border-radius:50%; box-shadow:0 0 0 50px rgba(138,54,94,.025),0 0 0 115px rgba(138,54,94,.019); pointer-events:none; }
#festival2026 .f-hero-copy, #festival2026 .f-hero-art { position:relative; z-index:1; }
#festival2026 .f-section-english { font-family: Arial, Helvetica, sans-serif; text-transform:uppercase; letter-spacing:.2em; font-size:12px; line-height:1.55; font-weight:800; color:var(--f-rose); }
#festival2026 .f-hero-kicker { display:block; margin-bottom:16px; }
#festival2026 .f-hero h1 { font-size:clamp(42px,5.4vw,79px); letter-spacing:.085em; font-weight:800; }
#festival2026 .f-heading-year { margin-left:17px; font-family:Arial, Helvetica, sans-serif; letter-spacing:.01em; vertical-align:middle; font-size:21px; color:#82929d; font-weight:700; }
#festival2026 .f-hero-label { font-size:13px; margin-top:38px; color:var(--f-muted); font-weight:700; letter-spacing:.1em; }
#festival2026 .f-theme { display:flex; align-items:baseline; flex-wrap:wrap; column-gap:13px; color:var(--f-rose); }
#festival2026 .f-theme strong { font-family:Arial,Helvetica,sans-serif; font-size:clamp(35px,4.6vw,57px); line-height:1.22; letter-spacing:-.045em; }
#festival2026 .f-theme span { font-size:clamp(17px,1.8vw,22px); font-weight:800; letter-spacing:.02em; }
#festival2026 .f-date-layout { display:flex; align-items:center; gap:17px; margin:34px 0 10px; padding-top:27px; border-top:1px solid #dde2dd; }
#festival2026 .f-date-block small { display:block; font-family:Arial,Helvetica,sans-serif; color:#758796; font-size:10px; line-height:1.1; letter-spacing:.14em; font-weight:800; }
#festival2026 .f-date-main { display:flex; align-items:baseline; gap:7px; }
#festival2026 .f-date-main b { font-family:Arial,Helvetica,sans-serif; font-size:clamp(31px,3vw,39px); color:var(--f-ink); line-height:1.4; letter-spacing:-.03em; }
#festival2026 .f-date-main span { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; border-radius:50%; background:#edf5ef; color:var(--f-rose); font-weight:800; font-size:13px; }
#festival2026 .f-date-symbol { color:#b4a3ad; font-size:25px; margin-top:18px; }
#festival2026 .f-opening { color:var(--f-ink); font-size:15px; margin-top:10px; }
#festival2026 .f-opening span { font-size:19px; color:var(--f-rose); vertical-align:middle; }
#festival2026 .f-opening strong { font:700 21px Arial,Helvetica,sans-serif; margin-left:8px; }
#festival2026 .f-hero-venue { margin-top:10px; color:var(--f-muted); font-size:14px; }
#festival2026 .f-primary-link { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; background:var(--f-navy); color:white; border-radius:3px; text-decoration:none; font-weight:800; padding:12px 24px; font-size:14px; margin-top:26px; transition:background .2s,transform .2s; }
#festival2026 .f-primary-link:hover { background:var(--f-rose); transform:translateY(-2px); }
#festival2026 .f-hero-art { width:100%; max-width:345px; justify-self:center; padding-top:4px; }
#festival2026 .f-hero-art a { display:block; box-shadow:0 24px 55px rgba(25,38,53,.22); border:7px solid #fff; background:#fff; transform:rotate(2deg); transition:transform .2s; }
#festival2026 .f-hero-art a:hover { transform:rotate(0deg) scale(1.015); }
#festival2026 .f-hero-art img { aspect-ratio:982 / 1550; object-fit:cover; }
#festival2026 .f-hero-art-note { display:block; font-size:11px; color:#6c7a87; text-align:center; letter-spacing:.07em; padding-top:16px; }

/* Page navigation */
#festival2026 .f-section-nav { position:sticky; top:0; z-index:30; background:rgba(255,255,255,.975); border-top:1px solid var(--f-border); border-bottom:1px solid var(--f-border); box-shadow:0 3px 13px rgba(30,52,70,.045); }
#festival2026 .f-section-nav-inner { max-width:1100px; margin:auto; padding:0 20px; display:flex; justify-content:space-between; align-items:stretch; gap:17px; overflow-x:auto; scrollbar-width:thin; }
#festival2026 .f-section-nav a { flex:1 0 max-content; min-width:92px; padding:18px 5px 17px; display:block; text-align:center; font-size:13px; line-height:1.4; color:#3b4e5f; text-decoration:none; font-weight:800; border-bottom:3px solid transparent; transition:color .2s,border-color .2s; }
#festival2026 .f-section-nav a:hover, #festival2026 .f-section-nav a[aria-current="true"] { color:var(--f-rose); border-bottom-color:var(--f-rose); }

/* Section common */
#festival2026 .f-section { padding:91px max(27px,calc((100% - 1090px)/2)) 96px; }
#festival2026 .f-section-alt { background:var(--f-bg); }
#festival2026 .f-section-heading { margin-bottom:42px; }
#festival2026 .f-section-heading .f-section-english { margin-bottom:9px; }
#festival2026 .f-section-heading h2 { font-size:clamp(28px,3.4vw,40px); font-weight:800; letter-spacing:.075em; padding-bottom:20px; margin-bottom:17px; position:relative; }
#festival2026 .f-section-heading h2::after { content:""; position:absolute; left:0; bottom:0; width:52px; height:3px; background:var(--f-rose); }
#festival2026 .f-section-heading > p:last-child { color:#657888; font-size:14px; }

/* Messages */
#festival2026 .f-greetings { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
#festival2026 .f-greeting { border:1px solid var(--f-border); border-top:4px solid var(--f-rose); padding:32px 32px 36px; background:#fff; box-shadow:0 8px 27px rgba(10,27,43,.035); }
#festival2026 .f-greeting-role { color:var(--f-rose); font-size:12px; font-weight:800; letter-spacing:.08em; }
#festival2026 .f-greeting h3 { font-size:24px; margin:4px 0 21px; }
#festival2026 .f-greeting h3 span { color:#73818b; font-weight:600; font-size:15px; }
#festival2026 .f-greeting > p:not(.f-greeting-role) { line-height:2.05; font-size:14px; margin-top:11px; }

/* Schedule */
#festival2026 .f-info-strip { display:flex; gap:11px; align-items:center; flex-wrap:wrap; font-size:13px; margin:-10px 0 26px; color:#657583; }
#festival2026 .f-info-strip strong { color:var(--f-ink); }
#festival2026 .f-info-divider { color:#a5b2ba; padding:0 8px; }
#festival2026 .f-schedule-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; align-items:start; }
#festival2026 .f-schedule-card { background:#fff; overflow:hidden; border:1px solid #e5e7e9; border-radius:5px; }
#festival2026 .f-schedule-head { display:flex; align-items:baseline; gap:13px; padding:22px 26px; color:#fff; background:var(--f-navy); }
#festival2026 .f-schedule-date { font-size:24px; font-weight:800; line-height:1.4; letter-spacing:.02em; }
#festival2026 .f-schedule-day { font-size:12px; background:rgba(255,255,255,.16); padding:3px 10px; border-radius:30px; }
#festival2026 .f-schedule-card table { width:100%; border-collapse:collapse; text-align:left; font-size:14px; }
#festival2026 .f-schedule-card thead { color:#526779; background:#e9eef1; font-size:12px; }
#festival2026 .f-schedule-card thead th { padding:10px 22px; }
#festival2026 .f-schedule-card tr { border-bottom:1px solid #edf0f2; }
#festival2026 .f-schedule-card tr:last-child { border:0; }
#festival2026 .f-schedule-card tbody th { white-space:nowrap; padding:12px 10px 12px 24px; width:110px; color:var(--f-rose); font-weight:800; font-variant-numeric:tabular-nums; }
#festival2026 .f-schedule-card tbody td { padding:12px 17px 12px 4px; color:var(--f-ink); font-weight:700; }
#festival2026 .f-schedule-note { margin-top:20px; font-size:13px; color:#5b6d7a; padding:0 2px; }
#festival2026 .f-schedule-note span { color:var(--f-rose); }
#festival2026 .f-photo-pair { margin-top:31px; display:grid; grid-template-columns:1.48fr 1fr; gap:23px; }
#festival2026 .f-photo { min-width:0; }
#festival2026 .f-photo-link { display:block; width:100%; overflow:hidden; background:#e8edf2; }
#festival2026 .f-photo-link img { object-fit:cover; transition:transform .24s ease; }

#festival2026 .f-photo figcaption { font-size:12px; color:#647987; padding:11px 2px 0; }
#festival2026 .f-photo-pair .f-photo img { height:245px; }

/* Exhibition listings */
#festival2026 .f-exhibits-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:19px; }
#festival2026 .f-exhibit-card { border:1px solid var(--f-border); background:#fff; border-radius:4px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
#festival2026 .f-exhibit-card .f-photo { margin:0; }
#festival2026 .f-exhibit-card .f-photo-link img { height:180px; }
#festival2026 .f-exhibit-card-body { padding:24px 25px 28px; flex:1 1 auto; }
#festival2026 .f-card-eyebrow { font-size:11px; color:var(--f-rose); font-weight:800; letter-spacing:.14em; }
#festival2026 .f-exhibit-card h3 { font-size:19px; margin:6px 0 13px; }
#festival2026 .f-exhibit-card p:last-child { color:#5e6f7b; font-size:13px; line-height:1.94; }
#festival2026 .f-other-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
#festival2026 .f-other-grid .f-exhibit-card-body { padding:24px 20px 26px; }
#festival2026 .f-other-grid .f-exhibit-card h3 { font-size:17px; }
#festival2026 .f-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:23px; margin-top:30px; }
#festival2026 .f-feature { border:1px solid var(--f-border); background:white; overflow:hidden; }
#festival2026 .f-feature .f-photo-link img { height:235px; }
#festival2026 .f-feature-copy { padding:25px 27px 31px; }
#festival2026 .f-feature-copy h3 { font-size:22px; margin:6px 0 12px; }
#festival2026 .f-feature-copy > p:last-child { color:#617280; font-size:14px; line-height:2; }

/* Foods */
#festival2026 .f-eats-intro { display:grid; grid-template-columns:1.18fr .82fr; gap:24px; }
#festival2026 .f-eats-card { display:grid; grid-template-columns:1.13fr .8fr; overflow:hidden; background:#f6f7f4; border:1px solid var(--f-border); }
#festival2026 .f-eats-copy { padding:25px 23px 26px; }
#festival2026 .f-eats-copy h3 { font-size:23px; margin:4px 0 18px; }
#festival2026 .f-food-tags { display:flex; align-items:flex-start; flex-wrap:wrap; gap:9px; }
#festival2026 .f-food-tags li { padding:5px 9px; border:1px solid #dce6eb; background:white; border-radius:3px; font-size:12px; font-weight:700; line-height:1.6; }
#festival2026 .f-simple-list { line-height:2.25; font-weight:700; color:#475e70; }
#festival2026 .f-simple-list li::before { content:"•"; color:var(--f-rose); padding-right:7px; }
#festival2026 .f-eats-card .f-photo { height:100%; }
#festival2026 .f-eats-card .f-photo-link, #festival2026 .f-eats-card .f-photo-link img { height:100%; min-height:200px; }
#festival2026 .f-menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:28px; }
#festival2026 .f-menu { border:1px solid var(--f-border); background:white; overflow:hidden; display:grid; grid-template-columns: 1fr 205px; grid-template-rows:auto 1fr; }
#festival2026 .f-menu-header { padding:20px 26px; background:var(--f-navy); grid-column:1 / -1; }
#festival2026 .f-menu-header .f-card-eyebrow, #festival2026 .f-menu-header h3 { color:white; }
#festival2026 .f-menu-header h3 { font-size:23px; margin-top:2px; }
#festival2026 .f-menu .f-photo { grid-column:2; grid-row:2; height:100%; }
#festival2026 .f-menu .f-photo-link, #festival2026 .f-menu .f-photo-link img { height:100%; min-height:280px; }
#festival2026 .f-menu-body { grid-column:1; grid-row:2; padding:24px 16px 25px 25px; }
#festival2026 .f-menu-body h4 { font-size:16px; margin:8px 0 7px; }
#festival2026 .f-menu-body h4 small { font-size:11px; color:#647788; }
#festival2026 .f-menu-body ul { padding-left:2px; }
#festival2026 .f-menu-body li { font-size:14px; line-height:2; }
#festival2026 .f-menu-body li::before { content:"・"; color:var(--f-rose); }
#festival2026 .f-menu-body .f-menu-list li { font-size:15px; padding:7px 0; border-bottom:1px solid #edf0f1; }
#festival2026 .f-menu-body .f-menu-list li small { display:block; color:#5e7180; padding-left:16px; }
#festival2026 .f-menu-body .f-small-note { font-size:12px; margin-top:14px; color:#677681; }
#festival2026 .f-ticket { margin-top:32px; border-left:4px solid var(--f-rose); background:var(--f-rose-pale); padding:26px 29px 30px; }
#festival2026 .f-ticket h3 { font-size:19px; margin-bottom:12px; }
#festival2026 .f-ticket-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
#festival2026 .f-ticket-grid p { font-size:13px; line-height:2; }
#festival2026 .f-ticket-grid strong { color:var(--f-ink); }

/* Floor guides */
#festival2026 .f-floor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
#festival2026 .f-floor-card { padding:23px; background:white; border:1px solid var(--f-border); min-width:0; }
#festival2026 .f-floor-title { display:flex; align-items:center; gap:18px; margin-bottom:20px; }
#festival2026 .f-floor-num { display:flex; align-items:baseline; justify-content:center; flex:0 0 69px; font:800 36px/1 Arial,Helvetica,sans-serif; color:var(--f-rose); }
#festival2026 .f-floor-num small { font-size:14px; margin-left:3px; }
#festival2026 .f-floor-title h3 { font-size:19px; }
#festival2026 .f-floor-title p { color:#6b7b88; font-size:12px; margin-top:5px; }
#festival2026 .f-floor-card .f-photo-link { border:1px solid #e5e9eb; }
#festival2026 .f-floor-card .f-photo img { width:100%; height:260px; object-fit:contain; background:#fdf7f1; }
#festival2026 .f-floor-card .f-map-icon { font-size:31px; }
#festival2026 .f-venue-extra { margin-top:34px; }
#festival2026 .f-tea { background:#fff; border:1px solid var(--f-border); display:grid; grid-template-columns:1fr 260px; }
#festival2026 .f-tea-text { padding:34px 36px; }
#festival2026 .f-tea-text h3 { font-size:24px; margin:4px 0 14px; }
#festival2026 .f-tea-text > p:not(.f-card-eyebrow) { font-size:14px; line-height:2; }
#festival2026 .f-tea-hours { margin-top:21px!important; display:flex; align-items:flex-start; gap:20px; }
#festival2026 .f-tea-hours b { white-space:nowrap; color:var(--f-rose); }
#festival2026 .f-tea .f-photo-link, #festival2026 .f-tea .f-photo-link img { height:100%; min-height:235px; }
#festival2026 .f-venue-photos { margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
#festival2026 .f-venue-photos .f-photo img { height:240px; }
#festival2026 .f-venue-photos .f-photo figcaption { color:#657888; }
#festival2026 .f-page-foot { padding:39px 28px 55px; background:#fff; border-top:1px solid var(--f-border); text-align:center; font-size:12px; line-height:1.9; color:#657988; }
#festival2026 .f-page-foot p { margin:4px auto; max-width:800px; }
#festival2026 .f-page-foot b { color:var(--f-ink); }
#festival2026 .f-page-foot a { display:inline-block; color:var(--f-rose); text-decoration:none; font-weight:800; margin-top:16px; }

@media (max-width:1100px) {
 #festival2026 .f-hero { gap:40px; padding:55px 40px; }
 #festival2026 .f-section { padding:75px 35px 80px; }
 #festival2026 .f-other-grid { grid-template-columns:repeat(2,1fr); }
 #festival2026 .f-eats-intro { grid-template-columns:1fr; }
 #festival2026 .f-eats-card { grid-template-columns:1.15fr 1fr; }
}
@media (max-width:760px) {
 .f-site-header-inner { padding:17px 20px; min-height:70px; }
 .f-site-header nav { display:none; }
 .f-school-name { font-size:19px; }
 .f-school-en { font-size:9px; }
 .f-site-footer-inner { display:block; padding:35px 22px; }
 .f-site-footer-inner p + p { margin-top:20px; }
 #festival2026 { font-size:14px; }
 #festival2026 .f-hero { grid-template-columns:1fr; gap:38px; padding:46px 25px 51px; }
 #festival2026 .f-hero h1 { font-size:51px; }
 #festival2026 .f-hero-label { margin-top:25px; }
 #festival2026 .f-hero-art { max-width:285px; }
 #festival2026 .f-section-nav-inner { padding:0 9px; gap:5px; }
 #festival2026 .f-section-nav a { padding:15px 10px 13px; font-size:12px; min-width:85px; }
 #festival2026 .f-section { padding:58px 21px 67px; }
 #festival2026 .f-section-heading { margin-bottom:28px; }
 #festival2026 .f-section-heading h2 { padding-bottom:14px; margin-bottom:12px; }
 #festival2026 .f-greetings, #festival2026 .f-schedule-grid, #festival2026 .f-feature-grid, #festival2026 .f-menu-grid, #festival2026 .f-floor-grid, #festival2026 .f-ticket-grid { grid-template-columns:1fr; }
 #festival2026 .f-greeting { padding:24px 22px 30px; }
 #festival2026 .f-schedule-head { padding:17px 22px; }
 #festival2026 .f-schedule-date { font-size:21px; }
 #festival2026 .f-schedule-card tbody th { padding-left:18px; }
 #festival2026 .f-photo-pair { grid-template-columns:1fr 1fr; gap:12px; }
 #festival2026 .f-photo-pair .f-photo img { height:170px; }
 #festival2026 .f-exhibits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 #festival2026 .f-exhibit-card-body { padding:20px 19px 23px; }
 #festival2026 .f-exhibit-card .f-photo-link img { height:150px; }
 #festival2026 .f-exhibit-card h3 { font-size:17px; }
 #festival2026 .f-exhibit-card p:last-child { font-size:12px; }
 #festival2026 .f-menu { grid-template-columns:1fr 200px; }
 #festival2026 .f-floor-card { padding:16px; }
 #festival2026 .f-floor-card .f-photo img { height:210px; }
 #festival2026 .f-tea { grid-template-columns:1fr 34%; }
 #festival2026 .f-tea-text { padding:24px 20px; }
 #festival2026 .f-venue-photos .f-photo img { height:170px; }
}
@media (max-width:480px) {
 #festival2026 .f-hero h1 { font-size:42px; }
 #festival2026 .f-heading-year { font-size:17px; margin-left:8px; }
 #festival2026 .f-theme strong { font-size:41px; }
 #festival2026 .f-date-layout { gap:11px; }
 #festival2026 .f-date-main b { font-size:29px; }
 #festival2026 .f-date-main span { width:23px; height:23px; font-size:11px; }
 #festival2026 .f-hero-art { max-width:255px; }
 #festival2026 .f-other-grid, #festival2026 .f-exhibits-grid { grid-template-columns:1fr; }
 #festival2026 .f-exhibit-card { flex-direction:row; }
 #festival2026 .f-exhibit-card .f-photo { width:36%; flex:0 0 36%; }
 #festival2026 .f-exhibit-card .f-photo-link, #festival2026 .f-exhibit-card .f-photo-link img { height:100%; min-height:200px; }
 #festival2026 .f-exhibit-card-body { padding:18px 17px; }
 #festival2026 .f-exhibit-card h3 { font-size:16px; }
 #festival2026 .f-photo-pair { grid-template-columns:1fr 1fr; gap:12px; }
 #festival2026 .f-photo-pair .f-photo img { height:135px; }
 #festival2026 .f-eats-card { grid-template-columns:1fr 110px; }
 #festival2026 .f-eats-copy { padding:22px 16px; }
 #festival2026 .f-eats-card .f-photo-link img { min-height:230px; }
 #festival2026 .f-eats-copy h3 { font-size:20px; }
 #festival2026 .f-menu { grid-template-columns:1fr 115px; }
 #festival2026 .f-menu-body { padding:19px 12px 22px 16px; }
 #festival2026 .f-menu-body li { font-size:12px; }
 #festival2026 .f-menu-body h4 { font-size:14px; }
 #festival2026 .f-menu-body .f-menu-list li { font-size:13px; }
 #festival2026 .f-tea { grid-template-columns:1fr; }
 #festival2026 .f-tea .f-photo-link img { max-height:250px; min-height:0; }
 #festival2026 .f-venue-photos { grid-template-columns:1fr; }
 #festival2026 .f-venue-photos .f-photo img { height:195px; }
 #festival2026 .f-ticket { padding:20px 19px 24px; }
}
@media (prefers-reduced-motion:reduce) {
 #festival2026 *, #festival2026 *::before, #festival2026 *::after { transition-duration:0.01ms!important; scroll-behavior:auto!important; }
}
@media print {
 .f-site-header, .f-site-footer, #festival2026 .f-section-nav, #festival2026 .f-primary-link { display:none!important; }
 #festival2026 .f-hero { min-height:0; padding:15px!important; }
 #festival2026 .f-hero-art { max-width:200px; }
 #festival2026 .f-section { padding:35px 10px!important; break-inside:avoid; }
 #festival2026 .f-greeting, #festival2026 .f-exhibit-card, #festival2026 .f-schedule-card, #festival2026 .f-floor-card { break-inside:avoid; }
}
/* Image zoom dialog (works for PDFs' extracted maps and photos). */
#festival2026 .f-lightbox { border:0; position:fixed; inset:0; margin:auto; background:#fff; border-radius:5px; padding:17px; max-width:95vw; max-height:95vh; box-shadow:0 20px 65px rgba(12,25,42,.4); }
#festival2026 .f-lightbox::backdrop { background:rgba(9,20,31,.83); }
#festival2026 .f-lightbox img { object-fit:contain; max-width:89vw; width:auto; height:auto; max-height:85vh; }
#festival2026 .f-lightbox-close { position:sticky; top:0; margin-left:auto; margin-bottom:6px; border:0; border-radius:50%; display:block; width:38px; height:38px; background:#f0f2f4; color:#253849; font-size:27px; line-height:1; cursor:pointer; }
#festival2026 .f-lightbox-close:hover { background:#dce2e8; }
