:root{--ink:#222226;--muted:#646367;--purple:#b500a8;--line:#dedbde;--paper:#fff;--soft:#f5f3f5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.06;letter-spacing:-.035em}h2{font-size:clamp(36px,4vw,58px);margin-bottom:24px}h3{line-height:1.2}p{color:var(--muted)}header{height:96px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #ece9ec}.brand{display:flex;align-items:center;gap:11px;font-size:13px;line-height:1.3;letter-spacing:.09em;font-weight:600}.brand img{object-fit:contain}nav{display:flex;gap:32px;font-size:14px}nav a:hover,.text-link:hover{color:var(--purple)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:white;padding:16px 25px;font-size:14px;font-weight:600;min-height:50px;border:1px solid var(--purple);transition:background .2s}.button:hover{background:#900086;color:#fff}.button.small{padding:12px 22px;min-height:46px}.button.outline{background:transparent;color:var(--purple)}.button.outline:hover{background:var(--purple);color:white}.text-link{font-size:14px;border-bottom:1px solid currentColor;padding-bottom:5px;display:inline-block;font-weight:600}.menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:690px}.hero-copy{padding:70px 7% 42px 10%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;text-transform:uppercase;font-weight:600;letter-spacing:.16em;color:var(--purple);margin-bottom:22px}h1{font-size:clamp(72px,7vw,112px);margin:0 0 25px}h1 em{font-weight:400;color:var(--purple)}.hero-desc{font-size:17px;line-height:1.8}.actions{display:flex;align-items:center;gap:25px;margin:13px 0 34px}.hero-note{margin-top:auto;border-top:1px solid var(--line);width:100%;padding-top:18px}.hero-note span,.facts span{font-size:11px;letter-spacing:.13em;color:var(--muted)}.hero-note p{margin:4px 0 0;font-size:14px;color:var(--ink)}.hero-photo{position:relative;min-height:690px;overflow:hidden}.hero-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 48%}.photo-caption{position:absolute;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.65));padding:60px 25px 22px;color:#fff;width:100%;font-size:11px;letter-spacing:.13em;display:flex;justify-content:space-between}.facts{display:grid;grid-template-columns:1fr 1fr 1fr;padding:26px 5%;border-bottom:1px solid var(--line);gap:30px}.facts div{display:flex;flex-direction:column;gap:4px}.facts strong{font-size:15px;font-weight:500}.section{padding:90px 7%;scroll-margin-top:10px}.intro,.competition,.questions{display:grid;grid-template-columns:1fr 1fr;gap:10%}.intro-text{padding-top:35px;font-size:18px}.intro-text p{max-width:560px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:34px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:14px;margin-bottom:2px}.programme{background:var(--soft)}.schedule article{display:grid;grid-template-columns:94px 1fr 155px;gap:30px;align-items:center;border-top:1px solid var(--line);padding:24px 0}.schedule article:last-child{border-bottom:1px solid var(--line)}.day{display:flex;flex-direction:column}.day strong{font-family:Georgia,serif;font-weight:400;font-size:42px;line-height:1.1}.day span{font-size:11px;letter-spacing:.1em;margin-top:6px}.schedule h3{font-size:20px;font-weight:500;margin-bottom:7px}.schedule p{font-size:15px;margin:0;max-width:710px}.tag{justify-self:end;font-size:12px;border:1px solid #e4cce2;padding:5px 12px;color:var(--purple)}.pass-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.pass{border:1px solid var(--line);padding:32px;display:flex;flex-direction:column;align-items:flex-start}.pass h3{font-family:Georgia,serif;font-weight:400;font-size:34px;margin-bottom:13px}.pass .eyebrow{font-size:11px;margin-bottom:20px}.pass>p{font-size:15px}.pass ul{list-style:none;margin:15px 0 35px;padding:0;width:100%}.pass li{font-size:15px;padding:10px 0;border-bottom:1px solid #ece2eb}.pass li:before{content:'✓';margin-right:12px;color:var(--purple)}.pass .button{margin-top:auto;width:100%}.gold{border-color:var(--purple);background:#fcf5fc}.hotel{display:grid;grid-template-columns:1fr 1fr;background:var(--soft);scroll-margin-top:100px}.hotel>img{width:100%;height:100%;object-fit:cover;min-height:530px}.hotel>div{padding:65px 12%}.hotel p{max-width:460px}.hotel .button{margin-top:18px}.competition{border-bottom:1px solid var(--line);align-items:center}.competition>div:last-child{font-size:18px}.fee{color:var(--ink)}.questions{gap:8%}.accordions details{border-bottom:1px solid var(--line);padding:22px 0}.accordions details:first-child{padding-top:0}.accordions summary{cursor:pointer;list-style:none;padding-right:30px;position:relative;font-weight:500}.accordions summary:after{content:'+';position:absolute;right:0;font-size:22px;top:-4px;color:var(--purple)}.accordions details[open] summary:after{content:'−'}.accordions p{font-size:15px;margin:18px 0 6px}.closing{background:#b500a8;color:#fff;padding:65px 5%;text-align:center}.closing .eyebrow{color:#ffffff}.closing h2{font-size:clamp(36px,5vw,64px)}.button.light{background:#fff;border-color:white;color:#b500a8}.button.light:hover{background:#f5e5f4}footer{padding:30px 5%;display:flex;justify-content:space-between;align-items:center;gap:25px}footer p,footer>a:last-child{font-size:13px;margin:0}.skip{position:fixed;top:-100px;left:20px;background:#fff;padding:12px;z-index:30}.skip:focus{top:10px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b500a8;outline-offset:5px}.mobile-nav[hidden]{display:none}@media(min-width:1500px){body{max-width:1800px;margin:auto}}@media(max-width:1000px){header{padding:0 4%}header nav{gap:18px}.brand span{display:none}.hero-copy{padding:50px 7%}.hero,.hero-photo{min-height:620px}h1{font-size:80px}.actions{gap:18px;flex-wrap:wrap}.section{padding:65px 5%}.pass{padding:22px}.hotel>div{padding:50px 9%}.hotel>img{min-height:480px}.schedule article{grid-template-columns:75px 1fr 125px;gap:20px}}@media(max-width:700px){header{height:78px;gap:14px}header nav{display:none}.brand img{width:55px;height:55px}header .button{margin-left:auto;padding:10px 14px;font-size:12px;min-height:42px}.menu{display:block;border:0;background:none;font-size:13px;padding:8px}.mobile-nav{position:sticky;top:78px;z-index:9;padding:20px 5%;background:#fff;border-bottom:1px solid var(--line);justify-content:space-between;gap:15px}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:38px 6% 28px}.eyebrow{font-size:11px;margin-bottom:18px}h1{font-size:72px;line-height:1.02}.hero-desc{font-size:16px}.actions{margin:8px 0 25px}.hero-note{display:none}.hero-photo{min-height:430px}.hero-photo>img{object-position:center 54%}.facts{padding:20px 6%;grid-template-columns:1fr 1fr;gap:18px}.facts div:last-child{display:none}.facts strong{font-size:13px}.section{padding:55px 6%}.intro,.competition,.questions{grid-template-columns:1fr;gap:15px}.intro-text{padding:0;font-size:17px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px}.schedule article{grid-template-columns:56px 1fr;gap:20px}.schedule .tag{display:none}.schedule h3{font-size:18px}.schedule p{font-size:14px}.day strong{font-size:36px}.day span{font-size:10px}.pass-grid{grid-template-columns:1fr;gap:20px}.pass{padding:28px}.pass ul{margin-top:0;margin-bottom:26px}.hotel{grid-template-columns:1fr}.hotel>img{min-height:0;height:320px}.hotel>div{padding:40px 6%}.questions h2{margin-bottom:24px}.competition>div:last-child{font-size:16px}footer{flex-wrap:wrap;padding:24px 6%}footer .brand span{display:block;font-size:11px}footer p{width:100%;order:3}.closing{padding:50px 6%}html{scroll-padding-top:85px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Consistent, subtly rounded button corners. */
.button,button{border-radius:6px}

.ticket-price{font-family:Georgia,serif;font-size:38px;line-height:1.2;color:var(--purple);margin:6px 0 10px}.ticket-price span{font:14px Arial,sans-serif;color:var(--muted)}.couple-price{font-size:14px!important;color:var(--ink)}.price-note{font-size:13px;margin:22px 0 0}.activity-prices,.merchandise{background:var(--soft)}.extras-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.extras-grid article{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:25px}.extras-grid h3{font:27px Georgia,serif;margin-bottom:16px}.extras-grid .eyebrow{font-size:11px;min-height:36px}.extras-grid article>p:not(.eyebrow):not(.ticket-price){font-size:15px}.extras-grid .button{margin-top:auto;padding:12px 18px}.drinks{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);margin-top:35px;padding-top:28px}.drinks h3{font-size:20px;font-weight:500;margin-bottom:7px}.drinks p{margin:0;font-size:15px}.merch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px}.merch-grid img{width:100%;aspect-ratio:1.5;object-fit:contain;background:white}.product-heading{display:flex;justify-content:space-between;gap:15px;margin:18px 0 12px}.product-heading h3{font-size:18px;font-weight:500;margin:0}.product-heading strong{color:var(--purple);font-size:18px}.class-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:25px}.class-details summary{cursor:pointer;font-weight:600}.class-table table{width:100%;border-collapse:collapse;margin-top:20px;text-align:left}.class-table caption{text-align:left;font-size:14px;color:var(--muted);padding-bottom:15px}.class-table th,.class-table td{padding:12px 0;border-bottom:1px solid var(--line)}.class-table th:last-child,.class-table td:last-child{text-align:right}.class-table th{font-size:14px}.class-table td{font-size:15px}@media(max-width:1100px){.extras-grid{grid-template-columns:repeat(2,1fr)}header nav{gap:18px}}@media(max-width:700px){.extras-grid,.merch-grid{grid-template-columns:1fr}.extras-grid .eyebrow{min-height:0}.extras-grid article{padding-bottom:14px}.drinks{align-items:flex-start;flex-direction:column}.mobile-nav{flex-wrap:wrap}.ticket-price{font-size:36px}.merch-grid{gap:32px}.merch-grid img{aspect-ratio:1.5}}

