:root{color-scheme:light;--paper:#fffdf9;--ink:#35274d;--quiet:#59476c;--purple:#71519c;--gold:#ae7d24;--line:#e8dff0;--soft:#efe7f7;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse 700px 650px at 90% 0%,#f0e5ff,transparent 75%);min-height:100vh}a{color:var(--purple);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b499d4;outline-offset:4px}[hidden]{display:none!important}.wrap{max-width:1120px;margin:auto;padding:0 32px}.skip{position:absolute;left:12px;top:-80px;padding:12px;background:var(--paper);z-index:5}.skip:focus{top:12px}header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.brand{font:600 32px Georgia,serif;letter-spacing:-1px;color:var(--ink)}.brand span{color:var(--gold);padding-right:10px}nav{display:flex;gap:24px;align-items:center}nav a{color:var(--quiet);font-size:15px;padding:10px 0}nav a[aria-current=page]{color:var(--purple);border-bottom:2px solid var(--gold)}.hero{text-align:center;padding:48px 0 34px;position:relative}.hero:before{content:'✧';position:absolute;left:8%;top:112px;font-size:36px;color:var(--gold)}.hero:after{content:'✦ · ✧';position:absolute;right:6%;top:68px;font-size:27px;color:var(--gold)}.castle{width:34px;height:38px;margin:0 auto 16px;color:var(--purple)}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:12px;font-weight:600;color:var(--gold)}h1{font:400 clamp(38px,5.6vw,65px)/1.09 Georgia,serif;letter-spacing:-1.8px;color:var(--purple);margin:19px 0 22px}.hero h1{max-width:650px;margin-left:auto;margin-right:auto}p{color:var(--quiet);line-height:1.65}h2{font:400 30px/1.2 Georgia,serif;margin:0 0 22px}h3{font-size:18px;line-height:1.4;margin:0 0 7px}section{margin-bottom:38px}.search{max-width:760px;display:flex;gap:12px;margin:30px auto 18px}input{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:white;padding:17px 20px;font-size:16px;color:var(--ink)}button,.button{border:0;display:inline-block;background:var(--purple);color:white;border-radius:12px;padding:16px 23px;min-height:48px;cursor:pointer;white-space:nowrap}.button:hover,button:hover{background:#604087;text-decoration:none}.chips{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.chip{background:var(--soft);padding:12px 20px;border-radius:30px;color:var(--ink);font-size:14px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.tile{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--paper);color:var(--ink);box-shadow:0 6px 22px #6d418b07}.tile:hover{text-decoration:none}.art{height:210px;background:radial-gradient(circle at 50% 55%,#fff1d8,transparent 65%),var(--soft);display:grid;place-items:center;position:relative}.art:before{content:'✧';position:absolute;left:24px;top:20px;color:var(--gold);font-size:26px}.art:after{content:'✦';position:absolute;right:24px;bottom:23px;color:var(--gold);font-size:18px}.art img{width:100%;height:100%;object-fit:cover}.art svg{width:138px;height:152px;filter:drop-shadow(2px 6px 4px #74412118)}.symbol{font-size:70px}.info{padding:22px;flex:1}.meta{font-size:13px;color:var(--quiet);line-height:1.5}.badge{display:inline-block;margin-top:14px;padding:6px 10px;background:var(--soft);color:var(--purple);border-radius:7px;font-size:12px}.more{color:var(--purple);display:block;margin-top:18px;font-size:14px}.crumb{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--quiet);padding:24px 0 0}.intro{padding:32px 0 24px}.intro h1{font-size:46px;margin:10px 0 14px}.intro p{max-width:650px;margin:0}.soft-panel{background:var(--soft);border-radius:18px;padding:28px;display:flex;gap:26px;align-items:center}.soft-panel p{margin:8px 0 16px}.soft-panel h2{margin:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.section-head h2{margin:0}.quiet{font-size:13px;color:var(--quiet)}.empty{padding:28px;border:1px dashed #d5c5e4;border-radius:16px}.empty p{margin:10px 0 18px}.details{display:grid;grid-template-columns:1fr 1.15fr;gap:36px;margin:30px 0}.details>.art{height:330px;border-radius:18px}.details>.art svg{width:185px;height:220px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.facts dt{font-size:12px;color:var(--quiet)}.facts dd{margin:5px 0 0;font-size:15px}.prose{max-width:750px;margin:32px auto 50px}.prose p{font-size:16px}.prose h2{margin-top:32px}.recipe-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:36px}.recipe-layout ul,.recipe-layout ol{padding-left:22px;line-height:1.8}.filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 22px}.filter-row select{padding:10px 16px;border-radius:9px;border:1px solid var(--line);background:white;color:var(--ink)}footer{border-top:1px solid var(--line);padding:26px 0 30px;margin-top:44px;display:flex;justify-content:space-between;gap:22px;color:var(--quiet);font-size:12px}footer p{max-width:600px;margin:8px 0}footer .links{display:flex;gap:18px;align-items:flex-start}.draft-note{font-size:12px;color:var(--quiet);margin:18px 0}.print-button{font-size:13px;padding:11px 16px}.recipe-layout .empty{padding:22px}.not-found{text-align:center;padding:70px 0}
@media(max-width:760px){.wrap{padding:0 22px}header{flex-wrap:wrap;gap:12px;padding:24px 0}.brand{font-size:28px}nav{gap:20px;flex-wrap:wrap}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr}.details>.art{height:250px}.recipe-layout{grid-template-columns:1fr}.hero:before{left:1%;font-size:25px}.hero:after{right:0;font-size:22px}.soft-panel{align-items:flex-start}.intro h1{font-size:38px}footer{flex-wrap:wrap}}
@media(max-width:480px){.wrap{padding:0 18px}.brand{font-size:26px}nav{gap:21px;width:100%;justify-content:space-between}nav a{font-size:13px}.hero{padding:35px 0 26px}.hero h1{font-size:42px}.hero:before{top:98px;font-size:20px}.hero:after{top:23px;font-size:18px}.eyebrow{font-size:11px;letter-spacing:2px}.search{gap:8px}input{padding:15px 12px}.search button{padding:13px 16px;font-size:14px}.chip{font-size:12px;padding:11px 14px}.grid{grid-template-columns:1fr;gap:17px}.tile{display:grid;grid-template-columns:110px 1fr}.art{height:100%;min-height:170px}.art svg{width:88px;height:105px}.art:before{left:10px;top:12px;font-size:18px}.art:after{right:10px;bottom:12px;font-size:13px}.symbol{font-size:42px}.info{padding:18px}h2{font-size:26px}.soft-panel{padding:22px;gap:14px}.soft-panel .symbol{display:none}.facts{gap:16px}.section-head{align-items:flex-start}.details>.art{height:230px}.details>.art svg{width:150px;height:180px}}
.details>.art:has(img){height:auto;min-height:0;align-self:start;background:none}.details>.art:has(img):before,.details>.art:has(img):after{display:none}.details>.art img{height:auto;display:block;width:100%;object-fit:contain}.recipe-credit{border-top:1px solid var(--line);padding-top:18px;font-size:13px}
@media print{header,footer,.crumb,.print-button,.draft-note{display:none}.wrap{max-width:none}.details,.recipe-layout{display:block}.details>.art{height:140px}.details>.art:has(img){display:none}.details>.art svg{height:130px}.art{background:none}.art:before,.art:after{display:none}body{background:white}a{color:inherit}}

