/* Festival identity layer. Existing application styles and logic remain intact. */
:root{--wine:#941f27;--ink:#24201f;--cream:#f8f3ea;--muted:#746465;--line:#e5d9d0;--green:#591a25;--gold:#c5a46d}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--ink)}
header{max-width:none;padding:18px max(30px,calc((100vw - 1170px)/2));background:#591a25;color:#fff;border-bottom:3px solid #c5a46d}
header .brand{color:#fff;font:600 23px/1.2 'Playfair Display',serif;gap:15px}header .brand img{width:62px;height:62px;object-fit:contain}header .brand span{font:600 20px/1.25 'Playfair Display',serif}header .brand small{color:#ead6c6;font:600 9px/1.6 'DM Sans',sans-serif;letter-spacing:2px}
header nav a,header nav button{color:#fff}header nav a:hover{color:#e8c48e}header .link{color:#fff}header .festival-back{border:1px solid #ffffff6b;padding:10px 14px;text-decoration:none;font-weight:700;font-size:12px}
main{max-width:1200px;padding-top:54px}h1,h2,h3,.stats strong,.total strong,.steps b{font-family:'Playfair Display',Georgia,serif}h1,h2{letter-spacing:-.035em}h1{font-weight:500}h2{font-weight:500}.hero h1{font-size:clamp(40px,5vw,68px)}.hero em{color:#941f27}.eyebrow{color:#941f27;letter-spacing:.22em}.intro{color:#675b59}
.card{background:#fffdfb;border:1px solid #e7dcd5;border-top:3px solid #941f27;border-radius:0;box-shadow:0 8px 35px #591a2512}.booking{padding:clamp(22px,3vw,38px)}
input,select{border-radius:0;background:#fffdfb;border:1px solid #d7c8bf;font-family:'DM Sans',sans-serif}input:focus,select:focus,button:focus-visible{outline-color:#c5a46d}
button{border-radius:0;font-family:'DM Sans',sans-serif}button.primary,.primary{background:#941f27;border-color:#941f27;color:white;text-transform:uppercase;letter-spacing:.08em;font-weight:700}button.primary:hover{background:#591a25;filter:none}.total strong{color:#941f27}.steps b{color:#941f27}.badge{border-radius:0}
.wine-art{opacity:.8}footer{margin-top:70px}footer span{font-family:'Playfair Display',serif;font-size:18px}
@media(max-width:760px){header{padding:14px 18px;flex-wrap:wrap}header .brand img{width:46px;height:46px}header .brand span{font-size:17px}header nav{width:100%;justify-content:space-between;flex-wrap:wrap;gap:12px}header .festival-back{padding:8px}main{padding:30px 18px 0}.hero{gap:28px}.hero h1{font-size:clamp(38px,9vw,54px)}}

/* Festival photo and legal pages */
.festival-photo{margin:30px 0 0;overflow:hidden;border-radius:15px;background:#eee7de;box-shadow:0 12px 32px #24150f18}.festival-photo img{width:100%;height:280px;display:block;object-fit:cover;object-position:center}.festival-photo figcaption{padding:9px 15px;color:#675b59;font-size:12px}.legal-card{max-width:920px;margin:16px auto}.legal-document{overflow-wrap:anywhere}.legal-document h1{font-size:clamp(30px,4vw,44px)}.legal-document h2{font-size:19px;line-height:1.35;margin:27px 0 9px}.legal-document p{font-size:14px;line-height:1.8;margin:10px 0;white-space:pre-line}.legal-links{display:flex;gap:22px;flex-wrap:wrap}.booking .check{margin:13px 0;font-size:13px;line-height:1.5}.booking .check input{margin-top:3px}.booking .check span{flex:1}@media(max-width:700px){.festival-photo img{height:210px}.festival-photo{display:block}.legal-card{padding:20px}.legal-document p{font-size:13px}}
