@charset "UTF-8";
/* Zillenium Event — the Ibiza Beach After Dark layout.
   Every public colour, font and radius remains supplied by Design & couleurs. */
:root {
  --paper:#080a0f; --ink:#f4f6ff; --primary:#c8ff36; --accent:#a58bff;
  --white:#10131c; --cream:#0f111a; --dark:#080a0f; --line:#282b3b; --muted:#a9afc6;
  --heading:#f4f6ff; --link:#f4f6ff; --card-bg:#10131c; --card-text:#f4f6ff;
  --header-bg:#080a0f; --header-text:#f4f6ff; --footer-bg:#080a0f; --footer-text:#f4f6ff;
  --button-bg:#c8ff36; --button-text:#080a0f; --button-hover-bg:#d8ff73; --button-hover-text:#080a0f;
  --secondary-bg:#080a0f; --secondary-text:#f4f6ff; --secondary-border:#414559;
  --secondary-hover-bg:#202538; --secondary-hover-text:#f4f6ff;
  --input-bg:#0b0e16; --input-text:#f4f6ff; --input-border:#303649;
  --badge-bg:#c8ff36; --badge-text:#080a0f; --ticker-bg:#10121b; --ticker-text:#d6d2ef;
  --newsletter-bg:#0f111a; --newsletter-text:#f4f6ff; --dialog-bg:#121622; --dialog-text:#f4f6ff;
  --overlay:#080a0f; --body-font:Arial,Helvetica,sans-serif;
  --display-font:Arial,Helvetica,sans-serif; --button-font:Arial,Helvetica,sans-serif;
  --button-radius:999px; --card-radius:16px; --max:1440px;
}
html { scroll-padding-top:100px; }
body { background:var(--paper); color:var(--ink); font:15px/1.7 var(--body-font); padding-bottom:0; }
body.has-event-dock { padding-bottom:92px; }
::selection { background:var(--accent); color:var(--dark); }
a { color:var(--link); }
a:hover { color:var(--primary); }
h1,h2,h3 { color:var(--heading); font-family:var(--display-font); font-weight:800; letter-spacing:-.035em; }
h1 { font-weight:900; }
h1 a,h2 a,h3 a,h1 a:hover,h2 a:hover,h3 a:hover { color:inherit; }
p { overflow-wrap:break-word; }
.container { padding-inline:56px; }
.section { padding:90px 0; }
.section-soft { background:var(--cream); border-block:1px solid var(--line); }
.eyebrow { color:var(--primary); font-size:10px; font-weight:700; letter-spacing:.2em; margin-bottom:22px; }
.eyebrow:before { display:none; }
.muted,.section-intro,.page-heading p:not(.eyebrow),.breadcrumb,.contact-aside,
.contact-detail span,.event-detail-text,.media-caption,.album-heading span,.result-count { color:var(--muted); }
.text-link { color:var(--link); font-size:13px; padding:10px 0; border-color:var(--secondary-border); font-weight:600; }
.text-link:after { transition:transform .25s ease; }
.text-link:hover:after { transform:translate(3px,-3px); }
.button { min-height:51px; padding:14px 24px; border:1px solid var(--button-bg); border-radius:var(--button-radius); background:var(--button-bg); color:var(--button-text); font-family:var(--button-font); font-size:13px; font-weight:700; letter-spacing:0; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.button:hover { background:var(--button-hover-bg); color:var(--button-hover-text); border-color:var(--button-hover-bg); transform:translateY(-2px); }
.button-outline,.button-quiet { background:var(--secondary-bg); color:var(--secondary-text); border-color:var(--secondary-border); }
.button-outline:hover,.button-quiet:hover { background:var(--secondary-hover-bg); color:var(--secondary-hover-text); border-color:var(--accent); }
.button-light { background:var(--button-bg); color:var(--button-text); border-color:var(--button-bg); }
.button-light:hover { background:var(--button-hover-bg); color:var(--button-hover-text); border-color:var(--button-hover-bg); }
.button-small { min-height:43px; padding:10px 18px; }
.actions { gap:12px; }
.skip-link { border-radius:var(--button-radius); background:var(--button-bg); color:var(--button-text); }
.announcement { padding:7px 20px; color:var(--ticker-text); background:var(--ticker-bg); font-size:10px; letter-spacing:.1em; }

/* The same capsule navigation and compact wordmark as Ibiza Beach. */
.site-header { background:var(--header-bg); color:var(--header-text); border-color:color-mix(in srgb,var(--line) 60%,transparent); backdrop-filter:blur(18px); }
.header-inner { min-height:100px; gap:25px; }
.brand { color:inherit; gap:10px; }
.brand:hover { color:var(--primary); }
.site-header .brand-mark,.site-footer .brand-mark { display:none; }
.brand-title { color:inherit; font-family:var(--display-font); font-size:29px; font-weight:900; letter-spacing:.01em; line-height:1; text-transform:uppercase; }
.brand-subtitle { color:inherit; opacity:.85; font-size:9px; max-width:225px; letter-spacing:.25em; margin-top:9px; }
.brand-logo { max-height:65px; height:auto; width:auto; max-width:180px; }
.navigation { gap:10px 23px; padding:13px 24px; border:1px solid var(--line); border-radius:var(--button-radius); }
.navigation>a { color:var(--header-text); font-size:12px; font-weight:400; padding:3px 0; }
.navigation>a:hover,.navigation>a.active { color:var(--primary); }
.navigation>a.active:after { display:none; }
.header-cta { font-size:12px; font-weight:400; min-height:45px; padding:12px 20px; }
.menu-toggle { border-color:var(--line); color:var(--header-text); border-radius:var(--button-radius); background:var(--header-bg); }

/* A large, flat two-column hero. No rotated posters or ornamental orbits. */
.hero { background:var(--paper); border:0; overflow:hidden; }
.hero:before,.hero:after { display:none; }
.hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:620px; gap:25px; padding-top:25px; padding-bottom:35px; align-items:stretch; }
.hero-content { padding:35px 3% 35px 0; min-width:0; align-self:center; container-type:inline-size; }
.hero h1 { max-width:100%; margin:29px 0; font-size:clamp(65px,7.7vw,118px); font-weight:900; line-height:.96; letter-spacing:-.055em; text-transform:uppercase; }
.hero-headline,.hero-accent { display:block; white-space:pre-line; }
.hero-headline { font-size:inherit; }
.hero-accent { color:var(--primary); font-style:normal; font-size:.92em; font-size:clamp(42px,18.6cqw,112px); letter-spacing:-.055em; white-space:nowrap; }
.hero-copy { max-width:490px; font-size:18px; line-height:1.7; color:var(--muted); margin:28px 0 30px; }
.ibiza-home-signature { color:var(--muted); margin:24px 0 0; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.hero-note { color:var(--muted); margin-top:24px; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.hero-note:before { content:"●"; color:var(--primary); font-size:8px; }
.hero-art,.ibiza-hero-visual { position:relative; min-height:520px; display:flex; flex-direction:column; justify-content:flex-end; padding:32px; border-radius:calc(var(--card-radius) + 12px); border:1px solid color-mix(in srgb,var(--line) 85%,transparent); background:var(--dark); overflow:hidden; isolation:isolate; box-shadow:0 0 65px color-mix(in srgb,var(--accent) 7%,transparent); }
.hero-art:before,.hero-art:after,.art-orbit { display:none; }
.ibiza-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; overflow:hidden; background:var(--dark); }
.ibiza-hero-image>.media-wrap { position:absolute; inset:0; width:100%; height:100%; margin:0; }
.ibiza-hero-image img { height:100%; width:100%; object-fit:cover; object-position:center; }
.ibiza-hero-image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,color-mix(in srgb,var(--dark) 83%,transparent),transparent 70%),linear-gradient(120deg,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--dark) 17%,transparent)); }
.ibiza-hero-image .media-placeholder { height:100%; min-height:520px; border:0; background:var(--dark); }
.hero-image-caption { position:absolute; top:33px; left:30px; right:30px; text-align:right; color:var(--ink); font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.8; text-transform:uppercase; text-shadow:0 1px 10px var(--dark); }
.ibiza-featured-card { position:relative; background:color-mix(in srgb,var(--card-bg) 89%,transparent); border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line)); border-radius:calc(var(--card-radius) + 4px); padding:24px; color:var(--card-text); backdrop-filter:blur(14px); margin-top:100px; }
.featured-eyebrow { color:var(--primary); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; margin-bottom:16px; }
.featured-title { color:var(--heading); font-size:24px; font-family:var(--display-font); font-weight:800; letter-spacing:-.03em; line-height:1.18; margin:0 0 10px; }
.featured-meta { color:var(--card-text); opacity:.72; font-size:12px; line-height:1.7; margin-bottom:20px; }
.featured-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.featured-actions .button { min-height:43px; padding:10px 19px; font-size:12px; }
.featured-actions .text-link { color:var(--card-text); font-size:12px; }
.ibiza-sound-bars { height:40px; display:flex; align-items:center; gap:5px; margin-top:25px; overflow:hidden; }
.ibiza-sound-bars i { display:block; height:10px; flex:1; min-width:0; background:var(--primary); border-radius:3px; transform-origin:center; animation:ibiza-wave 1.1s ease-in-out infinite alternate; }
.ibiza-sound-bars i:nth-child(3n) { height:22px; animation-delay:-.7s; }
.ibiza-sound-bars i:nth-child(4n) { height:35px; animation-delay:-.3s; }
.ibiza-sound-bars i:nth-child(5n) { height:15px; animation-delay:-.9s; }
@keyframes ibiza-wave { to { transform:scaleY(.25); opacity:.45; } }