.brand .brand-bites{color:var(--purple);padding-right:0}.brand .brand-sparkle{color:var(--gold)}
.grid{display:flex;flex-direction:column;gap:14px}.grid>.tile{display:flex;flex-direction:row;align-items:center;min-height:132px;background:var(--soft);border-color:transparent;border-radius:18px;box-shadow:none;padding:16px 24px;gap:22px}.grid>.tile>.art{width:86px;height:96px;min-height:0;flex:none;background:transparent;border-radius:12px;overflow:hidden}.grid>.tile>.art:before,.grid>.tile>.art:after{display:none}.grid>.tile>.art svg{width:78px;height:90px}.grid>.tile>.art .symbol{font-size:46px}.grid>.tile>.info{padding:0;min-width:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.grid>.tile h3{grid-column:1;grid-row:1;font:400 27px/1.25 Georgia,serif;margin:0 0 7px;color:var(--ink)}.grid>.tile .meta{grid-column:1;grid-row:2;font-size:13px}.grid>.tile .badge{grid-column:1;grid-row:3;justify-self:start;margin-top:10px;font-size:11px;background:#fffdf980}.grid>.tile .more{grid-column:1;grid-row:4;justify-self:end;margin:12px 0 0;min-height:44px;max-width:100%;padding:11px 17px;background:var(--purple);color:white;border-radius:10px;font-size:13px;white-space:nowrap}
@media(max-width:600px){.grid{gap:12px}.grid>.tile{padding:18px 16px;gap:14px;min-height:0}.grid>.tile>.art{width:60px;height:82px}.grid>.tile>.art svg{width:57px;height:75px}.grid>.tile>.art .symbol{font-size:34px}.grid>.tile>.info{grid-template-columns:1fr}.grid>.tile h3{font-size:24px}.grid>.tile .meta{font-size:13px}.grid>.tile .more{grid-column:1;grid-row:4;justify-self:end;margin-top:12px;min-height:44px;padding:11px 14px;font-size:12px}}
.home-hero{margin-bottom:0;padding-bottom:24px}.home-stack{display:flex;flex-direction:column;gap:14px}.home-banner{margin:0;min-height:132px;padding:20px 25px;gap:20px}.home-banner .symbol{width:56px;font-size:46px;flex:none}.banner-copy{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;flex:1;min-width:0}.banner-copy .eyebrow{grid-column:1;grid-row:1}.banner-copy h2{grid-column:1;grid-row:2;font-size:27px;margin:4px 0 6px}.banner-copy p{grid-column:1;grid-row:3;font-size:13px;margin:0}.banner-copy .button{grid-column:1;grid-row:4;justify-self:end;margin-top:12px;max-width:100%;font-size:13px;padding:11px 17px;min-height:46px}.home-banner:last-child h2{font-size:25px}
@media(max-width:600px){.home-banner{min-height:0;padding:18px 16px;gap:12px;align-items:center}.home-banner .symbol{display:block;width:36px;font-size:34px}.banner-copy{grid-template-columns:1fr}.banner-copy h2,.home-banner:last-child h2{font-size:24px;margin:3px 0 5px}.banner-copy .eyebrow{font-size:11px;letter-spacing:1.2px}.banner-copy p{font-size:13px}.banner-copy .button{grid-column:1;grid-row:4;justify-self:end;margin-top:10px;padding:10px 14px;min-height:44px}.home-stack{gap:12px}}

/* Keep one natural document scroller and a visible, wrapping navigation bar. */
html{scroll-padding-top:0}
body{min-height:100svh}
body.ios-chrome-viewport{width:var(--rotation-viewport-width,100%)}
.wrap{overflow:visible}
header{position:static;top:auto;z-index:auto;background:var(--paper);flex-wrap:wrap;padding:18px 0;gap:12px 24px}
header .brand{min-width:0;overflow-wrap:anywhere}
header nav{flex-wrap:wrap;gap:8px 20px}
main,footer{min-width:0}
footer{padding-bottom:max(30px,env(safe-area-inset-bottom))}
@media(max-width:760px){header{padding:14px 0}header nav{width:100%;justify-content:space-between}header nav a{padding:8px 0}.brand{font-size:28px}}
@media print{header{position:static}}

/* Family restaurant reviews and touch-friendly photo galleries. */
.restaurant-hero{display:block;width:100%;max-height:540px;object-fit:cover;border-radius:18px;margin:24px 0 32px}.family-review{max-width:800px}.family-review p{font-size:17px}.visit-facts{grid-template-columns:repeat(3,minmax(0,1fr));background:var(--soft);padding:22px;border-radius:16px}.gallery-controls{display:flex;gap:8px}.gallery-controls button{padding:10px 16px;min-width:48px}.gallery-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;border-radius:16px;padding-bottom:14px}.gallery-track:focus-visible{outline:3px solid #b499d4;outline-offset:4px}.gallery-slide{flex:0 0 72%;min-width:0;margin:0;scroll-snap-align:start;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--soft)}.gallery-slide img{display:block;width:100%;height:440px;object-fit:contain;background:#f4eee8}.gallery-slide figcaption{padding:16px 18px;line-height:1.5;font-size:15px}.photo-gallery>.quiet{margin-top:-6px}.art:has(img):before,.art:has(img):after{display:none}
@media(max-width:600px){.restaurant-hero{max-height:330px}.visit-facts{grid-template-columns:1fr;gap:18px}.gallery-slide{flex-basis:92%}.gallery-slide img{height:330px}.photo-gallery .section-head{align-items:center}.photo-gallery h2{font-size:23px}.gallery-controls button{padding:10px 13px}.family-review p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.gallery-track{scroll-behavior:auto}}

.recipe-layout li>p{margin:0 0 12px;color:var(--ink)}.recipe-layout li{margin-bottom:24px}.recipe-step-photo{margin:12px 0 20px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--soft)}.recipe-step-photo img{display:block;width:100%;max-height:420px;object-fit:contain}.recipe-step-photo figcaption{padding:12px 16px;font-size:13px;line-height:1.5;color:var(--quiet)}@media print{.recipe-step-photo{display:none}.recipe-layout li{margin-bottom:12px}}

.cookie-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0 32px}.cookie-gallery figure{margin:0;border-radius:16px;overflow:hidden;background:var(--soft)}.cookie-gallery figure:first-child{grid-column:1/-1}.cookie-gallery img{display:block;width:100%;height:auto}.cookie-gallery figcaption{padding:12px 16px;color:var(--quiet);font-size:13px}.cookie-recipe-photo{margin:0 0 32px;max-width:700px}.cookie-recipe-photo img{display:block;width:100%;height:auto;border-radius:18px}@media(max-width:600px){.cookie-gallery{grid-template-columns:1fr}}@media print{.cookie-gallery,.cookie-recipe-photo{display:none}}

