/*
Theme Name: Softeis Engel
Theme URI: https://softeis-engel.de
Author: Softeis Engel
Description: Verspieltes, mobilfreundliches Event-Theme für den Softeis-Engel im Raum Bielefeld.
Version: 2.2.1
Text Domain: softeis-engel
*/

:root {
  --navy: #082343;
  --orange: #c87810;
  --cream: #fff8ec;
  --pink: #f8b7c3;
  --blue: #bde6f3;
  --white: #fffdf9;
  --line: rgba(8, 35, 67, 0.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--navy); font-family: "DM Sans", Arial, sans-serif; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }

.music-toggle { position:fixed; z-index:900; left:18px; bottom:18px; min-width:255px; padding:10px 12px 10px 10px; display:grid; grid-template-columns:42px 1fr 30px; gap:11px; align-items:center; border:1px solid rgba(8,35,67,.22); border-radius:100px; background:rgba(255,248,236,.94); backdrop-filter:blur(12px); color:var(--navy); box-shadow:0 12px 35px rgba(8,35,67,.18); cursor:pointer; text-align:left; transition:transform .25s,background .25s,color .25s; }
.music-toggle:hover { transform:translateY(-3px); }
.music-toggle:focus-visible { outline:3px solid rgba(200,120,16,.42); outline-offset:3px; }
.music-note { width:42px; height:42px; display:grid; place-items:center; border:2px solid var(--orange); border-radius:50%; background:var(--navy); color:#f5ae4d; font:700 21px Georgia,serif; animation:goldLineGlitter 2.8s ease-in-out infinite; }
.music-label small,.music-label strong { display:block; }
.music-label small { margin-bottom:3px; font-size:8px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; opacity:.68; }
.music-label strong { font:600 14px "Playfair Display",Georgia,serif; }
.music-bars { height:24px; display:flex; justify-content:center; align-items:end; gap:3px; }
.music-bars i { width:3px; height:5px; display:block; border-radius:3px; background:var(--orange); opacity:.5; transform-origin:bottom; }
.music-toggle.is-playing { background:rgba(8,35,67,.96); color:white; }
.music-toggle.is-playing .music-bars i { opacity:1; animation:musicBar .65s ease-in-out infinite alternate; }
.music-toggle.is-playing .music-bars i:nth-child(2) { animation-delay:-.32s; }
.music-toggle.is-playing .music-bars i:nth-child(3) { animation-delay:-.5s; }
@keyframes musicBar { from { transform:scaleY(.45); } to { transform:scaleY(3.5); } }

/* Dezentes Funkeln auf allen goldenen Akzenten. */
.hero h1 em,
.section-heading h2 em,
.events-intro h2 em,
.contact h2 em,
.flavour-copy h2 em,
.text-link span,
.marquee span,
.feature-icon,
.flavour-copy li span,
.occasion>span,
.occasion>b,
.contact-tile>span,
.request-form legend,
.legal-card span,
.privacy-intro small,
.privacy-content summary::after {
  animation:goldTextGlitter 3.4s ease-in-out infinite;
}
.marquee span:nth-of-type(2n),
.occasion:nth-child(2n)>span,
.occasion:nth-child(2n)>b { animation-delay:-1.7s; }
.eyebrow span,
.eyebrow.light span,
.nav-links a::after { animation:goldLineGlitter 2.8s ease-in-out infinite; }
@keyframes goldTextGlitter {
  0%,24%,40%,100% { text-shadow:0 0 0 rgba(255,240,177,0); filter:brightness(1); }
  28% { text-shadow:-4px -4px 5px rgba(255,248,208,.95),4px 3px 6px rgba(255,208,91,.7); filter:brightness(1.22); }
  32% { text-shadow:3px -2px 4px rgba(255,255,240,.7),-3px 3px 5px rgba(255,190,55,.45); filter:brightness(1.08); }
}
@keyframes goldLineGlitter {
  0%,26%,42%,100% { box-shadow:0 0 0 rgba(255,232,145,0); filter:brightness(1); }
  31% { box-shadow:0 0 7px 2px rgba(255,231,143,.9); filter:brightness(1.3); }
}
@keyframes goldDust {
  0%,100% { opacity:.18; background-position:0 0,0 0,0 0; }
  45% { opacity:.68; }
  55% { opacity:.28; background-position:34px -25px,-28px 31px,20px 44px; }
}

.intro {
  position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center;
  background: radial-gradient(circle at 50% 45%, #fffdf7 0 30%, #f8e8d5 72%, #edcda5);
  overflow: hidden; animation: introExit .75s 3.8s ease forwards;
}
.intro::before, .intro::after {
  content: ""; position: absolute; width: 38vw; height: 38vw; border-radius: 50%;
  border: 1px solid rgba(214,106,18,.2);
}
.intro::before { left: -18vw; top: -18vw; }
.intro::after { right: -18vw; bottom: -18vw; }
.intro-skip { position: absolute; top: 24px; right: 28px; z-index: 4; border: 0; border-bottom: 1px solid var(--navy); padding: 7px 0; background: none; color: var(--navy); font: 600 12px "DM Sans"; text-transform: uppercase; letter-spacing: .12em; cursor: pointer; }
.intro-stars { position: absolute; top: 18%; color: var(--orange); letter-spacing: 1.4em; animation: twinkle 1.2s ease-in-out infinite alternate; }
.intro-stage { position: relative; width: min(300px, 68vw); height: min(550px, 68vh); display: grid; place-items: center; }
.ice-spin { position: relative; width: 100%; height: 100%; animation: iceTurn 4s cubic-bezier(.2,.7,.25,1) both; transform-origin: 50% 60%; }
.ice-spin img { position: absolute; width: 100%; height: 100%; object-fit: contain; inset: 0; }
.ice-vanilla { filter: sepia(.28) saturate(.38) brightness(1.55); clip-path: inset(0 0 0 0); animation: revealChocolate 2.2s 1.15s ease-in-out forwards; }
.sauce-stream { position: absolute; z-index: 5; top: -20%; left: 52%; width: 22px; height: 0; border-radius: 30px; background: linear-gradient(90deg,#401706,#8b3f13 45%,#321005); box-shadow: inset 4px 0 4px rgba(255,255,255,.23), 0 8px 12px rgba(64,23,6,.25); animation: pour 2s .75s ease-in-out both; }
.intro-kicker { position: absolute; bottom: 10%; margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.intro-wordmark { position: absolute; bottom: 5%; margin: 0; font: 600 italic clamp(25px,4vw,40px) "Fraunces",serif; color: var(--orange); animation: wordReveal .8s 2.7s both,goldTextGlitter 2.8s 3.5s ease-in-out infinite; }
@keyframes iceTurn { 0% { transform: scale(.7) rotateY(-70deg) rotate(-8deg); opacity: 0; } 22% { opacity: 1; } 65% { transform: scale(1) rotateY(360deg) rotate(1deg); } 100% { transform: scale(.92) rotateY(540deg); } }
@keyframes pour { 0% { height: 0; } 30% { height: 45%; } 75% { height: 55%; transform: translateY(45%); } 100% { height: 0; transform: translateY(230%); opacity: 0; } }
@keyframes revealChocolate { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(100% 0 0 0); } }
@keyframes wordReveal { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes twinkle { to { opacity:.25; transform:scale(.92); } }
@keyframes introExit { to { opacity:0; visibility:hidden; pointer-events:none; } }

.nav { height: 92px; max-width: 1440px; margin: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 10px 4.8vw; border-bottom: 1px solid var(--line); position: relative; z-index: 20; }
.brand img { width: 94px; height: 72px; object-fit: contain; }
.nav-links { display: flex; gap: 36px; font-size: 13px; font-weight: 600; }
.nav-links a { position:relative; }
.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--orange); transition:.25s; }
.nav-links a:hover::after { right:0; }
.nav-cta { justify-self: end; padding: 13px 20px; border: 1px solid var(--navy); border-radius: 100px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; transition:.25s; }
.nav-cta:hover { background:var(--navy); color:white; transform:translateY(-2px); }

.hero { min-height: 760px; max-width: 1440px; margin:auto; padding: 60px 5vw 40px; display:grid; grid-template-columns: .95fr 1.05fr; align-items:center; gap:3vw; }
.eyebrow { margin:0 0 22px; display:flex; align-items:center; gap:12px; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow span { width:34px; height:1px; background:var(--orange); }
h1,h2 { font-family:"Playfair Display",Georgia,serif; letter-spacing:-.045em; font-weight:600; margin:0; line-height:.93; }
h1 { font-size:clamp(52px,6.1vw,92px); }
h2 { font-size:clamp(44px,5vw,74px); }
h1 em,h2 em { font-family:"Fraunces",Georgia,serif; font-weight:600; color:var(--orange); }
.hero-lead { max-width:565px; margin:32px 0; font-size:18px; line-height:1.7; color:#3d536a; }
.hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:34px; padding:18px 23px; border-radius:3px; text-transform:uppercase; letter-spacing:.09em; font-size:11px; font-weight:700; transition:.25s; }
.button-primary { background:var(--navy); color:white; min-width:205px; box-shadow:0 12px 30px rgba(8,35,67,.16); }
.button:hover { transform:translateY(-3px); box-shadow:0 14px 26px rgba(8,35,67,.2); }
.text-link { font-size:12px; font-weight:700; border-bottom:1px solid var(--navy); padding:10px 0; }
.text-link span { margin-left:10px; color:var(--orange); }
.mini-proof { margin-top:55px; display:flex; gap:16px; align-items:center; }
.proof-faces { display:flex; }
.proof-faces span { width:35px; height:35px; margin-left:-7px; display:grid; place-items:center; background:var(--pink); border:2px solid var(--cream); border-radius:50%; color:var(--navy); font-size:12px; }
.proof-faces span:nth-child(2){ background:var(--blue); }.proof-faces span:nth-child(3){ background:#ffe29d; }
.mini-proof p { margin:0; font-size:11px; line-height:1.55; text-transform:uppercase; letter-spacing:.05em; }
.hero-visual { position:relative; min-height:620px; display:grid; place-items:center; }
.sunburst { position:absolute; width:min(590px,46vw); aspect-ratio:1; border-radius:50%; background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.48) 0deg 4deg, transparent 4deg 13deg),#bde6f3; box-shadow:0 0 0 18px #fff8ec,0 0 0 19px rgba(8,35,67,.12); }
.hero-ice { position:relative; z-index:2; height:650px; max-width:80%; object-fit:contain; filter:drop-shadow(0 30px 22px rgba(95,48,11,.2)); transform:rotate(3deg); animation:floatIce 4s ease-in-out infinite; }
@keyframes floatIce { 50% { transform:rotate(-1deg) translateY(-14px); } }
.arch-text { position:absolute; top:4%; font-size:10px; font-weight:700; letter-spacing:.27em; z-index:3; transform:rotate(-7deg); }
.pink-splash { position:absolute; width:210px; height:150px; right:2%; bottom:4%; background:var(--pink); border-radius:48% 52% 58% 42%; transform:rotate(-16deg); }
.float-card { position:absolute; z-index:4; background:rgba(255,253,249,.92); backdrop-filter:blur(10px); padding:13px 17px; border:1px solid rgba(8,35,67,.13); box-shadow:0 15px 35px rgba(8,35,67,.12); display:flex; align-items:center; gap:12px; min-width:190px; animation:floatCard 4s ease-in-out infinite; }
.float-card>span { width:36px; height:36px; border-radius:50%; background:var(--pink); display:grid; place-items:center; }
.float-card p { margin:0; }.float-card small,.float-card strong { display:block; }.float-card small { font-size:9px; text-transform:uppercase; letter-spacing:.08em; }.float-card strong { font:600 italic 15px "Fraunces"; margin-top:2px; }
.float-card-top { top:20%; right:-2%; }.float-card-bottom { bottom:19%; left:-2%; animation-delay:-2s; }
@keyframes floatCard { 50% { transform:translateY(-9px) rotate(1deg); } }

.marquee { overflow:hidden; padding:19px 0; background:var(--navy); color:white; white-space:nowrap; font:600 12px "DM Sans"; letter-spacing:.15em; }
.marquee-track { display:flex; width:max-content; min-width:max-content; animation:marquee 32s linear infinite; }.marquee-copy { flex:none; padding-right:32px; }.marquee span { margin:0 32px; color:#f5ae4d; }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

.story { max-width:1440px; margin:auto; padding:120px 5vw; display:grid; grid-template-columns:1fr 1fr; gap:6vw; }
.story-copy { align-self:end; color:#41566b; line-height:1.7; max-width:540px; }.large-copy { font-size:20px; color:var(--navy); }
.feature-grid { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:45px; }
.feature { min-height:320px; padding:28px; position:relative; border-radius:2px; overflow:hidden; }
.feature::after { content:""; position:absolute; width:170px; height:170px; border:1px solid rgba(8,35,67,.12); border-radius:50%; right:-60px; bottom:-60px; }
.feature-pink{background:var(--pink)}.feature-cream{background:#f2ddac}.feature-blue{background:var(--blue)}
.feature-number { font-size:10px; font-weight:700; letter-spacing:.1em; }.feature-icon { margin:45px 0 24px; font-size:33px; color:var(--orange); }
.feature h3,.occasion h3 { margin:0; font:600 27px "Playfair Display",serif; }.feature p { max-width:330px; line-height:1.65; font-size:14px; }

.brand-seals { max-width:1440px; margin:auto; padding:0 5vw 120px; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.seal-card { position:relative; min-height:360px; padding:34px; display:grid; grid-template-columns:minmax(190px,.8fr) 1.2fr; gap:28px; align-items:center; overflow:hidden; border:1px solid rgba(8,35,67,.14); }
.seal-card::after { content:""; position:absolute; right:-90px; top:-90px; width:230px; height:230px; border:1px solid rgba(8,35,67,.1); border-radius:50%; }
.seal-card-heart { background:#fff1f4; }
.seal-card-bio { background:#e9f1e8; }
.seal-card img { position:relative; z-index:1; width:100%; max-width:245px; max-height:260px; object-fit:contain; filter:drop-shadow(0 15px 18px rgba(8,35,67,.1)); transition:transform .35s ease; }
.seal-card:hover img { transform:rotate(-3deg) scale(1.035); }
.seal-card-bio:hover img { transform:rotate(3deg) scale(1.035); }
.seal-copy { position:relative; z-index:1; }
.seal-copy .eyebrow { margin-bottom:18px; }
.seal-copy h3 { margin:0; font:600 clamp(28px,2.6vw,42px)/1.02 "Playfair Display",Georgia,serif; letter-spacing:-.035em; }
.seal-copy>p:last-child { margin:22px 0 0; color:#4d6275; font-size:13px; line-height:1.7; }

.flavour-section { background:var(--navy); color:white; min-height:780px; display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.flavour-image { position:relative; height:100%; min-height:780px; display:grid; place-items:center; overflow:hidden; perspective:1100px; background:radial-gradient(circle,#f1c17c 0 12%,#c87810 12.5% 31%,#082343 31.5%); }
.flavour-image::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background-image:radial-gradient(circle at 27% 28%,rgba(255,255,230,.95) 0 1px,transparent 2px),radial-gradient(circle at 69% 38%,rgba(255,232,151,.9) 0 1.5px,transparent 2.5px),radial-gradient(circle at 58% 72%,rgba(255,255,238,.8) 0 1px,transparent 2px); background-size:87px 91px,123px 117px,149px 143px; mix-blend-mode:screen; animation:goldDust 4.8s ease-in-out infinite; }
.softserve-3d { position:relative; z-index:2; width:100%; height:100%; min-height:780px; cursor:grab; touch-action:pan-y; filter:drop-shadow(0 28px 26px rgba(0,0,0,.28)); }
.softserve-3d:active { cursor:grabbing; }
.softserve-3d canvas { display:block; width:100%; height:100%; outline:none; }
.model-hint { position:absolute; z-index:4; left:50%; bottom:30px; transform:translateX(-50%); width:max-content; max-width:86%; margin:0; padding:9px 14px; border:1px solid rgba(255,255,255,.28); border-radius:100px; background:rgba(8,35,67,.72); backdrop-filter:blur(8px); color:white; font-size:9px; font-weight:700; letter-spacing:.11em; text-align:center; text-transform:uppercase; }
.choco-orbit { position:absolute; z-index:3; top:10%; font-size:10px; letter-spacing:.25em; transform:rotate(-10deg); }
.flavour-copy { padding:80px 8vw 80px 6vw; }.eyebrow.light { color:#fff; }.eyebrow.light span { background:#f5ae4d; }
.flavour-copy h2 em { color:#f5ae4d; }.flavour-copy>p:not(.eyebrow) { max-width:520px; margin:35px 0; line-height:1.7; color:#c5cfda; }
.flavour-copy ul { list-style:none; padding:0; margin:40px 0 0; border-top:1px solid rgba(255,255,255,.2); }
.flavour-copy li { display:flex; gap:20px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.2); font:600 16px "Playfair Display"; }
.flavour-copy li span { color:#f5ae4d; font:600 10px "DM Sans"; }

.events { max-width:1440px; margin:auto; padding:120px 5vw; display:grid; grid-template-columns:.72fr 1.28fr; gap:7vw; }
.events-intro { position:sticky; top:50px; align-self:start; }.events-intro>p:last-child { max-width:420px; margin-top:30px; line-height:1.7; color:#506277; }
.occasion { display:grid; grid-template-columns:45px 1fr 30px; gap:20px; padding:28px 10px; border-top:1px solid var(--line); align-items:start; transition:.25s; }
.occasion:last-child { border-bottom:1px solid var(--line); }.occasion>span { font-size:10px; color:var(--orange); font-weight:700; }.occasion p { margin:7px 0 0; color:#586a7c; font-size:13px; line-height:1.55; }.occasion>b { font-size:20px; color:var(--orange); transition:.25s; }.occasion:hover { padding-left:22px; background:rgba(248,183,195,.2); }.occasion:hover b { transform:rotate(45deg); }

.benefits { position:relative; overflow:hidden; padding:100px max(5vw,calc((100vw - 1300px)/2)); background:#c87810; color:white; display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }
.benefits::before { content:""; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(circle at 16% 22%,rgba(255,255,225,.92) 0 1px,transparent 2px),radial-gradient(circle at 72% 31%,rgba(255,234,162,.9) 0 1.5px,transparent 2.5px),radial-gradient(circle at 44% 78%,rgba(255,255,238,.78) 0 1px,transparent 2px); background-size:101px 97px,137px 129px,167px 151px; mix-blend-mode:screen; animation:goldDust 5.4s -1.4s ease-in-out infinite; }
.benefits>* { position:relative; z-index:1; }
.benefits h2 em { color:#082343; }.button-light { margin-top:45px; background:white; color:var(--navy); }
.benefits ul { list-style:none; margin:0; padding:0; border-top:1px solid rgba(255,255,255,.35); }.benefits li { padding:19px 0; border-bottom:1px solid rgba(255,255,255,.35); display:flex; gap:18px; align-items:center; font-weight:600; }.benefits li span { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; background:var(--navy); font-size:11px; }

.contact { position:relative; overflow:hidden; padding:105px max(5vw,calc((100vw - 1300px)/2)) 90px; background:var(--white); display:grid; grid-template-columns:.78fr 1.22fr; gap:7vw; align-items:start; }
.contact::before,.contact::after { content:""; position:absolute; width:360px; height:360px; border-radius:50%; border:1px solid var(--line); }.contact::before{left:-200px;top:30px}.contact::after{right:-220px;bottom:-70px}
.contact-intro { position:sticky; top:45px; z-index:1; }
.contact-logo { width:130px; height:115px; object-fit:contain; margin-bottom:25px; }.contact h2 { font-size:clamp(42px,4.4vw,66px); }.contact h2 em { color:var(--orange); }
.contact-lead { max-width:560px; margin:30px 0 38px; line-height:1.7; color:#516579; }
.contact-actions { display:grid; grid-template-columns:1fr; gap:10px; }
.contact-tile { position:relative; text-align:left; padding:23px 55px 23px 24px; background:var(--cream); border:1px solid var(--line); transition:.25s; }.contact-tile:hover { background:var(--pink); transform:translateY(-3px); }.contact-tile small,.contact-tile strong { display:block; }.contact-tile small { text-transform:uppercase; letter-spacing:.12em; font-size:9px; margin-bottom:8px; }.contact-tile strong { font:600 19px "Playfair Display"; }.contact-tile>span { position:absolute; right:22px; top:50%; transform:translateY(-50%); color:var(--orange); }
.service-area { margin:26px 0 0; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.contact-deco { position:absolute; left:4%; top:5%; font-size:40px; color:var(--pink); }
.request-form { position:relative; z-index:2; background:var(--cream); border:1px solid var(--line); padding:34px; box-shadow:0 24px 60px rgba(8,35,67,.09); text-align:left; }
.form-heading { display:flex; justify-content:space-between; gap:18px; align-items:end; padding-bottom:25px; border-bottom:2px solid var(--navy); }.form-heading span { font:600 25px "Playfair Display"; }.form-heading strong { max-width:220px; font-size:10px; line-height:1.5; text-align:right; letter-spacing:.08em; text-transform:uppercase; color:#5f7183; }
.request-form fieldset { border:0; padding:0; margin:34px 0 0; }.request-form legend { width:100%; margin-bottom:18px; padding:0 0 10px; border-bottom:1px solid var(--line); color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.field { display:grid; gap:8px; }.field-wide { grid-column:1/-1; }.field>span { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.field input,.field select,.field textarea { width:100%; border:1px solid rgba(8,35,67,.2); border-radius:0; background:white; color:var(--navy); padding:14px 15px; font:500 14px "DM Sans"; outline:none; transition:border-color .2s,box-shadow .2s; }.field textarea { resize:vertical; line-height:1.55; }.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(200,120,16,.14); }
.consent { display:flex; align-items:flex-start; gap:11px; margin:28px 0 20px; font-size:11px; line-height:1.55; color:#516579; }.consent input { margin-top:2px; accent-color:var(--orange); }.consent a { color:var(--navy); font-weight:700; border-bottom:1px solid var(--navy); }
.form-submit { width:100%; border:0; padding:19px 22px; background:var(--navy); color:white; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font:700 11px "DM Sans"; letter-spacing:.1em; text-transform:uppercase; transition:.25s; }.form-submit:hover { background-color:var(--orange); background-image:linear-gradient(110deg,transparent 28%,rgba(255,245,192,.55) 46%,transparent 63%); background-size:240% 100%; animation:goldButtonGlitter 1.8s linear infinite; transform:translateY(-2px); }.form-submit b { font-size:17px; }
@keyframes goldButtonGlitter { to { background-position:-240% 0; } }
.form-note { margin:12px 0 0; font-size:9px; line-height:1.5; color:#718092; }
.honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-alert { margin:22px 0 0; padding:15px 17px; font-size:12px; line-height:1.55; border-left:4px solid; }.form-success { background:#e4f5e7; border-color:#398a4c; color:#21572e; }.form-error { background:#fff0ed; border-color:#bc4f39; color:#782b1e; }

.legal { padding:85px max(5vw,calc((100vw - 1300px)/2)); background:#f2ddac; display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:start; }
.legal h2 { font-size:clamp(42px,5vw,68px); }.legal-card { background:rgba(255,253,249,.75); border:1px solid rgba(8,35,67,.16); padding:30px; font-size:14px; line-height:1.75; }
.legal-card p { margin:0 0 22px; }.legal-card p:last-child { margin-bottom:0; }.legal-card address { margin:0 0 22px; font-style:normal; }.legal-card span { display:inline-block; width:70px; color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.legal-card a { border-bottom:1px solid rgba(8,35,67,.3); }

.privacy { padding:100px max(5vw,calc((100vw - 1300px)/2)); background:var(--navy); color:white; display:grid; grid-template-columns:.65fr 1.35fr; gap:8vw; align-items:start; }
.privacy-intro { position:sticky; top:45px; }.privacy-intro h2 { font-size:clamp(42px,5vw,70px); overflow-wrap:anywhere; }.privacy-intro>p:not(.eyebrow) { max-width:440px; margin:28px 0 18px; color:#c9d3de; line-height:1.7; }.privacy-intro small { color:#f1b66a; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.privacy-content { border-top:1px solid rgba(255,255,255,.25); }.privacy-content details { border-bottom:1px solid rgba(255,255,255,.25); }.privacy-content summary { position:relative; padding:24px 45px 24px 0; cursor:pointer; list-style:none; font:600 21px Georgia,serif; }.privacy-content summary::-webkit-details-marker { display:none; }.privacy-content summary::after { content:"+"; position:absolute; right:8px; top:22px; color:#f1b66a; font:400 24px Arial,sans-serif; }.privacy-content details[open] summary::after { content:"–"; }.privacy-content details>div { padding:0 55px 28px 0; color:#c9d3de; font-size:13px; line-height:1.75; }.privacy-content details p { margin:0 0 15px; }.privacy-content details p:last-child { margin-bottom:0; }.privacy-content a { color:white; border-bottom:1px solid rgba(255,255,255,.45); }
.privacy-page { min-height:100vh; background:var(--navy); }
.legal-page-nav { height:92px; display:flex; align-items:center; justify-content:space-between; padding:10px 5vw; background:var(--cream); border-bottom:1px solid var(--line); }
.legal-page-nav .brand img { width:94px; height:72px; object-fit:contain; }
.legal-back { white-space:nowrap; }
.privacy-page .privacy { min-height:calc(100vh - 212px); }
.privacy-intro h1 { margin:0; color:white; font:600 clamp(42px,5vw,70px)/.93 "Playfair Display",Georgia,serif; letter-spacing:-.045em; overflow-wrap:anywhere; }

footer { background:var(--navy); color:white; min-height:120px; display:flex; justify-content:space-between; align-items:center; padding:20px 5vw; font-size:11px; letter-spacing:.06em; }
footer img { width:85px; height:75px; object-fit:contain; } footer div { display:flex; gap:25px; }

@media (max-width: 900px) {
  .nav { grid-template-columns:1fr auto; height:78px; }.brand img{width:76px;height:62px}.nav-links{display:none}
  .hero { grid-template-columns:1fr; padding-top:55px; }.hero-visual{min-height:540px}.hero-ice{height:550px}.sunburst{width:520px;max-width:86vw}
  .float-card-top{right:0}.float-card-bottom{left:0}.story{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr}.feature{min-height:260px}
  .brand-seals{grid-template-columns:1fr}.seal-card{grid-template-columns:220px 1fr}
  .flavour-section{grid-template-columns:1fr}.flavour-image{min-height:620px;height:620px}.softserve-3d{min-height:620px}
  .events{grid-template-columns:1fr}.events-intro{position:static}.benefits{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.contact-intro{position:static}.contact-actions{grid-template-columns:1fr 1fr}.legal{grid-template-columns:1fr}.privacy{grid-template-columns:1fr}.privacy-intro{position:static}
}

@media (max-width: 560px) {
  .music-toggle{left:12px;bottom:12px;min-width:0;width:210px;grid-template-columns:36px 1fr 23px;padding:8px}.music-note{width:36px;height:36px;font-size:18px}.music-label small{font-size:7px}.music-label strong{font-size:12px}
  .nav{padding:8px 20px}.nav-cta{padding:11px 14px;font-size:9px}.hero{padding:42px 20px 32px;min-height:auto}
  h1{font-size:48px}.hero-lead{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.mini-proof{margin-top:35px}
  .hero-visual{min-height:465px}.hero-ice{height:465px;max-width:95%}.float-card{min-width:160px;padding:9px 11px}.float-card-top{top:18%}.float-card-bottom{bottom:13%}.pink-splash{width:130px;height:90px}
  .story,.events{padding:85px 20px}.story-copy{margin-top:10px}.feature-grid{margin-top:20px}.brand-seals{padding:0 20px 85px}.seal-card{min-height:auto;padding:25px 20px;grid-template-columns:1fr;text-align:center}.seal-card img{width:190px;margin:auto}.seal-copy .eyebrow{justify-content:center}.seal-copy>p:last-child{max-width:360px;margin:18px auto 0}.flavour-image{min-height:520px;height:520px}.softserve-3d{min-height:520px}.flavour-copy{padding:75px 20px}
  .benefits{padding:80px 20px}.contact{padding:80px 20px 60px}.contact-actions{grid-template-columns:1fr}.contact-tile strong{font-size:16px}.request-form{padding:22px 17px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.form-heading{align-items:start;flex-direction:column}.form-heading strong{text-align:left}.legal{padding:65px 20px}.privacy{padding:75px 20px}.privacy-content summary{font-size:18px}.privacy-content details>div{padding-right:0}.occasion{grid-template-columns:32px 1fr 20px;gap:8px}.occasion h3{font-size:22px}
  .legal-page-nav{height:78px;padding:8px 20px}.legal-page-nav .brand img{width:76px;height:62px}.legal-back{padding:11px 14px;font-size:9px}
  footer{flex-direction:column;gap:10px;padding:30px 20px}
  .intro-stage{height:58vh}.intro-stars{top:10%}
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}