.couple-deal{background:#fcf1fb;border:1px solid #e8bce4;border-radius:6px;padding:16px;margin:4px 0 22px;width:100%}.couple-deal .saving{display:inline-block;background:var(--purple);color:white;font-size:12px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:4px;margin-bottom:10px}.couple-deal strong{display:block;font-size:19px;color:var(--purple);font-weight:600}.couple-deal p{font-size:13px;margin:7px 0 10px}.extras-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.activity-card{border-top:0!important;padding-top:0!important}.activity-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;margin-bottom:24px}.boat-vouchers{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;width:100%}.boat-vouchers h4{font-size:16px;margin:0 0 8px}.boat-vouchers p{font-size:14px;margin:0 0 10px}.boat-vouchers .text-link{font-size:13px}.games-feature{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:50px;padding-top:40px;border-top:1px solid var(--line)}.games-feature figure{margin:0}.games-feature img{width:100%;height:330px;object-fit:cover;object-position:center 60%;border-radius:6px}.games-feature figcaption{font-size:12px;color:var(--muted);margin-top:8px}.games-feature h3{font:36px Georgia,serif;margin-bottom:18px}.hotel-rate{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:24px}.hotel-rate .eyebrow{margin-bottom:10px}.hotel-rate .ticket-price{font-size:36px}.hotel-rate .rate-detail{font-size:13px;line-height:1.6}.hotel>img{max-height:900px;align-self:center}.hotel>div{padding-top:50px;padding-bottom:50px}@media(max-width:900px){.extras-grid{grid-template-columns:1fr}.activity-photo{max-height:480px;object-fit:contain;background:#fff}.games-feature{grid-template-columns:1fr;gap:22px}.games-feature img{height:350px}}@media(max-width:700px){.hotel-rate .ticket-price span{display:block;margin-top:8px}.activity-photo{max-height:none;aspect-ratio:4/5;object-fit:cover}}

/* Compact activity cards and consistent, prominent button labels. */
.extras-grid .activity-photo{aspect-ratio:1/1;max-height:none;height:auto;object-fit:cover;object-position:center 65%}
.button,.button.small,.extras-grid .button,header .button,.menu{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.35;text-align:center}
.button{padding:16px 24px}.button.small,header .button{padding:13px 20px}
.gold-saving{width:100%;border:1px solid var(--purple);background:#fff;border-radius:6px;padding:16px;margin:4px 0 22px}.gold-saving .saving{display:inline-block;background:var(--purple);color:#fff;border-radius:4px;padding:5px 9px;font-size:12px;font-weight:700;letter-spacing:.04em}.gold-saving p{font-size:14px;margin:12px 0;color:var(--ink)}.gold-saving strong{color:var(--purple)}.gold-saving summary{cursor:pointer;font-size:14px;font-weight:600}.gold-saving dl{font-size:13px;margin:14px 0 0}.gold-saving dl>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.gold-saving dd{margin:0;white-space:nowrap}.gold-saving .saving-total{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-weight:700}
@media(max-width:700px){header .button{font-size:14px;padding:12px 14px}.menu{font-size:14px}.button,.extras-grid .button{font-size:16px}.extras-grid .activity-photo{aspect-ratio:1/1;object-fit:cover}}

/* Searchable festival guides, using the existing visual system. */
.intro-guide{font-size:15px;margin-top:24px}.intro-guide a,.guide-body p a,.guide-sources a{text-decoration:underline;text-underline-offset:3px;color:var(--purple)}
.explore{background:var(--soft)}.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.guide-card{display:block;background:white;border:1px solid var(--line);padding:28px;border-radius:6px}.guide-card:hover{border-color:var(--purple)}.guide-card .eyebrow{display:block}.guide-card h3{font:28px/1.2 Georgia,serif}.guide-card p{font-size:15px}.guide-card .text-link{color:var(--purple)}
.footer-guides{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 25px;font-size:13px}footer>div>p{margin-top:15px}footer{align-items:start}.guide-hero{padding:40px 7% 60px;background:var(--soft);border-bottom:1px solid var(--line)}.breadcrumb{font-size:13px;gap:12px;flex-wrap:wrap;color:var(--muted);margin-bottom:42px}.guide-hero h1{font-size:clamp(42px,5.5vw,76px);max-width:1000px;margin-bottom:24px}.guide-deck{font-size:19px;max-width:780px;margin:0}.guide-body{max-width:1120px;margin:auto;padding:28px 7% 65px}.guide-section{padding:36px 0;border-bottom:1px solid var(--line)}.guide-section h2{font-size:34px;line-height:1.15;letter-spacing:-.02em;margin-bottom:18px}.guide-section p{max-width:780px}.guide-section p:last-child{margin-bottom:0}.guide-sources{margin-top:40px;font-size:14px}.guide-sources h2{font:18px Arial,sans-serif;letter-spacing:0}.guide-sources ul{padding-left:20px}.guide-sources li{margin:8px 0}.related-guides{border-top:1px solid var(--line);margin-top:35px;padding-top:28px;flex-wrap:wrap;font-size:15px;gap:20px;color:var(--purple)}.instructor-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0}.instructor-card{padding:25px;border:1px solid var(--line);border-radius:6px}.instructor-card h2{font:29px Georgia,serif;letter-spacing:0;margin-bottom:16px}.instructor-card .eyebrow{margin-bottom:16px}.instructor-price{color:var(--purple);font-weight:700}.instructor-price span{color:var(--muted);font-size:14px;font-weight:400}.trip-activities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:25px 0}.trip-activities img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 65%;border-radius:6px;margin-bottom:18px}.trip-activities h3{font-size:18px}.trip-activities p{font-size:14px}
@media(max-width:1000px){.guide-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.guide-grid,.instructor-grid,.trip-activities{grid-template-columns:1fr}.guide-hero{padding:24px 6% 38px}.guide-deck{font-size:17px}.guide-body{padding:12px 6% 45px}.guide-section{padding:28px 0}.guide-section h2{font-size:30px}.footer-guides{width:100%;gap:12px}.breadcrumb{margin-bottom:30px}.trip-activities img{max-width:420px}}