/* Full-width header background with content aligned to the page. */
header{width:100%;padding:18px max(32px,calc((100% - 1056px)/2));}
@media(max-width:760px){header{padding:14px 22px}}
@media(max-width:480px){header{padding:14px 18px}}

/* Airy Main Street welcome: live text and the existing icon cards. */




/* Clip full-bleed decoration without creating a second scroll container. */
.home-page{overflow-x:clip}
.home-page .home-hero{isolation:isolate;padding-top:40px;padding-bottom:24px}
.home-page .home-hero:before{content:"";inset:0 calc(-1 * max(32px, (100vw - 1056px)/2)) auto;height:330px;background:linear-gradient(180deg,#f6f0fc 0%,#fffdf900 100%);z-index:-1;pointer-events:none}
.home-page .home-hero:after{display:none}
.home-page .home-hero>.eyebrow{letter-spacing:2.5px}
.home-page .home-hero h1{color:var(--ink);margin:23px auto 22px}
.home-page .home-hero>p{font-family:Georgia,serif;font-size:21px;line-height:1.5;max-width:600px;margin:0 auto 0}
.main-street-outline{display:block;width:100vw;max-width:none;height:auto;margin:0 0 0 calc((100% - 100vw)/2);pointer-events:none;user-select:none}
.home-page .search{margin:28px auto 0;max-width:none}
.home-page .home-stack{margin-top:0}
@media(min-width:761px){.main-street-outline{width:100%;margin:0 auto;max-height:300px;object-fit:cover;object-position:center bottom}.home-page .home-hero{padding-top:40px}.home-page .home-hero>p{max-width:640px}}
@media(max-width:760px){.home-page .home-hero:before{left:-22px;right:-22px;height:300px}.home-page .home-hero{padding-top:32px}.home-page .home-hero>p{font-size:18px;max-width:340px}.home-page .home-hero h1{font-size:clamp(36px,9.8vw,56px);letter-spacing:-1.3px;margin:20px auto 20px}.home-page .home-hero>.eyebrow{font-size:10px;letter-spacing:1.8px}.home-page .main-street-outline{margin-top:2px}.home-page .search{margin-top:20px}}
@media(max-width:480px){.home-page .home-hero:before{left:-18px;right:-18px}.home-page .home-hero>p{font-size:17px;max-width:320px}.home-page .home-hero{padding-bottom:28px}.home-page .search input{font-size:14px}.home-page .search button{padding:13px 16px}}
@media(max-width:350px){.home-page .search{gap:6px}.home-page .search button{padding:13px 11px}}

/* Four-park skyline and homepage-style centered masthead. */




.parks-page .hero{padding-bottom:0;margin-bottom:26px}
.parks-page .hero h1{max-width:900px}
.parks-page .hero>p{margin-bottom:0}
.parks-outline{display:block;width:100%;height:auto;margin:4px auto 0;pointer-events:none;user-select:none}
@media(max-width:760px){.parks-page .hero{padding-top:32px}.parks-page .hero h1{font-size:clamp(35px,8.7vw,56px);letter-spacing:-1.3px}.parks-page .hero>.eyebrow{font-size:10px;letter-spacing:1.8px}.parks-outline{width:100vw;max-width:none;margin-left:calc((100% - 100vw)/2)}}
@media(max-width:480px){}
@media(max-width:350px){}

/* Light recipe and cruise illustrations with the shared centered masthead. */




.illustrated-page .hero{padding-bottom:0;margin-bottom:26px}
.illustrated-page .hero h1{max-width:900px}
.illustrated-page .hero>p{margin-bottom:0}
.section-outline{display:block;width:100%;height:auto;margin:14px auto 0;pointer-events:none;user-select:none}
@media(max-width:760px){.illustrated-page .hero{padding-top:32px}.illustrated-page .hero h1{font-size:clamp(35px,8.7vw,56px);letter-spacing:-1.3px}.illustrated-page .hero>.eyebrow{font-size:10px;letter-spacing:1.8px}.section-outline{width:100vw;max-width:none;margin-left:calc((100% - 100vw)/2)}}
@media(max-width:480px){}
@media(max-width:350px){}

/* More breathing room above the first tile on the main directory pages. */
.parks-page main>section>h2,.resorts-page main>section>h2,.cruises-page main>section>h2,.recipes-page main>section>h2{margin-bottom:36px}
.home-page .home-stack{margin-top:16px}

/* Shared masthead: match the centered home-page header on every page. */
body header{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;padding-top:24px;padding-bottom:20px}
body header .brand{font-size:32px;font-weight:400;letter-spacing:-1px;text-align:center}
body header nav{width:auto;justify-content:center;gap:30px}
body header nav a{font-family:Georgia,serif;font-size:17px}
@media(max-width:760px){body header{padding-top:22px;padding-bottom:18px;gap:14px}body header .brand{font-size:28px}body header nav{width:100%;max-width:420px;justify-content:space-between;gap:12px}body header nav a{font-size:16px}}
@media(max-width:480px){body header .brand{font-size:28px}body header nav a{font-size:15px}}
@media(max-width:350px){body header .brand{font-size:25px}body header nav a{font-size:14px}}

/* Home-page lilac stencil tiles. Text and links remain live HTML. */
.home-page .home-banner{gap:28px;min-height:185px;padding:24px 28px;background:var(--soft);border:1px solid #e4dced}
.home-page .home-stencil{display:block;width:160px;height:150px;object-fit:contain;flex:0 0 160px}
@media(max-width:760px){.home-page .home-banner{gap:20px;padding:22px;min-height:165px}.home-page .home-stencil{width:125px;height:135px;flex-basis:125px}}
@media(max-width:480px){.home-page .home-banner{gap:14px;padding:18px 16px;align-items:center}.home-page .home-stencil{width:82px;height:110px;flex-basis:82px}.home-page .banner-copy h2,.home-page .home-banner:last-child h2{font-size:24px}.home-page .banner-copy .eyebrow{font-size:10px;letter-spacing:1.1px}.home-page .banner-copy p{font-size:13px}}
@media(max-width:350px){.home-page .home-stencil{width:64px;height:90px;flex-basis:64px}.home-page .home-banner{gap:10px;padding:16px 12px}}


/* Four park stencil tiles, coordinated with the home page. */
.parks-page .grid>.tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.parks-page .grid>.tile>.art{width:160px;height:150px;overflow:visible}
.parks-page .grid>.tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.parks-page .grid>.tile{gap:20px;padding:22px;min-height:165px}.parks-page .grid>.tile>.art{width:125px;height:135px}}
@media(max-width:480px){.parks-page .grid>.tile{gap:14px;padding:18px 16px}.parks-page .grid>.tile>.art{width:82px;height:110px}}
@media(max-width:350px){.parks-page .grid>.tile{gap:10px;padding:16px 12px}.parks-page .grid>.tile>.art{width:64px;height:90px}}

/* Matching Restaurants and Snacks stencils on the four park pages. */
.park-categories .grid>.tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.park-categories .grid>.tile>.art{width:160px;height:150px;overflow:visible}
.park-categories .grid>.tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.park-categories .grid>.tile{gap:20px;padding:22px;min-height:165px}.park-categories .grid>.tile>.art{width:125px;height:135px}}
@media(max-width:480px){.park-categories .grid>.tile{gap:14px;padding:18px 16px}.park-categories .grid>.tile>.art{width:82px;height:110px}}
@media(max-width:350px){.park-categories .grid>.tile{gap:10px;padding:16px 12px}.park-categories .grid>.tile>.art{width:64px;height:90px}}

/* Curated resort directory and matching lilac stencils. */
.resorts-page .grid>.tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.resorts-page .grid>.tile>.art{width:160px;height:150px;overflow:visible}
.resorts-page .grid>.tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.resorts-page .grid>.tile{gap:20px;padding:22px;min-height:165px}.resorts-page .grid>.tile>.art{width:125px;height:135px}}
@media(max-width:480px){.resorts-page .grid>.tile{gap:14px;padding:18px 16px}.resorts-page .grid>.tile>.art{width:82px;height:110px}}
@media(max-width:350px){.resorts-page .grid>.tile{gap:10px;padding:16px 12px}.resorts-page .grid>.tile>.art{width:64px;height:90px}}