.ticker { background:var(--ticker-bg); color:var(--ticker-text); border-block:1px solid color-mix(in srgb,var(--accent) 17%,var(--line)); }
.ticker-inner { padding-block:19px; gap:25px; }
.ticker-item { color:var(--ticker-text); font-family:var(--body-font); font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.ticker-item:hover,.ticker-item span { color:var(--accent); }
.section-head { margin-bottom:36px; }
.section-head h2 { font-size:clamp(29px,3.3vw,48px); font-weight:800; letter-spacing:-.035em; max-width:680px; }
.section-intro { font-size:13px; line-height:1.8; }
.page-heading { padding:70px 0 48px; background:var(--paper); border-color:var(--line); }
.page-heading h1 { font-size:clamp(42px,5.8vw,80px); font-weight:900; max-width:1050px; }
.page-heading p:not(.eyebrow) { line-height:1.85; }

/* The agenda keeps its complete flyers, booking links and event information. */
.event-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
.event-card { position:relative; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--card-radius); background:var(--card-bg); color:var(--card-text); overflow:hidden; transition:transform .2s,border-color .2s; }
.event-card:hover { transform:translateY(-4px); border-color:var(--accent); }
.event-date { position:absolute; z-index:3; top:16px; left:16px; width:65px; padding:12px 7px; border:1px solid color-mix(in srgb,var(--badge-text) 14%,transparent); border-radius:calc(var(--card-radius) / 1.5); background:var(--badge-bg); color:var(--badge-text); }
.event-date .day { font-family:var(--display-font); font-weight:900; font-size:35px; line-height:1; }
.event-date .month { font-size:9px; margin-top:6px; letter-spacing:.12em; }
.event-date .weekday,.event-date .year { color:var(--badge-text); opacity:.75; font-size:8px; margin-top:6px; }
.event-flyer { min-height:310px; height:310px; padding:18px 18px 18px 85px; border-right:0; border-bottom:1px solid var(--line); background:var(--cream); overflow:hidden; }
.event-flyer .media-wrap,.event-flyer .media-zoom { height:100%; }
.event-flyer img { width:100%; height:100%; max-height:100%; object-fit:contain; transition:transform .4s; }
.event-card:hover .event-flyer img { transform:scale(1.025); }
.event-flyer .media-placeholder { min-height:0; height:100%; padding:18px; font-size:10px; }
.event-content { position:relative; padding:28px; flex:1; color:var(--card-text); isolation:isolate; }
.event-number { position:absolute; top:11px; right:14px; z-index:-1; color:color-mix(in srgb,var(--accent) 11%,transparent); font-family:var(--display-font); font-size:120px; font-weight:900; letter-spacing:-.08em; line-height:1; pointer-events:none; user-select:none; }
.event-content h3 { color:var(--heading); font-size:25px; font-weight:800; margin-bottom:16px; }
.event-meta { color:var(--card-text); opacity:.7; font-size:11px; gap:9px 14px; }
.event-meta svg { color:var(--accent); }
.event-description { color:var(--card-text); opacity:.75; font-size:13px; line-height:1.8; }
.event-content .actions { width:100%; gap:9px; padding-top:18px; }
.event-content .button { padding:11px 16px; min-height:44px; font-size:11px; }
.tag { color:var(--badge-text); background:var(--badge-bg); border-radius:var(--button-radius); padding:6px 11px; font-size:9px; }
.media-placeholder { background:var(--cream); color:var(--muted); border-color:var(--line); border-radius:calc(var(--card-radius) / 2); }
.media-zoom:after { background:var(--button-bg); color:var(--button-text); border-color:var(--button-bg); width:32px; height:32px; border-radius:50%; }
.empty-state { background:var(--card-bg); color:var(--card-text); border-color:var(--line); border-radius:var(--card-radius); padding:55px 30px; }
.empty-symbol { color:var(--accent); font-family:var(--display-font); font-weight:900; }
.empty-state h3 { color:var(--heading); font-size:27px; }
.empty-state p { color:var(--card-text); opacity:.7; }
.filter-tabs { background:var(--cream); border:1px solid var(--line); border-radius:var(--button-radius); padding:5px; }
.filter-tabs button { border-radius:var(--button-radius); font-family:var(--button-font); color:var(--muted); padding:11px 22px; }
.filter-tabs button.active { background:var(--button-bg); color:var(--button-text); box-shadow:none; }
.filter-tools input,.filter-tools select { background:var(--input-bg); min-height:47px; }