/* Practical FAQs and the festival's own social profiles. */
.expanded-faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:7%}.faq-intro>p{max-width:350px}.faq-jumps{display:flex;flex-direction:column;gap:12px;margin-top:28px;font-size:15px;color:var(--purple)}.faq-group{margin-bottom:36px;scroll-margin-top:115px}.faq-group>h3{font:25px/1.25 Georgia,serif;font-weight:400;margin-bottom:25px}.faq-group .accordions summary{font-weight:600;line-height:1.5}.faq-group .accordions p{font-size:16px;line-height:1.7}.faq-group p a,.embed-note a{color:var(--purple);text-decoration:underline;text-underline-offset:3px}.social-section{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;background:var(--soft);border-bottom:1px solid var(--line)}.social-copy>p{max-width:470px}.social-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:25px}.social-handle{font-size:14px;margin-top:24px}.social-preview{min-width:0;width:100%;max-width:540px;justify-self:center}.social-preview .instagram-media{width:100%!important;min-width:0!important;max-width:540px!important;margin:0!important;border:1px solid var(--line);border-radius:6px;background:white}.social-preview iframe{min-width:0!important;max-width:100%!important}.instagram-fallback{padding:38px 25px;text-align:center}.instagram-fallback img{margin:0 auto 22px}.instagram-fallback h3{font-size:22px}.embed-note{font-size:13px;line-height:1.6;margin:14px 0 0}.footer-guides{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.expanded-faq,.social-section{grid-template-columns:1fr;gap:32px}.faq-jumps{flex-direction:row;flex-wrap:wrap;gap:12px 22px}.faq-group{scroll-margin-top:100px}.footer-guides{grid-template-columns:repeat(2,1fr)}.social-actions .button{width:100%}}