/* Shared snack stencil tiles on retained resort pages. */
.grid>.resort-snack-tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.grid>.resort-snack-tile>.art{width:160px;height:150px;overflow:visible}
.grid>.resort-snack-tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.grid>.resort-snack-tile{gap:20px;padding:22px;min-height:165px}.grid>.resort-snack-tile>.art{width:125px;height:135px}}
@media(max-width:480px){.grid>.resort-snack-tile{gap:14px;padding:18px 16px}.grid>.resort-snack-tile>.art{width:82px;height:110px}}
@media(max-width:350px){.grid>.resort-snack-tile{gap:10px;padding:16px 12px}.grid>.resort-snack-tile>.art{width:64px;height:90px}}

/* Reusable half-ship stencil on the cruise directory. */
.cruises-page .grid>.tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.cruises-page .grid>.tile>.art{width:160px;height:150px;overflow:visible}
.cruises-page .grid>.tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.cruises-page .grid>.tile{gap:20px;padding:22px;min-height:165px}.cruises-page .grid>.tile>.art{width:125px;height:135px}}
@media(max-width:480px){.cruises-page .grid>.tile{gap:14px;padding:18px 16px}.cruises-page .grid>.tile>.art{width:82px;height:110px}}
@media(max-width:350px){.cruises-page .grid>.tile{gap:10px;padding:16px 12px}.cruises-page .grid>.tile>.art{width:64px;height:90px}}

