@font-face{
  font-family:'Teen';
  src:local('Teen'),local('Teen-Regular'),url('../fonts/font.otf') format('opentype');
  font-style:normal;
  font-weight:400 900;
  font-display:swap;
}
:root{
  --wine:#8d2027;
  --wine-dark:#6f171d;
  --wine-deep:#591117;
  --wine-light:#a52b33;
  --paper:#8d2027;
  --offwhite:#6f171d;
  --ink:#ffffff;
  --muted:rgba(255,255,255,.76);
  --line:#a52b33;
  --side:286px;
  --content-width:calc(100vw - var(--side));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;padding-left:var(--side);background:var(--paper);color:var(--ink);font-family:'Teen',Arial,sans-serif;font-size:calc(14px + 2pt);line-height:1.7}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit;font-family:'Teen',Arial,sans-serif}
.wrap{width:min(1120px,calc(100% - 72px));margin:0 auto}

/* Full-width content blocks: cards and every image-based section span the whole content area. */
.cards,.feature-grid,.gallery,.two-col,.split{width:100%;max-width:none}
.wrap > .cards,
.wrap > .feature-grid,
.wrap > .gallery,
.wrap > .two-col,
.wrap > .split,
.wrap > .wide-placeholder-image{
  width:var(--content-width);
  max-width:none;
  margin-left:calc((100% - var(--content-width))/2);
  margin-right:calc((100% - var(--content-width))/2);
}

