/*
Theme Name: Whitecap
Description: A photo-forward restaurant theme for Whitecap Dining, Dock & Cocktails on Monkey Island. Edit restaurant details in Appearance > Customize > Whitecap Website.
Version: 1.10.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: whitecap
*/
:root{--navy:#203f54;--ink:#233b46;--cream:#f3f1e8;--sand:#e6dfd0;--gold:#a4854e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,.lake-line p,.footer-top p{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.025em}h2{font-size:clamp(48px,5.3vw,78px);margin-bottom:26px}em{font-weight:400}h3{font-size:21px;font-weight:500;line-height:1.35}p{margin-bottom:23px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;margin-bottom:25px}.topline{background:var(--sand);padding:9px 4.5%;font-size:9px;letter-spacing:.14em;display:flex;justify-content:space-between}header{height:108px;background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;position:sticky;top:0;z-index:20;color:var(--cream)}.brand img{width:206px;height:auto}nav{display:flex;gap:32px;align-items:center;font-size:12px}nav>a{padding:8px 0}nav>a:hover{color:#e6c78e}.nav-call{border:1px solid #748894;padding:12px 19px}.nav-toggle{display:none}.hero{height:min(700px,75vw);min-height:570px;position:relative;isolation:isolate;color:var(--cream);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.hero-photo,.hero-shade{position:absolute;inset:0;z-index:-2}.hero-photo{overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.hero-shade{z-index:-1;background:linear-gradient(180deg,rgba(7,24,36,.49),rgba(7,24,36,.48) 65%,rgba(7,24,36,.75))}.hero-copy{padding:30px 24px 50px}.hero h1{font-size:clamp(60px,6.9vw,100px);margin:0 0 23px}.hero-copy>p:not(.eyebrow){font-size:16px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero .actions{justify-content:center}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:15px 23px;font-size:12px;font-weight:500;border:1px solid transparent;transition:background .2s,color .2s}.button span{font-size:18px}.light{background:var(--cream);color:var(--navy)}.outline{border-color:#d7d2c8;color:white;background:#132b3733}.navy{background:var(--navy);color:var(--cream)}.button:hover{background:var(--gold);color:white}.hero-bottom{position:absolute;bottom:26px;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.14em}.hero-bottom a{display:flex;gap:20px}.hero-bottom a span{font-size:20px;line-height:1}.intro{max-width:1300px;margin:auto;padding:105px 6%;display:grid;grid-template-columns:1fr 1.7fr 2fr;gap:44px;align-items:start}.intro>.eyebrow{padding-top:13px}.intro h2{font-size:65px}.intro>div{padding-top:7px}.intro p{font-size:15px}.intro .eyebrow{font-size:11px}.text-link{font-size:12px;font-weight:600;border-bottom:1px solid var(--gold);padding:0 0 9px;display:inline-flex;gap:30px}.text-link:hover{color:#88692f}.menu-section{display:grid;grid-template-columns:1.1fr 1fr;background:var(--sand)}.menu-photo{position:relative;min-height:600px}.menu-photo>img{height:100%;width:100%;object-fit:cover;object-position:45% center;position:absolute}.photo-note{position:absolute;bottom:26px;left:30px;color:#fff;font-size:9px;letter-spacing:.15em;text-shadow:0 1px 5px #000}.menu-copy{padding:80px 12%;align-self:center}.menu-copy p:not(.eyebrow):not(.small){font-size:15px}.menu-links{border-top:1px solid #a7ac9f;margin-top:30px}.menu-links button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:19px 0;border:0;border-bottom:1px solid #a7ac9f;background:none;color:var(--ink);font-size:16px;text-align:left}.menu-links button:hover{color:#88692f}.menu-links span{font-size:23px}.small{font-size:11px;line-height:1.7;opacity:.85;margin-top:20px}.small a{text-decoration:underline;text-underline-offset:3px}.specials{padding:100px 6%;max-width:1420px;margin:auto}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:350px;font-size:15px;margin-bottom:10px}.special-layout{display:grid;grid-template-columns:1fr 1fr;gap:7%}.special-image{position:relative;min-height:640px;overflow:hidden}.special-image img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 55%}.special-image span{position:absolute;bottom:24px;left:24px;color:white;font-size:9px;letter-spacing:.15em;text-shadow:0 1px 8px #000}.special-list article{border-bottom:1px solid #c8c9bc;padding:24px 0}.special-list article:first-child{padding-top:0}.day{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.15em;color:#6c6f5c;margin-bottom:14px}.day span{letter-spacing:.06em}.dish{display:flex;align-items:baseline;gap:15px;justify-content:space-between}.dish h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;margin-bottom:12px}.dish strong{font-size:19px;font-weight:500}.special-list article p{font-size:13px;margin-bottom:0}.lake-line{text-align:center;background:var(--navy);color:var(--cream);padding:80px 20px}.lake-line p{font-size:clamp(50px,6vw,85px);margin-bottom:25px}.lake-line>span{font-size:10px;letter-spacing:.18em}.visit{padding:100px 8%;max-width:1400px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:15%}.visit p{font-size:14px}.visit .eyebrow{font-size:11px}.phone{font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;display:block}.visit-details>div{padding:0 0 25px 45px;position:relative;border-bottom:1px solid #c8c9bc;margin-bottom:27px}.visit-details>div:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.number{position:absolute;left:0;top:3px;font-size:10px;color:#8a7855}.visit-details h3{margin-bottom:12px}.visit-details p{margin-bottom:15px}.visit-details .text-link{font-size:11px}footer{padding:48px 5% 20px;background:var(--navy);color:var(--cream)}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-bottom:40px}.footer-top img{width:260px;height:auto}.footer-top p{font-size:36px;margin:0}.footer-top>a{font-size:12px}.footer-bottom{border-top:1px solid #5b7280;padding-top:20px;display:flex;justify-content:space-between;font-size:10px;gap:20px}dialog{border:0;padding:24px;width:min(850px,94vw);max-height:92vh;background:var(--cream);color:var(--ink)}dialog::backdrop{background:#10232de0}dialog img{width:100%;height:auto}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:-24px;background:var(--cream);padding:10px 0}.dialog-top h2{font-family:'DM Sans',Arial,sans-serif;font-size:20px;letter-spacing:0;margin:0}.dialog-top button{background:var(--navy);color:white;border:0;padding:10px 16px;font-size:13px}dialog .small{margin:10px 0 20px}.skip{position:fixed;top:-100px;left:15px;background:white;color:var(--navy);padding:10px;z-index:99}.skip:focus{top:10px}:focus-visible{outline:3px solid #c99e5a;outline-offset:5px}
@media(min-width:1600px){.hero{height:760px}.hero-photo img{object-position:center 48%}}
@media(max-width:1000px){nav{gap:18px;font-size:11px}.brand img{width:170px}.intro{gap:30px;grid-template-columns:1fr 1.2fr}.intro>.eyebrow{grid-column:1/-1;padding:0;margin:0}.intro h2{font-size:60px}.menu-copy{padding:60px 10%}.special-image{min-height:620px}.section-heading>p{max-width:290px}.visit{gap:8%}}
@media(max-width:720px){html{scroll-padding-top:84px}.topline{font-size:8px;justify-content:center}.topline span{display:none}header{height:84px;padding:0 6%}.brand img{width:152px}.nav-toggle{display:flex;gap:15px;align-items:center;background:none;border:1px solid #73848d;color:var(--cream);padding:8px 12px;font-size:12px}nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--navy);padding:20px 6% 30px;font-size:15px;align-items:stretch;box-shadow:0 16px 20px #0003}nav.open{display:flex;flex-direction:column;gap:12px}.nav-call{text-align:center;margin-top:10px}.hero{height:640px;min-height:0}.hero-photo img{object-position:61% center}.hero h1{font-size:57px}.hero-copy{padding-top:0}.hero-copy>p:not(.eyebrow){font-size:13px}.hero .eyebrow{font-size:9px}.hero .actions{flex-direction:column;align-items:center}.hero .button{min-width:230px}.hero-bottom{font-size:8px;bottom:22px}.hero-bottom>span:last-child{display:none}.intro{padding:65px 7%;grid-template-columns:1fr;gap:20px}.intro h2{font-size:58px;margin-bottom:3px}.intro>.eyebrow{margin-bottom:8px}.intro>div{padding:0}.menu-section{grid-template-columns:1fr}.menu-photo{min-height:390px}.menu-copy{padding:55px 7%}.menu-copy h2{font-size:57px}.specials{padding:65px 7%}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:55px}.section-heading>p{margin-top:25px;max-width:none}.special-layout{grid-template-columns:1fr;gap:35px}.special-image{min-height:420px}.special-image img{object-position:center 60%}.dish h3{font-size:28px}.lake-line{padding:65px 7%}.lake-line p{font-size:50px}.lake-line>span{font-size:8px}.visit{padding:65px 7%;grid-template-columns:1fr;gap:55px}.visit h2{font-size:60px}.visit-details>div{padding-left:32px}.footer-top{align-items:start;flex-direction:column;gap:30px}.footer-top img{width:230px}.footer-top p{font-size:36px}.footer-bottom{flex-wrap:wrap;font-size:9px}.footer-bottom>span{width:100%}dialog{padding:15px}.dialog-top{top:-15px}.dialog-top h2{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Current menu and live music section. */
nav{gap:24px}.menu-download{margin:26px 0 0}.music-section{padding:85px 8%;background:var(--sand);display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.music-heading h2{margin-bottom:0}.music-copy>p{font-size:15px}.music-details{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:30px;font-size:9px;letter-spacing:.1em}.music-details span{padding:7px 0;border-top:1px solid #b2ad9b}section[tabindex="-1"]:focus{outline:none}
@media(max-width:1000px){nav{gap:14px}}
@media(min-width:721px) and (max-width:900px){header{height:84px}.brand img{width:170px}.nav-toggle{display:flex;gap:15px;align-items:center;background:none;border:1px solid #73848d;color:var(--cream);padding:8px 12px;font-size:12px}nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--navy);padding:20px 6% 30px;font-size:15px;align-items:stretch;box-shadow:0 16px 20px #0003}nav.open{display:flex;flex-direction:column;gap:12px}.nav-call{text-align:center;margin-top:10px}}
@media(max-width:720px){.music-section{grid-template-columns:1fr;padding:60px 7%;gap:25px}.music-heading h2{font-size:56px}}

/* Original photos of Whitecap, supplied by the owner. */
.gallery-section{max-width:1420px;margin:auto;padding:0 6% 100px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:38px}.gallery-heading h2{margin:0}.gallery-heading>p{max-width:350px;font-size:15px;margin-bottom:8px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.gallery-grid figure{margin:0}.gallery-grid a{display:block;overflow:hidden;background:var(--sand)}.gallery-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 55%;transition:transform .35s}.gallery-grid a:hover img{transform:scale(1.025)}.gallery-grid figcaption{font-family:'Libre Caslon Display',Georgia,serif;font-size:28px;line-height:1.2;padding:17px 0}.gallery-footer{display:flex;align-items:center;justify-content:flex-end;gap:24px;margin-top:17px}.gallery-footer .text-link{font-size:11px}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery-grid figcaption{font-size:24px}.gallery-heading{gap:30px}}
@media(max-width:720px){.gallery-section{padding:0 7% 60px}.gallery-heading{display:block}.gallery-heading h2{font-size:55px}.gallery-heading>p{max-width:none;margin-top:24px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.gallery-grid img{max-height:520px;object-position:center}.gallery-grid figcaption{font-size:22px}.gallery-footer{align-items:start;flex-direction:column;gap:20px}}

/* Pets are welcome on Whitecap's patio. */
.pet-section{display:grid;grid-template-columns:1.15fr 1fr;background:var(--navy);color:var(--cream);align-items:center}.pet-copy{padding:70px 12%}.pet-copy h2{font-size:clamp(48px,5vw,72px)}.pet-copy>p:not(.eyebrow){max-width:430px;font-size:15px}.pet-copy .text-link:hover{color:#e6c78e}.pet-photo{height:610px;overflow:hidden}.pet-photo img{width:100%;height:100%;object-fit:cover;object-position:center 65%}
@media(max-width:900px){.pet-copy{padding:50px 10%}.pet-photo{height:550px}}
@media(max-width:720px){.pet-section{grid-template-columns:1fr}.pet-copy{padding:60px 7%}.pet-copy h2{font-size:54px}.pet-photo{height:480px}.pet-photo img{object-position:center 67%}}

/* Original live-music and marina photographs. */
.music-photo{height:620px;overflow:hidden}.music-photo img{width:100%;height:100%;object-fit:cover;object-position:center 58%}.music-copy h2{margin-bottom:30px}.arrival-photo{margin:34px 0 0}.arrival-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.arrival-photo figcaption{font-size:9px;letter-spacing:.12em;margin-top:10px;text-transform:uppercase}
@media(max-width:1000px){.music-photo{height:550px}}
@media(max-width:720px){.music-copy{order:0}.music-photo{order:1;height:560px;margin-top:10px}.music-copy h2{font-size:56px}.arrival-photo{margin-top:30px}}

/* A short, silent cooking clip with automatic looping playback. */
.special-image video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 50%;background:var(--navy)}.special-image .video-label{top:24px;bottom:auto;pointer-events:none;background:#173445a6;padding:7px 10px;left:16px}

/* Two original food photographs beside the menus. */
.menu-photo-pair{min-height:0;display:grid;grid-template-rows:1fr 1fr;gap:4px}.menu-photo-pair figure{margin:0;position:relative;height:340px;overflow:hidden}.menu-photo-pair img{position:static;width:100%;height:100%;object-fit:cover;object-position:center 62%}.menu-photo-pair .photo-note{left:24px;bottom:20px;background:#18334399;padding:5px 8px}
@media(max-width:1000px){.menu-photo-pair figure{height:325px}}
@media(max-width:720px){.menu-photo-pair figure{height:270px}.menu-photo-pair .photo-note{font-size:8px;left:18px}}

/* Keep the dancers, band, and lake visible in the wide music photograph. */
.music-photo-wide{height:auto;align-self:center}.music-photo-wide img{height:auto;aspect-ratio:2048/1181;object-fit:contain;object-position:center}
@media(max-width:720px){.music-photo-wide{height:auto;margin-top:10px}}

/* Simple feature sections share the same width, spacing, and 4:3 media frame. */
.feature-section{display:block;padding:0;background:var(--sand)}
.feature-row{max-width:1280px;margin:auto;padding:72px 48px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;align-items:center}
.feature-row .menu-copy{padding:0}.feature-row .music-copy h2{margin-bottom:26px}
.specials{max-width:1280px;padding:80px 48px}.special-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;align-items:center}
.feature-media,.menu-photo.feature-media,.music-photo.feature-media,.special-image.feature-media{position:relative;min-height:0;height:auto;width:100%;aspect-ratio:4/3;overflow:hidden;margin:0;align-self:center}
.feature-media>img,.feature-media>video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.special-image.feature-media>video{object-fit:contain;background:#152f40}
.pet-note{padding:44px 24px;text-align:center;background:var(--navy);color:var(--cream)}.pet-note .eyebrow{margin-bottom:12px}.pet-note h2{font-size:clamp(30px,3.4vw,44px);margin:0 0 16px}.pet-note>p:last-child{max-width:630px;margin:0 auto;font-size:14px}
.visit{max-width:1280px;padding:80px 48px;gap:64px;grid-template-columns:repeat(2,minmax(0,1fr))}
/* A self-contained photo gallery, directly above the footer. */
.gallery-section{max-width:1280px;padding:20px 48px 76px}.gallery-heading{align-items:center;gap:36px;margin-bottom:28px}.gallery-heading .eyebrow{margin-bottom:12px}.gallery-heading h2{font-size:clamp(40px,4.4vw,60px)}.gallery-heading>p{max-width:310px;font-size:14px;margin:0}
.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.gallery-grid img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;max-height:none}.gallery-footer{margin-top:24px}
@media(max-width:900px){.feature-row{padding:58px 32px;gap:36px}.specials{padding:64px 32px}.special-layout{gap:36px}.visit{padding:64px 32px;gap:36px}.gallery-section{padding:16px 32px 64px}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.menu-copy h2,.music-copy h2{font-size:52px}}
@media(max-width:720px){.feature-row{padding:52px 7%;grid-template-columns:1fr;gap:30px}.feature-row .menu-photo,.feature-row .music-photo{order:0}.feature-row .menu-copy,.feature-row .music-copy{order:1}.specials{padding:58px 7%}.special-layout{grid-template-columns:1fr;gap:30px}.visit{padding:58px 7%;grid-template-columns:1fr;gap:38px}.gallery-section{padding:8px 7% 54px}.gallery-heading{display:block}.gallery-heading>p{margin-top:18px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pet-note{padding:36px 7%}}

/* The cooking clip returns to its natural portrait frame. */
.special-image.feature-media{width:min(100%,360px);aspect-ratio:9/16;justify-self:center}
.special-image.feature-media>video{object-fit:cover}
/* Full pet-friendly patio feature, with the original copy and dog photograph. */
.pet-section.feature-section{display:block;background:var(--navy);color:var(--cream)}
.pet-section .pet-copy{padding:0}.pet-section .pet-photo.feature-media{height:auto;aspect-ratio:4/3}

/* Native WordPress adjustments. */
.admin-bar header{top:32px}.page-content{max-width:1100px;margin:auto;padding:75px 6%;min-height:55vh}.page-content h1{font-size:55px}.page-content article{margin-bottom:45px}
@media(max-width:782px){.admin-bar header{top:46px}}
@media(max-width:600px){.admin-bar header{top:0}}

/* Contact email added in 1.7.2. */
.visit .contact-email{display:block;width:fit-content;max-width:100%;margin-top:8px;font-size:15px;line-height:1.6;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.visit .contact-email:hover{color:#88692f}

/* Editable fonts inherit from the site or the individual section. */
:root{--wcmi-heading-font:'Libre Caslon Display',Georgia,serif;--wcmi-body-font:'DM Sans',Arial,sans-serif}
body,.topline,body>header,main>section,.wcmi-section-shell>section,body>footer,dialog{font-family:var(--wcmi-body-font)}
h1,h2,.lake-line p,.footer-top p,.dish h3,.phone,.gallery-grid figcaption{font-family:var(--wcmi-heading-font)}
.dialog-top h2{font-family:var(--wcmi-body-font)}
#home{background-color:var(--navy)}
.gallery-grid figcaption{overflow-wrap:anywhere}

/* Practical visit details. Colors and fonts continue to follow section settings. */
.topline{gap:16px}.nav-hours-link,.mobile-hours-link{white-space:nowrap}.mobile-hours-link{display:none}
@media(min-width:901px) and (max-width:1100px){nav{gap:14px;font-size:11px}.brand img{width:170px}}
@media(max-width:900px){.mobile-hours-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-left:auto;margin-right:16px;font-size:12px;text-decoration:underline;text-underline-offset:4px}nav .nav-hours-link{display:none}}
@media(max-width:360px){header{padding:0 4%}.brand img{width:128px}.mobile-hours-link{margin-right:10px}.nav-toggle{gap:8px;padding:8px}}
.visit-details>.visit-no-number{padding-left:0}.visit .number{max-width:35px;overflow-wrap:anywhere}
@media(max-width:720px){.visit .number{max-width:24px}}
.preserve-lines{white-space:pre-line}.visit-details #hours{scroll-margin-top:140px}
.hours-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.45;margin:0 0 16px}
.hours-table caption{text-align:left;font-weight:600;font-size:15px;margin-bottom:12px}
.hours-table th,.hours-table td{padding:9px 8px;border-bottom:1px solid currentColor;border-bottom-color:color-mix(in srgb,currentColor 20%,transparent);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.hours-table thead th{font-size:10px;text-transform:uppercase;letter-spacing:.07em;opacity:.8}
.hours-table th:first-child{padding-left:0}.hours-table td:last-child,.hours-table th:last-child{padding-right:0}
.hours-table tbody th{font-weight:500;width:27%}.hours-table td{font-variant-numeric:tabular-nums}
.hours-season{border-left:3px solid currentColor;padding:12px 15px;margin-bottom:20px;background:color-mix(in srgb,currentColor 5%,transparent)}
.hours-season h4{font:600 13px/1.5 var(--wcmi-body-font);margin:0 0 6px}.visit .hours-season p{margin:0;font-size:13px}
.visit .hours-dates{font-size:12px;font-weight:600}.visit .hours-unlisted{font-size:11px;line-height:1.5}
.hours-unlisted a,.hours-fallback a,.airport-link{text-decoration:underline;text-underline-offset:3px}
.arrival-methods{margin:0}.arrival-methods>div{margin:0 0 15px}.arrival-methods>div:last-child{margin-bottom:0}
.arrival-methods dt{font-size:13px;font-weight:600;margin-bottom:4px}.arrival-methods dd{margin:0;font-size:13px;line-height:1.65}
.airport-link{display:inline-block;margin-top:6px}.arrival-photo-frame{position:relative;overflow:hidden}
.arrival-photo-label{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:7px 10px;background:#102b3be6;color:#fff;font-size:11px;line-height:1.5}
.visit .arrival-photo figcaption{font:400 12px/1.65 var(--wcmi-body-font);letter-spacing:0;text-transform:none;margin-top:10px}
.wcmi-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}

/* Gallery viewer stays separate from the existing menu dialog. */
#photo-dialog{padding:20px;width:min(1080px,94vw);max-width:94vw;max-height:92vh;max-height:92dvh;box-sizing:border-box;background:#142d3b;color:#fff;overflow:auto}
#photo-dialog::backdrop{background:rgba(5,15,22,.86)}
#photo-dialog .photo-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}
#photo-dialog h2{font-family:var(--wcmi-body-font);font-size:18px;line-height:1.4;letter-spacing:0;margin:0}
#photo-dialog button{min-height:44px;padding:9px 14px;border:1px solid #ffffff70;background:transparent;color:inherit;font-size:13px;line-height:1.3}
#photo-dialog button:hover{background:#ffffff18}#photo-dialog button:disabled{opacity:.4;cursor:default}
#photo-dialog .photo-viewer-figure{margin:0}#photo-dialog .photo-viewer-stage{display:flex;align-items:center;justify-content:center;min-height:120px;background:#0c202c}
#photo-dialog #photo-viewer-image{display:block;width:auto;height:auto;max-width:100%;max-height:65vh;max-height:65dvh;object-fit:contain;margin:auto}
#photo-dialog [hidden]{display:none!important}
#photo-dialog #photo-viewer-caption{font:400 13px/1.6 var(--wcmi-body-font);padding:12px 0 0;overflow-wrap:anywhere}
#photo-dialog .photo-dialog-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
#photo-dialog #photo-viewer-count{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
#photo-dialog #photo-viewer-error{padding:24px;margin:0;font-size:14px;text-align:center}#photo-viewer-error a{text-decoration:underline}
@media(max-width:720px){.hours-table{font-size:12px}.hours-table th,.hours-table td{padding:8px 5px}.visit-details #hours{scroll-margin-top:100px}#photo-dialog{padding:14px;width:96vw;max-width:96vw}#photo-dialog h2{font-size:15px}#photo-dialog button{padding:9px 11px}#photo-dialog #photo-viewer-image{max-height:60vh;max-height:60dvh}}

/* Contact and hours footer. All colors and fonts inherit the footer controls. */
.site-footer{padding:0 5%;border-top:1px solid #ffffff38}
.footer-main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);max-width:1300px;margin:auto}
.footer-contact{padding:44px 8% 46px 0;min-width:0}
.footer-brand-row{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:20px}
.footer-logo{flex:0 1 235px}.footer-logo img{width:235px;height:auto}
.footer-social{display:inline-flex;align-items:center;gap:12px;max-width:185px;font-size:11px;line-height:1.6;border-bottom:1px solid currentColor;padding:8px 0;overflow-wrap:anywhere}
.footer-tagline{font-family:var(--wcmi-heading-font);font-size:30px;line-height:1.15;letter-spacing:-.015em;margin:0 0 22px}
.footer-address{font-style:normal;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.footer-address .footer-venue{display:block;margin-bottom:4px;opacity:.8}
.footer-address a{text-decoration:underline;text-decoration-color:#ffffff55;text-underline-offset:5px}
.footer-phone,.footer-email{display:block;width:fit-content;max-width:100%;margin-top:8px}
.footer-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.footer-button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:44px;padding:10px 18px;background:var(--cream);color:var(--navy);font-size:12px;border:1px solid var(--cream)}
.footer-button-outline{background:transparent;color:inherit;border-color:currentColor}
.site-footer a:hover{opacity:.8}.footer-button:hover{background:var(--gold);color:#fff;opacity:1}
.footer-hours{padding:54px 0 46px 12%;border-left:1px solid #ffffff38;min-width:0;scroll-margin-top:130px}
.footer-hours-panel{max-width:440px;border-bottom:1px solid #ffffff70}
.footer-hours-panel summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:16px;font-weight:600;min-height:44px;padding:0 0 14px}
.footer-hours-panel summary::-webkit-details-marker{display:none}
.footer-chevron{display:block;width:10px;height:10px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-right:4px}
.footer-hours-panel[open] .footer-chevron{transform:rotate(225deg)}
.footer-hours-content{padding-bottom:20px;font-size:13px;line-height:1.65}
.footer-hours-content>p{margin:0 0 14px}.footer-hours-content>p:last-child{margin-bottom:0}
.footer-hours .hours-table{font-size:13px;line-height:1.7;margin:0 0 15px}
.footer-hours .hours-table th,.footer-hours .hours-table td{padding:3px 8px;border:0}
.footer-hours .hours-table th:first-child{padding-left:0;width:38%}
.footer-hours .hours-table td:last-child{padding-right:0}
.footer-hours .hours-table thead th{padding-bottom:10px;font-size:10px;opacity:.65}
.footer-hours .hours-table tbody th{font-weight:400}
.footer-hours .hours-season{padding:10px 13px;margin-bottom:18px}.footer-hours .hours-season p{margin:0;font-size:12px}
.footer-hours .hours-dates{font-size:12px;opacity:.8}.footer-hours .hours-unlisted{font-size:11px}
.site-footer .footer-bottom{max-width:1300px;margin:auto;padding:22px 0;gap:25px;align-items:center;border-color:#ffffff38;font-size:10px}
.footer-links{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px 25px;font-size:11px}
.footer-links a{padding:6px 0;white-space:nowrap}
@media(max-width:900px){.footer-brand-row{align-items:start;flex-direction:column;gap:10px}.footer-logo{flex-basis:auto}.footer-logo img{width:210px}.footer-hours{padding-left:10%}.site-footer .footer-bottom{align-items:start;flex-direction:column}.footer-links{justify-content:flex-start}}
@media(max-width:600px){.site-footer{padding:0 7%}.footer-main{grid-template-columns:1fr}.footer-contact{padding:36px 0}.footer-brand-row{flex-direction:row;align-items:center;gap:20px}.footer-logo{flex:0 1 190px}.footer-logo img{width:190px}.footer-social{max-width:120px;font-size:10px}.footer-tagline{font-size:28px}.footer-hours{border-left:0;border-top:1px solid #ffffff38;padding:30px 0 34px;scroll-margin-top:100px}.footer-hours-panel{max-width:none}.footer-hours-panel summary{font-size:15px}.footer-hours .hours-table{font-size:13px}.footer-links{gap:8px 20px}}

/* Platform-independent link arrows; inherit text color instead of emoji styling. */
.wcmi-arrow{display:inline-block;width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.15em;overflow:visible}
.button>.wcmi-arrow,.text-link>.wcmi-arrow{width:18px;height:18px;align-self:center}
.menu-links button>.wcmi-arrow,.hero-bottom a>.wcmi-arrow{width:20px;height:20px}