/* Resort category pages: Restaurants first, Snacks second. */
.resort-categories .grid>.tile{min-height:185px;padding:24px 28px;gap:28px;border:1px solid #e4dced}
.resort-categories .grid>.tile>.art{width:160px;height:150px;overflow:visible}
.resort-categories .grid>.tile>.art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.resort-categories .grid>.tile{gap:20px;padding:22px;min-height:165px}.resort-categories .grid>.tile>.art{width:125px;height:135px}}
@media(max-width:480px){.resort-categories .grid>.tile{gap:14px;padding:18px 16px}.resort-categories .grid>.tile>.art{width:82px;height:110px}}
@media(max-width:350px){.resort-categories .grid>.tile{gap:10px;padding:16px 12px}.resort-categories .grid>.tile>.art{width:64px;height:90px}}

/* Approved home-page polish: larger copy, compact cards and centered actions. */
.home-page .home-banner{min-height:160px;padding:18px 24px;gap:24px}
.home-page .home-stencil{width:145px;height:130px;flex:0 0 145px}
.home-page .banner-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:start}
.home-page .banner-copy .eyebrow{grid-column:1;grid-row:1}
.home-page .banner-copy h2,.home-page .home-banner:last-child h2{grid-column:1;grid-row:2;font-size:27px;margin:4px 0 7px}
.home-page .banner-copy p{grid-column:1;grid-row:3;font-size:15.5px;line-height:1.55;color:var(--quiet);margin:0}
.home-page .banner-copy .button{grid-column:2;grid-row:1 / 4;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px;white-space:nowrap}
@media(max-width:760px){.home-page .home-banner{padding:18px 20px;gap:18px}.home-page .home-stencil{width:110px;height:120px;flex-basis:110px}.home-page .banner-copy{column-gap:18px}}
@media(max-width:640px){.home-page .banner-copy{grid-template-columns:minmax(0,1fr)}.home-page .banner-copy .button{grid-column:1;grid-row:4;justify-self:end;margin-top:12px;white-space:normal;text-align:center}.home-page .banner-copy h2,.home-page .home-banner:last-child h2{font-size:24px}.home-page .banner-copy p{font-size:15px}}
@media(max-width:480px){.home-page .home-banner{padding:18px 16px;gap:14px}.home-page .home-stencil{width:82px;height:110px;flex-basis:82px}}
@media(max-width:350px){.home-page .home-banner{padding:16px 12px;gap:10px}.home-page .home-stencil{width:64px;height:90px;flex-basis:64px}.home-page .banner-copy .button{font-size:13px;padding:11px 14px}}

