:root{--ink:#171918;--paper:#f6f3ec;--accent:#303330;--muted:#696960;--line:#d9d5ca}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;line-height:1.7}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:normal;letter-spacing:-.045em}h1{font-size:clamp(3.5rem,8vw,7.5rem);margin-bottom:24px}h2{font-size:clamp(2.4rem,4vw,4rem);margin-bottom:28px}h3{font-size:1.4rem}p{margin-bottom:24px}.wrap{width:min(1240px,calc(100% - 64px));margin:auto}.topline{background:#252a27;color:#d4d8cf;font-size:11px;letter-spacing:.08em;padding:8px 0;text-transform:uppercase}.topline .wrap{display:flex;justify-content:space-between}.topline a{text-decoration:none}.header{background:var(--paper);position:relative;z-index:10;border-bottom:1px solid var(--line)}.nav-wrap{display:flex;justify-content:space-between;align-items:center;min-height:105px;gap:30px}.brand{text-decoration:none;font-size:25px;line-height:1;font-weight:900;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:3px;text-align:center;margin-top:10px}.brand img{max-width:210px;max-height:90px}nav{display:flex;gap:24px}nav a{font-size:11px;text-transform:uppercase;font-weight:bold;letter-spacing:.08em;text-decoration:none;padding:12px 0;border-bottom:2px solid transparent}nav a:hover,nav a[aria-current]{border-color:var(--accent);color:var(--accent)}.menu-toggle{display:none}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:bold;letter-spacing:.2em;color:var(--accent);margin-bottom:22px}.hero{position:relative;min-height:680px;background:#27332e;color:white;overflow:hidden}.hero-media{position:absolute!important;inset:0;width:100%;height:100%!important}.hero .placeholder{background:radial-gradient(ellipse at 75% 25%,#73836b88,transparent 50%),linear-gradient(115deg,#202a25,#445347 60%,#1c2823)}.hero .placeholder span{position:absolute;right:32px;bottom:100px;opacity:.6;font-size:11px}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0c130fd9,transparent)}.hero-content{position:relative;padding:95px 0 120px}.hero-content>p:not(.eyebrow){max-width:460px;color:#e4e4d9}.hero .eyebrow{color:#e4e4df}h1 em{font-weight:normal;color:#e4e4df}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);padding:14px 24px;color:white;text-decoration:none;font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:bold;border:1px solid var(--accent);min-height:48px}.button:hover{background:#171918}.button.outline{border-color:#ffffff66;background:transparent}.button.outline:hover{background:#ffffff15}.hero-bottom{position:absolute;bottom:24px;left:0;right:0;display:flex;gap:40px;border-top:1px solid #ffffff33;padding-top:18px;font-size:10px;letter-spacing:.2em}.section{padding-top:95px;padding-bottom:95px}.split{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.media{width:100%;height:390px;object-fit:cover}.placeholder{display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#deded1,#b6bbaa);color:#4d584a;border:1px solid #233d2510;padding:24px}.placeholder span{font-family:Georgia,serif;font-size:22px}.placeholder small{display:block;font-family:monospace;font-size:11px;opacity:.7;margin-top:10px}.text-link{font-size:12px;text-transform:uppercase;font-weight:bold;letter-spacing:.07em;text-underline-offset:6px}.dark{background:#202722;color:var(--paper)}.dark .eyebrow{color:#d9ddd5}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px;gap:30px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.card{border:1px solid #ffffff25}.card .media{height:250px}.card-body{padding:28px}.card-body p{font-size:14px;color:#bfc6bd}.announcement{margin-top:42px}.specials{margin:24px 0 30px;border-top:1px solid var(--line)}.specials>div{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;font-size:14px}.specials span{color:var(--muted)}.event-strip{background:#e9e3d7;padding:75px 0}.event-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #b7b5a8}.event-grid>a,.event-grid>article{padding:25px 20px;border-bottom:1px solid #b7b5a8;border-right:1px solid #b7b5a8;text-decoration:none;position:relative}.event-grid>a:hover{background:#ded5c5}.event-grid span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}.event-grid h3{font-family:Georgia,serif;font-size:23px;line-height:1.3;margin:12px 0}.event-grid b{font-weight:normal}.social-banner{background:var(--accent);color:white;padding:60px 0}.social-banner .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.social-banner .eyebrow{color:#e4e4df}.social-banner h2{font-size:42px;margin-bottom:14px}.social-banner p:last-child{margin:0}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}footer{background:#171e19;color:#c1c7bd;font-size:13px;padding:65px 0 20px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr .6fr;gap:45px}footer h3{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:white}.footer-link{display:block;margin-bottom:8px}.copyright{border-top:1px solid #ffffff22;margin-top:40px;padding-top:20px;font-size:11px}.page-heading{padding:70px 0;background:#24332b;color:var(--paper)}.page-heading h1{font-size:clamp(3rem,6vw,5rem);margin:0}.page-heading .eyebrow{color:#e4e4df}.muted{color:var(--muted);font-size:13px}.poster{height:auto;max-width:800px;object-fit:contain}.placeholder.poster{min-height:600px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery .media{height:300px}.narrow{max-width:650px}.contact-box{padding:45px;background:#e8e4d9}.contact-box h3{font-family:Georgia,serif;font-size:30px}address{font-style:normal}.skip{position:absolute;top:-100px;background:white;z-index:50;padding:12px}.skip:focus{top:0}:focus-visible{outline:3px solid #737d73;outline-offset:5px}.show{border-bottom:1px solid var(--line);margin-bottom:24px}@media(max-width:999px){.wrap{width:calc(100% - 40px)}.menu-toggle{display:block;padding:10px 15px;border:1px solid var(--line);background:transparent;font:inherit;font-size:13px}.nav-wrap{min-height:85px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px;box-shadow:0 15px 20px #0002}nav.is-open{display:grid;grid-template-columns:1fr 1fr}.split{gap:35px}.hero{min-height:620px}.cards{gap:14px}.card-body{padding:20px}.footer-grid{grid-template-columns:1fr 1fr}.event-grid{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}}@media(max-width:640px){.topline{font-size:9px}.brand{font-size:22px}.section{padding-top:60px;padding-bottom:60px}.split,.cards{grid-template-columns:1fr}.split{gap:30px}.hero-content{padding-top:75px}.hero-content h1{font-size:4.6rem}.hero{min-height:650px}.hero-bottom{gap:20px;font-size:8px}.hero .placeholder span{display:none}.section-heading,.social-banner .wrap{display:block}.section-heading .text-link{display:inline-block;margin-bottom:20px}.social-banner .button{margin-top:25px}.social-banner h2{font-size:36px}.media{height:310px}.footer-grid{gap:30px}.gallery{grid-template-columns:1fr}.specials>div{flex-direction:column;gap:4px}.placeholder.poster{min-height:400px}}

/* Homepage hero carousel */
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s ease}
.hero-slide.is-active{opacity:1;visibility:visible}
.hero-slide:nth-child(2) .placeholder{background:linear-gradient(115deg,#32261f,#867052 65%,#302820)}
.hero-slide:nth-child(3) .placeholder{background:linear-gradient(115deg,#211f32,#5f506e 65%,#212030)}
.hero-slides{position:absolute;inset:0}
.carousel-controls{position:absolute;right:32px;bottom:78px;display:flex;align-items:center;gap:8px;z-index:2}
.carousel-controls[hidden]{display:none}
.carousel-controls button{border:1px solid #ffffff66;background:#17231dc9;color:white;min-width:44px;min-height:44px;padding:8px 12px;cursor:pointer;font:inherit;font-size:12px}
.carousel-controls button:hover{background:#34483b}
.carousel-dots{display:flex}
.carousel-dots button{border:0;background:transparent;padding:12px}
.carousel-dots span{display:block;width:9px;height:9px;border:1px solid white;border-radius:50%}
.carousel-dots button[aria-current="true"] span{background:white}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}
@media(max-width:640px){.carousel-controls{left:20px;right:auto;bottom:78px;gap:3px}.hero-content{padding-bottom:180px}.hero{min-height:720px}}

/* Header colors */
.topline{background:#fff;color:#000}
.header{background:#000;color:#fff;border-bottom-color:#262626}
.header .brand{color:#fff}
.header nav a{color:#fff}
.header nav a:hover,.header nav a[aria-current]{color:#fff;border-bottom-color:#fff}
.header .menu-toggle{color:#fff;border-color:#666}
@media(max-width:999px){.header nav{background:#000;color:#fff}}

/* Interior page headers use the configured slide 1 image. */
.page-heading{position:relative;overflow:hidden}
.page-heading .page-heading-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.page-heading-shade{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.page-heading>.wrap{position:relative;z-index:1}
.page-heading .placeholder span{display:none}

/* Slideshow primary button */
.hero .button:not(.outline){background:#fff;color:#000;border-color:#fff}
.hero .button:not(.outline):hover{background:#e8e8e8;border-color:#e8e8e8}

/* Slideshow heading accent */
.hero h1 em{color:#fff}

/* Fill the desktop viewport below the top bar and navigation. */
@media(min-width:1000px){
    .hero{min-height:calc(100vh - var(--site-header-height, 141px));min-height:calc(100dvh - var(--site-header-height, 141px))}
}

/* Homepage weekly lineup images. */
.event-strip .event-image{height:auto;aspect-ratio:4/3;object-fit:cover;margin-bottom:20px}

/* Keep the event calendar contained while allowing keyboard and touch scrolling. */
.event-calendar-scroll{height:700px;overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
@media(max-width:640px){.event-calendar-scroll{height:500px}}

/* Train artwork behind the footer content. */
footer{background:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,.8)),#171e19 url('../images/footer.jpeg') center center/cover no-repeat;color:#f1f1ed}


/* Merchandise masonry gallery preserves each image's natural proportions. */
.photo-masonry{columns:3;column-gap:22px}
.photo-masonry figure{margin:0 0 22px;break-inside:avoid}
.photo-masonry .media{height:auto;display:block;width:100%}
@media(max-width:999px){.photo-masonry{columns:2}}
@media(max-width:640px){.photo-masonry{columns:1}}

.narrow + .photo-masonry{margin-top:40px}

/* Top bar contact and social icons. */
.topline .wrap{align-items:center;gap:10px 24px;flex-wrap:wrap}
.topline-item,.topline a{display:inline-flex;align-items:center;gap:7px}
.topline svg{width:16px;height:16px;flex-shrink:0}
.topline-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.topline a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.topline .wrap{justify-content:center}.topline-links{justify-content:center;gap:16px}}
