/* FILE: css/style.css */
:root{
  --cream:#F7EFDC;--red:#B3362A;--navy:#1E3A5F;--gold:#D9A83C;--ink:#2A2118;
  --muted:#7A6E5C;--line:#E0D2B4;--wood:#5A3B24;--white:#FFF9EA;
  --shadow:0 14px 30px rgba(42,33,24,.14);--radius:4px;--max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Karla,system-ui,sans-serif;line-height:1.55}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.07;background-image:radial-gradient(#2A2118 .7px,transparent .7px);background-size:7px 7px;z-index:-1}
img{max-width:100%;display:block}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
h1,h2,h3,h4,.brand,.plan-name,.ticket-price,.playbill-title,.hero-title{font-family:Rye,Georgia,serif;line-height:1.08}
h1{font-size:clamp(2.2rem,5vw,4.7rem);margin:.2rem 0 .8rem}
h2{font-size:clamp(1.7rem,3.5vw,3rem)}
h3{font-size:1.45rem}
p{margin:.5rem 0 1rem}
.container{width:min(var(--max),calc(100% - 32px));margin:auto}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:10px;top:10px;background:var(--cream);padding:10px;z-index:99}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,239,220,.96);border-bottom:3px solid var(--wood);box-shadow:0 3px 0 var(--gold)}
.navbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.logo:hover{text-decoration:none}
.tent-mark{width:42px;height:42px;background:var(--red);clip-path:polygon(50% 5%,94% 36%,94% 100%,6% 100%,6% 36%);position:relative;border:3px solid var(--wood)}
.tent-mark:after{content:"";position:absolute;top:-8px;left:50%;width:7px;height:15px;background:var(--gold);transform:translateX(-50%) rotate(12deg)}
.brand{font-size:1.55rem}
.nav-links{display:flex;align-items:center;gap:18px}
.nav-links a{font-weight:700}
.nav-badge{background:var(--gold);color:var(--ink);padding:7px 11px;border:2px solid var(--wood);border-radius:3px;font-weight:800}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border:2px solid var(--wood);border-radius:4px;font-weight:800;text-decoration:none;box-shadow:3px 3px 0 var(--wood);transition:.18s ease}
.btn:hover{transform:translateY(-2px);text-decoration:none;box-shadow:3px 5px 0 var(--wood);filter:brightness(1.08)}
.btn-primary{background:var(--red);color:var(--cream)}
.btn-secondary{background:var(--navy);color:var(--cream)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy);box-shadow:none}
.menu-toggle{display:none;background:none;border:2px solid var(--wood);padding:7px;border-radius:4px}
.menu-toggle span{display:block;width:23px;height:3px;background:var(--ink);margin:4px}
.hero{min-height:calc(100vh - 74px);position:relative;overflow:hidden;display:grid;place-items:center;padding:70px 0}
.big-top{position:absolute;inset:0;background:repeating-linear-gradient(115deg,#B3362A 0 72px,#F7EFDC 72px 144px);opacity:.98}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(247,239,220,.2),transparent 52%)}
.hero-inner{position:relative;z-index:2;text-align:center;width:min(900px,100%);color:var(--ink)}
.hero-sign{background:var(--cream);border:6px solid var(--wood);box-shadow:0 0 0 8px var(--gold),12px 14px 0 rgba(42,33,24,.28);padding:38px 28px;position:relative}
.hero-sign:before,.hero-sign:after{content:"• • • • • • • • • • • •";position:absolute;left:4%;right:4%;color:var(--gold);letter-spacing:16px;font-size:18px;animation:chase 1.2s linear infinite}
.hero-sign:before{top:8px}.hero-sign:after{bottom:4px}
.hero-title{font-size:clamp(4rem,13vw,9.5rem);letter-spacing:.06em;margin:0;color:var(--red);text-shadow:3px 3px 0 var(--gold),7px 7px 0 var(--navy)}
.hero-kicker{font-family:Rye,serif;font-size:clamp(1.2rem,3vw,2rem);color:var(--navy);margin:12px 0}
.hero-copy{font-size:1.2rem;max-width:680px;margin:0 auto 22px}
.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.tent-flag{position:absolute;top:5%;left:50%;width:0;height:0;border-left:90px solid transparent;border-right:90px solid transparent;border-top:220px solid rgba(247,239,220,.24);transform:translateX(-50%);animation:float 4s ease-in-out infinite}
.section{padding:80px 0}
.section-head{text-align:center;max-width:720px;margin:0 auto 38px}
.section-head p{font-size:1.1rem;color:var(--muted)}
.midway{position:relative}
.route{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;position:relative}
.route:before{content:"";position:absolute;left:10%;right:10%;top:50%;border-top:3px dashed var(--red);transform:rotate(-3deg);z-index:0}
.station{position:relative;z-index:1;background:var(--cream);border:3px solid var(--wood);border-radius:4px;padding:28px;box-shadow:var(--shadow);transition:.2s}
.station:hover,.card:hover,.poster:hover{transform:translateY(-5px);box-shadow:0 18px 32px rgba(42,33,24,.2)}
.station-number{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gold);border:3px solid var(--wood);font-family:Rye;margin-bottom:12px}
.station h3{margin:.2rem 0;color:var(--red)}
.circus-icon{font-size:3rem}
.merry-go-round{position:relative;max-width:900px;margin:auto;padding:34px 0}
.carousel-stage{position:relative;min-height:290px;border:5px solid var(--wood);background:var(--navy);border-radius:50%;padding:40px 80px;overflow:hidden;box-shadow:inset 0 0 0 9px var(--gold),var(--shadow);animation:slowspin 18s linear infinite}
.testimonial{display:none;background:var(--cream);border:3px solid var(--wood);padding:28px;max-width:620px;margin:auto;min-height:210px;position:relative;animation:fade .5s}
.testimonial.active{display:block}
.testimonial:before{content:"★";position:absolute;right:18px;top:10px;color:var(--gold);font-size:2rem}
.testimonial h3{margin:0;color:var(--red)}
.testimonial .role{font-weight:700;color:var(--muted)}
.carousel-controls{text-align:center;margin-top:18px}
.dot{width:13px;height:13px;border-radius:50%;border:2px solid var(--wood);background:var(--cream);display:inline-block;margin:4px}
.dot.active{background:var(--gold)}
.blast{background:var(--navy);color:var(--cream);padding:42px;text-align:center;clip-path:polygon(50% 0,57% 10%,67% 3%,72% 16%,84% 13%,85% 27%,97% 32%,91% 43%,100% 52%,89% 60%,95% 72%,82% 75%,81% 90%,68% 87%,61% 100%,50% 91%,40% 100%,33% 87%,19% 90%,18% 76%,5% 71%,11% 59%,0 51%,10% 42%,3% 31%,16% 27%,16% 14%,29% 17%,34% 3%,44% 10%);max-width:760px;margin:auto}
.box-office{max-width:900px;margin:auto;border:6px solid var(--wood);padding:30px;background:var(--gold);position:relative;box-shadow:10px 10px 0 rgba(42,33,24,.15)}
.box-office:before{content:"BOX OFFICE";position:absolute;top:-18px;left:22px;background:var(--red);color:var(--cream);padding:6px 14px;border:3px solid var(--wood);font-family:Rye}
.booth-window{background:var(--cream);border:4px solid var(--wood);padding:35px;text-align:center}
.booth-window h2{color:var(--red)}
.subscribe{background:var(--red);color:var(--cream);padding:54px 0}
.subscribe .section-head p{color:var(--cream)}
.form-row{display:flex;gap:10px;max-width:650px;margin:auto}
.form-row input{flex:1;padding:13px;border:3px solid var(--wood);border-radius:4px;background:var(--cream);color:var(--ink)}
.cookie{position:fixed;bottom:18px;left:18px;right:18px;z-index:100;background:var(--cream);border:4px solid var(--wood);box-shadow:var(--shadow);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:15px}
.cookie-actions{display:flex;gap:8px}
.cookie.hidden{display:none}
.page-banner{padding:60px 0;background:repeating-linear-gradient(115deg,var(--red) 0 48px,var(--cream) 48px 96px);border-bottom:5px solid var(--wood)}
.banner-inner{background:var(--cream);border:5px solid var(--wood);padding:28px;text-align:center;max-width:900px;margin:auto;box-shadow:8px 8px 0 var(--gold)}
.banner-inner p{max-width:700px;margin:0 auto}
.poster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.poster{border:5px solid var(--wood);background:var(--cream);padding:0;box-shadow:var(--shadow);transition:.2s;overflow:hidden}
.poster:nth-child(2){transform:rotate(1.2deg)}.poster:nth-child(3){transform:rotate(-1.2deg)}
.poster:hover{transform:translateY(-5px) rotate(0)}
.poster img{width:100%;border-bottom:4px solid var(--wood)}
.poster-body{padding:24px}
.poster-kicker{color:var(--red);font-weight:900;letter-spacing:.08em}
.icon-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:35px}
.icon-card{text-align:center;border-top:4px solid var(--gold);padding:20px}
.ticket-booth{background:var(--gold);padding:45px 20px;border:6px solid var(--wood);box-shadow:var(--shadow);position:relative}
.tickets{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ticket{background:var(--cream);min-height:380px;border:3px solid var(--wood);position:relative;display:flex;flex-direction:column;padding:22px 18px 18px;transition:.2s;overflow:hidden}
.ticket:hover{transform:rotate(-1.5deg) translateY(-7px)}
.ticket:after{content:"";position:absolute;right:25%;top:0;bottom:0;border-right:2px dashed var(--wood)}
.ticket-stub{position:absolute;right:0;top:0;width:24%;height:100%;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-family:Rye;color:var(--navy);font-size:.85rem}
.ticket-main{width:73%}
.ticket-badge{display:inline-block;background:var(--navy);color:var(--gold);padding:6px 9px;border:2px solid var(--wood);font-size:.75rem;font-weight:900;clip-path:polygon(50% 0,60% 12%,75% 7%,78% 22%,94% 27%,87% 40%,100% 50%,87% 60%,94% 73%,78% 78%,75% 93%,60% 88%,50% 100%,40% 88%,25% 93%,22% 78%,6% 73%,13% 60%,0 50%,13% 40%,6% 27%,22% 22%,25% 7%,40% 12%)}
.ticket-price{font-size:2.3rem;color:var(--red);margin:12px 0 3px}
.monthly{font-weight:800}
.small-note{font-size:.85rem;color:var(--muted)}
.ticket ul{padding-left:20px;font-size:.92rem;min-height:155px}
.ticket li{margin:4px 0}
.ticket .btn{margin-top:auto}
.stub-promo{margin:25px auto 0;max-width:560px;background:var(--cream);border:3px dashed var(--red);padding:14px;text-align:center;font-family:Rye;color:var(--red)}
.trust-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}
.trust{border:3px solid var(--line);padding:15px;text-align:center;font-weight:800}
.compare-wrap{overflow-x:auto;border:4px solid var(--wood);background:var(--cream)}
.compare{width:100%;min-width:850px;border-collapse:collapse}
.compare th,.compare td{padding:13px;border:1px solid var(--line);text-align:left}
.compare th{font-family:Rye;background:var(--navy);color:var(--cream)}
.compare .popular{background:#F2D9A0}
.stripe-copy{max-width:850px;margin:20px auto;background:var(--cream);border-left:6px solid var(--red);padding:15px 18px}
.playbill-wrap{max-width:760px;margin:auto}
.playbill{background:var(--cream);border:8px solid var(--wood);box-shadow:0 15px 0 rgba(42,33,24,.12);padding:28px;position:relative}
.playbill:before{content:"";position:absolute;inset:8px;border:2px solid var(--gold);pointer-events:none}
.playbill-head{text-align:center;border-bottom:4px double var(--wood);padding:20px}
.playbill-head .eyebrow{font-weight:900;letter-spacing:.15em;color:var(--red)}
.playbill-title{font-size:clamp(2.6rem,7vw,5.5rem);color:var(--navy);margin:5px 0}
.byline{font-weight:800}
.rating{color:var(--red);font-size:1.2rem;font-weight:900}
.playbill-main{margin:24px 0;position:relative}
.main-art{border:5px solid var(--wood);box-shadow:0 0 0 7px var(--gold);cursor:zoom-in}
.thumb-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}
.thumb-row img{border:3px solid var(--wood);cursor:pointer}
.section-rule{border:0;border-top:3px dashed var(--red);margin:35px 0}
.spec-grid{display:grid;grid-template-columns:1fr 1fr;border:3px solid var(--wood)}
.spec-grid div{padding:12px;border-bottom:1px solid var(--line)}.spec-grid div:nth-child(odd){font-weight:900;background:#EFE2C7}
.quote-break{font-family:Rye;font-size:1.7rem;text-align:center;background:var(--navy);color:var(--cream);padding:28px;margin:30px 0;border:4px solid var(--gold)}
.review{border-top:2px solid var(--line);padding:20px 0;position:relative}
.verified{display:inline-block;background:var(--gold);color:var(--ink);font-size:.72rem;padding:4px 7px;border:2px solid var(--wood);font-weight:900}
.distribution{display:flex;height:16px;border:2px solid var(--wood);margin:12px 0 22px}
.distribution span{background:var(--red);border-right:2px solid var(--cream)}
.box-office-playbill{text-align:center;background:var(--gold);border:5px solid var(--wood);padding:28px;margin-top:30px}
.big-price{font-family:Rye;color:var(--red);font-size:3rem}
.detail-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.reassurance{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:left;margin-top:18px}
.reassurance div{border-top:2px solid var(--red);padding:9px}
.also-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:18px}
.mini-poster{border:3px solid var(--wood);padding:14px;background:var(--cream)}
.cart-layout{display:grid;grid-template-columns:1.6fr .8fr;gap:25px}
.card{background:var(--cream);border:3px solid var(--wood);border-radius:4px;padding:22px;box-shadow:var(--shadow);transition:.2s}
.cart-item{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center;border-bottom:2px dashed var(--line);padding:16px 0}
.cart-item:last-child{border-bottom:0}
.cart-thumb{border:3px solid var(--wood);background:var(--navy)}
.qty{display:flex;align-items:center;gap:7px}.qty input{width:60px;padding:8px;border:2px solid var(--wood)}
.summary-line{display:flex;justify-content:space-between;padding:8px 0}
.total{font-size:1.5rem;font-family:Rye;border-top:3px solid var(--wood);padding-top:15px}
.empty-state{text-align:center;padding:50px}
.checkout{max-width:560px;margin:auto}
.notice{background:var(--navy);color:var(--cream);padding:14px;border:3px solid var(--wood)}
.field{margin:15px 0}.field label{display:block;font-weight:900;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:12px;border:3px solid var(--wood);background:var(--cream);border-radius:4px}
.success{background:var(--gold);border:5px solid var(--wood);padding:35px;text-align:center}
.faq-list{max-width:850px;margin:auto}
.faq-item{border:3px solid var(--wood);margin:10px 0;background:var(--cream)}
.faq-item summary{padding:16px;font-weight:900;font-family:Rye;cursor:pointer;list-style:none}
.faq-item summary:before{content:"Q";background:var(--red);color:var(--cream);padding:4px 7px;margin-right:10px;border:2px solid var(--wood)}
.faq-answer{padding:0 20px 18px;border-top:2px dashed var(--line)}
.company-card{background:var(--navy);color:var(--cream);border:4px solid var(--wood);padding:24px}
.policy{max-width:820px;margin:auto}
.policy h2{font-size:1.7rem;margin-top:35px;color:var(--red)}
.policy p,.policy li{font-size:1rem}
.site-footer{background:var(--ink);color:var(--cream);padding:45px 0 25px;border-top:7px solid var(--gold)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px}
.site-footer a{color:var(--cream)}
.footer-contact{margin-top:16px;padding-top:14px;border-top:1px solid #655747;line-height:1.8}.footer-contact strong{font-size:1rem}.footer-contact a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}.footer-contact span{color:#E8DDC8}
.footer-note{border-top:1px solid #655747;margin-top:28px;padding-top:18px;font-size:.9rem;color:#E8DDC8}
.lightbox{position:fixed;inset:0;background:rgba(42,33,24,.88);display:none;place-items:center;z-index:200;padding:25px}
.lightbox.open{display:grid}.lightbox img{max-height:90vh;border:7px solid var(--cream);box-shadow:0 0 0 7px var(--gold)}.lightbox button{position:absolute;top:20px;right:25px;background:var(--red);color:var(--cream);border:2px solid var(--cream);padding:10px}
.notice-inline{padding:12px;border:3px dashed var(--red);background:#FFF6E3}
.muted{color:var(--muted)}
.center{text-align:center}.mt{margin-top:25px}
@keyframes chase{0%,100%{opacity:.4;filter:brightness(.8)}50%{opacity:1;filter:brightness(1.5)}}
@keyframes float{50%{transform:translateX(-50%) translateY(12px)}}
@keyframes slowspin{to{transform:rotate(360deg)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media(max-width:900px){
  .nav-links{display:none;position:absolute;top:74px;left:0;right:0;background:var(--cream);border-bottom:3px solid var(--wood);padding:18px;flex-direction:column;align-items:stretch}
  .nav-links.open{display:flex}.menu-toggle{display:block}.tickets{grid-template-columns:repeat(2,1fr)}.route,.poster-grid{grid-template-columns:1fr}.route:before{display:none}.cart-layout{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.trust-bar{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .container{width:min(100% - 22px,1180px)}.section{padding:55px 0}.hero{min-height:auto;padding:60px 0}.hero-sign{padding:35px 16px}.hero-title{font-size:4rem}.tickets{grid-template-columns:1fr}.ticket{min-height:350px}.form-row{flex-direction:column}.footer-grid,.icon-strip,.reassurance,.spec-grid{grid-template-columns:1fr}.carousel-stage{padding:35px 18px;border-radius:25px;animation:none}.cookie{left:8px;right:8px;flex-direction:column;align-items:stretch}.cookie-actions{justify-content:flex-end}.cart-item{grid-template-columns:80px 1fr}.cart-item .item-price{grid-column:2}.playbill{padding:18px}.also-grid{grid-template-columns:1fr}.page-banner{padding:40px 0}.nav-badge{display:none}
}
@media(max-width:375px){body{min-width:0}.hero-title{font-size:3.3rem}.btn{width:100%}.hero-actions{display:grid}}