/* Approved Parks page typography and tile-action refinements. */
.parks-page .hero h1{max-width:760px;margin-left:auto;margin-right:auto;text-wrap:balance}
.parks-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
.parks-page .grid>.tile .meta{grid-column:1;grid-row:2;font-size:15.5px;line-height:1.55;color:var(--quiet)}
.parks-page .grid>.tile .more{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px}
@media(max-width:760px){.parks-page .grid>.tile>.info{column-gap:18px}}
@media(max-width:640px){.parks-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr)}.parks-page .grid>.tile .meta{font-size:15px}.parks-page .grid>.tile .more{grid-column:1;grid-row:4;align-self:auto;justify-self:end;margin-top:12px;white-space:normal;text-align:center}}
@media(max-width:350px){.parks-page .grid>.tile .more{font-size:13px;padding:11px 14px}}

/* Approved Resorts directory refinements. */
.resorts-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
.resorts-page .grid>.tile .meta{grid-column:1;grid-row:2;font-size:15.5px;line-height:1.55;color:var(--quiet)}
.resorts-page .grid>.tile .more{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px}
@media(max-width:760px){.resorts-page .grid>.tile>.info{column-gap:18px}}
@media(max-width:640px){.resorts-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr)}.resorts-page .grid>.tile .meta{font-size:15px}.resorts-page .grid>.tile .more{grid-column:1;grid-row:4;align-self:auto;justify-self:end;margin-top:12px;white-space:normal;text-align:center}}
@media(max-width:350px){.resorts-page .grid>.tile .more{font-size:13px;padding:11px 14px}}