/* Shared footer: newsletter, festival navigation and social links. */
.site-footer{display:block;background:#fff;border-top:3px solid var(--purple);padding:64px 6% 25px}.footer-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:48px}.site-footer h2{font:24px/1.2 Georgia,serif;letter-spacing:-.02em;margin-bottom:25px}.footer-newsletter h2{font-size:38px;margin-bottom:18px}.site-footer p{font-size:16px;margin:0 0 20px}.site-footer .eyebrow{font-size:12px;margin-bottom:14px}.newsletter-form{margin-top:24px}.newsletter-form label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.newsletter-fields{display:flex;gap:10px;flex-wrap:wrap}.newsletter-fields input{flex:1 1 180px;width:100%;min-width:0;border:1px solid #b8b3b8;border-radius:6px;background:white;color:var(--ink);padding:15px 14px;font:16px Arial,sans-serif;min-height:54px}.newsletter-fields input:focus-visible{outline:3px solid var(--purple);outline-offset:3px}.newsletter-fields .button{flex:0 0 auto;cursor:pointer;padding:15px 18px}.site-footer .newsletter-note{font-size:13px;line-height:1.6;margin:12px 0 0;max-width:440px}.site-footer #newsletter-handoff{margin-top:7px;font-size:12px}.footer-link-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.site-footer nav{display:flex;flex-direction:column;gap:11px;font-size:14px;line-height:1.5}.site-footer nav h3{font:600 13px Arial,sans-serif;color:var(--muted);margin:0 0 6px}.site-footer nav a{width:fit-content}.site-footer a:hover{color:var(--purple)}.footer-connect>p{font-size:13px;margin:17px 0 24px}.footer-connect .text-link{font-size:14px}.footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px}.footer-bottom p{font-size:14px;margin:0}.footer-bottom small{font-size:12px;color:var(--muted)}.footer-bottom .brand span{display:block;font-size:12px}.footer-bottom .brand{flex-shrink:0}
@media(max-width:1100px){.footer-main{grid-template-columns:1fr 1fr;gap:40px}.footer-connect{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px}.footer-connect h2,.footer-connect>p{margin:0}.footer-connect nav{flex-direction:row;gap:24px}.footer-connect .text-link{margin-left:auto}}@media(max-width:700px){.site-footer{padding:42px 6% 24px}.footer-main{grid-template-columns:1fr;gap:34px}.footer-newsletter h2{font-size:34px}.footer-explore,.footer-connect{border-top:1px solid var(--line);padding-top:28px}.footer-connect{display:block}.footer-connect h2{margin-bottom:20px}.footer-connect>p{margin:16px 0}.footer-connect .text-link{margin-left:0}.footer-link-columns{gap:20px}.site-footer nav{font-size:15px;gap:13px}.footer-bottom{flex-wrap:wrap;margin-top:32px;gap:20px}.footer-bottom p{width:auto;order:0}.footer-bottom small{width:100%}.newsletter-fields .button{flex:1 1 140px}}@media(max-width:360px){.footer-link-columns{grid-template-columns:1fr;gap:26px}}

/* All optional activities in one ordered, compact section. */
.extras-grid{row-gap:48px}.activity-card{min-width:0;scroll-margin-top:115px}.extras-grid .activity-photo{aspect-ratio:1;object-fit:cover}.extras-grid .activity-poster{object-fit:cover;object-position:center 20%}.extras-grid .battle-photo{object-position:center 25%}.activity-details{width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-top:24px}.activity-details summary{cursor:pointer;font-size:15px;font-weight:600;line-height:1.5}.activity-details h4{font-size:16px;margin:20px 0 10px}.activity-details p,.activity-details li{font-size:15px;line-height:1.7}.activity-details ul{padding-left:20px;margin-bottom:0}.activity-details li{margin-bottom:8px}.extras-grid .private-activity{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:28px;align-items:start;border-top:1px solid var(--line)!important;padding-top:36px!important}.private-activity-copy{min-width:0}.private-activity-copy>p:not(.ticket-price):not(.eyebrow){font-size:16px;max-width:650px}.private-activity-copy .eyebrow{min-height:0}.private-activity-copy .class-details{width:100%;margin:22px 0}.private-activity-copy .ticket-price{font-size:36px}.private-activity-copy .ticket-price span{display:block;margin-top:7px}.private-activity-copy .class-table{overflow-x:auto}
@media(max-width:900px){.extras-grid .private-activity{grid-template-columns:1fr;gap:0}.private-activity .activity-photo{margin-bottom:24px}.activity-card{scroll-margin-top:95px}}

/* Supplied activity artwork: preserve poster text and frame photographic subjects. */
.extras-grid #private-classes .activity-poster{object-fit:cover;object-position:center 20%}.extras-grid #thursday-pre-party .activity-photo{object-position:center 65%}.extras-grid img[src="/assets/boat-new.png"],.trip-activities img[src="/assets/boat-new.png"]{object-position:center 70%}.extras-grid img[src="/assets/desert-new.png"],.trip-activities img[src="/assets/desert-new.png"]{object-position:center 75%}

/* Footer without newsletter signup */
@media(min-width:701px) and (max-width:1100px){.footer-main{grid-template-columns:minmax(0,2fr) minmax(180px,1fr)}.footer-connect{grid-column:auto;display:block}.footer-connect h2{margin-bottom:25px}.footer-connect nav{flex-direction:column;gap:11px}.footer-connect>p{margin:17px 0 24px}.footer-connect .text-link{margin-left:0}}
@media(max-width:700px){.footer-explore{border-top:0;padding-top:0}}

/* Prominent dates and a compact festival overview */
.hero-date{margin-bottom:30px;border-left:3px solid var(--purple);padding:2px 0 2px 18px}
.hero-date p{margin:0 0 6px;color:var(--purple);font-size:clamp(23px,2.3vw,34px);font-weight:700;line-height:1.2;letter-spacing:-.025em}
.hero-date>span{display:block;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hero-copy .actions{margin-top:18px;margin-bottom:0}
.festival-overview{margin:32px 5% 0;padding:30px 34px;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:30px;background:#f8f2f8;border:1px solid #eaddea;border-radius:10px}
.overview-item{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.overview-item+.overview-item{border-left:1px solid #dfcddf;padding-left:30px}
.overview-label{color:var(--purple);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.overview-item strong{font-size:clamp(18px,1.6vw,24px);font-weight:600;line-height:1.35;letter-spacing:-.02em}
.overview-item p,.overview-item a{font-size:14px;margin:0;line-height:1.5;color:var(--muted)}
.overview-item a{text-decoration:underline;text-underline-offset:4px}.overview-item a:hover{color:var(--purple)}
@media(max-width:1000px){.festival-overview{gap:22px;padding:26px}.overview-item+.overview-item{padding-left:22px}}
@media(max-width:700px){.hero-date{margin-bottom:25px;padding-left:14px}.hero-date p{font-size:26px}.hero-date>span{font-size:11px;letter-spacing:.07em}.festival-overview{margin:22px 6% 0;padding:24px;grid-template-columns:1fr;gap:22px}.overview-item{gap:6px}.overview-item+.overview-item{border-left:0;padding-left:0;border-top:1px solid #dfcddf;padding-top:22px}.overview-item strong{font-size:21px}}

/* Put hotel booking alongside festival tickets at the start of the page. */
.hero-booking-actions{flex-wrap:wrap;gap:14px}
.hero-programme-link{margin-top:20px}
.overview-hotel p b{color:var(--ink);font-weight:600}
.overview-hotel p small{font-size:13px}
.overview-hotel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px}
.overview-hotel-actions .button{color:#fff;text-decoration:none;font-size:16px;line-height:1.3}
.overview-hotel-actions .button:hover{color:#fff}
.overview-hotel-actions .hotel-details-link{font-size:14px}
@media(max-width:400px){.hero-booking-actions{width:100%}.hero-booking-actions .button{width:100%}}

/* Festival programme and workshop schedules */
.programme-links{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:28px;font-size:16px}
.programme-links a{padding:8px 0;border-bottom:2px solid transparent}
.programme-links a[aria-current="page"],.programme-links a:hover{color:var(--purple);border-color:var(--purple)}
.programme-content{max-width:1280px;margin:auto;padding:35px 7% 75px}
.schedule-note{font-size:15px;max-width:850px;line-height:1.7}
.schedule-note a{text-decoration:underline;text-underline-offset:3px}
.day-links{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 35px}
.day-links a{border:1px solid var(--line);border-radius:6px;padding:10px 18px;font-size:15px;font-weight:600}
.day-links a:hover{color:var(--purple);border-color:var(--purple)}
.programme-day{display:grid;grid-template-columns:190px minmax(0,1fr);gap:35px;padding:35px 0;border-top:1px solid var(--line);scroll-margin-top:115px}
.day-heading h2{font-size:36px;letter-spacing:-.025em;margin:0}
.day-heading .eyebrow{font-size:12px;margin:0 0 12px}
.event-row,.workshop-row{display:grid;grid-template-columns:125px minmax(0,1fr);gap:22px;padding:19px 0;border-bottom:1px solid #eee8ee;align-items:start}
.event-row:first-child,.workshop-row:first-child{padding-top:0}
.event-row:last-child,.workshop-row:last-child{border-bottom:0}
.event-time{font-size:15px;font-weight:700;color:var(--purple);white-space:nowrap;line-height:1.7}
.event-row h3,.workshop-row h3{font-size:19px;font-weight:600;margin:0 0 6px;line-height:1.4}
.event-row p,.workshop-row p{font-size:15px;margin:0;line-height:1.6}
.workshop-row{grid-template-columns:125px minmax(0,1fr) 115px}
.workshop-level{justify-self:start;font-size:13px;font-weight:600;border:1px solid #dacbda;border-radius:5px;padding:4px 9px;line-height:1.5}
.level-advanced{background:#f4e3f3;border-color:#d8acd4;color:#780070}
.level-intermediate{background:#f9f4f9;color:#780070}
.level-key{display:flex;flex-wrap:wrap;gap:12px 25px;padding:20px;background:var(--soft);border-radius:8px;font-size:15px;margin-top:22px}
.dress-section{margin-top:45px;padding-top:45px;border-top:1px solid var(--line);scroll-margin-top:115px}
.dress-section h2{font-size:42px}.dress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.dress-card{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dress-art{position:relative;aspect-ratio:706/883;overflow:hidden;background:var(--soft)}
.dress-art img{position:absolute;width:100%;height:auto;max-width:none;top:-33.86%;left:0}
.dress-copy{padding:24px}.dress-copy .eyebrow{font-size:12px;margin-bottom:12px}.dress-copy h3{font:30px Georgia,serif;margin-bottom:12px}.dress-copy p:last-child{font-size:16px;margin-bottom:0}
.schedule-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:35px}
@media(max-width:900px){.programme-day{grid-template-columns:1fr;gap:24px}.day-heading h2{font-size:32px}.day-heading .eyebrow{margin-bottom:6px}}
@media(max-width:600px){.programme-content{padding:25px 6% 50px}.programme-links{gap:8px 18px}.programme-links a{font-size:15px}.event-row{grid-template-columns:1fr;gap:5px}.workshop-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 12px}.workshop-row .event-time{grid-column:1/-1}.workshop-level{font-size:12px}.dress-grid{grid-template-columns:1fr}.dress-section h2{font-size:35px}.schedule-cta .button{width:100%}.day-links a{padding:9px 13px}}

/* Artist lineup: clear names, grouped by role. */
.lineup-content{max-width:1250px;margin:auto;padding:55px 7% 75px}
.lineup-group{display:grid;grid-template-columns:200px minmax(0,1fr);gap:35px;padding:30px 0 45px;border-top:1px solid var(--line)}
.lineup-group h2{font-size:40px;margin:8px 0;color:var(--purple)}
.artist-names{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 35px}
.artist-names li{font-size:clamp(20px,2vw,27px);line-height:1.4;font-weight:600;padding:20px 0;border-bottom:1px solid #eee8ee}
.lineup-directory-note{padding:20px;background:var(--soft);border-radius:6px;font-size:16px}.lineup-directory-note a{text-decoration:underline;text-underline-offset:3px}
header nav{gap:22px}
@media(min-width:701px) and (max-width:1100px){header nav{gap:13px}}
@media(max-width:800px){.lineup-group{grid-template-columns:1fr;gap:10px}.lineup-group h2{font-size:34px}}
@media(max-width:480px){.artist-names{grid-template-columns:1fr}.lineup-content{padding:30px 6% 50px}}

/* Homepage lineup and compact booking sections. */
.home-lineup{border-bottom:1px solid var(--line)}
.home-lineup-groups{display:grid;grid-template-columns:2fr 1fr;gap:45px}
.home-lineup-group h3{color:var(--purple);font-size:15px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 18px}
.home-lineup-group ul{display:flex;flex-wrap:wrap;gap:12px 28px;list-style:none;padding:0;margin:0}
.home-lineup-group li{font-size:clamp(19px,2vw,26px);font-weight:600;line-height:1.5}
.home-lineup-group+.home-lineup-group{border-left:1px solid var(--line);padding-left:35px}
.passes .pass ul{margin:10px 0 24px}.passes .pass li{padding:8px 0}
.passes .couple-deal{padding:13px;margin-bottom:14px}.passes .couple-deal p{margin:5px 0 7px}
#activities .activity-photo{aspect-ratio:16/10;width:100%;height:auto;max-height:none;object-fit:cover;margin-bottom:18px}
#activities .extras-grid .eyebrow{min-height:0;margin-bottom:12px}
#activities .extras-grid h3{margin-bottom:10px}
#activities .boat-vouchers{margin-top:18px;padding-top:15px}
.boat-vouchers summary{cursor:pointer;font-size:15px;font-weight:600;color:var(--purple)}
.boat-vouchers[open] summary{margin-bottom:12px}
@media(max-width:700px){.home-lineup-groups{grid-template-columns:1fr;gap:25px}.home-lineup-group+.home-lineup-group{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:22px}.home-lineup-group ul{gap:10px 22px}.home-lineup-group li{font-size:19px}.passes .pass{padding:23px}.passes .pass h3{font-size:30px;margin-bottom:8px}.passes .pass .eyebrow{margin-bottom:12px}}

/* Individual landscape crops, positioned around the people in each photo. */
#activities img.activity-photo[src="/assets/city-tour-no-logo.png"]{object-position:50% 90%}
#activities img.activity-photo[src="/assets/boat-new.png"]{object-position:50% 60%}
#activities img.activity-photo[src="/assets/desert-new.png"]{object-position:50% 30%}
#activities #thursday-pre-party .activity-photo{object-position:50% 40%}
#activities #battle-kizz .activity-photo{object-position:50% 0%}
#activities #festival-games .activity-photo{object-position:50% 45%}
/* Multiple rows of artist portraits need the complete image to keep every face. */
#activities #private-classes .activity-photo{object-fit:contain;object-position:center;background:#edf3fa}

/* Keep the complete supplied private-class group image inside its landscape frame. */
#activities #private-classes .activity-photo{object-fit:contain;object-position:center;padding:10px;background:#f0edf1;aspect-ratio:16/10}

/* A shorter, more inviting festival introduction. */
.intro-compact{align-items:center;gap:7%;padding-top:65px;padding-bottom:65px}
.intro-compact h2{font-size:clamp(34px,3.8vw,54px);line-height:1.12;margin-bottom:0}
.intro-compact h2 span{color:var(--purple)}
.intro-compact .eyebrow{margin-bottom:17px}
.intro-compact .intro-text{padding:0 0 0 30px;border-left:2px solid #ead7e8}
.intro-compact .intro-text p{font-size:18px;line-height:1.7;margin-bottom:24px;max-width:540px}
@media(max-width:700px){.intro-compact{padding-top:40px;padding-bottom:42px;gap:22px}.intro-compact h2{font-size:clamp(32px,8.4vw,42px);line-height:1.12}.intro-compact .intro-text{padding:0;border-left:0}.intro-compact .intro-text p{font-size:17px;line-height:1.65;margin-bottom:22px}.intro-compact .eyebrow{margin-bottom:13px}}

/* Artist portraits use the labelled source flyers, framed without their text. */
.portrait-group+.portrait-group{margin-top:35px;padding-top:30px;border-top:1px solid var(--line)}
.portrait-group h3{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--purple);margin:0 0 24px}
.portrait-grid{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 20px;margin:0;padding:0}
.portrait-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;min-width:0}
.artist-portrait{position:relative;display:block;width:clamp(80px,10vw,130px);max-width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;outline:1px solid #d9b0d6;outline-offset:4px;background:#f6eef6}
.artist-portrait img{position:absolute;max-width:none;height:auto;display:block}
.artist-initials{display:flex;align-items:center;justify-content:center;font:24px Georgia,serif;color:var(--purple)}
.artist-name{font-size:16px;font-weight:600;line-height:1.35;max-width:160px;overflow-wrap:normal}
@media(max-width:900px){.portrait-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 14px}.artist-portrait{width:86px}.artist-name{font-size:14px}.portrait-lineup .section-heading h2{font-size:36px}.portrait-group h3{margin-bottom:22px}.portrait-lineup .schedule-cta .button{width:100%}}

/* Original artist portraits with a shared studio background and safe framing. */
.artist-portrait{background:#f1eff2}
.artist-portrait img{position:static;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center}

.artist-portrait{border-radius:18%}

/* Personal festival frame: a compact invitation to share attendance. */
.flyer-section{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;background:#f7eff7;border-top:1px solid #ead7e8;border-bottom:1px solid #ead7e8}
.flyer-copy h2{font-size:clamp(36px,4.4vw,60px);line-height:1.06;margin:0 0 20px}
.flyer-copy>p:not(.eyebrow):not(.flyer-note){max-width:460px;font-size:18px;line-height:1.65;margin-bottom:24px}
.flyer-copy .flyer-note{font-size:13px;color:#6c626d;margin:12px 0 0}
.flyer-how{border-left:1px solid #dec8df;padding-left:36px}
.flyer-how h3{font-size:20px;margin:0 0 25px}
.flyer-how ol{list-style:none;margin:0;padding:0;display:grid;gap:23px}
.flyer-how li{display:flex;align-items:flex-start;gap:17px}
.flyer-how li>span{font-size:14px;font-weight:700;color:var(--purple);padding-top:3px}
.flyer-how strong{font-size:17px}.flyer-how p{font-size:15px;line-height:1.5;margin:5px 0 0;color:#665e68}.flyer-how a{color:var(--purple);text-underline-offset:3px}
@media(max-width:700px){.flyer-section{grid-template-columns:1fr;gap:30px}.flyer-copy .button{width:100%;text-align:center}.flyer-how{border-left:0;border-top:1px solid #dec8df;padding:27px 0 0}.flyer-how h3{font-size:18px;margin-bottom:22px}.flyer-how ol{gap:19px}}