/* The three feature cards follow the radio's dark programme cards. */
.feature-strip { gap:20px; padding-block:65px; }
.feature-strip>div,.feature-strip>div:first-child,.feature-strip>div:last-child { position:relative; min-height:300px; padding:28px; background:var(--card-bg); color:var(--card-text); border:1px solid var(--line); border-radius:var(--card-radius); overflow:hidden; transition:transform .2s,border-color .2s; }
.feature-strip>div:hover { transform:translateY(-4px); border-color:var(--accent); }
.feature-strip .feature-number { color:var(--primary); font-size:11px; letter-spacing:.1em; border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:50px; }
.feature-strip h3 { color:var(--heading); font-size:25px; font-weight:800; line-height:1.25; }
.feature-strip p { color:var(--muted); font-size:13px; }
.feature-strip .text-link { color:var(--card-text); font-size:12px; }
.partners-grid { gap:20px; }
.partner-card,.post-card { background:var(--card-bg); color:var(--card-text); border-color:var(--line); border-radius:var(--card-radius); padding:28px; transition:transform .2s,border-color .2s; }
.partner-card:hover,.post-card:hover { transform:translateY(-4px); border-color:var(--accent); }
.partner-card h3 { font-size:25px; color:var(--heading); }
.partner-card p,.post-card p { color:var(--card-text); opacity:.75; }
.post-card time { color:var(--primary); }
.post-card h2 { color:var(--heading); font-weight:800; }
.partner-logo { background:var(--cream); border-radius:calc(var(--card-radius) / 2); padding:12px; height:122px; }

/* The radio's image / introduction band, adapted to Zillenium events. */
.ibiza-about-section { background:var(--cream); padding:60px 0; }
.ibiza-about-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:9%; align-items:center; }
.ibiza-about-art { position:relative; min-height:410px; border-radius:calc(var(--card-radius) + 2px); background:var(--dark); overflow:hidden; display:flex; align-items:flex-end; padding:30px; isolation:isolate; }
.ibiza-about-art>.media-wrap { position:absolute; inset:0; width:100%; height:100%; margin:0; z-index:-2; }
.ibiza-about-art img { height:100%; width:100%; object-fit:cover; }
.ibiza-about-art .media-placeholder { height:100%; min-height:0; border:0; background:var(--dark); }
.ibiza-about-art:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,color-mix(in srgb,var(--dark) 70%,transparent),transparent 75%); z-index:-1; }
.ibiza-about-art>span { color:var(--ink); font-family:var(--display-font); font-size:40px; font-weight:900; letter-spacing:-.03em; line-height:1.1; max-width:350px; }
.ibiza-about-copy h2 { white-space:pre-line; font-size:clamp(29px,3.3vw,48px); line-height:1.08; font-weight:800; margin-bottom:24px; }
.ibiza-about-copy p:not(.eyebrow) { max-width:430px; color:var(--muted); font-size:15px; line-height:1.8; }
.ibiza-about-copy .ibiza-age-note { font-size:11px; letter-spacing:.04em; border-left:2px solid var(--primary); padding-left:13px; }
.ibiza-about-copy .actions { margin-top:25px; }

.newsletter-band { background:var(--newsletter-bg); color:var(--newsletter-text); padding:75px 0; border-block:1px solid var(--line); }
.newsletter-band:before,.newsletter-band:after { display:none; }
.newsletter-grid { gap:75px; }
.newsletter-band h2 { color:var(--newsletter-text); font-size:clamp(29px,3.3vw,48px); font-weight:800; line-height:1.08; }
.newsletter-band .eyebrow { color:var(--primary); }
.newsletter-band p,.newsletter-band .form-consent,.newsletter-band .configured-checkbox { color:var(--newsletter-text); }
.newsletter-band p { opacity:.75; }
.newsletter-band .form-field label { color:var(--newsletter-text); }
.newsletter-band input:not([type=checkbox]),.newsletter-band select,.newsletter-band textarea { background:var(--input-bg); border-color:var(--input-border); color:var(--input-text); }
.newsletter-band select option { color:var(--input-text); background:var(--input-bg); }
.newsletter-band input::placeholder { color:var(--input-text); opacity:.5; }
.newsletter-band .required { color:var(--accent); }
.newsletter-band .receipt-unsubscribe { color:var(--link); }
.site-footer { background:var(--footer-bg); color:var(--footer-text); border-color:var(--line); padding:60px 0 28px; }
.site-footer .brand,.site-footer .brand-title { color:var(--footer-text); }
.footer-grid { gap:45px; margin-bottom:45px; }
.footer-brand p,.site-footer .muted { color:var(--footer-text); opacity:.68; }
.footer-column h3 { color:var(--footer-text); font-family:var(--body-font); font-size:10px; }
.footer-column a,.footer-column button { color:var(--footer-text); opacity:.68; font-size:12px; margin-bottom:11px; }
.footer-column a:hover,.footer-column button:hover { color:var(--footer-text); opacity:1; }
.footer-bottom { color:var(--footer-text); border-color:var(--line); font-size:10px; }
.footer-bottom a { color:var(--footer-text); }