/* Approved cruise directory readability and centered tile actions. */
.cruises-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
.cruises-page .grid>.tile .meta{grid-column:1;grid-row:2;font-size:15.5px;line-height:1.55;color:var(--quiet)}
.cruises-page .grid>.tile .more{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px}
@media(max-width:760px){.cruises-page .grid>.tile>.info{column-gap:18px}}
@media(max-width:640px){.cruises-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr)}.cruises-page .grid>.tile .meta{font-size:15px}.cruises-page .grid>.tile .more{grid-column:1;grid-row:4;align-self:auto;justify-self:end;margin-top:12px;white-space:normal;text-align:center}}
@media(max-width:350px){.cruises-page .grid>.tile .more{font-size:13px;padding:11px 14px}}

/* Approved Recipes directory readability and centered actions. */
.recipes-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
.recipes-page .grid>.tile .meta{grid-column:1;grid-row:2;font-size:15.5px;line-height:1.55;color:var(--quiet)}
.recipes-page .grid>.tile .more{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px}
@media(max-width:760px){.recipes-page .grid>.tile>.info{column-gap:18px}}
@media(max-width:640px){.recipes-page .grid>.tile>.info{grid-template-columns:minmax(0,1fr)}.recipes-page .grid>.tile .meta{font-size:15px}.recipes-page .grid>.tile .more{grid-column:1;grid-row:4;align-self:auto;justify-self:end;margin-top:12px;white-space:normal;text-align:center}}
@media(max-width:350px){.recipes-page .grid>.tile .more{font-size:13px;padding:11px 14px}}

