:root{
      --linen:#f8f5ef; --cream:#f2ede4; --sand:#e8dece;
      --sand-mid:#d4c5b0; --stone:#b8a892;
      --ocean-xl:#e8f4f9; --ocean-l:#cce7f2;
      --ocean:#6aadca; --ocean-d:#3d8daa; --ocean-xd:#1e5f7a;
      --navy:#0f2d3d;
      --gold:#b8882c; --gold-l:#d4a84a; --gold-xl:#f0d49a; --gold-bg:#fdf7ec;
      --gala:#7a3800; --gala-bg:#fff4e8; --gala-border:#d4a84a;
      --white:#ffffff;
      --text:#1a2e3a; --text-mid:#4a6272; --text-lt:#8aa5b5;
      --r:14px; --r-sm:8px;
      --sh-s:0 2px 12px rgba(15,45,61,.07);
      --sh:0 6px 28px rgba(15,45,61,.10);
      --sh-l:0 20px 56px rgba(15,45,61,.16);
      --t:.28s cubic-bezier(.4,0,.2,1);
      --safe-bot:env(safe-area-inset-bottom,0px);
    }
    *,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
    html{scroll-behavior:smooth;}
    body{font-family:'Raleway',sans-serif;background:var(--linen);color:var(--text);-webkit-font-smoothing:antialiased;text-size-adjust:100%;}
    .page-content{overflow-x:hidden;padding-top:54px;}
    @media(max-width:600px){.page-content{padding-top:0;}}
    img{max-width:100%;height:auto;display:block;}
    button{cursor:pointer;font-family:'Raleway',sans-serif;}

    /* ── LANG ── */
    .lang-toggle{display:flex;background:var(--ocean-xl);border-radius:30px;padding:3px;box-shadow:0 1px 8px rgba(15,45,61,.1);border:1px solid var(--ocean-l);}
    .lang-btn{padding:7px 14px;border:none;background:transparent;border-radius:30px;font-size:11px;font-weight:700;letter-spacing:1.2px;color:var(--text-mid);transition:all var(--t);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;}
    .lang-btn.active{background:var(--navy);color:white;}

    /* ── TOPBAR ── */
    .topbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--white);border-bottom:1px solid var(--sand);padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:nowrap;}
    .logo-topbar{height:32px;width:auto;filter:brightness(0);flex-shrink:0;}
    .topbar-contacts{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden;justify-content:center;}
    .topbar-info{font-size:11px;letter-spacing:.3px;color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .topbar-info strong{color:var(--text);}
    .topbar-sep{color:var(--sand-mid);flex-shrink:0;}
    .lang-toggle{flex-shrink:0;margin-left:auto;}
    @media(max-width:600px){
      .topbar-contacts{display:none;}
      .topbar{position:relative;top:auto;}
      .hero{min-height:100svh;}

      /* ── Font sizes mobile (+4px) ── */
      .btn-primary,.btn-outline{font-size:15px;}
      .btn-full{font-size:15px;}
      .f-label{font-size:14px;}
      .f-note,.f-dev{font-size:14px;}
      .fc-menu-item{font-size:13px;}
      .fc-theme{font-size:16px;}
      .fc-card-anim-text{font-size:13px;}
      .fd-lbl{font-size:12px;}
      .fd-val{font-size:15px;}
      .fd-chef{font-size:16px;}
      .fd-sittings-lbl{font-size:22px;}
      .fd-sittings-sub{font-size:12px;}
      .cd-eyebrow{font-size:13px;}
      .sec-eyebrow{font-size:13px;}
      .fc-drinks-mini{font-size:13px;}
      .fc-reserve-btn{font-size:13px;}
      .fc-weekday{font-size:14px;}
      .fc-month{font-size:16px;}
      .fc-price-pp{font-size:13px;}
      .fc-special-badge{font-size:11px;}
      .fc-past-lbl{font-size:13px;}
      .fan-card{width:clamp(270px,72vw,310px);}
      .fan-deck{width:clamp(300px,78vw,360px);}
    }

    /* ── HERO ── */
    .hero{position:relative;min-height:calc(100svh - 54px);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;padding:clamp(90px,14vw,130px) 20px clamp(160px,20vw,210px);background:radial-gradient(ellipse 80% 55% at 50% -5%,#ceeaf7 0%,transparent 65%),radial-gradient(ellipse 55% 45% at 5% 100%,#e8dece 0%,transparent 58%),radial-gradient(ellipse 55% 45% at 95% 100%,#d4eaf2 0%,transparent 58%),linear-gradient(180deg,#effaff 0%,#faf8f4 50%,#ede7db 100%);}
    .hero::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");opacity:.5;}
    .hero-orb{position:absolute;border-radius:50%;pointer-events:none;}
    .orb1{width:clamp(260px,60vw,520px);height:clamp(260px,60vw,520px);top:-20%;right:-10%;background:radial-gradient(circle,rgba(106,173,202,.14) 0%,transparent 70%);}
    .orb2{width:clamp(180px,40vw,350px);height:clamp(180px,40vw,350px);bottom:12%;left:-8%;background:radial-gradient(circle,rgba(184,136,44,.08) 0%,transparent 70%);}
    .hero-horizon{position:absolute;bottom:clamp(150px,20vw,190px);left:0;right:0;height:1px;background:linear-gradient(to right,transparent,rgba(106,173,202,.35) 20%,rgba(106,173,202,.55) 50%,rgba(106,173,202,.35) 80%,transparent);}
    .logo-hero{height:clamp(70px,18vw,100px);width:auto;margin:0 auto 12px;filter:brightness(0);animation:fadeInDown .8s ease both;}
    .hero-anno{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.78);border:1px solid rgba(184,136,44,.32);color:var(--gold);padding:8px 18px;border-radius:30px;font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:18px;backdrop-filter:blur(8px);animation:fadeInDown .8s ease .05s both;}
    .hero-50{font-family:'Cormorant Garamond',serif;font-size:clamp(52px,11vw,96px);font-weight:300;font-style:italic;color:var(--navy);margin-top:14px;letter-spacing:-1px;line-height:1;animation:fadeInUp .9s ease .1s both;}
    .hero-slogan{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,34px);font-weight:300;font-style:italic;color:var(--text-mid);margin-top:12px;letter-spacing:.5px;animation:fadeInUp .9s ease .18s both;}
    .hero-slogan em{font-style:normal;color:var(--gold);}
    .hero-divider{display:flex;align-items:center;gap:12px;margin:22px auto;width:min(220px,60vw);animation:fadeIn .9s ease .3s both;}
    .hero-divider-line{flex:1;height:1px;background:var(--sand-mid);}
    .hero-divider-icon{font-size:14px;color:var(--ocean);opacity:.65;}
    .hero-dates{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,4.5vw,28px);font-weight:400;color:var(--navy);animation:fadeInUp .9s ease .34s both;}
    .hero-meta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:10px;animation:fadeInUp .9s ease .4s both;}
    .hero-meta-item{font-size:clamp(13px,3.2vw,16px);color:var(--text-mid);font-weight:500;}
    .hero-meta-item span{color:var(--navy);font-weight:600;}
    .hero-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:28px;width:100%;animation:fadeInUp .9s ease .46s both;}
    .btn-primary{background:var(--navy);color:white;border:none;padding:15px 32px;border-radius:50px;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:all var(--t);box-shadow:0 4px 20px rgba(15,45,61,.2);min-height:50px;flex:1;max-width:200px;}
    .btn-primary:hover,.btn-primary:active{background:var(--ocean-xd);transform:translateY(-2px);}
    .btn-outline{background:rgba(255,255,255,.72);color:var(--navy);border:1.5px solid rgba(15,45,61,.18);padding:15px 32px;border-radius:50px;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;transition:all var(--t);backdrop-filter:blur(8px);min-height:50px;flex:1;max-width:200px;}
    .btn-outline:hover,.btn-outline:active{background:white;transform:translateY(-2px);}
    .waves-bottom{position:absolute;bottom:0;left:0;right:0;height:clamp(120px,18vw,180px);}
    .wave-svg{position:absolute;bottom:0;width:100%;height:100%;}

    /* ── COUNTDOWN ── */
    .countdown-bar{background:var(--white);padding:36px 20px;text-align:center;border-bottom:1px solid var(--sand);position:relative;overflow:hidden;}
    .countdown-bar::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,transparent,var(--ocean-l),var(--ocean),var(--ocean-l),transparent);}
    .cd-eyebrow{font-size:10px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--text-lt);margin-bottom:22px;}
    .countdown{display:flex;gap:clamp(10px,4vw,52px);justify-content:center;align-items:flex-end;flex-wrap:nowrap;}
    .cd-item{display:flex;flex-direction:column;align-items:center;gap:6px;}
    .cd-num{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,10vw,72px);font-weight:600;color:var(--navy);line-height:1;min-width:clamp(50px,12vw,70px);text-align:center;}
    .cd-unit{font-size:clamp(8px,1.8vw,9px);letter-spacing:2.5px;text-transform:uppercase;color:var(--text-lt);}
    .cd-sep{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,6vw,44px);color:var(--sand-mid);line-height:1;padding-bottom:20px;}
    .cd-celebration{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,5vw,36px);font-weight:400;color:var(--navy);letter-spacing:1px;padding:8px 0;}
    .countdown-bar.celebrating .cd-eyebrow{color:var(--ocean-d);letter-spacing:4px;}

    /* ── INTRO STRIP ── */
    .intro-strip{background:linear-gradient(135deg,var(--ocean-xd) 0%,var(--navy) 100%);padding:clamp(40px,8vw,60px) 20px;text-align:center;position:relative;overflow:hidden;}
    .intro-strip::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;}
    .intro-strip-inner{max-width:660px;margin:0 auto;}
    .intro-strip-eyebrow{font-size:9px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:14px;}
    .intro-strip-text{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,32px);font-weight:300;color:white;line-height:1.55;}
    .intro-strip-text em{font-style:italic;color:var(--gold-xl);}

    /* ── EVENTS ── */
    .events-section{max-width:900px;margin:0 auto;padding:clamp(48px,8vw,80px) 16px clamp(40px,6vw,60px);}
    .sec-header{text-align:center;margin-bottom:clamp(40px,7vw,64px);}
    .sec-eyebrow{display:inline-block;font-size:10px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--ocean-d);background:var(--ocean-xl);padding:6px 16px;border-radius:20px;margin-bottom:12px;}
    .sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,7vw,58px);font-weight:300;color:var(--navy);line-height:1.08;}
    .sec-title em{font-style:italic;color:var(--ocean-d);}
    .sec-desc{margin:14px auto 0;font-size:clamp(14px,3.5vw,15px);color:var(--text-mid);max-width:520px;line-height:1.8;}

    /* ── DAY CARD ── */
    .day-card{
      background:var(--white);border-radius:var(--r);overflow:hidden;
      box-shadow:var(--sh);border:1px solid rgba(232,222,206,.55);
      margin-bottom:clamp(20px,5vw,32px);
      transition:transform var(--t),box-shadow var(--t);
    }
    .day-card:hover{transform:translateY(-4px);box-shadow:var(--sh-l);}
    .day-card.gala{border-color:var(--gala-border);box-shadow:0 6px 28px rgba(122,56,0,.14);}
    .day-card.gala:hover{box-shadow:0 20px 56px rgba(122,56,0,.22);}

    /* Card header */
    .card-head{padding:clamp(22px,5vw,30px) clamp(20px,5vw,28px) clamp(18px,4vw,22px);position:relative;overflow:hidden;}
    .card-head.dark{background:linear-gradient(140deg,#0f2d3d 0%,#1e5f7a 100%);}
    .card-head.ocean{background:linear-gradient(140deg,#e8f6fb 0%,#cce7f2 60%,#b8ddf0 100%);}
    .card-head.gala-bg{background:linear-gradient(140deg,#3d1a00 0%,#7a3800 100%);}
    /* Saturday special */
    .day-card.special{
      border:2px solid rgba(184,136,44,.45);
      box-shadow:0 6px 28px rgba(15,45,61,.13),0 0 0 1px rgba(184,136,44,.15);
    }
    .day-card.special:hover{
      box-shadow:0 20px 56px rgba(15,45,61,.18),0 0 0 1px rgba(184,136,44,.3);
    }
    .card-head.special-bg{
      background:linear-gradient(140deg,#0a1f2e 0%,#0f2d3d 60%,#1a3d52 100%);
      border-top:3px solid var(--gold-l);
    }
    .card-head.special-bg .card-weekday{color:var(--gold-l);}
    .card-head.special-bg .card-date{color:rgba(255,255,255,.7);}
    .card-head.special-bg .card-title{color:white;}
    .card-head.special-bg .card-chefs{color:var(--gold-xl);}
    .card-head.special-bg .card-price-badge{color:var(--gold-xl);}
    .card-head.special-bg .card-price-sub{color:var(--gold-xl);opacity:.65;}
    .vinevinu-block{
      display:flex;align-items:center;gap:14px;
      background:var(--gold-bg);
      border:1px solid rgba(184,136,44,.35);
      border-radius:var(--r-sm);
      padding:12px 16px;margin-bottom:clamp(14px,3vw,20px);
    }
    .vinevinu-icon{
      width:40px;height:40px;border-radius:50%;
      background:linear-gradient(135deg,var(--gold),var(--gold-l));
      display:flex;align-items:center;justify-content:center;
      font-size:18px;flex-shrink:0;
    }
    .vinevinu-content{}
    .vinevinu-label{
      font-size:8px;font-weight:700;letter-spacing:3px;text-transform:uppercase;
      color:var(--gold);margin-bottom:3px;
    }
    .vinevinu-name{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(18px,4vw,22px);font-weight:600;
      color:var(--gala);letter-spacing:2px;
    }
    .vinevinu-producers{
      display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px;
    }
    .vinevinu-sep{
      color:var(--stone);font-size:14px;
    }
    .vinevinu-desc{
      font-size:11px;color:var(--text-mid);margin-top:2px;
    }
    .special-badge{
      display:inline-flex;align-items:center;gap:6px;
      background:rgba(212,168,74,.18);border:1px solid rgba(212,168,74,.45);
      color:var(--gold-xl);
      padding:5px 12px;border-radius:20px;
      font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;
      margin-top:10px;
    }
    .card-anim.special-anim-block{
      background:linear-gradient(135deg,#0a1f2e 0%,#0f2d3d 100%);
      border-top:1px solid rgba(184,136,44,.3);
    }
    .card-head::after{content:'';position:absolute;bottom:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08);}

    .card-date-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
    .card-weekday{font-size:9px;letter-spacing:3px;text-transform:uppercase;}
    .card-head.dark .card-weekday{color:rgba(255,255,255,.45);}
    .card-head.ocean .card-weekday{color:var(--ocean-d);}
    .card-head.gala-bg .card-weekday{color:rgba(255,220,100,.6);}
    .card-date{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,3.5vw,20px);font-weight:400;}
    .card-head.dark .card-date{color:rgba(255,255,255,.7);}
    .card-head.ocean .card-date{color:var(--navy);}
    .card-head.gala-bg .card-date{color:rgba(255,230,160,.9);}

    .card-title{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,6vw,38px);font-weight:400;line-height:1.15;}
    .card-head.dark .card-title{color:white;}
    .card-head.ocean .card-title{color:var(--navy);}
    .card-head.gala-bg .card-title{color:white;}

    .card-chefs{margin-top:8px;font-family:'Cormorant Garamond',serif;font-size:clamp(14px,3vw,17px);font-style:italic;}
    .card-head.gala-bg .card-chefs{color:var(--gold-xl);}

    .card-price-badge{
      position:absolute;top:clamp(18px,4vw,24px);right:clamp(18px,4vw,24px);
      font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,28px);font-weight:600;
      line-height:1;
    }
    .card-head.dark .card-price-badge{color:white;}
    .card-head.ocean .card-price-badge{color:var(--navy);}
    .card-head.gala-bg .card-price-badge{color:var(--gold-xl);}
    .card-price-sub{font-family:'Raleway',sans-serif;font-size:10px;font-weight:400;display:block;text-align:right;margin-top:2px;opacity:.6;}

    /* Card body */
    .card-body{padding:clamp(16px,4vw,24px) clamp(20px,5vw,28px);}

    .card-menu-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(10px,2vw,16px);margin-bottom:clamp(14px,3vw,20px);}
    @media(max-width:520px){.card-menu-grid{grid-template-columns:1fr;gap:8px;}}
    .menu-course{padding:clamp(10px,2vw,14px);background:var(--linen);border-radius:var(--r-sm);border:1px solid var(--sand);}
    .menu-course.gala-course{background:var(--gala-bg);border-color:rgba(212,168,74,.3);}
    .course-lbl{font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--ocean-d);margin-bottom:5px;}
    .gala-course .course-lbl{color:var(--gala);}
    .course-item{font-size:clamp(12px,2.8vw,13.5px);color:var(--text);line-height:1.6;}
    .course-alt{font-size:11px;color:var(--text-lt);margin-top:3px;font-style:italic;}

    /* Drinks & animation row */
    .card-meta-row{display:flex;gap:clamp(8px,2vw,14px);flex-wrap:wrap;align-items:flex-start;margin-bottom:clamp(14px,3vw,20px);}
    .meta-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.3px;white-space:nowrap;}
    .pill-drinks-inc{background:rgba(26,122,52,.1);color:#1a7a34;border:1px solid rgba(26,122,52,.2);}
    .pill-drinks-ninc{background:var(--cream);color:var(--text-lt);border:1px solid var(--sand);}
    .pill-anim{background:var(--ocean-xl);color:var(--ocean-d);border:1px solid var(--ocean-l);flex:1;min-width:0;white-space:normal;line-height:1.4;}
    .pill-anim.gala-anim{background:var(--gala-bg);color:var(--gala);border-color:rgba(212,168,74,.35);}
    /* ── ANIMATION FOOTER ── */
    .card-anim{
      border-top:1px solid rgba(15,45,61,.08);
      padding:clamp(14px,3vw,18px) clamp(20px,5vw,28px);
      display:flex;align-items:center;gap:14px;
      background:linear-gradient(135deg,#0f2d3d 0%,#1e5f7a 100%);
    }
    .card-anim.gala-anim-block{
      background:linear-gradient(135deg,#3d1a00 0%,#7a3800 100%);
    }
    .card-anim-icon{
      width:38px;height:38px;border-radius:50%;
      background:rgba(255,255,255,.12);
      display:flex;align-items:center;justify-content:center;
      font-size:16px;flex-shrink:0;
    }
    .card-anim-content{flex:1;min-width:0;}
    .card-anim-label{
      font-size:8px;font-weight:700;letter-spacing:3px;text-transform:uppercase;
      color:rgba(255,255,255,.45);margin-bottom:3px;
    }
    .card-anim-text{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(16px,4vw,20px);font-weight:400;
      color:white;line-height:1.4;
    }
    .anim-highlight{
      display:inline-block;
      background:rgba(255,255,255,.2);
      border:1px solid rgba(255,255,255,.35);
      color:white;
      padding:2px 10px;border-radius:20px;
      font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
      vertical-align:middle;margin-right:2px;
    }
    .card-anim-time{
      font-size:clamp(13px,3vw,16px);font-weight:600;letter-spacing:.5px;
      color:rgba(255,255,255,.65);white-space:nowrap;flex-shrink:0;
    }

    /* Sittings */
    .sittings-section{}
    .sittings-label{font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-lt);margin-bottom:8px;}
    .sittings-groups{display:flex;flex-direction:column;gap:8px;}
    .sittings-period{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
    .period-name{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-lt);min-width:52px;}
    .sitting-btn{
      padding:8px 14px;border-radius:20px;font-size:12px;font-weight:600;
      border:1.5px solid var(--ocean-l);background:transparent;color:var(--ocean-d);
      transition:all var(--t);min-height:38px;
    }
    .sitting-btn:hover,.sitting-btn:active{background:var(--ocean-xl);border-color:var(--ocean);}
    .sitting-btn.gala-sitting{border-color:var(--gala-border);color:var(--gala);}
    .sitting-btn.gala-sitting:hover{background:var(--gala-bg);}

    /* Gala star banner */
    .gala-banner{background:linear-gradient(135deg,var(--gala-bg),#fff8ed);border:1px solid var(--gala-border);border-radius:var(--r-sm);padding:14px 18px;margin-bottom:clamp(14px,3vw,20px);display:flex;align-items:flex-start;gap:12px;}
    .gala-banner-icon{font-size:24px;flex-shrink:0;line-height:1;}
    .gala-banner-text{}
    .gala-banner-title{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,3.5vw,19px);font-weight:500;color:var(--gala);margin-bottom:3px;}
    .gala-banner-desc{font-size:12px;color:var(--text-mid);line-height:1.6;}

    /* ── MODALS ── */
    .overlay{position:fixed;inset:0;background:rgba(10,28,40,.62);backdrop-filter:blur(12px);z-index:2000;display:flex;align-items:flex-end;justify-content:center;padding:0;opacity:0;pointer-events:none;transition:opacity .3s;}
    @media(min-width:600px){.overlay{align-items:center;padding:16px;}}
    .overlay.open{opacity:1;pointer-events:all;}
    .modal{background:var(--white);width:100%;max-width:520px;max-height:92svh;overflow-y:auto;border-radius:22px 22px 0 0;box-shadow:0 -10px 60px rgba(10,28,40,.28);transform:translateY(30px);transition:transform .32s cubic-bezier(.34,1.4,.64,1);position:relative;}
    @media(min-width:600px){.modal{border-radius:22px;box-shadow:0 40px 80px rgba(10,28,40,.26);transform:scale(.96) translateY(16px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);}}
    .overlay.open .modal{transform:translateY(0);}
    @media(min-width:600px){.overlay.open .modal{transform:scale(1) translateY(0);}}
    .modal::before{content:'';display:block;width:40px;height:4px;background:var(--sand-mid);border-radius:4px;margin:12px auto 0;}
    @media(min-width:600px){.modal::before{display:none;}}
    .modal::-webkit-scrollbar{width:4px;}
    .modal::-webkit-scrollbar-thumb{background:var(--ocean-l);border-radius:4px;}
    .modal-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:none;font-size:14px;z-index:10;display:flex;align-items:center;justify-content:center;transition:background var(--t);}
    .modal-head.dark .modal-x,.modal-head.gala-h .modal-x{background:rgba(255,255,255,.16);color:white;}
    .modal-head.ocean .modal-x{background:rgba(30,95,122,.14);color:var(--ocean-xd);}
    .modal-head{padding:clamp(22px,5vw,32px) clamp(20px,5vw,32px) clamp(18px,4vw,24px);border-radius:0;position:relative;overflow:hidden;}
    @media(min-width:600px){.modal-head{border-radius:22px 22px 0 0;}}
    .modal-head.dark{background:linear-gradient(140deg,#0f2d3d 0%,#1e5f7a 100%);}
    .modal-head.ocean{background:linear-gradient(140deg,#d4eef9 0%,#a8d8ed 100%);}
    .modal-head.gala-h{background:linear-gradient(140deg,#3d1a00 0%,#7a3800 100%);}
    .modal-head::after{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.07);}
    .modal-eyebrow{font-size:13px;letter-spacing:1px;text-transform:none;margin-bottom:8px;font-weight:600;}
    .modal-head.dark .modal-eyebrow,.modal-head.gala-h .modal-eyebrow{color:rgba(255,255,255,.82);}
    .modal-head.ocean .modal-eyebrow{color:var(--navy);}
    .modal-title{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,7vw,34px);font-weight:400;line-height:1.15;}
    .modal-head.dark .modal-title,.modal-head.gala-h .modal-title{color:white;}
    .modal-head.ocean .modal-title{color:var(--navy);}
    .modal-tagline{font-family:'Raleway',sans-serif;font-size:14px;font-style:normal;font-weight:700;margin-top:6px;}
    .modal-head.dark .modal-tagline,.modal-head.gala-h .modal-tagline{color:white;}
    .modal-head.ocean .modal-tagline{color:var(--navy);}
    .modal-head.gala-h .modal-tagline{color:var(--gold-xl);}
    .modal-body{padding:clamp(20px,5vw,28px) clamp(20px,5vw,32px) clamp(24px,6vw,32px);}

    /* Reservation form */
    .res-summary-box{background:var(--ocean-xl);border-left:3px solid var(--ocean);border-radius:var(--r-sm);padding:12px 16px;margin-bottom:22px;}
    .res-summary-box.gala{background:var(--gala-bg);border-color:var(--gold-l);}
    .res-summary-lbl{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-lt);margin-bottom:4px;}
    .res-summary-val{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,4vw,19px);color:var(--navy);font-weight:500;}
    .f-group{margin-bottom:16px;}
    .f-label{display:block;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-mid);margin-bottom:6px;}
    .f-input{width:100%;padding:13px 14px;border:1.5px solid var(--sand);border-radius:10px;font-family:'Raleway',sans-serif;font-size:16px;color:var(--navy);background:var(--linen);outline:none;transition:border var(--t),box-shadow var(--t);-webkit-appearance:none;}
    .f-input:focus{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(106,173,202,.15);background:white;}
    .f-select{width:100%;padding:13px 36px 13px 14px;border:1.5px solid var(--sand);border-radius:10px;font-family:'Raleway',sans-serif;font-size:16px;color:var(--navy);background:var(--linen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%238aa5b5' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;-webkit-appearance:none;appearance:none;outline:none;cursor:pointer;transition:border var(--t);}
    .f-select:focus{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(106,173,202,.15);}
    .f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
    @media(max-width:400px){.f-row{grid-template-columns:1fr;}}
    .f-textarea{width:100%;padding:13px 14px;border:1.5px solid var(--sand);border-radius:10px;font-family:'Raleway',sans-serif;font-size:16px;color:var(--navy);background:var(--linen);resize:vertical;min-height:80px;outline:none;transition:border var(--t);-webkit-appearance:none;}
    .f-textarea:focus{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(106,173,202,.15);}
    .f-note{text-align:center;font-size:11px;color:var(--text-mid);font-weight:600;margin-top:12px;line-height:1.6;}
    .f-dev{text-align:center;font-size:11px;color:var(--text-mid);margin-top:10px;letter-spacing:.3px;}
    .f-dev a{color:var(--navy);font-weight:600;text-decoration:none;}
    .f-dev a:hover{color:var(--ocean-d);}
    .btn-full{width:100%;padding:16px;background:var(--navy);color:white;border:none;border-radius:12px;font-family:'Raleway',sans-serif;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:all var(--t);box-shadow:0 4px 20px rgba(15,45,61,.2);margin-top:20px;min-height:52px;}
    .btn-full:hover,.btn-full:active{background:var(--ocean-xd);transform:translateY(-2px);}
    .btn-full.gala-btn{background:linear-gradient(135deg,#7a3800,#b85c00);box-shadow:0 4px 20px rgba(122,56,0,.3);}
    .btn-full.gala-btn:hover{background:linear-gradient(135deg,#8f4400,#cc6800);}

    /* Success */
    .success-wrap{text-align:center;padding:clamp(32px,8vw,48px) 20px;}
    .success-icon-wrap{width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--ocean-xl),var(--ocean-l));display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto 20px;}
    .success-title{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,7vw,36px);font-weight:400;color:var(--navy);margin-bottom:12px;}
    .success-text{font-size:14px;color:var(--text-mid);line-height:1.8;max-width:340px;margin:0 auto;}
    .pending-pill{display:inline-flex;align-items:center;gap:8px;background:var(--gold-bg);border:1px solid rgba(184,136,44,.3);color:var(--gold);padding:9px 20px;border-radius:30px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-top:20px;}

    /* ── MANAGER ── */
    #manager-panel{display:none;position:fixed;inset:0;background:var(--linen);z-index:3000;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    .mgr-header{background:var(--navy);padding:clamp(12px,3vw,18px) clamp(16px,4vw,32px);display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:10;flex-wrap:wrap;}
    .mgr-title{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,4vw,22px);font-weight:300;color:white;}
    .mgr-title span{color:var(--gold-xl);font-style:italic;}
    .mgr-close-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:white;padding:9px 18px;border-radius:30px;font-size:12px;font-weight:500;transition:background var(--t);min-height:40px;}
    .mgr-close-btn:hover{background:rgba(255,255,255,.2);}
    .mgr-body{max-width:1040px;margin:0 auto;padding:clamp(20px,5vw,40px) clamp(16px,4vw,24px) clamp(40px,8vw,60px);}
    .mgr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:28px;}
    .stat-tile{background:white;border-radius:var(--r);padding:clamp(16px,4vw,22px) 16px;text-align:center;box-shadow:var(--sh-s);border:1px solid var(--sand);}
    .stat-n{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,8vw,48px);font-weight:600;color:var(--navy);line-height:1;}
    .stat-l{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-lt);margin-top:5px;}
    .res-table{background:white;border-radius:var(--r);box-shadow:var(--sh-s);overflow:hidden;border:1px solid var(--sand);}
    .res-table-head{padding:clamp(14px,3vw,20px) clamp(16px,4vw,26px);border-bottom:1px solid var(--sand);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
    .res-table-title{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,24px);font-weight:400;color:var(--navy);}
    .res-row{padding:clamp(14px,3vw,20px) clamp(16px,4vw,26px);border-bottom:1px solid var(--cream);display:flex;gap:12px;align-items:flex-start;justify-content:space-between;transition:background var(--t);flex-wrap:wrap;}
    .res-row:last-child{border-bottom:none;}
    .res-row:hover{background:#fafaf7;}
    .res-main{flex:1;min-width:0;}
    .res-pill{display:inline-block;background:var(--ocean-xl);color:var(--ocean-d);padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;margin-bottom:5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .res-name{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,4vw,20px);color:var(--navy);margin-bottom:3px;}
    .res-info{font-size:clamp(11px,2.5vw,12.5px);color:var(--text-mid);line-height:1.9;word-break:break-word;}
    .res-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0;}
    .status-badge{padding:4px 11px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;}
    .s-pending{background:rgba(184,136,44,.12);color:#9a6c0a;}
    .s-approved{background:rgba(26,122,52,.12);color:#1a7a34;}
    .s-rejected{background:rgba(192,57,43,.12);color:#c0392b;}
    .action-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
    .btn-approve{padding:7px 12px;background:#1a7a34;color:white;border:none;border-radius:20px;font-size:11px;font-weight:600;transition:background var(--t);min-height:34px;}
    .btn-approve:hover{background:#1f9040;}
    .btn-reject{padding:7px 12px;background:#c0392b;color:white;border:none;border-radius:20px;font-size:11px;font-weight:600;transition:background var(--t);min-height:34px;}
    .btn-reject:hover{background:#a93226;}
    .btn-del{padding:5px 10px;background:transparent;border:1px solid #e0a0a0;color:#c0392b;border-radius:20px;font-size:10px;font-weight:600;transition:all var(--t);min-height:30px;}
    .btn-del:hover{background:#fff0f0;border-color:#c0392b;}
    #del-overlay{z-index:3500;}
    .del-modal{max-width:420px;border-radius:22px;padding:36px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;}
    .del-modal-icon{width:52px;height:52px;border-radius:50%;background:#fff0f0;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
    .del-modal-icon svg{width:26px;height:26px;color:#c0392b;}
    .del-modal-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;color:var(--navy);}
    .del-modal-msg{font-size:14px;color:var(--text-mid);line-height:1.7;max-width:340px;}
    .del-modal-actions{display:flex;gap:10px;justify-content:center;width:100%;margin-top:4px;}
    .del-modal-btn-cancel{flex:1;padding:12px;border-radius:10px;border:1.5px solid var(--sand);background:white;color:var(--text);font-family:'Raleway',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--t);}
    .del-modal-btn-cancel:hover{background:var(--linen);}
    .del-modal-btn-confirm{flex:1;padding:12px;border-radius:10px;border:none;background:#c0392b;color:white;font-family:'Raleway',sans-serif;font-size:13px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background var(--t);}
    .del-modal-btn-confirm:hover{background:#a93226;}
    .btn-del:hover{border-color:#c0392b;color:#c0392b;}
    .btn-export{padding:9px 16px;border:1.5px solid var(--ocean-l);background:transparent;border-radius:30px;font-size:11px;font-weight:600;color:var(--ocean-d);transition:all var(--t);min-height:40px;}
    .btn-export:hover{background:var(--ocean-xl);}
    .empty-msg{padding:clamp(40px,10vw,64px) 20px;text-align:center;color:var(--text-lt);font-size:14px;line-height:1.7;}

    /* ── LOGIN ── */
    #manager-login{position:fixed;inset:0;background:linear-gradient(160deg,#061218,#0f2d3d);z-index:4000;display:none;align-items:center;justify-content:center;padding:20px;}
    .login-card{background:white;border-radius:22px;padding:clamp(32px,8vw,52px) clamp(24px,6vw,44px);max-width:380px;width:100%;text-align:center;box-shadow:0 40px 80px rgba(0,0,0,.4);}
    .login-logo{font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--text-lt);margin-bottom:8px;}
    .login-title{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,7vw,32px);font-weight:400;color:var(--navy);margin-bottom:24px;}
    .login-err{color:#c0392b;font-size:12px;margin-top:8px;display:none;}
    .login-cancel{background:none;border:none;font-size:12px;color:var(--text-lt);cursor:pointer;margin-top:14px;transition:color var(--t);min-height:40px;}
    .login-cancel:hover{color:var(--text-mid);}

    /* ── FOOTER ── */
    footer{background:var(--navy);}
    .footer-top{background:linear-gradient(135deg,#0f2d3d,#1a4a5e);padding:clamp(40px,8vw,60px) 20px clamp(36px,7vw,52px);text-align:center;position:relative;overflow:hidden;}
    .footer-top::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:26px 26px;}
    .footer-slogan{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,36px);font-weight:300;font-style:italic;color:rgba(255,255,255,.55);margin-bottom:20px;line-height:1.3;}
    .footer-slogan em{font-style:normal;color:var(--gold-xl);}
    .logo-footer{height:clamp(56px,14vw,76px);width:auto;margin:0 auto 16px;opacity:.85;}
    .footer-sub{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.28);}
    .footer-bottom{background:rgba(0,0,0,.22);padding:clamp(16px,4vw,22px) 20px;text-align:center;border-top:1px solid rgba(255,255,255,.07);padding-bottom:calc(clamp(16px,4vw,22px) + var(--safe-bot));}
    .footer-info{font-size:clamp(11px,2.5vw,12px);color:rgba(255,255,255,.52);line-height:2.2;}
    .footer-info strong{color:rgba(255,255,255,.52);}
    .footer-mgr-btn{background:none;border:none;color:rgba(255,255,255,.1);font-size:11px;cursor:pointer;transition:color var(--t);letter-spacing:1px;margin-top:14px;min-height:36px;padding:4px 8px;}
    .footer-mgr-btn:hover{color:rgba(255,255,255,.3);}
    .footer-dev{font-size:11px;color:rgba(255,255,255,.55);margin-top:12px;letter-spacing:.3px;}
    .footer-dev a{color:var(--gold-l);text-decoration:none;transition:color var(--t);}
    .footer-dev a:hover{color:var(--gold-xl);}



    /* ── ANNIVERSARY MESSAGE ───────────────────────────────── */
    .anniversary-msg{
      max-width:760px;margin:clamp(44px,8vw,68px) auto 0;
      padding:clamp(28px,5vw,44px) clamp(24px,5vw,48px);
      background:rgba(255,255,255,.04);
      border:1px solid rgba(184,136,44,.22);
      border-radius:var(--r);
      text-align:center;
      position:relative;
    }
    .anniversary-msg::before{
      content:'"';
      font-family:'Cormorant Garamond',serif;
      font-size:120px;font-weight:300;
      color:rgba(184,136,44,.18);
      line-height:1;
      position:absolute;
      top:-20px;left:clamp(12px,3vw,24px);
    }
    .anniversary-msg-years{
      display:inline-flex;align-items:center;gap:10px;
      background:rgba(184,136,44,.15);
      border:1px solid rgba(184,136,44,.3);
      color:var(--gold-xl);
      padding:6px 18px;border-radius:20px;
      font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;
      margin-bottom:22px;
    }
    .anniversary-msg-text{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(17px,3.8vw,23px);font-weight:300;
      color:rgba(255,255,255,.82);
      line-height:1.75;
    }
    .anniversary-msg-text strong{
      color:white;font-weight:500;
    }
    .anniversary-msg-text em{
      font-style:italic;color:var(--gold-xl);
    }
    .anniversary-msg-sig{
      margin-top:22px;padding-top:18px;
      border-top:1px solid rgba(184,136,44,.18);
      font-size:10px;letter-spacing:3px;text-transform:uppercase;
      color:rgba(255,255,255,.3);
    }
    /* ── MEMORIES SECTION ─────────────────────────────────── */
    .memories-section{
      position:relative;
      background:linear-gradient(180deg, #1a1208 0%, #2a1e0e 50%, #1a1208 100%);
      padding:clamp(60px,10vw,100px) 20px;
      overflow:hidden;
    }
    .memories-section::before{
      content:'';position:absolute;inset:0;pointer-events:none;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
      opacity:.8;
    }
    /* decorative lines */
    .memories-section::after{
      content:'';position:absolute;top:0;left:0;right:0;height:2px;
      background:linear-gradient(to right,transparent,var(--gold),transparent);
    }

    .memories-inner{
      max-width:960px;margin:0 auto;position:relative;z-index:1;
    }

    .memories-header{text-align:center;margin-bottom:clamp(36px,7vw,60px);}

    .memories-eyebrow{
      font-size:9px;font-weight:700;letter-spacing:4px;text-transform:uppercase;
      color:var(--gold-l);opacity:.7;margin-bottom:14px;
    }
    .memories-title{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(34px,7vw,58px);font-weight:300;
      color:white;line-height:1.1;
    }
    .memories-title em{font-style:italic;color:var(--gold-xl);}
    .memories-subtitle{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(16px,3.5vw,22px);font-weight:300;font-style:italic;
      color:rgba(255,255,255,.45);margin-top:12px;
    }
    .memories-divider{
      display:flex;align-items:center;gap:14px;
      width:min(240px,60vw);margin:20px auto 0;
    }
    .memories-divider-line{flex:1;height:1px;background:rgba(184,136,44,.3);}
    .memories-divider-dot{
      width:5px;height:5px;border-radius:50%;
      background:var(--gold);opacity:.6;
    }

    /* Photos grid */
    .memories-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:clamp(20px,4vw,40px);
      align-items:start;
    }
    @media(max-width:560px){
      .memories-grid{grid-template-columns:1fr;gap:28px;}
    }

    .memory-card{
      position:relative;
    }
    .memory-card:nth-child(1){transform:rotate(-1.5deg);}
    .memory-card:nth-child(2){transform:rotate(1.2deg);margin-top:clamp(16px,4vw,32px);}

    .memory-photo-wrap{
      background:#f5f0e8;
      padding:clamp(8px,2vw,14px) clamp(8px,2vw,14px) clamp(28px,6vw,48px);
      box-shadow:
        0 4px 8px rgba(0,0,0,.4),
        0 12px 32px rgba(0,0,0,.5),
        0 2px 0 rgba(255,255,255,.08) inset;
      border-radius:2px;
    }

    .memory-photo{
      width:100%;height:auto;display:block;
      filter:sepia(.25) contrast(1.05) brightness(1.02) saturate(0.9);
      border-radius:1px;
    }

    .memory-caption{
      position:absolute;
      bottom:clamp(6px,1.5vw,12px);
      left:0;right:0;
      text-align:center;
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(11px,2.5vw,14px);font-style:italic;font-weight:400;
      color:#8a7055;
      letter-spacing:.5px;
    }

    /* Year badge */
    .memory-year{
      position:absolute;
      top:-12px;right:-10px;
      background:var(--gold);
      color:var(--navy);
      font-size:10px;font-weight:700;letter-spacing:1.5px;
      padding:5px 11px;border-radius:20px;
      box-shadow:0 2px 8px rgba(0,0,0,.3);
      z-index:2;
    }

    /* Bottom quote */
    .memories-quote{
      text-align:center;
      margin-top:clamp(44px,8vw,68px);
      padding-top:clamp(32px,6vw,50px);
      border-top:1px solid rgba(184,136,44,.2);
    }
    .memories-quote-text{
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(20px,4.5vw,30px);font-weight:300;font-style:italic;
      color:rgba(255,255,255,.7);line-height:1.6;
      max-width:600px;margin:0 auto;
    }
    .memories-quote-text em{font-style:normal;color:var(--gold-xl);}
    .memories-quote-author{
      font-size:11px;letter-spacing:2.5px;text-transform:uppercase;
      color:rgba(255,255,255,.3);margin-top:14px;
    }


    /* ── HERO FROST OVERLAY ─────────────────────────────────── */
    .hero-frost{
      position:absolute;inset:0;z-index:3;pointer-events:none;
      backdrop-filter:blur(20px) saturate(0.6) hue-rotate(180deg);
      -webkit-backdrop-filter:blur(20px) saturate(0.6) hue-rotate(180deg);
      background:linear-gradient(
        180deg,
        rgba(206,234,247,0.72) 0%,
        rgba(220,240,250,0.65) 35%,
        rgba(232,222,206,0.60) 75%,
        rgba(220,210,192,0.65) 100%
      );
    }
    /* ── HERO PHOTO BACKGROUND ─────────────────────────────── */
    .hero-photo-bg{
      position:absolute;inset:0;z-index:0;overflow:hidden;
      pointer-events:none;
    }
    .hero-photo{
      position:absolute;
      inset:-12%;
      width:124%;height:124%;
      background-size:cover;
      background-position:center;
      opacity:.35;
      filter:sepia(.15) contrast(1.02) brightness(1.0) saturate(.6) grayscale(.3);
      will-change:transform,opacity;
    }
    .hero-photo-1{
      background-image:url('../images/hero-photo-1.jpg');
      animation:kb1 22s ease-in-out infinite;
      z-index:1;
    }
    .hero-photo-2{
      background-image:url('../images/hero-photo-2.jpg');
      animation:kb2 22s ease-in-out infinite;
      z-index:2;
    }
    @keyframes kb1{
      0%  {transform:scale(1.0) translate(0%,0%);   opacity:1;}
      42% {transform:scale(1.09) translate(-2%,-1%);opacity:1;}
      48% {transform:scale(1.1) translate(-3%,-1.5%);opacity:0;}
      94% {transform:scale(1.0) translate(0%,0%);   opacity:0;}
      100%{transform:scale(1.0) translate(0%,0%);   opacity:1;}
    }
    @keyframes kb2{
      0%  {opacity:0;transform:scale(1.06) translate(1.5%,0%);}
      46% {opacity:0;transform:scale(1.06) translate(1.5%,0%);}
      52% {opacity:1;transform:scale(1.06) translate(1.5%,0%);}
      92% {opacity:1;transform:scale(1.14) translate(-1.5%,-1%);}
      98% {opacity:0;transform:scale(1.15) translate(-2%,-1.5%);}
      100%{opacity:0;transform:scale(1.06) translate(1.5%,0%);}
    }
    /* ensure content stays above photo bg */
    .hero-orb{z-index:1!important;}
    .waves-bottom{z-index:3!important;}
    .lang-toggle{z-index:900!important;}
    .logo-hero,.hero-anno,.hero-50,.hero-slogan,.hero-divider,.hero-dates,.hero-meta,.hero-cta{
      position:relative;z-index:5;
    }
    @keyframes fadeInDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
    @keyframes fadeInUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
    @keyframes fadeIn{from{opacity:0}to{opacity:1}}

    @media(max-width:520px){.login-card{padding:36px 24px;}.modal-body{padding:22px 22px 28px;}.modal-head{padding:24px 20px 20px;}}

/* ── FAN CARDS ── */
.fan-section{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:60px 20px 80px;background:radial-gradient(ellipse 80% 40% at 50% 0%,#d4eef9 0%,transparent 60%),linear-gradient(180deg,#effaff 0%,#f8f5ef 100%);}
.fan-header{text-align:center;margin-bottom:clamp(40px,6vw,60px);}
.fan-eyebrow{display:inline-block;font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--ocean-d);background:var(--ocean-xl);padding:6px 16px;border-radius:20px;margin-bottom:12px;}
.fan-title{font-family:'Cormorant Garamond',serif;font-size:clamp(34px,6vw,54px);font-weight:300;color:var(--navy);line-height:1.1;}
.fan-title em{font-style:italic;color:var(--ocean-d);}
.fan-hint{margin-top:10px;font-size:12px;color:var(--text-lt);letter-spacing:.5px;}
.fan-deck-wrap{position:relative;width:100%;max-width:860px;display:flex;flex-direction:column;align-items:center;}
.fan-deck{position:relative;width:clamp(260px,70vw,360px);height:clamp(520px,95vw,620px);margin-bottom:28px;}
.fan-card{position:absolute;width:clamp(230px,58vw,310px);height:clamp(480px,88vw,560px);border-radius:22px;left:50%;top:50%;transform-origin:center bottom;transform:translateX(-50%) translateY(-50%);transition:transform .5s cubic-bezier(.34,1.15,.64,1),opacity .4s,z-index 0s;cursor:pointer;overflow:hidden;box-shadow:0 10px 36px rgba(15,45,61,.2);will-change:transform;display:flex;flex-direction:column;}
.fc-head{flex:0 0 40%;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(12px,2.5vw,18px);position:relative;overflow:hidden;}
.fc-head.dark{background:linear-gradient(160deg,#0f2d3d 0%,#1e5f7a 100%);}
.fc-head.ocean{background:linear-gradient(160deg,#cce7f2 0%,#a8d8ed 100%);}
.fc-head.special{background:linear-gradient(160deg,#0a1f2e 0%,#1a3d52 100%);border-top:3px solid var(--gold-l);}
.fc-head::before{content:'';position:absolute;top:-30%;right:-15%;width:80%;height:80%;border-radius:50%;background:rgba(255,255,255,.06);}
.fc-day-num{font-family:'Cormorant Garamond',serif;font-size:clamp(52px,13vw,76px);font-weight:300;line-height:1;letter-spacing:-2px;margin-bottom:2px;}
.fc-head.dark .fc-day-num,.fc-head.special .fc-day-num{color:rgba(255,255,255,.9);}
.fc-head.ocean .fc-day-num{color:var(--navy);}
.fc-head.special .fc-day-num{color:var(--gold-xl);}
.fc-weekday{font-family:'Raleway',sans-serif;font-size:clamp(12px,2.8vw,15px);font-weight:600;letter-spacing:3px;text-transform:uppercase;margin-bottom:1px;}
.fc-head.dark .fc-weekday,.fc-head.special .fc-weekday{color:rgba(255,255,255,.55);}
.fc-head.ocean .fc-weekday{color:var(--ocean-d);}
.fc-month{font-family:'Cormorant Garamond',serif;font-size:clamp(15px,3.5vw,19px);font-weight:300;font-style:italic;}
.fc-head.dark .fc-month,.fc-head.special .fc-month{color:rgba(255,255,255,.5);}
.fc-head.ocean .fc-month{color:var(--navy);opacity:.6;}
.fc-price-badge{position:absolute;top:16px;right:16px;font-family:'Cormorant Garamond',serif;font-size:clamp(22px,5.5vw,32px);font-weight:600;line-height:1;text-align:right;}
.fc-head.dark .fc-price-badge,.fc-head.special .fc-price-badge{color:rgba(255,255,255,.8);}
.fc-head.special .fc-price-badge{color:var(--gold-xl);}
.fc-head.ocean .fc-price-badge{color:var(--navy);}
.fc-price-pp{font-family:'Raleway',sans-serif;font-size:10px;font-weight:500;display:block;opacity:.55;text-align:right;}
.fc-special-badge{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:4px;background:rgba(212,168,74,.22);border:1px solid rgba(212,168,74,.45);color:var(--gold-xl);padding:3px 9px;border-radius:20px;font-size:8px;font-weight:700;letter-spacing:2px;text-transform:uppercase;}
.fc-body{flex:1;background:white;display:flex;flex-direction:column;padding:clamp(10px,2.5vw,14px) clamp(12px,3vw,16px) clamp(10px,2vw,12px);gap:6px;position:relative;}
.fc-body::before{content:'';position:absolute;top:0;left:16px;right:16px;height:1px;background:linear-gradient(to right,transparent,var(--sand-mid),transparent);}
.fc-theme{font-family:'Cormorant Garamond',serif;font-size:clamp(14px,3.8vw,18px);font-weight:500;color:var(--navy);line-height:1.2;margin-bottom:0;}
.fc-menu-items{display:flex;flex-direction:column;gap:4px;flex:1;justify-content:space-evenly;}
.fc-menu-item{display:flex;align-items:flex-start;gap:6px;font-size:clamp(9px,2.2vw,10.5px);color:var(--text-mid);line-height:1.35;min-width:0;}
.fc-menu-item span{flex:1;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.fc-menu-dot{width:4px;height:4px;border-radius:50%;background:var(--ocean);flex-shrink:0;margin-top:4px;}
.fc-body-sep{height:1px;background:var(--sand);flex-shrink:0;}
.fc-card-anim{background:linear-gradient(135deg,#0f2d3d,#1e5f7a);border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0;}
.fc-card-anim-icon{font-size:13px;line-height:1;color:white;}
.fc-card-anim-text{font-family:'Cormorant Garamond',serif;font-size:clamp(11px,2.8vw,13px);color:white;flex:1;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fc-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-shrink:0;}
.fc-drinks-mini{font-size:10px;font-weight:600;display:flex;align-items:center;gap:4px;}
.fc-drinks-mini.inc{color:#1a7a34;}
.fc-drinks-mini.ninc{color:var(--text-lt);}
.fc-past-lbl{font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-lt);flex-shrink:0;}
.fc-reserve-btn{background:var(--navy);color:white;border:none;padding:7px 14px;border-radius:20px;font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0;}
.fc-reserve-btn:hover{background:var(--ocean-d);}
.fc-reserve-btn.sp{background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--navy);}
.fan-nav{display:flex;gap:10px;justify-content:center;margin-top:8px;}
.fan-nav-dot{width:8px;height:8px;border-radius:50%;background:var(--sand-mid);cursor:pointer;transition:all .3s;border:none;padding:0;}
.fan-nav-dot.active{background:var(--ocean-d);transform:scale(1.35);}
.fan-nav-dot.special{background:var(--gold);}
.fan-nav-dot.special.active{background:var(--gold);transform:scale(1.35);}
.fan-arrows{display:flex;gap:12px;justify-content:center;margin-top:14px;}
.fan-arrow-btn{width:44px;height:44px;border-radius:50%;background:white;border:1.5px solid var(--sand);color:var(--navy);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px rgba(15,45,61,.08);}
.fan-arrow-btn:hover{background:var(--ocean-xl);border-color:var(--ocean);}
.fan-arrow-btn:disabled{opacity:.28;cursor:not-allowed;}
.fan-detail{width:100%;max-width:520px;background:white;border-radius:20px;box-shadow:0 8px 32px rgba(15,45,61,.12);border:1px solid rgba(232,222,206,.5);overflow:hidden;margin-top:20px;opacity:0;transform:translateY(16px);transition:all .4s cubic-bezier(.34,1.2,.64,1);pointer-events:none;}
.fan-detail.show{opacity:1;transform:translateY(0);pointer-events:all;}
.fd-head{padding:24px 26px 20px;position:relative;overflow:hidden;}
.fd-head.dark{background:linear-gradient(140deg,#0f2d3d,#1e5f7a);}
.fd-head.ocean{background:linear-gradient(140deg,#d4eef9,#a8d8ed);}
.fd-head.special{background:linear-gradient(140deg,#0a1f2e,#1a3d52);border-top:3px solid var(--gold-l);}
.fd-head::after{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.07);}
.fd-date-row{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;}
.fd-day-big{font-family:'Cormorant Garamond',serif;font-size:clamp(44px,9vw,64px);font-weight:300;line-height:1;letter-spacing:-2px;}
.fd-head.dark .fd-day-big,.fd-head.special .fd-day-big{color:white;}
.fd-head.ocean .fd-day-big{color:var(--navy);}
.fd-head.special .fd-day-big{color:var(--gold-xl);}
.fd-date-info{display:flex;flex-direction:column;gap:1px;}
.fd-weekday{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;}
.fd-head.dark .fd-weekday,.fd-head.special .fd-weekday{color:rgba(255,255,255,.5);}
.fd-head.ocean .fd-weekday{color:var(--ocean-d);}
.fd-month{font-family:'Cormorant Garamond',serif;font-size:15px;font-style:italic;}
.fd-head.dark .fd-month,.fd-head.special .fd-month{color:rgba(255,255,255,.45);}
.fd-head.ocean .fd-month{color:var(--navy);opacity:.6;}
.fd-theme{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,5vw,30px);font-weight:400;line-height:1.2;}
.fd-head.dark .fd-theme,.fd-head.special .fd-theme{color:white;}
.fd-head.ocean .fd-theme{color:var(--navy);}
.fd-price-badge{position:absolute;top:20px;right:22px;font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;line-height:1;text-align:right;}
.fd-head.dark .fd-price-badge,.fd-head.special .fd-price-badge{color:white;}
.fd-head.ocean .fd-price-badge{color:var(--navy);}
.fd-head.special .fd-price-badge{color:var(--gold-xl);}
.fd-pp{font-family:'Raleway',sans-serif;font-size:9px;opacity:.5;display:block;text-align:right;}
.fd-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px;}
.fd-courses{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
@media(max-width:440px){.fd-courses{grid-template-columns:1fr;}}
.fd-course{background:var(--linen);border-radius:10px;padding:12px;border:1px solid var(--sand);}
.fd-lbl{font-size:8px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--ocean-d);margin-bottom:5px;}
.fd-val{font-size:12px;color:var(--text);line-height:1.5;}
.fd-chef{margin-top:7px;padding-top:7px;border-top:1px solid var(--sand);font-family:'Cormorant Garamond',serif;font-size:13px;font-style:italic;font-weight:500;color:var(--navy);line-height:1.4;}
.fd-drinks{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;}
.fd-drinks.inc{background:rgba(26,122,52,.1);color:#1a7a34;border:1px solid rgba(26,122,52,.2);}
.fd-drinks.ninc{background:var(--cream);color:var(--text-lt);border:1px solid var(--sand);}
.fd-anim{background:linear-gradient(135deg,#0f2d3d,#1e5f7a);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:12px;}
.fd-anim-icon{font-size:22px;filter:brightness(0) invert(1);line-height:1;}
.fd-anim-text{font-family:'Cormorant Garamond',serif;font-size:15px;color:white;flex:1;line-height:1.3;}
.fd-anim-time{font-size:15px;font-weight:600;color:rgba(255,255,255,.85);white-space:nowrap;letter-spacing:.5px;}
.anim-hl{display:inline-block;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);padding:1px 8px;border-radius:12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-right:5px;vertical-align:middle;}
.fd-past-msg{font-family:'Raleway',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45);text-align:center;padding:4px 0;}
.fd-sittings-wrap{background:var(--navy);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;}
.fd-sittings-lbl{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:400;font-style:italic;color:white;letter-spacing:.5px;}
.fd-sittings-sub{font-size:10px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:-8px;}
.fd-sittings{display:flex;gap:8px;flex-wrap:wrap;}
.fd-sit-btn{padding:11px 20px;min-height:44px;border-radius:24px;font-size:13px;font-weight:700;border:1.5px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:white;cursor:pointer;transition:all .25s;font-family:'Raleway',sans-serif;letter-spacing:.5px;touch-action:manipulation;}
.fd-sit-btn:hover{background:var(--ocean);border-color:var(--ocean);}
.fd-sit-btn.sp{border-color:var(--gold-l);color:var(--gold-xl);background:rgba(212,168,74,.15);}
.fd-sit-btn.sp:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.fd-sit-btn.fd-sit-unavail{opacity:.45;cursor:not-allowed;border-style:dashed;pointer-events:none;font-size:11px;letter-spacing:1px;text-transform:uppercase;}

/* ── PROMO POSTER SECTION ─────────────────────────────── */
.promo-poster{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:80px 20px 60px;}
.promo-photo-bg{position:absolute;inset:0;background-image:url('../images/caneiros-bg.jpg');background-size:cover;background-position:center 25%;z-index:0;}
.promo-frost{position:absolute;inset:0;z-index:1;backdrop-filter:blur(3px) saturate(1.05);-webkit-backdrop-filter:blur(3px) saturate(1.05);background:linear-gradient(180deg,rgba(255,252,248,.50) 0%,rgba(235,247,254,.38) 40%,rgba(228,242,252,.42) 70%,rgba(245,240,230,.52) 100%);}
.promo-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:500px;width:100%;}
.promo-logo{height:72px;width:auto;margin-bottom:16px;filter:brightness(0) drop-shadow(0 2px 10px rgba(255,255,255,.5));animation:fadeInDown .8s ease both;}
.promo-eyebrow{font-family:'Raleway',sans-serif;font-size:10px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--navy);opacity:.7;margin-bottom:3px;animation:fadeInDown .8s ease .05s both;}
.promo-month{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,30px);font-weight:600;letter-spacing:5px;text-transform:uppercase;color:var(--gold);text-shadow:0 2px 14px rgba(184,136,44,.35);margin-bottom:4px;animation:fadeInDown .8s ease .1s both;}
.promo-num-wrap{display:inline-flex;align-items:flex-end;line-height:1;margin:2px 0 6px;animation:fadeInUp .9s ease .15s both;}
.promo-50{font-family:'Cormorant Garamond',serif;font-size:clamp(120px,28vw,200px);font-weight:700;color:var(--navy);-webkit-text-stroke:1.5px var(--gold);text-shadow:3px 5px 0 rgba(184,136,44,.25),7px 10px 22px rgba(15,45,61,.2),0 0 60px rgba(255,255,255,.15);line-height:.85;letter-spacing:-6px;user-select:none;}
.promo-anos{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,12vw,84px);font-weight:300;font-style:italic;color:var(--gold);text-shadow:0 3px 18px rgba(184,136,44,.45);margin-left:-12px;margin-bottom:10px;line-height:1;letter-spacing:-1px;}
.promo-slogan{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,4.2vw,24px);font-weight:300;font-style:italic;color:var(--navy);opacity:.88;margin:2px 0 0;letter-spacing:.3px;animation:fadeInUp .9s ease .2s both;}
.promo-slogan em{font-style:normal;color:var(--gold);font-weight:600;}
.promo-wave-deco{font-size:17px;color:var(--gold);letter-spacing:5px;margin:10px 0;opacity:.65;animation:fadeIn 1s ease .25s both;}
.promo-date{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,4vw,23px);font-weight:500;color:var(--navy);margin:0 0 14px;letter-spacing:.5px;animation:fadeInUp .9s ease .28s both;}
.promo-feats{display:flex;align-items:center;margin-bottom:24px;animation:fadeInUp .9s ease .32s both;}
.promo-feat-item{display:flex;flex-direction:column;align-items:center;gap:5px;padding:0 20px;}
.promo-feat-icon{font-size:21px;line-height:1;}
.promo-feat-label{font-family:'Raleway',sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--navy);opacity:.7;line-height:1.55;text-align:center;}
.promo-feat-sep{width:1px;height:34px;background:linear-gradient(to bottom,transparent,var(--gold),transparent);opacity:.45;}
.promo-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;animation:fadeInUp .9s ease .36s both;}
.promo-btn{background:var(--navy);color:var(--gold-xl);border:1.5px solid var(--gold);padding:15px 36px;border-radius:50px;font-family:'Raleway',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all .3s;box-shadow:0 4px 24px rgba(15,45,61,.28);min-height:50px;}
.promo-btn:hover,.promo-btn:active{background:var(--ocean-xd);transform:translateY(-2px);box-shadow:0 8px 32px rgba(15,45,61,.35),0 0 0 3px rgba(184,136,44,.2);}
.promo-btn-outline{background:rgba(255,255,255,.55);color:var(--navy);border:1.5px solid rgba(15,45,61,.25);padding:15px 36px;border-radius:50px;font-family:'Raleway',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all .3s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-height:50px;}
.promo-btn-outline:hover,.promo-btn-outline:active{background:white;transform:translateY(-2px);}
@media(max-width:480px){.promo-inner{max-width:100%;}.promo-feat-item{padding:0 14px;}.promo-cta{gap:10px;}.promo-btn,.promo-btn-outline{padding:14px 28px;font-size:10px;}}
.fd-special-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(212,168,74,.18);border:1px solid rgba(212,168,74,.4);color:var(--gold-xl);padding:4px 11px;border-radius:20px;font-size:8px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-top:6px;}