/* The fixed booking bar mirrors the Ibiza radio player. */
.event-dock { position:fixed; left:0; right:0; bottom:0; height:92px; z-index:30; background:color-mix(in srgb,var(--dark) 94%,transparent); color:var(--ink); border-top:1px solid var(--line); backdrop-filter:blur(18px); }
.dock-inner { height:100%; display:flex; align-items:center; gap:20px; }
.dock-icon { display:grid; place-items:center; width:52px; height:52px; flex-shrink:0; color:var(--primary); background:var(--card-bg); border-radius:calc(var(--card-radius) / 3); font-family:var(--display-font); font-size:23px; font-weight:900; line-height:1; }
.dock-info { min-width:0; display:flex; flex-direction:column; flex:1; gap:3px; }
.dock-info strong,.dock-info b { color:var(--heading); font-size:14px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.dock-info span,.dock-info small,.dock-info p { color:var(--muted); font-size:11px; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.dock-action { display:flex; align-items:center; flex-shrink:0; padding:0; }
.dock-action .button { min-height:47px; padding:12px 23px; }
.event-dock .ibiza-sound-bars { width:90px; height:30px; margin:0 15px; flex:none; }
.event-dock .text-link { font-size:11px; }

/* Contact, participation, payments and all editable page blocks share the same theme. */
.form-grid { gap:66px; }
.form-panel { background:var(--card-bg); color:var(--card-text); border-color:var(--line); border-radius:var(--card-radius); padding:42px; }
.form-panel h2 { font-size:35px; color:var(--heading); }
.form-panel>p { color:var(--card-text); opacity:.7; }
.form-field { margin-bottom:22px; }
.form-field label { font-size:12px; color:inherit; }
.required { color:var(--accent); }
input:not([type=checkbox]),select,textarea { background:var(--input-bg); color:var(--input-text); border-color:var(--input-border); border-radius:calc(var(--card-radius) / 2); font-family:var(--body-font); min-height:48px; padding:13px 15px; }
input::placeholder,textarea::placeholder { color:var(--input-text); opacity:.5; }
select option { background:var(--input-bg); color:var(--input-text); }
.form-consent { color:var(--muted); font-size:11px; }
.form-consent input,.consent-option input,.participation-choice input { accent-color:var(--button-bg); }
.form-consent a { color:var(--link); }
.form-message,.newsletter-band .form-message { border-color:var(--line); background:var(--cream); color:var(--ink); border-radius:calc(var(--card-radius) / 2); }
.form-message.error,.newsletter-band .form-message.error { border-color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,var(--cream)); color:var(--ink); }
.form-fieldset { border-color:var(--line); }
.form-fieldset legend { color:var(--accent); }
.participation-choice { background:var(--input-bg); color:var(--input-text); border-color:var(--input-border); border-radius:calc(var(--card-radius) / 2); }
.participation-choice:has(input:checked) { border-color:var(--accent); background:var(--cream); color:var(--ink); }
.booking-notice { background:var(--cream); color:var(--ink); border-color:var(--accent); border-radius:calc(var(--card-radius) / 2); }
.booking-notice p { color:var(--muted); }
.optional-newsletter-fields { background:var(--cream); color:var(--ink); border-color:var(--line); border-radius:calc(var(--card-radius) / 2); }
.ticket-receipt { border-color:var(--line); }
.ticket-receipt strong { color:var(--heading); }
.bank-transfer { background:var(--card-bg); color:var(--card-text); border-color:var(--line); border-radius:calc(var(--card-radius) / 2); }
.bank-transfer h3 { color:var(--heading); }
.bank-details>div,.contact-detail { border-color:var(--line); }
.bank-details dt { color:var(--muted); }
.contact-details h2 { font-size:43px; }
.contact-detail a { color:var(--link); }
.block-text p,.block-image-text p { color:var(--muted); }
.block-image-text { gap:60px; }
.block-image-text h2 { font-size:clamp(2rem,4vw,3.4rem); }
.block-image img,.block-image-text img { border-radius:var(--card-radius); }
.block-separator,.album-heading { border-color:var(--line); }
.gallery-grid { gap:22px; }
.gallery-grid .media-wrap { border-radius:var(--card-radius); overflow:hidden; border:1px solid var(--line); background:var(--card-bg); }
.gallery-grid img { height:320px; transition:transform .6s; }
.gallery-grid .media-zoom:hover img { transform:scale(1.035); }
.gallery-grid .media-caption { margin:0; padding:13px; color:var(--card-text); }
.gallery-grid .media-placeholder { height:320px; }
.album-heading { padding-bottom:21px; margin-bottom:28px; gap:20px; }
.album-heading h2 { font-size:35px; }
.event-detail { gap:65px; }
.event-detail>.media-wrap { background:var(--cream); border:1px solid var(--line); border-radius:var(--card-radius); padding:24px; }
.event-detail>.media-wrap img { border-radius:calc(var(--card-radius) / 2); }
.detail-facts,.detail-fact { border-color:var(--line); }
.detail-fact dt { color:var(--muted); }
.detail-fact dd { color:var(--ink); }

/* Consent remains readable and editable in every palette. */
.consent-banner { background:var(--dialog-bg); color:var(--dialog-text); border-color:var(--line); border-radius:var(--card-radius); bottom:20px; padding:25px 30px; box-shadow:0 18px 70px color-mix(in srgb,var(--dark) 65%,transparent); }
body.has-event-dock .consent-banner { bottom:110px; }
.consent-copy strong { color:var(--dialog-text); font-size:23px; font-weight:800; }
.consent-copy p,.consent-copy a { color:var(--dialog-text); }
.consent-copy p { opacity:.75; }
.consent-banner .button,.consent-banner .button:last-child { background:var(--secondary-bg); color:var(--secondary-text); border-color:var(--secondary-border); border-radius:var(--button-radius); font-family:var(--button-font); }
.consent-banner .button:hover,.consent-banner .button:last-child:hover { background:var(--secondary-hover-bg); color:var(--secondary-hover-text); border-color:var(--secondary-border); }
.consent-banner .button[data-consent=accept] { background:var(--button-bg); color:var(--button-text); border-color:var(--button-bg); }
.consent-banner .button[data-consent=accept]:hover { background:var(--button-hover-bg); color:var(--button-hover-text); border-color:var(--button-hover-bg); }
dialog { background:var(--dialog-bg); color:var(--dialog-text); border-color:var(--line); border-radius:var(--card-radius); padding:40px; box-shadow:0 30px 95px color-mix(in srgb,var(--dark) 55%,transparent); }
dialog::backdrop { background:color-mix(in srgb,var(--overlay) 78%,transparent); }
dialog h2,dialog p,dialog .muted { color:var(--dialog-text); }
dialog p { opacity:.75; }
.consent-option { border-color:var(--line); }
.dialog-close { background:var(--secondary-bg); color:var(--secondary-text); border-color:var(--secondary-border); border-radius:50%; width:36px; height:36px; }
.dialog-close:hover { background:var(--secondary-hover-bg); color:var(--secondary-hover-text); }
.image-dialog { background:var(--dialog-bg); color:var(--dialog-text); border-color:var(--line); padding:44px 16px 18px; }
.image-dialog h2 { color:var(--dialog-text); }
.image-dialog .dialog-close { background:var(--secondary-bg); color:var(--secondary-text); border-color:var(--secondary-border); }
.boot,.load-error { color:var(--muted); }
.loading-line { background:var(--line); }
.loading-line:after { background:var(--accent); }
.noscript { background:var(--cream); color:var(--ink); border-color:var(--line); }


/* Enhancement is gated: a failed script can never hide the page. */
.motion-ready .motion-item { opacity:0; transform:translateY(22px); transition:opacity .65s ease,transform .65s ease; }
.motion-ready .motion-item.is-visible { opacity:1; transform:translateY(0); }
.motion-ready .event-card.is-visible:hover,.motion-ready .partner-card.is-visible:hover,.motion-ready .post-card.is-visible:hover { transform:translateY(-4px); }

@media (max-width:1200px) {
  .container { padding-inline:38px; }
  .header-inner { gap:20px; }
  .navigation { gap:8px 18px; padding-inline:20px; }
  .navigation>a { font-size:11px; }
  .brand-title { font-size:25px; }
  .brand-subtitle { max-width:200px; }
  .header-cta { display:none; }
  .hero h1 { font-size:clamp(65px,7.7vw,95px); }
  .hero-art { padding:26px; }
  .ibiza-featured-card { padding:21px; }
  .event-flyer { height:285px; min-height:285px; padding:18px 14px 18px 82px; }
  .event-content { padding:24px; }
  .newsletter-grid { gap:55px; }
}
@media (max-width:1000px) {
  .hero h1 { font-size:clamp(58px,7.2vw,85px); }
  .hero-grid { gap:25px; }
  .hero-art { padding:22px; }
  .hero-copy { font-size:16px; }
  .hero .button { font-size:12px; padding:13px 20px; }
  .ibiza-featured-card { padding:18px; }
  .featured-title { font-size:22px; }
  .event-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .feature-strip>div,.feature-strip>div:first-child,.feature-strip>div:last-child { padding:24px; }
  .feature-strip h3 { font-size:23px; }
  .ibiza-about-grid { gap:6%; }
}
@media (max-width:850px) {
  .container { padding-inline:28px; }
  .header-inner { min-height:80px; }
  .navigation { position:absolute; top:80px; left:0; right:0; background:var(--header-bg); color:var(--header-text); border-color:var(--line); border-radius:0; padding:15px 28px 25px; box-shadow:0 18px 35px color-mix(in srgb,var(--dark) 25%,transparent); align-items:stretch; gap:0; }
  .navigation>a { color:var(--header-text); padding:14px 6px; font-size:13px; }
  .section { padding:65px 0; }
  .section-head h2 { font-size:clamp(29px,4.5vw,42px); }
  .newsletter-grid { grid-template-columns:1fr; gap:30px; }
  .newsletter-grid form { max-width:630px; }
  .newsletter-band { padding:65px 0; }
  .newsletter-band p { max-width:600px; }
  .form-grid { gap:40px; }
  .form-panel { padding:34px; }
  .page-heading { padding:55px 0 35px; }
  .event-detail,.block-image-text { gap:30px; }
  .gallery-grid img,.gallery-grid .media-placeholder { height:270px; }
  .footer-grid { gap:35px 50px; }
  .consent-banner { gap:22px; }
  .event-dock .ibiza-sound-bars,.event-dock .text-link { display:none; }
}
@media (max-width:800px) {
  .hero-grid { grid-template-columns:1fr; min-height:0; gap:20px; padding-top:25px; padding-bottom:35px; }
  .hero-content { padding:25px 4%; }
  .hero h1 { font-size:clamp(62px,10vw,85px); letter-spacing:-.045em; max-width:680px; }
  .hero-copy { max-width:550px; margin:25px 0; font-size:16px; }
  .hero-art { min-height:420px; padding:28px; }
  .hero-image-caption { top:25px; }
  .ibiza-featured-card { margin:70px 0 0; padding:24px; max-width:600px; width:100%; align-self:center; }
  .ticker-inner { justify-content:center; gap:18px 25px; flex-wrap:wrap; }
  .ticker-item { font-size:9px; }
  .ibiza-about-grid { grid-template-columns:1fr; gap:35px; }
  .ibiza-about-art { min-height:350px; }
  .ibiza-about-copy h2 { white-space:pre-line; font-size:38px; }
  .ibiza-about-copy p:not(.eyebrow) { max-width:600px; }
  .feature-strip { grid-template-columns:1fr; gap:20px; padding-block:50px; }
  .feature-strip>div,.feature-strip>div:first-child,.feature-strip>div:last-child { min-height:270px; padding:28px; }
  .feature-number { margin-bottom:40px; }
  .feature-strip p { max-width:500px; }
}
@media (max-width:600px) {
  html { scroll-padding-top:80px; }
  .container { padding-inline:21px; }
  .announcement { font-size:9px; padding:7px 16px; }
  .header-inner { min-height:74px; gap:15px; }
  .brand-title { font-size:24px; }
  .brand-subtitle { font-size:8px; max-width:230px; }
  .brand-logo { max-width:140px; max-height:55px; }
  .navigation { top:74px; padding-inline:21px; }
  .hero-grid { padding-top:12px; }
  .hero-content { padding:30px 0 15px; }
  .hero h1 { font-size:clamp(45px,11.7vw,70px); letter-spacing:-.05em; margin:23px 0; }
  .hero-copy { font-size:16px; line-height:1.7; margin-bottom:27px; }
  .hero .button { min-height:49px; padding:13px 20px; font-size:12px; }
  .hero-note { font-size:9px; letter-spacing:.1em; margin-top:25px; }
  .hero-art { min-height:380px; padding:20px; }
  .hero-image-caption { top:22px; left:23px; right:23px; font-size:9px; }
  .ibiza-featured-card { padding:20px; border-radius:var(--card-radius); }
  .featured-eyebrow { font-size:10px; }
  .featured-title { font-size:23px; }
  .featured-meta { font-size:11px; }
  .featured-actions { gap:10px; }
  .featured-actions .button { min-height:43px; font-size:11px; padding:10px 17px; }
  .ibiza-sound-bars { margin-top:22px; }
  .ticker-inner { padding-block:18px; flex-wrap:wrap; gap:13px 18px; }
  .ticker-item { font-size:9px; letter-spacing:.13em; }
  .section { padding:55px 0; }
  .section-head { gap:18px; margin-bottom:29px; }
  .section-head h2 { font-size:35px; }
  .section-intro { font-size:13px; }
  .eyebrow { font-size:9px; margin-bottom:18px; }
  .event-list { grid-template-columns:1fr; gap:24px; }
  .event-card { display:flex; }
  .event-date { display:block; padding:12px 7px; top:16px; left:16px; width:64px; }
  .event-date .day { font-size:35px; }
  .event-date .weekday,.event-date .year { font-size:8px; margin-top:6px; }
  .event-flyer { height:350px; min-height:350px; border-bottom:1px solid var(--line); border-right:0; padding:20px 18px 20px 86px; }
  .event-content { padding:27px; border-top:0; }
  .event-content h3 { font-size:28px; }
  .event-meta { font-size:11px; }
  .event-description { font-size:13px; }
  .event-content .button { font-size:11px; padding:11px 17px; }
  .filter-tabs button { padding:10px 15px; }
  .filter-tools input,.filter-tools select { font-size:11px; }
  .feature-strip { padding-block:40px; }
  .feature-strip h3 { font-size:25px; }
  .partners-grid { grid-template-columns:1fr; }
  .partner-card,.post-card { padding:27px; }
  .ibiza-about-section { padding:45px 0; }
  .ibiza-about-art { min-height:320px; padding:25px; }
  .ibiza-about-art>span { font-size:35px; }
  .ibiza-about-copy h2 { white-space:pre-line; font-size:35px; }
  .newsletter-band { padding:55px 0; }
  .newsletter-band h2 { font-size:35px; }
  .newsletter-grid { gap:22px; }
  .newsletter-band p { font-size:13px; }
  .site-footer { padding:52px 0 25px; }
  .footer-grid { gap:33px 22px; margin-bottom:37px; }
  .footer-brand p { margin-top:18px; }
  .footer-column a,.footer-column button { font-size:12px; }
  .footer-bottom { gap:12px; }
  .page-heading { padding:44px 0 33px; }
  .page-heading h1 { font-size:clamp(39px,11vw,56px); }
  .page-heading p:not(.eyebrow) { font-size:13px; }
  .form-panel { padding:27px 22px; }
  .form-panel h2 { font-size:31px; }
  .contact-details h2 { font-size:35px; }
  .form-row { gap:0; }
  .contact-detail { padding:20px 0; }
  .block-image-text { grid-template-columns:1fr; gap:25px; }
  .block-image-text h2 { font-size:34px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .gallery-grid img,.gallery-grid .media-placeholder { height:205px; }
  .gallery-grid .media-caption { padding:10px; font-size:10px; }
  .album-heading { align-items:flex-start; gap:15px; }
  .album-heading h2 { font-size:28px; }
  .album-heading span { white-space:nowrap; }
  .event-detail { grid-template-columns:1fr; }
  .event-detail>.media-wrap { padding:18px; }
  .detail-fact dd { font-size:13px; }
  .consent-banner { left:10px; right:10px; bottom:10px; padding:20px; gap:16px; }
  body.has-event-dock .consent-banner { bottom:105px; }
  .consent-copy strong { font-size:21px; }
  .consent-copy p { font-size:10px; }
  .consent-banner .button,.consent-banner .button:last-child { padding:10px 6px; font-size:9px; min-height:41px; min-width:0; }
  dialog { padding:32px 24px; }
  dialog h2 { font-size:28px; }
  .image-dialog { padding:44px 10px 15px; }
  .empty-state { padding:40px 24px; }
  .dock-inner { gap:12px; padding-inline:16px; }
  .dock-icon { width:44px; height:44px; font-size:20px; }
  .dock-info strong,.dock-info b { font-size:12px; }
  .dock-info span,.dock-info small,.dock-info p { font-size:10px; }
  .dock-action .button { padding:11px 16px; font-size:11px; min-height:44px; }
}
@media (max-width:380px) {
  .brand-title { font-size:21px; }
  .brand-subtitle { max-width:190px; }
  .hero .actions { gap:9px; }
  .hero .button { font-size:11px; padding:12px 16px; }
  .hero-art { padding:15px; }
  .ibiza-featured-card { padding:17px; }
  .event-flyer { height:300px; min-height:300px; }
  .gallery-grid img,.gallery-grid .media-placeholder { height:165px; }
  .consent-banner .actions { flex-wrap:wrap; }
  .consent-banner .button { flex-basis:calc(50% - 6px); }
  .dock-icon { display:none; }
}
html[data-motion=off] { scroll-behavior:auto; }
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after { animation:none!important; transition:none!important; }
html[data-motion=off] .motion-item { opacity:1!important; transform:none!important; }
html[data-motion=off] .event-card:hover,html[data-motion=off] .partner-card:hover,html[data-motion=off] .post-card:hover,html[data-motion=off] .feature-strip>div:hover,html[data-motion=off] .button:hover,html[data-motion=off] .gallery-grid .media-zoom:hover img,html[data-motion=off] .event-card:hover .event-flyer img { transform:none; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; }
  .motion-ready .motion-item { opacity:1; transform:none; }
  .event-card:hover,.partner-card:hover,.post-card:hover,.feature-strip>div:hover,.motion-ready .event-card.is-visible:hover,.motion-ready .partner-card.is-visible:hover,.motion-ready .post-card.is-visible:hover,.button:hover,.gallery-grid .media-zoom:hover img,.event-card:hover .event-flyer img { transform:none; }
}