/* Consistent park category pages: subtle gold stars and readable tile actions. */
.park-categories .intro{position:relative}
.park-categories .intro .eyebrow{padding-right:110px}
.park-categories .park-twinkles{position:absolute;top:12px;right:8px;display:block;width:96px;height:48px;color:var(--gold);opacity:.85;pointer-events:none;user-select:none}
.park-categories .park-twinkles svg{display:block;width:100%;height:100%}
.park-categories .grid>.tile>.info{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
.park-categories .grid>.tile .meta{grid-column:1;grid-row:2;font-size:15.5px;line-height:1.55;color:var(--quiet)}
.park-categories .grid>.tile .more{grid-column:2;grid-row:1 / 3;align-self:center;justify-self:end;margin:0;min-height:46px;font-size:14px;padding:12px 18px}
@media(max-width:760px){.park-categories .grid>.tile>.info{column-gap:18px}}
@media(max-width:640px){.park-categories .grid>.tile>.info{grid-template-columns:minmax(0,1fr)}.park-categories .grid>.tile .meta{font-size:15px}.park-categories .grid>.tile .more{grid-column:1;grid-row:4;align-self:auto;justify-self:end;margin-top:12px;white-space:normal;text-align:center}}
@media(max-width:480px){.park-categories .park-twinkles{width:74px;height:37px;top:18px;right:0}.park-categories .intro .eyebrow{padding-right:84px}}
@media(max-width:350px){.park-categories .grid>.tile .more{font-size:13px;padding:11px 14px}}

/* Ship guides share park-page gold accents and a finished lilac waiting panel. */
.ship-guide .intro{position:relative}
.ship-guide .intro .eyebrow{padding-right:110px}
.ship-guide .ship-twinkles{position:absolute;top:12px;right:8px;display:block;width:96px;height:48px;color:var(--gold);opacity:.85;pointer-events:none;user-select:none}
.ship-guide .ship-twinkles svg{display:block;width:100%;height:100%}
.ship-guide .ship-coming-soon{background:var(--soft);border:1px solid #e4dced;border-radius:18px;padding:28px}
.ship-guide .ship-coming-soon h3{font-size:19px;color:var(--ink);margin:0 0 10px;line-height:1.4}
.ship-guide .ship-coming-soon p{font-size:16px;color:var(--quiet);margin:0 0 18px;line-height:1.65}
.ship-guide .ship-coming-soon a{display:inline-block;padding:8px 0;font-size:15px}
@media(max-width:480px){.ship-guide .ship-twinkles{width:74px;height:37px;top:18px;right:0}.ship-guide .intro .eyebrow{padding-right:84px}.ship-guide .ship-coming-soon{padding:22px}.ship-guide .ship-coming-soon p{font-size:15px}}

/* Shared YouTube footer badge: centered beneath About + Recipes as one group. */
footer>div:first-child{flex:1 1 360px;min-width:0}
footer .footer-actions{display:flex;flex-direction:column;align-items:center;gap:12px;flex:0 0 auto}
footer .footer-actions .links{justify-content:center;align-items:center;gap:18px;width:100%}
footer .footer-youtube{display:block;width:110px;max-width:100%;line-height:0;border-radius:8px}
footer .footer-youtube img{display:block;width:100%;height:auto;object-fit:contain}
footer .footer-youtube:hover{opacity:.85}
@media(max-width:600px){footer .footer-actions{margin-left:auto;margin-right:auto;gap:10px}}

/* Balanced shared footer: About below the left copy, YouTube alone at right. */
footer[data-site-footer="branded-v4"]{align-items:flex-start;flex-wrap:nowrap}
footer[data-site-footer="branded-v4"] .footer-main{flex:1 1 360px;min-width:0}
footer[data-site-footer="branded-v4"] .footer-about{display:inline-flex;align-items:center;min-height:36px;padding:4px 0;margin-top:2px;font-size:13px}
footer[data-site-footer="branded-v4"] .footer-actions{align-self:flex-start;justify-content:center;gap:0;margin:0;flex:0 0 auto}
@media(max-width:600px){footer[data-site-footer="branded-v4"]{gap:18px}footer[data-site-footer="branded-v4"] .footer-youtube{width:90px}}
@media(max-width:350px){footer[data-site-footer="branded-v4"]{gap:14px}footer[data-site-footer="branded-v4"] .footer-youtube{width:80px}}

/* Match the header wordmark at a quieter footer scale. */
footer .footer-brand{display:inline-block;max-width:100%;font:400 20px/1.25 Georgia,serif;letter-spacing:-.7px;color:var(--ink);margin:0 0 4px}
footer .footer-brand:hover{text-decoration:none}
footer .footer-brand .brand-sparkle{padding-right:7px}
@media(max-width:600px){footer .footer-brand{font-size:19px}}
@media(max-width:380px){footer .footer-brand{font-size:18px;letter-spacing:-.5px}}

/* Deeper lavender linework; original icon files and geometry stay intact. */
:root{--tile-art-opacity:1}
/* Parent menu navigation shared by all inner pages. */
.back-navigation{padding-top:24px;margin:0 0 16px}
.back-to-parent{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:10px 18px;border:1px solid #cdb9e4;border-radius:999px;background:#f7f1fb80;color:var(--purple);font:400 14px/1.4 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent}
.back-to-parent:hover{text-decoration:none}
@media(hover:hover) and (pointer:fine){.back-to-parent:hover{background:var(--soft);border-color:var(--purple)}}
.back-navigation+.crumb{padding-top:0}
@media print{.back-navigation{display:none}}
.home-stencil,
.tile>.art>img[src*="-illustration"],
.tile>.art>img[src*="-porthole"],
.tile>.art>img[src*="cruises-disney-icon"]{
 opacity:var(--tile-art-opacity);
 /* White stays white; existing lavender strokes gain contrast. */
 filter:none;
 mix-blend-mode:normal;
}

/* Touch tiles keep their normal appearance, including Safari tap feedback.
   Keyboard focus remains visible through the shared :focus-visible rule. */
a.tile{-webkit-tap-highlight-color:transparent}


/* Homepage Main Street artwork: deeper lavender using the original image. */
.home-page .main-street-outline{filter:none}

/* Approved family/fireworks artwork: retain its original colors and full frame. */
.home-page .main-street-outline{filter:none;max-height:none;object-fit:contain}

/* Wider page banners only on touch tablets in landscape.
   Desktops and portrait tablets retain the original centered image sizing. */
@media (min-width:1024px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
 #main .hero>img:is(.main-street-outline,.parks-outline,.section-outline,.coloring-storybook-banner),
 #main .intro>img:is(.magic-kingdom-outline,.epcot-outline,.hollywood-studios-outline,.animal-kingdom-outline,.resort-panorama,.ship-panorama){
  width:min(1600px,calc(var(--rotation-viewport-width,100vw) - 40px));
  max-width:none;
  height:auto;
  margin-left:50%;
  margin-right:0;
  transform:translateX(-50%);
 }
}