/* fixed left navigation, matching the original side-header layout */
.side-header{position:fixed;z-index:100;left:0;top:0;bottom:0;width:var(--side);background:var(--wine);color:#fff;display:flex;flex-direction:column;box-shadow:3px 0 14px rgba(0,0,0,.13)}
.side-logo{height:218px;display:flex;align-items:center;justify-content:center;padding:28px 30px;border-bottom:1px solid rgba(255,255,255,.14)}
.side-logo-image{display:block;width:194px;max-width:100%;height:auto;max-height:150px;object-fit:contain}
.side-nav{display:flex;flex-direction:column;padding:0;margin:0}
.side-nav a{position:relative;display:block;padding:15px 27px;border-bottom:1px solid rgba(255,255,255,.14);font-family:'Teen',Arial,sans-serif;font-size:calc(12px + 2pt);font-weight:700;line-height:1.35;letter-spacing:.075em;text-transform:uppercase;color:rgba(255,255,255,.93);transition:.18s ease}
.side-nav a:hover,.side-nav a.active{background:var(--wine-dark);color:#fff}
.side-nav a.active:after{content:'';position:absolute;right:-9px;top:50%;margin-top:-9px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:9px solid var(--wine-dark)}
.side-bottom{margin-top:auto;padding:22px 26px 25px;border-top:1px solid rgba(255,255,255,.15)}
.side-social{display:flex;gap:10px;margin-bottom:16px}.side-social a{width:32px;height:32px;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;color:#fff;transition:background .18s ease,border-color .18s ease}.side-social a:hover,.side-social a:focus-visible{background:var(--wine-dark);border-color:#fff}.side-social svg{width:17px;height:17px;display:block;fill:currentColor}.side-contact{font-size:calc(10px + 2pt);line-height:1.6;letter-spacing:.05em;color:rgba(255,255,255,.78)}
.mobile-bar{display:none}

.hero{height:570px;min-height:480px;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center;background:var(--wine-dark)}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero:before{content:'';position:absolute;inset:0;z-index:1;background:rgba(74,9,14,.23)}
.hero.page-banner{height:415px;min-height:360px}

.hero-copy{position:relative;z-index:2;padding:35px 35px 42px;text-shadow:0 2px 10px rgba(0,0,0,.28)}
.hero h1{margin:0;color:#fff;font-family:'Teen',Arial,sans-serif;font-size:calc(36px + 2pt);font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.15}
.hero p{margin:11px 0 0;font-family:'Teen',Arial,sans-serif;font-size:calc(18px + 2pt);font-style:italic;letter-spacing:.025em}
.hero .hero-rule{width:52px;height:2px;background:#fff;margin:18px auto 0}

.section{padding:68px 0;background:var(--paper)}.section.soft{background:var(--offwhite)}.section.compact{padding:50px 0}.section.offwhite{background:var(--offwhite)}.section.red{background:var(--wine);color:#fff}.section.red .section-title,.section.red .section-sub,.section.red .eyebrow{color:#fff}
.eyebrow{text-align:center;color:rgba(255,255,255,.86);font-size:calc(11px + 2pt);font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}
.section-title{margin:0 auto 9px;text-align:center;font-family:'Teen',Arial,sans-serif;font-size:calc(30px + 2pt);line-height:1.2;font-weight:700;letter-spacing:.035em;text-transform:uppercase;color:#fff}
.section-sub{max-width:900px;margin:0 auto 35px;text-align:center;color:rgba(255,255,255,.82);font-family:'Teen',Arial,sans-serif;font-size:calc(12px + 2pt);font-weight:700;line-height:1.6;letter-spacing:.08em;text-transform:uppercase}
.lead{max-width:900px;margin:27px auto 0;text-align:center;color:rgba(255,255,255,.86);font-size:calc(14px + 2pt);line-height:1.9}
.intro-heading{margin:0 0 3px;text-align:center;font-family:'Teen',Arial,sans-serif;font-size:calc(29px + 2pt);line-height:1.25;letter-spacing:.04em;text-transform:uppercase}.intro-kicker{text-align:center;color:rgba(255,255,255,.86);font-size:calc(12px + 2pt);font-weight:bold;letter-spacing:.12em;text-transform:uppercase}

/* Seamless tiles: intentionally no gaps, margins, shadows or borders between cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:42px 0 0;padding:0}
.home-cards{width:100%;margin:42px 0 0}
.card{margin:0;padding:0;background:var(--wine);color:#fff;min-width:0;box-shadow:none;border:0;overflow:hidden}
.card:nth-child(3n+2){background:var(--wine-dark)}.card:nth-child(3n+3){background:var(--wine-light)}
.card-image{display:block;width:100%;aspect-ratio:1.42;object-fit:cover}.card .ph{border:0}.card-body{min-height:118px;padding:24px 25px 22px;display:flex;flex-direction:column;justify-content:center;text-align:center}
.card-body small{display:block;color:rgba(255,255,255,.8);font-size:calc(10px + 2pt);font-weight:700;line-height:1.45;letter-spacing:.105em;text-transform:uppercase}.card-body h3{margin:4px 0 0;color:#fff;font-family:'Teen',Arial,sans-serif;font-size:calc(20px + 2pt);font-weight:700;line-height:1.2;letter-spacing:.03em;text-transform:uppercase}

.ph{aspect-ratio:1.42;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,var(--wine-light),var(--wine-dark));border:1px dashed rgba(255,255,255,.42);color:#fff;font-size:calc(9px + 2pt);font-weight:700;line-height:1.35;letter-spacing:.11em;text-align:center;text-transform:uppercase;padding:20px}
.ph:before{content:'';position:absolute;inset:11px;border:1px dashed rgba(255,255,255,.28)}.ph>*{position:relative;z-index:2}.ph.wide{aspect-ratio:2.2}.ph.tall{aspect-ratio:.92}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:30px;line-height:0}.gallery .ph{border:0;aspect-ratio:1.23}
.gallery-image,.gallery-image-static{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--wine-dark);margin:0;border:0;outline:0}.gallery-image-static{width:100%;height:100%;object-fit:cover}.gallery-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.gallery-image:hover img{transform:scale(1.025)}.event-gallery .gallery-image,.event-gallery .ph{border:0}
.gallery-title{margin:0 0 3px;text-align:center;font-size:calc(28px + 2pt);letter-spacing:.05em;text-transform:uppercase}.gallery-kicker{text-align:center;font-size:calc(11px + 2pt);font-weight:bold;letter-spacing:.12em;text-transform:uppercase}
.filter{text-align:center;margin:24px 0 15px;font-size:calc(11px + 2pt);color:var(--muted)}.filter b{color:#fff}.section.red .filter{color:rgba(255,255,255,.7)}.section.red .filter b{color:#fff}

/* Keep feature rows and directly following image galleries completely seamless. */
.feature-grid + .wrap > .gallery,
.feature-grid + .gallery{margin-top:0}
.form input::placeholder,.form textarea::placeholder{color:rgba(255,255,255,.58)}

/* Feature blocks used on the secondary pages. The home page intentionally uses .cards instead. */
.feature-grid{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:40px}
.feature{min-height:125px;padding:25px;background:var(--wine);color:#fff;text-align:center;display:flex;flex-direction:column;justify-content:center}
.feature:nth-child(even){background:var(--wine-dark)}
.feature small{font-size:calc(10px + 2pt);font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:rgba(255,255,255,.80)}
.feature h3{margin:5px 0 0;font-family:'Teen',Arial,sans-serif;font-size:calc(20px + 2pt);line-height:1.2;letter-spacing:.03em;text-transform:uppercase}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;margin-top:35px}
.two-col .copy{padding:48px 50px;background:var(--wine);color:#fff}
.two-col .copy h4{margin:0 0 8px;font-size:calc(11px + 2pt);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.two-col .copy h2{margin:0 0 13px;font-family:'Teen',Arial,sans-serif;font-size:calc(27px + 2pt);line-height:1.25;text-transform:uppercase}
.two-col .copy p{margin:0;font-size:calc(14px + 2pt);line-height:1.85}
.content-image{width:100%;height:100%;min-height:340px;object-fit:cover}
.wide-placeholder-image{display:block;width:100%;max-width:none;height:auto;aspect-ratio:16/9;object-fit:cover;margin-top:32px;margin-bottom:32px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;margin-top:34px}.split-copy{padding:48px 50px;background:var(--wine);color:#fff}.split-copy h2{margin:0 0 13px;font-family:'Teen',Arial,sans-serif;font-size:calc(27px + 2pt);line-height:1.25;text-transform:uppercase}.split-copy h4{margin:0 0 8px;font-size:calc(11px + 2pt);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78)}.split-copy p{margin:0;font-size:calc(14px + 2pt);line-height:1.85}.split .ph{aspect-ratio:auto;min-height:340px;border:0}

.menu-frame,.map-frame,.social-frame,.tour-frame{position:relative;min-height:470px;background:var(--wine-dark);border:0;display:grid;place-items:center;text-align:center;color:#fff;font-size:calc(11px + 2pt);font-weight:bold;letter-spacing:.13em;text-transform:uppercase;padding:35px}.menu-frame:before,.map-frame:before,.social-frame:before,.tour-frame:before{content:'';position:absolute;inset:14px;border:1px dashed rgba(255,255,255,.38)}.map-frame{min-height:390px}.social-frame{min-height:360px}.tour-frame{min-height:480px}
.info-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:0}.info-cell{min-height:128px;padding:24px 18px;background:var(--wine);color:#fff;text-align:center;display:flex;flex-direction:column;justify-content:center}.info-cell:nth-child(even){background:var(--wine-dark)}.info-cell small{font-size:calc(10px + 2pt);font-weight:bold;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.76)}.info-cell strong{margin-top:5px;font-family:'Teen',Arial,sans-serif;font-size:calc(19px + 2pt);line-height:1.2;text-transform:uppercase}

.contact-grid{display:grid;grid-template-columns:42% 58%;gap:0;margin-top:35px}.contact-copy{background:var(--wine);color:white;padding:45px}.contact-copy h2{font-family:'Teen',Arial,sans-serif;text-transform:uppercase;font-size:calc(27px + 2pt);margin:0 0 18px}.contact-copy p{margin:0 0 15px}.form{padding:38px;background:var(--wine-dark);display:grid;grid-template-columns:1fr 1fr;gap:13px}.form label{font-size:calc(11px + 2pt);font-weight:bold;text-transform:uppercase;letter-spacing:.06em}.form .full{grid-column:1/-1}.form input,.form textarea{width:100%;border:1px solid var(--wine-light);background:var(--wine-deep);color:#fff;padding:12px 13px}.form textarea{min-height:145px;resize:vertical}.check{display:flex;gap:9px;align-items:flex-start;font-size:calc(11px + 2pt);color:rgba(255,255,255,.86)}.check input{width:auto;margin-top:4px}.btn{border:0;padding:12px 17px;cursor:pointer;text-transform:uppercase;font-weight:bold;font-size:calc(10px + 2pt);letter-spacing:.08em}.btn.primary{background:var(--wine);color:#fff}.btn.primary:hover{background:var(--wine-dark)}.btn.alt{background:var(--wine-light);color:#fff}

.history p,.legal p,.legal li{font-size:calc(14px + 2pt);line-height:1.85;color:rgba(255,255,255,.86)}.history p{max-width:930px;margin:0 auto 21px}.history .ph{max-width:930px;margin:31px auto}.legal{padding:60px 0}.legal h1{margin:0 0 27px;font-family:'Teen',Arial,sans-serif;font-size:calc(34px + 2pt);text-transform:uppercase}.legal h3{margin-top:29px;color:#fff;font-size:calc(17px + 2pt)}.notice{margin:22px 0;padding:15px 18px;border-left:5px solid var(--wine-light);background:var(--wine-dark)}

.footer-main{background:var(--wine-deep);color:#fff;padding:45px 0 38px}.footer-grid{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:0}.footer-col{padding:0 36px;border-right:1px solid rgba(255,255,255,.18)}.footer-col:first-child{padding-left:0}.footer-col:last-child{border-right:0;padding-right:0}.footer-main h3{margin:0 0 13px;font-family:'Teen',Arial,sans-serif;font-size:calc(14px + 2pt);letter-spacing:.08em;text-transform:uppercase}.footer-main p{margin:0 0 5px;font-size:calc(12px + 2pt);line-height:1.6;color:rgba(255,255,255,.8)}.accessibility-placeholder{width:132px;height:56px;margin-top:20px;border:1px dashed rgba(255,255,255,.5);display:grid;place-items:center;font-size:calc(8px + 2pt);letter-spacing:.09em;text-transform:uppercase;text-align:center}.accessibility-logo{display:block;width:100px;margin-top:20px;background:var(--wine-deep)}.accessibility-logo img{display:block;width:100%;height:auto}.weather-note{margin-top:10px!important;font-size:calc(10px + 2pt)!important;line-height:1.5!important;color:rgba(255,255,255,.64)!important}
.footer-bottom{background:#3a0b0f;color:rgba(255,255,255,.66);padding:16px 0;font-size:calc(10px + 2pt)}.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

.cookie{position:fixed;z-index:150;right:18px;bottom:18px;width:min(390px,calc(100% - 36px));background:var(--wine-deep);color:#fff;box-shadow:0 12px 45px rgba(0,0,0,.28);padding:20px;display:none;border-top:5px solid var(--wine)}.cookie.show{display:block}.cookie h3{margin:0 0 6px;font-size:calc(15px + 2pt)}.cookie p{font-size:calc(12px + 2pt);margin:0 0 13px}.buttons{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:1050px){
  :root{--side:242px}.wrap{width:min(100% - 52px,1120px)}.side-logo{height:190px}.side-logo-image{width:165px;max-height:125px}.side-nav a{padding:13px 21px;font-size:calc(11px + 2pt)}.hero{height:520px}.cards{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}.footer-col{padding:0 24px}
}
@media(max-width:820px){
  :root{--content-width:100vw}
  .two-col{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr 1fr}
  body{padding-left:0;padding-top:68px}.side-header{transform:translateX(-100%);width:280px;top:68px;transition:transform .25s ease}.side-header.open{transform:translateX(0)}.side-logo{height:170px}.side-nav a.active:after{display:none}.mobile-bar{position:fixed;z-index:140;display:flex;top:0;left:0;right:0;height:68px;background:var(--wine);color:white;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:0 2px 10px rgba(0,0,0,.18)}.mobile-brand{font-family:'Teen',Arial,sans-serif;font-size:calc(13px + 2pt);font-weight:bold;letter-spacing:.08em;text-transform:uppercase}.menu-btn{border:1px solid rgba(255,255,255,.45);background:none;color:#fff;width:38px;height:36px;font-size:calc(22px + 2pt);line-height:1}.hero{height:450px;min-height:420px}.hero.page-banner{height:330px;min-height:310px}.hero h1{font-size:calc(31px + 2pt)}.split,.contact-grid{grid-template-columns:1fr}.split .ph{min-height:300px}.info-strip{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}.footer-col{padding:24px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.15)}.footer-col:first-child{padding-top:0}.footer-col:last-child{border-bottom:0;padding-bottom:0}.form{grid-template-columns:1fr}.form .full{grid-column:auto}
}
@media(max-width:560px){
  .feature-grid{grid-template-columns:1fr}
  .wrap{width:calc(100% - 30px)}.hero{height:380px;min-height:360px}.hero.page-banner{height:290px;min-height:270px}.hero h1{font-size:calc(26px + 2pt)}.hero p{font-size:calc(15px + 2pt)}.section{padding:50px 0}.section-title,.intro-heading{font-size:calc(25px + 2pt)}.cards,.gallery{grid-template-columns:1fr}.gallery .ph{aspect-ratio:1.55}.card-body{min-height:105px}.split-copy,.contact-copy{padding:34px 26px}.info-strip{grid-template-columns:1fr}.form{padding:26px 20px}.footer-row{display:block}.footer-row span{display:block;margin-bottom:7px}
}
