  :root{
    /* ---------- LIGHT THEME (mặc định) — nền sáng, cyan làm điểm nhấn ---------- */
    --pearl:#F3FAFB;
    --bg-soft:#E7F3F5;
    --panel:#FFFFFF;
    --blue-dusty:#CFEAEC;
    --blue-mid:#3E8189;
    --blue-slate:#2E6169;
    --navy:#0E2A2E;
    --cyan-mid:#2E7B82;
    --cyan-bright:#1E9E93;
    --cyan-bright-rgb: 30,158,147;
    --cyan-mid-rgb: 46,123,130;
    --gold:#1E9E93;
    --gold-rgb: 30,158,147;
    --on-gold: #fff;
    --gold-soft:#7FD9D2;
    --text:#12303A;
    --text-muted:#5C7F87;
    --line: rgba(20,60,66,.14);
    --ok:#2F8F63;
    --err:#C0453A;
    --shadow: 0 20px 60px -25px rgba(20,60,66,.28);
    --hero-glow:#DFF4F5;
    --hero-frame-border: rgba(20,60,66,.14);
    --nav-bg: rgba(243,250,251,0.55);
    --nav-bg-scrolled: rgba(243,250,251,0.78);
    --map-filter: none;
    --ease: cubic-bezier(.22,1,.36,1);
    --gap-lg:130px;
    --gap-md:88px;
    --gap-sm:48px;
    /* ---------- GLASSMORPHISM ---------- */
    --glass-bg: rgba(255,255,255,0.78);
    --glass-bg-soft: rgba(255,255,255,0.6);
    --glass-border: rgba(20,60,66,0.2);
    --glass-blur: blur(18px) saturate(160%);
    --glass-shadow: 0 20px 50px -20px rgba(20,60,66,.28);
    --scrollbar-thumb: rgba(46,123,130,.3);
  }

  html[data-theme="dark"]{
    /* ---------- DARK THEME — cyan matte, đã giảm bớt độ tối so với bản trước ---------- */
    --pearl:#0A1B1F;
    --bg-soft:#112B31;
    --panel:#153A41;
    --blue-dusty:#234B52;
    --blue-mid:#5B9BA1;
    --blue-slate:#8FCBD1;
    --navy:#081619;
    --cyan-mid:#2A6B72;
    --cyan-mid-rgb: 42,107,114;
    --cyan-bright:#4FBDB5;
    --cyan-bright-rgb: 79,189,181;
    --gold:#FFFFFF;
    --gold-rgb: 255,255,255;
    --on-gold: #12303A;
    --gold-soft:#F2F2F2;
    --text:#EFF8F9;
    --text-muted:#A9CDD1;
    --line: rgba(175,210,214,.22);
    --ok:#5FD9A0;
    --err:#FF8A7C;
    --shadow: 0 24px 70px -30px rgba(0,0,0,.6), 0 0 46px -18px rgba(79,189,181,.25);
    --hero-glow:#163C43;
    --hero-frame-border: rgba(175,210,214,.18);
    --nav-bg: rgba(10,27,31,0.45);
    --nav-bg-scrolled: rgba(10,27,31,0.7);
    --map-filter: grayscale(.3) invert(.9) contrast(.9);
    /* ---------- GLASSMORPHISM (dark) ---------- */
    --glass-bg: rgba(21,58,65,0.55);
    --glass-bg-soft: rgba(21,58,65,0.4);
    --glass-border: rgba(255,255,255,0.16);
    --glass-blur: blur(18px) saturate(160%);
    --glass-shadow: 0 24px 60px -24px rgba(0,0,0,.55);
    --scrollbar-thumb: rgba(79,189,181,.35);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; background:var(--pearl);}
  body{
    font-family:'Jost','Segoe UI','Noto Sans',Arial,sans-serif;
    background:var(--pearl);
    color:var(--text);
    font-weight:400;
    letter-spacing:.01em;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
    transition: background .35s var(--ease), color .35s var(--ease);
    position:relative;
    animation: pageFadeIn .5s var(--ease);
  }
  /* Hiệu ứng mờ dần khi vừa mở/chuyển sang trang mới — chạy 1 lần lúc tải trang.
     Chỉ dùng opacity (không dùng transform) để không ảnh hưởng các phần tử
     position:fixed như thanh nav, nút nổi góc phải/trái. */
  @keyframes pageFadeIn{
    from{ opacity:0; }
    to{ opacity:1; }
  }
  @media (prefers-reduced-motion: reduce){
    body{ animation:none; }
  }

  /* ---------- NỀN GRADIENT ĐỘNG (cho hiệu ứng kính mờ nổi rõ) ----------
     Chỉ dùng transform để chạy hoạt ảnh — mượt, không tốn hiệu năng.
     3 khối màu đứng yên hoàn toàn khi không cuộn — chỉ trôi nhẹ theo hướng
     cuộn trang (parallax), mỗi khối trôi 1 tốc độ khác nhau tạo chiều sâu.
     Tắt hẳn khi người dùng bật "giảm chuyển động". */
  .bg-orbs{ position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
  .bg-orbs span{
    position:absolute; border-radius:50%; filter:blur(90px); opacity:.28;
    will-change: transform; transition: transform .1s linear;
  }
  .bg-orbs span:nth-child(1){
    width:46vw; height:46vw; max-width:560px; max-height:560px;
    background:var(--cyan-bright); top:-12%; left:-10%;
  }
  .bg-orbs span:nth-child(2){
    width:40vw; height:40vw; max-width:480px; max-height:480px;
    background:var(--gold); bottom:-14%; right:-8%;
  }
  .bg-orbs span:nth-child(3){
    width:34vw; height:34vw; max-width:420px; max-height:420px;
    background:var(--blue-dusty); top:38%; right:22%;
  }
  @media (max-width:760px){
    .bg-orbs span{ filter:blur(34px); opacity:.16; }
  }

  /* ---------- TẮT HIỆU ỨNG KÍNH MỜ TRÊN MOBILE ----------
     backdrop-filter (blur) khá tốn GPU, nhất là trên điện thoại. Tắt hẳn ở
     mobile, đổi sang nền đặc nhẹ (vẫn đẹp, chỉ mất phần "trong mờ nhìn xuyên
     qua") — desktop giữ nguyên hiệu ứng kính đầy đủ như cũ. */
  @media (max-width:760px){
    :root, html[data-theme="dark"]{ --glass-blur: none; }
    header.site-nav{ backdrop-filter:none; -webkit-backdrop-filter:none; }
    .video-embed-play{ backdrop-filter:none; -webkit-backdrop-filter:none; }
    .film-showcase-btn{ backdrop-filter:none; -webkit-backdrop-filter:none; }
    .modal-overlay{ backdrop-filter:none; -webkit-backdrop-filter:none; }
    .booking-form-panel, .modal-card-form, .value-card, .service-feature,
    .price-card, .modal-card{ background:var(--panel); }
  }

  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit; cursor:pointer;}

  h1,h2,h3,h4{
    font-family:'Cormorant Garamond','Noto Serif',Georgia,serif;
    font-weight:500;
    color:var(--text);
    letter-spacing:.01em;
  }
  /* Tiêu đề lớn (h2) của từng phần được gõ sẵn IN HOA trong HTML — giữ tracking rộng cho sang trọng */
  h2{ letter-spacing:.02em; }

  .eyebrow{
    font-family:'Jost','Segoe UI','Noto Sans',sans-serif;
    font-size:.78rem;
    letter-spacing:.22em;
    color:var(--gold);
    font-weight:500;
  }

  /* ---------- THEME TOGGLE (sáng/tối) — dạng công tắc trượt ---------- */
  .theme-toggle{
    width:52px; height:28px; border-radius:999px; border:1px solid rgba(20,60,66,.4);
    background:rgba(255,255,255,.12); position:relative; padding:2px; flex:none;
    transition:background .3s var(--ease), border-color .3s var(--ease);
  }
  html[data-theme="dark"] .theme-toggle{ border-color:var(--glass-border); }
  .theme-toggle-thumb{
    width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.9);
    display:flex; align-items:center; justify-content:center; font-size:.72rem;
    box-shadow:0 2px 6px rgba(0,0,0,.2);
    transform:translateX(0); transition:transform .35s var(--ease);
    color:#12303A;
  }
  html[data-theme="dark"] .theme-toggle-thumb{ transform:translateX(24px); background:rgba(21,58,65,.9); color:#EFF8F9; }
  .theme-toggle .icon-sun, .theme-toggle .icon-moon{ display:none; line-height:1; color:var(--text); }
  html:not([data-theme]) .theme-toggle .icon-sun,
  html[data-theme="light"] .theme-toggle .icon-sun{ display:inline-flex; }
  html[data-theme="dark"] .theme-toggle .icon-moon{ display:inline-flex; }
  .icon-svg{ display:block; color:inherit; }

  .mobile-theme-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px; border-bottom:1px solid var(--line);
  }
  .mobile-theme-row span{ font-size:1rem; color:var(--blue-slate); }

  /* ---------- FILM-STRIP SIGNATURE ---------- */
  .filmstrip.line{
    width:100%;
    display:flex; justify-content:center; align-items:center; gap:6px;
  }
  .filmstrip.line span{ width:6px; height:10px; background:var(--gold-soft); border-radius:2px; }
  .filmstrip.line::before,
  .filmstrip.line::after{
    content:""; flex:1; height:1px;
    background:linear-gradient(90deg, transparent, var(--line));
    align-self:center;
  }
  .filmstrip.line::after{ background:linear-gradient(90deg, var(--line), transparent); }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:fixed; top:0; left:0; right:0; z-index:1000;
    background:var(--nav-bg);
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    border-bottom:1px solid var(--glass-border);
    transition: box-shadow .3s var(--ease), background .3s var(--ease);
  }
  header.site-nav.scrolled{ box-shadow: 0 8px 30px -20px rgba(0,0,0,.25); background:var(--nav-bg-scrolled); }
  .nav-inner{
    max-width:1240px; margin:0 auto;
    display:flex; align-items:center; justify-content:center;
    padding: 16px 32px;
  }
  .nav-cluster{ display:flex; align-items:center; gap:36px; }
  .brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; cursor:pointer; }
  .brand-mark{
    display:flex; align-items:center; flex:none;
    height:36px; width:auto;
  }
  .brand-mark svg{ height:100%; width:auto; display:block; }
  .brand-name{
    font-family:'Cormorant Garamond', serif; font-size:1.2rem; font-weight:700; letter-spacing:.1em;
    color:var(--navy);
  }
  html[data-theme="dark"] .brand-name{ color:var(--text); }
  .brand-name small{
    display:block; font-family:'Jost',sans-serif; font-size:.68rem; letter-spacing:.22em;
    color:var(--gold); margin-top:2px;
  }

  nav.tabs{ display:flex; gap:2px; }
  nav.tabs a{
    background:none; border:none; padding:10px 20px;
    font-size:.88rem; letter-spacing:.03em;
    color:var(--blue-slate); position:relative; display:inline-block;
    transition:color .25s var(--ease);
  }
  nav.tabs a::after{
    content:""; position:absolute; left:20px; right:20px; bottom:4px; height:1px;
    background:var(--cyan-bright); transform:scaleX(0); transform-origin:center;
    transition:transform .35s var(--ease);
  }
  html[data-theme="dark"] nav.tabs a::after{ background:#fff; }
  nav.tabs a:hover{ color:var(--text); }
  nav.tabs a:hover::after{ transform:scaleX(1); }
  nav.tabs a.active{ color:var(--text); font-weight:500; }
  nav.tabs a.active::after{ transform:scaleX(1); }

  @media (max-width: 980px){
    .nav-inner{ justify-content:space-between; }
    .nav-cluster{ display:contents; }
    .theme-toggle{ order:1; }
    .brand{ order:2; }
    .burger{ order:3; }
    nav.tabs{ display:none; }
    .burger{ display:flex; }
  }

  .burger{
    display:none; width:40px; height:40px; border:1px solid var(--line); border-radius:50%;
    background:var(--panel); align-items:center; justify-content:center; flex-direction:column; gap:4px;
  }
  .burger span{ width:16px; height:1px; background:var(--text); display:block; transition: transform .3s var(--ease), opacity .3s var(--ease); }
  .burger.open span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

  .mobile-panel{
    display:none; flex-direction:column; background:var(--panel);
    border-top:1px solid var(--line); overflow:hidden; max-height:0;
    transition:max-height .4s var(--ease);
  }
  .mobile-panel.open{ max-height:600px; }
  .mobile-panel button, .mobile-panel a{
    background:none; border:none; text-align:left; padding:16px 32px;
    font-size:1rem; letter-spacing:.02em;
    color:var(--blue-slate); border-bottom:1px solid var(--line); display:block;
  }
  .mobile-panel button.active, .mobile-panel a.active{ color:var(--gold); font-weight:500; }

  /* ---------- SECTIONS / TABS ---------- */
  main{ padding-top:74px; }
  .tab-panel{ display:none; }
  .tab-panel.active{ display:block; animation: fadeIn .6s var(--ease); }
  @keyframes fadeIn{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }

  .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
  section{ padding:104px 0; }
  .section-head{ text-align:center; max-width:680px; margin:0 auto 56px; }
  .section-head .eyebrow{ display:block; margin-bottom:14px; }
  .section-head h2{ font-size:2.5rem; font-weight:400; }
  .section-head p{ color:var(--text-muted); margin-top:16px; font-size:1.02rem; line-height:1.75; }

  /* ---------- KHOẢNG CÁCH GIỮA CÁC KHỐI TRONG 1 TAB ---------- */
  .mt-lg{ margin-top:var(--gap-lg); }
  .mt-md{ margin-top:var(--gap-md); }
  .mt-sm{ margin-top:var(--gap-sm); }

  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- HERO ---------- */
  .hero{
    min-height:94vh; display:flex; align-items:center; justify-content:center; position:relative;
    background: radial-gradient(120% 90% at 50% -10%, var(--hero-glow) 0%, var(--bg-soft) 55%, var(--blue-dusty) 130%);
    overflow:hidden; text-align:center; padding: 140px 32px 90px;
    transition: background .35s var(--ease);
  }
  .hero-frame{ position:absolute; inset:26px; border:1px solid var(--hero-frame-border); pointer-events:none; z-index:1; }
  .hero-frame::before,.hero-frame::after,.hero-frame span::before,.hero-frame span::after{
    content:""; position:absolute; width:26px; height:26px; border:1px solid var(--gold);
  }
  .hero-frame::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
  .hero-frame::after{ top:-1px; right:-1px; border-left:none; border-bottom:none; }
  .hero-frame span::before{ bottom:-1px; left:-1px; border-right:none; border-top:none; }
  .hero-frame span::after{ bottom:-1px; right:-1px; border-left:none; border-top:none; }

  /* ---------- HERO BACKGROUND VIDEO (tự host mp4/webm, thay YouTube iframe) ---------- */
  .hero-video{
    position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--navy);
  }
  .hero-video video{
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:100%; height:100%; object-fit:cover;
    pointer-events:none; border:0;
  }

  /* ---------- INTRO LOGO (chạy mỗi lần vào trang chủ) ----------
     Timeline chung 7.5s, chia theo % để mọi phần luôn khớp nhịp nhau:
     0–10%: logo trắng fade in · 10–40%: đổ màu gradient từ dưới lên
     40–57%: logo thu nhỏ + dịch lên, tên thương hiệu hiện ra kiểu quy tụ chữ
     57–80%: giữ nguyên · 80–100%: toàn bộ mờ dần biến mất */
  .intro-overlay{
    position:absolute; inset:0; z-index:5;
    display:flex; align-items:center; justify-content:center;
    background:rgba(5,15,17,.55);
    pointer-events:none;
    animation: introBackdrop 7.5s ease forwards;
  }
  .intro-content{ display:flex; flex-direction:column; align-items:center; }
  .intro-logo{
    position:relative; width:150px; aspect-ratio:428.12/809.265;
    animation: introLogoMove 7.5s ease forwards;
  }
  .intro-logo-outline, .intro-logo-fill{
    position:absolute; inset:0; width:100%; height:100%;
  }
  .intro-logo-outline{ opacity:.85; }
  .intro-logo-fill{
    clip-path: inset(100% 0 0 0);
    animation: introFill 7.5s ease forwards;
  }
  .intro-brand-name{
    margin-top:20px; color:#fff; font-family:'Cormorant Garamond', serif;
    font-size:1.5rem; font-weight:500; opacity:0; letter-spacing:1em;
    animation: introBrandName 7.5s ease forwards;
  }

  @keyframes introBackdrop{
    0%{ opacity:0; } 10%{ opacity:1; } 80%{ opacity:1; } 100%{ opacity:0; }
  }
  @keyframes introLogoMove{
    0%{ opacity:0; transform:translateY(0); }
    10%{ opacity:1; transform:translateY(0); }
    40%{ opacity:1; transform:translateY(0); }
    57%{ opacity:1; transform:translateY(-42px); }
    80%{ opacity:1; transform:translateY(-42px); }
    100%{ opacity:0; transform:translateY(-42px); }
  }
  @keyframes introFill{
    0%, 10%{ clip-path: inset(100% 0 0 0); }
    40%{ clip-path: inset(0% 0 0 0); }
    100%{ clip-path: inset(0% 0 0 0); }
  }
  @keyframes introBrandName{
    0%, 40%{ opacity:0; letter-spacing:1em; }
    57%{ opacity:1; letter-spacing:.32em; }
    80%{ opacity:1; letter-spacing:.32em; }
    100%{ opacity:0; letter-spacing:.32em; }
  }
  /* Trên mobile, letter-spacing bắt trình duyệt tính lại bố cục liên tục,
     dễ giật trên máy yếu — đổi sang hiệu ứng mờ dần + phóng nhẹ (chỉ dùng
     transform/opacity, mượt hơn nhiều), không đổi gì bên desktop. */
  @media (max-width:760px){
    .intro-brand-name{ letter-spacing:.32em; }
    .intro-brand-name{ animation-name: introBrandNameMobile; }
    @keyframes introBrandNameMobile{
      0%, 40%{ opacity:0; transform:scale(1.4); }
      57%{ opacity:1; transform:scale(1); }
      80%{ opacity:1; transform:scale(1); }
      100%{ opacity:0; transform:scale(1); }
    }
  }
  @media (prefers-reduced-motion: reduce){
    .intro-overlay, .intro-logo, .intro-logo-fill, .intro-brand-name{ animation:none; opacity:0; }
  }

  .hero-content{ position:relative; z-index:2; max-width:800px; }
  .hero .eyebrow{ display:inline-block; margin-bottom:22px; }
  .hero h1{ font-size:clamp(2.6rem, 6vw, 4.6rem); line-height:1.1; font-weight:400; }
  .hero h1 em{ font-style:italic; color:var(--gold); font-weight:500; }
  .hero p.lede{ max-width:580px; margin:26px auto 0; color:var(--text-muted); font-size:1.05rem; line-height:1.85; }
  .hero-actions{ margin-top:48px; display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }

  .btn{
    display:inline-flex; align-items:center; gap:10px; padding:15px 34px;
    font-size:.86rem; letter-spacing:.03em;
    border-radius:999px; transition: all .35s var(--ease); border:1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
  }
  .btn-primary{
    background:linear-gradient(135deg, rgba(var(--cyan-bright-rgb),.85), rgba(var(--cyan-mid-rgb),.85));
    color:#fff; font-weight:500; border-color:rgba(255,255,255,.25);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 16px 40px -12px rgba(30,158,147,.45); }
  .btn-ghost{ background:rgba(255,255,255,.08); border-color:var(--glass-border); color:var(--text); }
  .btn-ghost:hover{ background:rgba(var(--cyan-mid-rgb),.7); border-color:var(--cyan-mid); color:#fff; }
  .btn-gold{ background:rgba(var(--gold-rgb),.85); color:var(--on-gold); border-color:rgba(255,255,255,.25); }
  .btn-gold:hover{ background:rgba(var(--gold-rgb),1); transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.35), var(--glass-shadow); }
  .btn-outline-gold{ background:rgba(var(--gold-rgb),.08); border-color:var(--gold); color:var(--gold); }
  .btn-outline-gold:hover{ background:rgba(var(--gold-rgb),.85); color:var(--on-gold); }
  .btn-sm{ padding:11px 24px; font-size:.76rem; }
  .btn-block{ width:100%; justify-content:center; }

  .play-reel{
    margin:56px auto 0; width:88px; height:88px; border-radius:50%; border:1px solid var(--gold);
    display:flex; align-items:center; justify-content:center; position:relative; cursor:pointer;
    transition: transform .4s var(--ease);
  }
  .play-reel:hover{ transform:scale(1.08); }
  .play-reel::before{
    content:""; position:absolute; inset:-14px; border:1px solid rgba(185,155,98,.35); border-radius:50%;
    animation: pulse-ring 3.2s var(--ease) infinite;
  }
  @keyframes pulse-ring{ 0%{ transform:scale(.9); opacity:.7; } 70%{ transform:scale(1.22); opacity:0; } 100%{ opacity:0; } }
  .play-reel .tri{ width:0; height:0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:15px solid var(--gold); margin-left:5px; }
  .play-label{ display:block; margin-top:14px; font-size:.72rem; letter-spacing:.18em; color:var(--blue-slate); }

  /* ---------- PLACEHOLDER MEDIA (ảnh) ---------- */
  .ph{
    position:relative; background:linear-gradient(150deg, var(--blue-dusty) 0%, var(--bg-soft) 60%, var(--pearl) 100%);
    border-radius:6px; overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--blue-slate);
    transition: transform .5s var(--ease), box-shadow .5s var(--ease);
  }
  .ph::after{ content:""; position:absolute; inset:0; background: repeating-linear-gradient(115deg, rgba(120,120,120,.06) 0 2px, transparent 2px 90px); mix-blend-mode:multiply; }
  html[data-theme="dark"] .ph::after{ background: repeating-linear-gradient(115deg, rgba(255,255,255,.06) 0 2px, transparent 2px 90px); mix-blend-mode:soft-light; }
  .ph .ph-icon{ width:46px; height:46px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; transition:transform .4s var(--ease); }
  .ph .ph-icon .tri{ width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid var(--gold); margin-left:3px; }
  .ph .ph-tag{ position:absolute; bottom:14px; left:14px; font-size:.66rem; letter-spacing:.14em; color:var(--blue-slate); opacity:.8; z-index:1; }

  .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
  a:hover > .ph, .g-item:hover .ph, .about-hero:hover .ph,
  a.hovered > .ph, .g-item.hovered .ph, .about-hero.hovered .ph{
    box-shadow: 0 0 0 1px var(--cyan-bright), 0 20px 50px -20px rgba(30,158,147,.4);
  }
  .g-item:hover .ph img, a:hover > .ph img,
  .g-item.hovered .ph img, a.hovered > .ph img{ transform:scale(1.08); }
  .g-item:hover .ph-icon, a:hover .ph-icon,
  .g-item.hovered .ph-icon, a.hovered .ph-icon{ transform:scale(1.12); border-color:var(--cyan-bright); }

  /* ---------- HỆ THỐNG VIDEO 16:9 (video thật + preview YouTube) ---------- */
  .video-embed{
    position:relative; width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden;
    background:var(--navy); cursor:pointer; border:1px solid rgba(var(--cyan-mid-rgb),.4);
    box-shadow:0 10px 30px -18px rgba(20,60,66,.35);
    transition: box-shadow .4s var(--ease), border-color .4s var(--ease);
  }
  .video-embed:hover{ border-color:var(--cyan-bright); box-shadow:0 0 0 1px var(--cyan-bright), 0 20px 50px -20px rgba(30,158,147,.4); }
  .video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .video-embed-thumb{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85; transition:opacity .4s var(--ease), transform .6s var(--ease); }
  .video-embed:hover .video-embed-thumb{ opacity:1; transform:scale(1.05); }
  .video-embed-play{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:64px; height:64px; border-radius:50%; border:1px solid #fff;
    background:rgba(8,22,25,.5); backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center; z-index:1;
    transition:transform .4s var(--ease);
  }
  .video-embed:hover .video-embed-play{ transform:translate(-50%,-50%) scale(1.1); }
  .video-embed-play .tri{ width:0; height:0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:15px solid #fff; margin-left:5px; }
  .video-embed.is-active .video-embed-thumb,
  .video-embed.is-active .video-embed-play{ display:none; }
  .video-embed-note{
    position:absolute; bottom:10px; left:12px; font-size:.62rem; letter-spacing:.1em; color:#fff;
    opacity:.85; z-index:1;
  }

  /* ---------- HOME: PHILOSOPHY STRIP ---------- */
  .intro-strip{ background:var(--panel); padding:110px 0; }
  .intro-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
  .intro-grid .ph{ aspect-ratio:4/5; }
  .intro-copy .eyebrow{ margin-bottom:16px; }
  .intro-copy h2{ font-size:2.2rem; line-height:1.25; }
  .intro-copy p{ margin-top:20px; color:var(--text-muted); line-height:1.9; }
  .intro-copy p + p{ margin-top:14px; }

  /* ---------- MOMENTS (photo) ---------- */
  .moments{ background:var(--bg-soft); padding:110px 0; }
  .moments-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .moments-grid .ph{ aspect-ratio:3/4; }
  .moments-grid .g-item:nth-child(2n){ margin-top:36px; }

  /* ---------- WEDDING FILM (cinematic) — video 16:9 ---------- */
  .film-showcase{
    position:relative; background:linear-gradient(160deg, var(--blue-dusty), var(--navy) 80%); color:#fff; overflow:hidden;
    padding:110px 0;
  }
  .film-showcase .wrap{ position:relative; z-index:2; text-align:center; }
  .film-showcase .eyebrow{ color:var(--gold-soft); }
  .film-showcase h2{ color:#fff; font-size:2.5rem; margin-top:14px; }
  .film-showcase p{ color:#CFE6E8; max-width:600px; margin:18px auto 0; line-height:1.85; }
  .film-frame{
    margin:52px auto 0; max-width:820px; position:relative; border-radius:10px; overflow:hidden;
  }
  .gallery-thumbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; max-width:820px; margin-left:auto; margin-right:auto; }
  .gallery-thumbs .video-embed{ aspect-ratio:16/9; }
  .gallery-thumbs .video-embed.active{ border-color:var(--gold); box-shadow:0 0 0 2px var(--gold); }
  .gallery-thumbs .video-embed-play{ width:36px; height:36px; }
  .gallery-thumbs .video-embed-play .tri{ border-top-width:6px; border-bottom-width:6px; border-left-width:10px; margin-left:3px; }

  /* ---------- PARTNERS ---------- */
  .partners{ background:var(--panel); padding:100px 0; }
  .partners .section-head{ margin-bottom:40px; }

  /* Marquee logo đối tác — chạy liên tục, mượt, không dừng.
     Mờ dần ở 2 mép trái/phải thay vì cắt cứng. */
  .partner-marquee{
    position:relative; overflow:hidden; width:100%;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }
  .partner-track{
    display:flex; align-items:center; gap:64px; width:max-content;
    animation: partnerMarquee 26s linear infinite;
    will-change: transform; backface-visibility:hidden; transform:translateZ(0);
    /* Điểm lặp thực = tổng chiều rộng 10 logo + 10 khoảng gap (không phải 50% tổng track,
       vì track có 19 gap cho 20 phần tử chứ không phải 20 gap tròn — dùng % sẽ bị lệch 1 gap
       gây giật ở mỗi vòng lặp). Tính tay từ kích thước cố định trong CSS này:
       8×110px + 2×150px (2 logo -lg) + 10×64px gap = 1820px. */
    --partner-period: 1820px;
  }
  .partner-marquee:hover .partner-track{ animation-play-state:paused; }
  @keyframes partnerMarquee{
    from{ transform:translateX(0); }
    to{ transform:translateX(calc(-1 * var(--partner-period))); }
  }
  .partner-logo{
    flex:0 0 auto; width:110px; height:110px;
    display:flex; align-items:center; justify-content:center;
    filter:grayscale(1) opacity(.55); transition:filter .35s var(--ease);
  }
  .partner-logo-lg{ width:150px; height:150px; }
  .partner-logo:hover{ filter:grayscale(0) opacity(1); }
  .partner-logo.hovered{ filter:grayscale(0) opacity(1); }
  /* Logo trắng trên nền trong suốt — đảo màu ở chế độ sáng để luôn nhìn rõ,
     giữ nguyên trắng ở chế độ tối (đã hợp lý sẵn trên nền tối). */
  html:not([data-theme="dark"]) .partner-logo-white img{ filter: invert(1); }
  .partner-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
  .partner-logo span{ font-family:'Cormorant Garamond', serif; color:var(--blue-mid); font-size:.9rem; letter-spacing:.04em; }
  @media (prefers-reduced-motion: reduce){ .partner-track{ animation:none; } }
  @media (max-width:560px){
    /* Kích thước đổi ở mobile → điểm lặp cũng phải tính lại:
       8×80px + 2×108px (2 logo -lg) + 10×40px gap = 1256px. */
    .partner-track{ gap:40px; --partner-period: 1256px; }
    .partner-logo{ width:80px; height:80px; }
    .partner-logo-lg{ width:108px; height:108px; }
  }

  .cta-band{ background:var(--gold); color:var(--on-gold); text-align:center; padding:100px 32px; }
  .cta-band h2{ color:#fff; font-size:2.3rem; margin-top:14px; }
  .cta-band .eyebrow{ color:#FCF6EA; }
  .cta-band p{ color:#FCF6EA; margin-top:18px; max-width:520px; margin-left:auto; margin-right:auto; }
  .cta-band .btn-primary{ margin-top:40px; background:#fff; color:var(--gold); }
  .cta-band .btn-primary:hover{ background:#FCF6EA; }

  /* Nút trong khối Wedding Film (nền luôn tối, không đổi theo theme) —
     kính mờ trắng nhẹ, chữ trắng để luôn đọc rõ bất kể light/dark mode */
  .film-showcase-btn{
    background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.35);
    color:#fff; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  }
  .film-showcase-btn:hover{ background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.5); transform:translateY(-2px); }

  /* ---------- ABOUT ---------- */
  .about-hero{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; }
  .about-hero .ph{ aspect-ratio:3/4; }
  .about-copy h2{ font-size:2.4rem; line-height:1.25; }
  .about-copy p{ margin-top:22px; color:var(--text-muted); line-height:1.9; }
  .about-copy p + p{ margin-top:16px; }

  .values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:20px; }
  .value-card{
    text-align:center; padding:26px 18px; border-radius:12px;
    background:var(--glass-bg-soft); border:1px solid var(--glass-border);
    backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
    box-shadow:var(--glass-shadow);
    transition:transform .4s var(--ease);
  }
  .value-card:hover, .value-card.hovered{ transform:translateY(-6px); }
  .value-card .ring{
    width:64px; height:64px; margin:0 auto 20px; border:1px solid var(--gold); border-radius:50%;
    display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond', serif; font-size:1.3rem; color:var(--gold);
    transition: box-shadow .4s var(--ease);
  }
  .value-card:hover .ring, .value-card.hovered .ring{ box-shadow:0 0 0 6px rgba(185,155,98,.14); }
  .value-card h4{ font-size:1.15rem; font-weight:500; }
  .value-card p{ margin-top:10px; font-size:.9rem; color:var(--text-muted); line-height:1.7; }

  /* ---------- SERVICES / PRICING ---------- */
  .service-feature{
    display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;
    background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:12px; padding:8px; margin-bottom:64px;
    backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
    box-shadow:var(--glass-shadow);
  }
  .service-feature .ph{ aspect-ratio:16/9; border-radius:6px; }
  .service-feature-copy{ padding:34px 44px 34px 6px; }
  .service-feature-copy .eyebrow{ margin-bottom:10px; }
  .service-feature-copy h3{ font-size:1.9rem; }
  .service-feature-copy p{ margin-top:16px; color:var(--text-muted); line-height:1.8; }
  .tag-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
  .tag-list span{ font-size:.76rem; letter-spacing:.02em; padding:7px 14px; border:1px solid var(--line); border-radius:999px; color:var(--blue-slate); }

  .category-tabs{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:60px; }
  .category-tabs button{
    background:rgba(255,255,255,.08); border:1px solid var(--glass-border); border-radius:999px; padding:11px 24px;
    font-size:.82rem; letter-spacing:.02em; color:var(--blue-slate);
    transition: all .3s var(--ease); box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  }
  .category-tabs button.active, .category-tabs button:hover{ background:rgba(var(--cyan-mid-rgb),.75); border-color:var(--cyan-mid); color:#fff; }

  .price-category{ display:none; }
  .price-category.active{ display:block; animation: fadeIn .5s var(--ease); }
  .price-category.active .price-card{
    opacity:0; animation: priceCardReveal .5s var(--ease) forwards;
  }
  .price-category.active .price-card:nth-child(1){ animation-delay:.05s; }
  .price-category.active .price-card:nth-child(2){ animation-delay:.13s; }
  .price-category.active .price-card:nth-child(3){ animation-delay:.21s; }
  @keyframes priceCardReveal{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .price-category.active .price-card{ animation:none; opacity:1; }
  }

  /* ---------- HIỆU ỨNG HIỆN DẦN KHI ĐỔI BỘ LỌC (trang Sản phẩm) ----------
     Dùng chung 1 class .filter-anim — JS sẽ gắn/gỡ class này mỗi lần đổi bộ
     lọc để hiệu ứng chạy lại (tương tự cách chuyển tab ở trang Dịch vụ). */
  .filter-anim{ animation: fadeIn .45s var(--ease); }
  .filter-anim .g-item{ opacity:0; animation: priceCardReveal .45s var(--ease) forwards; }
  .filter-anim .g-item:nth-child(1){ animation-delay:.04s; }
  .filter-anim .g-item:nth-child(2){ animation-delay:.09s; }
  .filter-anim .g-item:nth-child(3){ animation-delay:.14s; }
  .filter-anim .g-item:nth-child(4){ animation-delay:.19s; }
  .filter-anim .g-item:nth-child(5){ animation-delay:.24s; }
  @media (prefers-reduced-motion: reduce){
    .filter-anim, .filter-anim .g-item{ animation:none; opacity:1; }
  }
  .price-category-head{ text-align:center; margin-bottom:36px; }
  .price-category-head h3{ font-size:1.8rem; }
  .price-category-head span{ display:block; margin-top:6px; font-size:.82rem; letter-spacing:.08em; color:var(--gold); }

  .price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
  .price-card{
    background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:12px; overflow:hidden;
    backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
    display:flex; flex-direction:column; transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
    position:relative;
  }
  .price-card:hover, .price-card.hovered{ transform:translateY(-6px); box-shadow:var(--glass-shadow); border-color:var(--cyan-bright); }
  .price-card.premium{ border-color:rgba(var(--gold-rgb),.6); }
  .price-card-image{
    width:100%; aspect-ratio:1920/1080; position:relative; overflow:hidden;
    background:linear-gradient(150deg, var(--blue-dusty) 0%, var(--bg-soft) 60%, var(--pearl) 100%);
    border-bottom:1px solid var(--glass-border);
  }
  .price-card-image img{ width:100%; height:100%; object-fit:cover; display:block; }
  .price-card-image::after{ content:""; position:absolute; inset:0; background: repeating-linear-gradient(115deg, rgba(120,120,120,.06) 0 2px, transparent 2px 90px); }
  .price-card-image:has(img)::after{ display:none; }
  .price-card-image .ph-tag{ position:absolute; bottom:10px; left:12px; font-size:.6rem; letter-spacing:.1em; color:var(--blue-slate); opacity:.75; }
  .price-card-body{ padding:30px 28px; display:flex; flex-direction:column; flex:1; }
  .price-badge{
    align-self:flex-start; font-size:.66rem; letter-spacing:.08em;
    padding:6px 14px; border-radius:999px; background:var(--bg-soft); color:var(--blue-slate); margin-bottom:18px;
  }
  .price-card.premium .price-badge{ background:var(--gold); color:var(--on-gold); }
  .price-card h4{ font-size:1.25rem; }
  .price-card .price{ font-family:'Cormorant Garamond', serif; font-size:1.9rem; color:var(--text); font-weight:600; margin-top:10px; }
  .price-card .price small{ font-family:'Jost',sans-serif; font-size:.7rem; color:var(--text-muted); font-weight:400; letter-spacing:.05em; }
  .price-card .crew{ margin-top:8px; font-size:.8rem; color:var(--gold); letter-spacing:.04em; }
  .price-card ul{ margin-top:20px; flex:1; display:flex; flex-direction:column; gap:10px; }
  .price-card ul li{ font-size:.86rem; color:var(--text-muted); line-height:1.6; padding-left:16px; position:relative; }
  .price-card ul li::before{ content:"•"; position:absolute; left:0; color:var(--gold); }
  .price-card .btn{ margin-top:26px; }

  .surcharge-note{
    margin-top:30px; text-align:center; font-size:.85rem; color:var(--text-muted);
    padding:18px; background:var(--bg-soft); border-radius:8px;
  }

  /* ---------- PORTFOLIO / SẢN PHẨM ---------- */
  .filter-row{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:46px; }
  .filter-row button{
    background:rgba(255,255,255,.08); border:1px solid var(--glass-border); border-radius:999px; padding:9px 22px;
    font-size:.8rem; letter-spacing:.02em; color:var(--blue-slate);
    transition: all .3s var(--ease); box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  }
  .filter-row button.active, .filter-row button:hover{ background:rgba(var(--cyan-mid-rgb),.75); border-color:var(--cyan-mid); color:#fff; }

  .product-group-head{ text-align:center; margin-bottom:34px; }
  .product-group-head span{ font-size:.72rem; letter-spacing:.16em; color:var(--blue-mid); }

  .gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .gallery-grid-lg{ grid-template-columns:repeat(2,1fr); gap:28px; max-width:900px; margin:0 auto; }
  .g-item{ cursor:pointer; }
  .g-caption{ margin-top:14px; }
  .g-caption h4{ font-size:1.05rem; font-weight:500; }
  .g-caption span{ font-size:.76rem; letter-spacing:.04em; color:var(--gold); }

  .video-cta-wrap{ text-align:center; margin-top:32px; }
  .video-cta{ display:inline-flex; }
  .video-cta .btn{ pointer-events:none; }

  /* Filmstrip ảnh — hover vào ảnh nào thì ảnh đó tự phóng to */
  .photo-filmstrip{ display:flex; gap:6px; height:460px; border-radius:8px; overflow:hidden; }
  .photo-filmstrip-item{
    flex:1 1 0%; min-width:0; position:relative; cursor:pointer; overflow:hidden; border-radius:6px;
    transition: flex-basis .5s cubic-bezier(.4,0,.2,1), flex-grow .5s cubic-bezier(.4,0,.2,1);
  }
  .photo-filmstrip-item .ph{ width:100%; height:100%; border-radius:0; }
  .photo-filmstrip-item img{ width:100%; height:100%; object-fit:cover; }
  .photo-filmstrip:hover .photo-filmstrip-item{ flex-grow:1; }
  .photo-filmstrip-item:hover, .photo-filmstrip-item.hovered{
    flex:0 0 min(613px, 82vw) !important; /* = chiều cao 460px x tỉ lệ 4:3, giữ đúng khung ảnh khi phóng to */
  }
  /* Dải Design: mỗi ảnh tự khai báo tỉ lệ riêng qua style="--ratio:.." (1 = vuông, .75 = dọc 3:4) —
     khi phóng to sẽ giãn đúng theo tỉ lệ đó, không dùng chung 1 tỉ lệ cố định như dải ảnh cưới. */
  .photo-filmstrip.filmstrip-mixed .photo-filmstrip-item:hover,
  .photo-filmstrip.filmstrip-mixed .photo-filmstrip-item.hovered{
    flex-basis:min(calc(460px * var(--ratio,1)), 82vw) !important;
  }
  .photo-filmstrip-item .g-caption{ display:none; }
  @media (max-width:760px){
    .photo-filmstrip{ height:340px; overflow-x:auto; }
    .photo-filmstrip-item{ flex:0 0 70px; }
    .photo-filmstrip-item:hover, .photo-filmstrip-item.hovered{
      flex-grow:0 !important; flex-basis:min(453px, 82vw); /* 340px x 4:3 */
    }
    .photo-filmstrip.filmstrip-mixed .photo-filmstrip-item:hover,
    .photo-filmstrip.filmstrip-mixed .photo-filmstrip-item.hovered{
      flex-basis:min(calc(340px * var(--ratio,1)), 82vw);
    }
  }

  .updating-note{
    text-align:center; margin-top:70px; padding:40px; border:1px dashed var(--gold-soft); border-radius:8px; background:var(--bg-soft);
  }
  .updating-note p{ color:var(--text-muted); font-size:.9rem; }

  /* ---------- BOOKING / LIÊN HỆ ---------- */
  .map-embed{ max-width:640px; margin:0 auto; border-radius:8px; overflow:hidden; border:1px solid var(--line); filter:var(--map-filter); }
  .map-embed iframe{ width:100%; height:220px; border:0; display:block; }

  .booking-form-panel{
    max-width:640px; margin:0 auto; background:var(--glass-bg); border:1px solid var(--glass-border);
    border-radius:14px; overflow:hidden; backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
    animation: formGlowLight 3.6s ease-in-out infinite;
  }
  html[data-theme="dark"] .booking-form-panel{ animation: formGlowDark 3.6s ease-in-out infinite; }
  .booking-form-head{ padding:26px 30px; border-bottom:1px solid var(--glass-border); background:rgba(255,255,255,.06); text-align:center; }
  .booking-form-head h4{ font-size:1.2rem; }
  .modal-form-title{ text-align:center; font-size:1.3rem; margin-bottom:20px; }
  .booking-form{ padding:30px 30px 24px; display:flex; flex-direction:column; gap:16px; }
  .bf-row{ display:flex; flex-direction:column; gap:8px; }
  .bf-row label{ font-size:.8rem; letter-spacing:.02em; color:var(--blue-slate); }
  .bf-row label span{ color:var(--gold); }
  .bf-row input, .bf-row select, .bf-row textarea{
    font-family:'Jost', sans-serif; font-size:.92rem; color:var(--text);
    border:1px solid var(--glass-border); border-radius:6px; padding:12px 14px; background:rgba(255,255,255,.08);
    transition: border-color .3s var(--ease);
  }
  .bf-row input::placeholder, .bf-row textarea::placeholder{ color:var(--text-muted); opacity:.7; }
  .bf-row select option{ color:#12303A; background:#fff; }

  /* Bỏ mũi tên gốc của trình duyệt (mỗi trình duyệt vẽ 1 kiểu, hay bị sát mép) —
     thay bằng icon tự vẽ, canh khoảng cách cố định + đổi màu theo theme */
  .bf-row select{
    appearance:none; -webkit-appearance:none; -moz-appearance:none;
    padding-right:42px;
    background-repeat:no-repeat;
    background-position:right 16px center;
    background-size:13px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E6169' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }
  html[data-theme="dark"] .bf-row select{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238FCBD1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }
  .bf-row input:focus, .bf-row select:focus, .bf-row textarea:focus{ outline:none; border-color:var(--cyan-bright); }
  .bf-row textarea{ resize:vertical; }

  /* Hàng Ngày + Giờ tổ chức đi chung 1 dòng — mỗi ô có label riêng.
     Ô giờ hẹp cố định, ô ngày co giãn chiếm phần còn lại. */
  .bf-row-split{ flex-direction:row; gap:14px; }
  .bf-field{ display:flex; flex-direction:column; gap:8px; flex:1 1 0; min-width:0; }
  .bf-field-time{ flex:0 0 128px; }
  @media (max-width:480px){
    .bf-row-split{ flex-direction:column; gap:16px; }
    .bf-field-time{ flex:1 1 auto; }
  }

  /* ---------- DROPDOWN TỰ THIẾT KẾ (thay cho <select> gốc) ----------
     Dùng cho "Dịch vụ quan tâm" — có animation mở/đóng mượt, điều mà
     dropdown gốc của trình duyệt không thể tuỳ chỉnh được. */
  .custom-select{ position:relative; }
  .custom-select-trigger{
    width:100%; display:flex; align-items:center; justify-content:space-between;
    font-family:'Jost', sans-serif; font-size:.92rem; color:var(--text); text-align:left;
    border:1px solid var(--glass-border); border-radius:6px; padding:12px 14px;
    background:rgba(255,255,255,.08); transition: border-color .3s var(--ease);
  }
  .custom-select-trigger svg{ flex:none; margin-left:10px; transition:transform .3s var(--ease); color:var(--blue-slate); }
  .custom-select.open .custom-select-trigger{ border-color:var(--cyan-bright); }
  .custom-select.open .custom-select-trigger svg{ transform:rotate(180deg); }
  .custom-select-options{
    position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:20;
    background:var(--panel); border:1px solid var(--glass-border); border-radius:8px;
    box-shadow:var(--shadow); padding:6px; max-height:240px; overflow-y:auto;
    opacity:0; visibility:hidden; transform:translateY(-8px) scaleY(.96); transform-origin:top;
    transition: opacity .22s var(--ease), transform .22s var(--ease), visibility 0s linear .22s;
    scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) transparent;
  }
  .custom-select-options::-webkit-scrollbar{ width:4px; }
  .custom-select-options::-webkit-scrollbar-track{ background:transparent; }
  .custom-select-options::-webkit-scrollbar-thumb{ background:var(--scrollbar-thumb); border-radius:999px; }
  .custom-select-options::-webkit-scrollbar-thumb:hover{ background:rgba(var(--cyan-mid-rgb),.5); }
  .custom-select.open .custom-select-options{
    opacity:1; visibility:visible; transform:translateY(0) scaleY(1);
    transition: opacity .22s var(--ease), transform .22s var(--ease), visibility 0s linear 0s;
  }
  .custom-select-options li{
    padding:10px 12px; border-radius:5px; font-size:.9rem; color:var(--text); cursor:pointer;
    transition: background .2s var(--ease);
  }
  .custom-select-options li:hover{ background:rgba(var(--cyan-mid-rgb),.18); }
  .custom-select-options li.active{ background:var(--cyan-mid); color:#fff; }
  @media (prefers-reduced-motion: reduce){
    .custom-select-options{ transition:none; }
    .custom-select-trigger svg{ transition:none; }
  }
  /* Icon lịch/đồng hồ của ô chọn ngày & giờ — đổi sang trắng ở chế độ tối cho dễ nhìn trên nền tối
     (chỉ áp dụng được ở trình duyệt nền Chromium/Safari — Firefox không hỗ trợ chỉnh icon này) */
  html[data-theme="dark"] .bf-row input[type="date"]::-webkit-calendar-picker-indicator,
  html[data-theme="dark"] .bf-row input[type="time"]::-webkit-calendar-picker-indicator{
    filter: invert(1);
  }
  .bf-status{ text-align:center; font-size:.85rem; }
  .bf-status.ok{ color:var(--ok); }
  .bf-status.err{ color:var(--err); }
  .bf-status.sending{ color:var(--text-muted); }

  /* ---------- POPUP XÁC NHẬN ĐẶT LỊCH THÀNH CÔNG ---------- */
  .modal-overlay{
    position:fixed; inset:0; z-index:2000; background:rgba(8,20,23,.4);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
  }
  .modal-overlay.open{ opacity:1; pointer-events:auto; }
  .modal-card{
    background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:16px;
    backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
    max-width:440px; width:100%; padding:36px 30px 30px; position:relative;
    box-shadow:var(--glass-shadow); transform:translateY(16px); transition:transform .35s var(--ease);
  }
  .modal-overlay.open .modal-card{ transform:translateY(0); }
  .modal-close{
    position:absolute; top:16px; right:16px; width:32px; height:32px; border-radius:50%;
    border:1px solid var(--glass-border); background:rgba(255,255,255,.08); color:var(--text);
    display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease);
  }
  .modal-close:hover{ background:var(--cyan-mid); color:#fff; border-color:var(--cyan-mid); }
  .modal-icon{
    width:56px; height:56px; border-radius:50%; background:var(--ok); color:#fff;
    display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
  }
  .modal-card h4{ text-align:center; font-size:1.4rem; }
  .modal-card > p.modal-sub{ text-align:center; color:var(--text-muted); font-size:.9rem; margin-top:8px; }
  .modal-summary{ margin-top:24px; display:flex; flex-direction:column; gap:10px; }
  .modal-summary-row{ display:flex; justify-content:space-between; gap:16px; font-size:.88rem; padding-bottom:10px; border-bottom:1px solid var(--glass-border); }
  .modal-summary-row span:first-child{ color:var(--text-muted); }
  .modal-summary-row span:last-child{ text-align:right; font-weight:500; }
  .modal-card .btn{ margin-top:26px; }

  /* ---------- NÚT ĐẶT LỊCH NỔI GÓC PHẢI + POPUP FORM ---------- */
  .fab-booking{
    position:fixed; right:24px; bottom:24px; z-index:1500;
    display:inline-flex; align-items:center; gap:8px; padding:15px 26px;
    border-radius:999px; background:linear-gradient(135deg, rgba(var(--cyan-bright-rgb),.9), rgba(var(--cyan-mid-rgb),.9));
    border:1px solid rgba(255,255,255,.25);
    color:#fff; font-size:.86rem; letter-spacing:.03em; font-weight:500;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35), var(--glass-shadow);
    transition: transform .3s var(--ease);
    animation: fabBreathe 3.2s ease-in-out infinite;
  }
  .fab-booking::before{
    content:""; position:absolute; inset:0; border-radius:999px;
    box-shadow:0 0 0 0 rgba(var(--cyan-bright-rgb),.5);
    animation: fabPulse 3.2s ease-out infinite;
    pointer-events:none;
  }
  .fab-booking:hover{ transform:translateY(-3px) scale(1.03); animation-play-state:paused; }
  .fab-booking:hover::before{ animation-play-state:paused; }
  @keyframes fabBreathe{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-4px); }
  }
  @keyframes fabPulse{
    0%{ box-shadow:0 0 0 0 rgba(var(--cyan-bright-rgb),.45); }
    70%{ box-shadow:0 0 0 14px rgba(var(--cyan-bright-rgb),0); }
    100%{ box-shadow:0 0 0 14px rgba(var(--cyan-bright-rgb),0); }
  }
  @media (prefers-reduced-motion: reduce){
    .fab-booking{ animation:none; }
    .fab-booking::before{ animation:none; }
  }
  @media (max-width:560px){
    .fab-booking{ right:16px; bottom:16px; padding:13px 20px; font-size:.8rem; }
  }
  .modal-card-form{
    max-width:480px; max-height:88vh; overflow-y:auto;
    animation: formGlowLight 3.6s ease-in-out infinite;
  }
  html[data-theme="dark"] .modal-card-form{ animation: formGlowDark 3.6s ease-in-out infinite; }

  /* Animation glow cho khung form đặt lịch — màu đối lập giữa 2 chế độ:
     cyan dịu ở giao diện sáng, trắng sáng ở giao diện tối */
  @keyframes formGlowLight{
    0%, 100%{ box-shadow: var(--glass-shadow), 0 0 0 0 rgba(var(--cyan-bright-rgb),.22); }
    50%{ box-shadow: var(--glass-shadow), 0 0 44px 8px rgba(var(--cyan-bright-rgb),.38); }
  }
  @keyframes formGlowDark{
    0%, 100%{ box-shadow: var(--glass-shadow), 0 0 0 0 rgba(255,255,255,.14); }
    50%{ box-shadow: var(--glass-shadow), 0 0 44px 8px rgba(255,255,255,.28); }
  }
  @media (prefers-reduced-motion: reduce){
    .booking-form-panel, .modal-card-form{ animation:none; box-shadow:var(--glass-shadow); }
  }
  .modal-card-form .booking-form{ padding:0; margin-top:20px; }

  /* Thanh cuộn siêu mỏng, tối giản cho popup */
  .modal-card, .modal-card-form{
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) transparent;
  }
  .modal-card::-webkit-scrollbar, .modal-card-form::-webkit-scrollbar{ width:4px; }
  .modal-card::-webkit-scrollbar-track, .modal-card-form::-webkit-scrollbar-track{ background:transparent; }
  .modal-card::-webkit-scrollbar-thumb, .modal-card-form::-webkit-scrollbar-thumb{
    background:var(--scrollbar-thumb); border-radius:999px;
  }
  .modal-card::-webkit-scrollbar-thumb:hover, .modal-card-form::-webkit-scrollbar-thumb:hover{
    background:rgba(var(--cyan-mid-rgb),.5);
  }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--navy); color:#BFE3E5; padding:60px 32px 30px; }
  .footer-inner{ max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px; }
  .footer-brand{ display:flex; flex-direction:column; gap:14px; }
  .footer-brand-row{ display:flex; align-items:center; gap:12px; }
  .footer-brand .brand-mark{ height:30px; }
  .footer-brand .brand-name{ color:#fff; }
  .footer-brand p{ max-width:300px; font-size:.85rem; line-height:1.8; color:#8FB8BC; }
  .footer-cols{ display:flex; gap:70px; flex-wrap:wrap; }
  .footer-col h5{ font-size:.78rem; letter-spacing:.1em; color:var(--gold-soft); margin-bottom:16px; }
  .footer-col a, .footer-col span{ display:block; font-size:.88rem; color:#BFE3E5; margin-bottom:13px; }
  .footer-col a:hover{ color:var(--cyan-bright); }
  .footer-bottom{ max-width:1180px; margin:50px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); font-size:.75rem; color:#7FA6AB; text-align:center; letter-spacing:.03em; }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    nav.tabs{ display:none; }
    .burger{ display:flex; }
    .mobile-panel{ display:flex; }
    .intro-grid, .about-hero, .service-feature, .booking-wrap{ grid-template-columns:1fr; }
    .service-feature-copy{ padding:8px 8px 34px; }
    .values-grid{ grid-template-columns:repeat(2,1fr); }
    .price-grid{ grid-template-columns:1fr; }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .moments-grid{ grid-template-columns:repeat(2,1fr); }
    .moments-grid .g-item:nth-child(2n){ margin-top:0; }
    .gallery-thumbs{ grid-template-columns:repeat(3,1fr); }
    .partner-marquee{ mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
    section{ padding:80px 0; }
    .hero{ min-height:80vh; padding-top:120px; }
    :root, html[data-theme="dark"]{ --gap-lg:88px; --gap-md:60px; --gap-sm:34px; }
  }
  @media (max-width: 560px){
    .wrap{ padding:0 20px; }
    .nav-inner{ padding:14px 20px; }
    .brand-name{ font-size:1.02rem; }
    .section-head h2{ font-size:1.9rem; }
    .values-grid, .gallery-grid, .moments-grid{ grid-template-columns:1fr; }
    .gallery-thumbs{ grid-template-columns:repeat(2,1fr); }
    .hero-actions{ flex-direction:column; align-items:center; }
    .btn{ width:100%; justify-content:center; }
    .film-showcase h2, .cta-band h2{ font-size:1.8rem; }
    section{ padding:64px 0; }
    .category-tabs{ gap:8px; }
    .category-tabs button{ padding:9px 16px; font-size:.72rem; }
  }

  @media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }
