:root{
    --deep:#1a0e16;
    --deep-2:#2b1620;
    --deep-3:#3d1f2c;
    --gold:#ff2d78;
    --gold-light:#ff9ecb;
    --gold-dim:#b23463;
    --ivory:#ffffff;
    --wine:#c2185b;
    --wine-light:#e75480;
    --blush:#ffc2dd;
    --line:rgba(255,45,120,0.25);
    --shadow-glow:0 0 40px rgba(255,45,120,0.25);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{
    scroll-behavior:smooth;
    background:var(--deep);
  }
  body{
    background:var(--deep);
    color:var(--ivory);
    font-family:'Jost',sans-serif;
    font-weight:300;
    overflow-x:hidden;
    min-height:100vh;
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- mobile optimization ---------- */
  @supports (padding: max(0px)) {
    body {
      padding-left: max(0px, env(safe-area-inset-left));
      padding-right: max(0px, env(safe-area-inset-right));
      padding-top: max(0px, env(safe-area-inset-top));
      padding-bottom: max(0px, env(safe-area-inset-bottom));
    }
  }
  
  /* Improve touch targets for mobile */
  @media (hover: none) and (pointer: coarse) {
    a, button, .tab-btn, .btn {
      min-height: 44px;
      min-width: 44px;
      padding: 0.8rem 1.4rem;
    }
    .tab-btn {
      padding: 0.85rem 1.5rem;
      font-size: 0.82rem;
    }
  }
  
  /* Optimize for notched devices */
  @supports (padding: max(0px)) {
    header { padding: max(0.5rem, env(safe-area-inset-top)) 0 0.5rem 0; }
  }

  h1,h2,h3,h4{font-family:'Cormorant Garamond',serif; font-weight:600; letter-spacing:0.01em;}
  .script{font-family:'Italianno',cursive; font-weight:400;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  img{max-width:100%; display:block;}
  ::selection{background:var(--gold); color:var(--deep);}

  /* ---------- custom cursor ---------- */
  .cursor-dot, .cursor-ring, .cursor-trail{display:none;}
  @media (hover:hover) and (pointer:fine){
    body{cursor:none;}
    a, button{cursor:none;}
    .cursor-dot{
      display:block; position:fixed; top:0; left:0; width:7px; height:7px; border-radius:50%;
      background:var(--gold); pointer-events:none; z-index:9999; transform:translate(-50%,-50%);
      box-shadow:0 0 10px rgba(255,45,120,0.8);
    }
    .cursor-trail{
      display:block; position:fixed; top:0; left:0; border-radius:50%;
      pointer-events:none; z-index:9997; transform:translate(-50%,-50%);
    }
    .cursor-trail.t1{width:6px; height:6px; background:var(--gold-light); opacity:0.65;}
    .cursor-trail.t2{width:4px; height:4px; background:var(--gold-light); opacity:0.4;}
    .cursor-ring{
      display:block; position:fixed; top:0; left:0; width:34px; height:34px; border-radius:50%;
      border:1.4px solid var(--gold-light); pointer-events:none; z-index:9998; transform:translate(-50%,-50%);
      transition:width 0.25s ease, height 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
      opacity:0.75;
    }
    .cursor-ring.grow{width:54px; height:54px; border-color:var(--gold); opacity:1;}
  }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--gold-light);
    outline-offset:3px;
  }

  .eyebrow{
    font-family:'Jost',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.28em;
    font-size:0.7rem;
    color:var(--gold);
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
  }
  .eyebrow::before{content:""; width:22px; height:1px; background:var(--gold);}

  .wrap{max-width:1180px; margin:0 auto; padding:0 6vw;}

  /* ---------- decorative motifs ---------- */
  .leaf-corner{position:absolute; opacity:0.55; pointer-events:none;}
  .glow-blob{
    position:absolute; border-radius:50%;
    filter:blur(60px); opacity:0.35; pointer-events:none;
    background:radial-gradient(circle, var(--gold) 0%, transparent 70%);
  }

  /* ---------- nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(20,32,25,0.75);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    transition:background 0.3s;
  }
  .nav-inner{
    max-width:1180px; margin:0 auto; padding:0.9rem 6vw;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{font-family:'Italianno',cursive; font-size:4.2rem; font-weight:900; color:#ffffff; line-height:1; text-shadow:0 0 30px rgba(255,255,255,0.6), 0 0 15px rgba(255,45,120,0.4); letter-spacing:0.05em;}
  .logo span{display:block; font-family:'Jost',sans-serif; font-size:0.8rem; letter-spacing:0.4em; text-transform:uppercase; color:#ffffff; margin-top:0.25rem; font-weight:700; text-shadow:0 0 20px rgba(255,45,120,0.5);}
  nav.links{display:flex; gap:2.1rem; font-size:0.82rem; letter-spacing:0.04em;}
  nav.links a{position:relative; padding:0.3rem 0; opacity:0.95; transition:opacity 0.25s, color 0.25s;}
  nav.links a:hover{opacity:1; color:var(--gold-light);}
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
    background:var(--gold); transition:width 0.3s;
  }
  nav.links a:hover::after{width:100%;}
  .nav-cta{
    font-size:0.74rem; letter-spacing:0.06em; padding:0.6rem 1.3rem;
    border:1px solid var(--gold); border-radius:30px; color:var(--gold-light);
    transition:all 0.3s; white-space:nowrap;
  }
  .nav-cta:hover{background:var(--gold); color:var(--deep); box-shadow:var(--shadow-glow);}
  .menu-btn{display:none; background:none; border:none; color:var(--gold-light); font-size:1.6rem; cursor:pointer;}

  @media (max-width:880px){
    nav.links{position:fixed; top:0; right:-100%; height:100vh; width:78%; max-width:320px;
      background:var(--deep-2); flex-direction:column; padding:6rem 2.2rem 2rem; gap:1.6rem;
      transition:right 0.4s ease; border-left:1px solid var(--line); font-size:1rem;}
    nav.links.open{right:0;}
    .nav-cta{display:none;}
    .menu-btn{display:block;}
    .logo{font-size:2.2rem;}
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
    padding:9rem 6vw 5rem; overflow:hidden;
    background:
      radial-gradient(ellipse at 50% -10%, rgba(194,24,91,0.35), transparent 55%),
      linear-gradient(180deg, var(--deep) 0%, var(--deep-2) 100%);
  }
  .hero-grid{
    position:relative; z-index:2; max-width:1180px; margin:0 auto; width:100%;
    display:grid; grid-template-columns:1.05fr 0.95fr; align-items:center; gap:2rem;
  }
  .hero-rings{
    position:absolute; top:50%; left:50%; width:560px; height:560px;
    transform:translate(-50%,-50%); pointer-events:none;
  }
  .hero-rings svg{width:100%; height:100%; opacity:0.6;}
  .ring{fill:none; stroke:var(--gold); stroke-width:0.6; opacity:0.45;}
  .ring-spin{animation:spin 90s linear infinite;}
  .ring-spin-rev{animation:spin 70s linear infinite reverse;}
  @keyframes spin{to{transform:rotate(360deg);}}

  .hero-content{position:relative; z-index:2; text-align:left;}
  .hero .eyebrow{justify-content:flex-start; margin-bottom:1.4rem;}
  .hero .eyebrow::after{content:""; width:22px; height:1px; background:var(--gold);}
  .hero h1{
    font-size:clamp(2.5rem, 5vw, 4.1rem); color:var(--ivory); line-height:1.08;
    text-shadow:0 0 30px rgba(255,45,120,0.25);
  }
  .hero h1 em{
    font-family:'Italianno',cursive; font-style:normal; color:var(--gold-light);
    font-size:1.3em; display:block; margin-top:0.2rem;
    text-shadow:0 0 28px rgba(255,158,203,0.55);
  }
  .hero p.tag{
    margin-top:1.4rem; font-size:1.05rem; color:rgba(255,255,255,0.92);
    max-width:460px; line-height:1.6;
  }
  .hero-cta{display:flex; gap:1rem; justify-content:flex-start; margin-top:2.4rem; flex-wrap:wrap;}

  /* ---------- bride illustration ---------- */
  .hero-art{position:relative; display:flex; align-items:center; justify-content:center; min-height:480px;}
  .hero-art-glow{
    position:absolute; width:420px; height:420px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,45,120,0.45) 0%, rgba(255,45,120,0.08) 55%, transparent 75%);
    filter:blur(8px); animation:art-pulse 4s ease-in-out infinite;
  }
  @keyframes art-pulse{0%,100%{opacity:0.7; transform:scale(0.97);} 50%{opacity:1; transform:scale(1.03);}}
  .hero-art-frame{
    position:relative; width:360px; height:480px; z-index:2;
    filter:drop-shadow(0 0 25px rgba(255,45,120,0.35));
  }
  .hero-art-frame svg{width:100%; height:100%;}
  .sparkle{
    position:absolute; color:var(--gold-light); font-size:1.1rem; opacity:0.85;
    animation:sparkle-float 3.6s ease-in-out infinite;
  }
  @keyframes sparkle-float{0%,100%{transform:translateY(0) scale(1); opacity:0.6;} 50%{transform:translateY(-10px) scale(1.2); opacity:1;}}

  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr; text-align:center;}
    .hero-content{text-align:center;}
    .hero .eyebrow{justify-content:center;}
    .hero p.tag{margin-inline:auto;}
    .hero-cta{justify-content:center;}
    .hero-art{order:-1; min-height:380px;}
    .hero-art-frame{width:280px; height:370px;}
    .hero-art-glow{width:320px; height:320px;}
  }
  .btn{
    font-family:'Jost',sans-serif; font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase;
    padding:0.95rem 2.1rem; border-radius:2px; cursor:pointer; transition:all 0.35s; border:1px solid var(--gold);
    display:inline-flex; align-items:center; gap:0.5rem;
  }
  .btn-solid{background:var(--gold); color:var(--deep);}
  .btn-solid:hover{box-shadow:0 0 35px rgba(255,45,120,0.55); transform:translateY(-2px);}
  .btn-ghost{color:var(--gold-light); background:transparent;}
  .btn-ghost:hover{background:rgba(255,45,120,0.1); box-shadow:0 0 25px rgba(255,45,120,0.2);}

  .hero-bottom-line{
    position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
    font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-dim);
    display:flex; flex-direction:column; align-items:center; gap:0.6rem;
  }
  .hero-bottom-line span{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:pulse-line 2.4s ease-in-out infinite;}
  @keyframes pulse-line{0%,100%{opacity:0.3;} 50%{opacity:1;}}

  /* ---------- section shells ---------- */
  section{position:relative; padding:7rem 0; background:var(--deep);}
  .section-head{text-align:center; max-width:620px; margin:0 auto 3.6rem;}
  .section-head h2{font-size:clamp(2rem,4vw,2.9rem); color:var(--ivory); margin-top:0.7rem;}
  .section-head p{margin-top:1rem; color:rgba(255,255,255,0.88); line-height:1.7; font-size:0.96rem;}
  .divider-motif{display:flex; align-items:center; justify-content:center; gap:0.8rem; margin:0.4rem 0;}
  .divider-motif::before, .divider-motif::after{content:""; height:1px; width:50px; background:var(--gold-dim);}
  .divider-motif i{width:7px; height:7px; border:1px solid var(--gold); border-radius:50%; display:block;}

  /* ---------- about ---------- */
  .about{background:var(--deep-2);}
  .about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:4.5rem; align-items:center;}
  .about-frame{
    position:relative; aspect-ratio:3/4; border-radius:6px;
    background:linear-gradient(160deg, #3d1f2c, #1a0e16);
    border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .about-frame::before{
    content:""; position:absolute; inset:14px; border:1px solid var(--gold-dim); border-radius:4px;
  }
  .about-frame .ph-label{
    text-align:center; color:var(--gold-dim); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
    padding:0 2rem;
  }
  .about-frame .ph-icon{font-size:2.6rem; margin-bottom:0.8rem; opacity:0.8;}
  .studio-illustration{width:100%; height:100%;}
  .studio-illustration svg{width:100%; height:100%;}
  .frame-badge{
    position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
    background:rgba(20,10,16,0.55); border:1px solid var(--gold-dim); padding:0.65rem 1.4rem;
    border-radius:30px; font-size:1rem; letter-spacing:0.1em; text-transform:uppercase;
    font-weight:600; color:#ffffff; backdrop-filter:blur(4px); white-space:nowrap;
    text-shadow:0 0 14px rgba(255,255,255,0.4);
  }
  .about-copy .eyebrow{margin-bottom:1rem;}
  .about-copy h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-bottom:1.2rem;}
  .about-copy p{color:rgba(255,255,255,0.9); line-height:1.85; margin-bottom:1rem; font-size:0.97rem;}
  .stat-row{display:flex; gap:2.2rem; margin-top:2.2rem; flex-wrap:wrap;}
  .stat-row div{border-left:1px solid var(--gold-dim); padding-left:1rem;}
  .stat-row strong{display:block; font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--gold-light);}
  .stat-row span{font-size:0.72rem; letter-spacing:0.06em; color:rgba(255,255,255,0.85); text-transform:uppercase;}

  @media (max-width:880px){.about-grid{grid-template-columns:1fr; gap:2.6rem;}}

  /* ---------- services tabs ---------- */
  .services-tabs{display:flex; flex-wrap:wrap; gap:0.7rem; justify-content:center; margin-bottom:3.2rem;}
  .tab-btn{
    font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase;
    padding:0.7rem 1.3rem; border:1px solid var(--line); border-radius:30px; color:rgba(255,255,255,0.87);
    background:transparent; cursor:pointer; transition:all 0.3s;
  }
  .tab-btn:hover{border-color:var(--gold); color:var(--gold-light);}
  .tab-btn.active{background:var(--gold); border-color:var(--gold); color:var(--deep); box-shadow:var(--shadow-glow);}

  .tab-panel{display:none;}
  .tab-panel.active{display:block; animation:fadeUp 0.5s ease;}
  @keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}

  .service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem;}
  .service-card{
    border:1px solid var(--line); padding:1.4rem 1.3rem; border-radius:4px;
    background:linear-gradient(160deg, rgba(255,45,120,0.05), transparent);
    transition:all 0.3s; position:relative;
  }
  .service-card:hover{border-color:var(--gold); transform:translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,0.35);}
  .service-card h4{font-size:1.08rem; color:var(--gold-light); margin-bottom:0.3rem; font-weight:500;}
  .service-card p{font-size:0.82rem; color:rgba(255,255,255,0.85); line-height:1.5;}
  @media (max-width:880px){.service-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.service-grid{grid-template-columns:1fr;}}

  /* ---------- packages ---------- */
  .packages{background:var(--deep-2);}
  .pkg-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
  .pkg-card{
    border:1px solid var(--line); border-radius:6px; padding:2.2rem 1.8rem;
    background:var(--deep); position:relative; overflow:hidden; transition:all 0.4s;
  }
  .pkg-card::before{
    content:""; position:absolute; top:-40%; left:-40%; width:80%; height:80%;
    background:radial-gradient(circle, rgba(255,45,120,0.18), transparent 70%);
    opacity:0; transition:opacity 0.4s;
  }
  .pkg-card:hover::before{opacity:1;}
  .pkg-card:hover{border-color:var(--gold); box-shadow:0 18px 40px rgba(0,0,0,0.4);}
  .pkg-card .pkg-tag{font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--wine-light);}
  .pkg-card h3{font-size:1.5rem; color:var(--ivory); margin:0.5rem 0 1.1rem;}
  .pkg-card ul{display:flex; flex-direction:column; gap:0.55rem;}
  .pkg-card li{font-size:0.86rem; color:rgba(255,255,255,0.9); display:flex; gap:0.6rem; align-items:flex-start;}
  .pkg-card li::before{content:"✦"; color:var(--gold); font-size:0.7rem; margin-top:0.2rem;}
  .pkg-card.featured{border-color:var(--gold); box-shadow:var(--shadow-glow);}
  .pkg-card.featured .pkg-tag{color:var(--gold);}
  @media (max-width:980px){.pkg-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:620px){.pkg-grid{grid-template-columns:1fr;}}

  /* ---------- gallery auto-scroll marquee ---------- */
  #gallery {
    padding-top: 8rem !important;
    padding-bottom: 6rem;
  }

  #gallery .section-head {
    margin-bottom: 4rem;
  }

  .gallery-marquee {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 500px;
    background: linear-gradient(135deg, rgba(58,20,35,0.5), rgba(26,14,22,0.5));
    min-height: 500px;
  }

  .marquee-track {
    display: flex;
    gap: 1.4rem;
    width: max-content;
    animation: scroll-left 180s linear infinite;
    -webkit-animation: scroll-left 180s linear infinite;
    height: 100%;
    align-items: center;
    padding: 20px 0;
  }

  @keyframes scroll-left {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(calc(-50%));
    }
  }

  @-webkit-keyframes scroll-left {
    0% {
      -webkit-transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(calc(-50%));
    }
  }

  .marquee-card {
    flex: 0 0 280px;
    min-width: 280px;
  }

  .slide-frame {
    aspect-ratio: 3/4;
    height: 380px;
    border-radius: 10px;
    border: 1px solid var(--line);
    overflow: hidden;
    background: linear-gradient(150deg, #3d1f2c, #1a0e16);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: all 0.4s ease;
  }

  .slide-frame::before {
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px solid var(--gold-dim);
    border-radius: 6px;
    opacity: 0.6;
    z-index: 2;
    pointer-events: none;
  }

  .slide-frame:hover {
    border-color: var(--gold);
    box-shadow: 0 0 30px rgba(255, 45, 120, 0.32);
  }

  .slide-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(1.04);
  }

  .slide-frame .cap {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 1.6rem 1rem 0.8rem;
    background: linear-gradient(180deg, transparent, rgba(15, 6, 11, 0.88));
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gold-light);
    text-align: center;
  }

  @media (max-width: 620px) {
    .marquee-card {
      flex: 0 0 220px;
      min-width: 220px;
    }
    .marquee-track {
      animation: scroll-left 150s linear infinite;
      -webkit-animation: scroll-left 150s linear infinite;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .marquee-track {
      animation: none;
      -webkit-animation: none;
    }
  }

  .gallery-marquee:hover .marquee-track {
    animation-play-state: paused;
    -webkit-animation-play-state: paused;
  }

  /* ---------- testimonial ---------- */
  .testi-marquee{
    position:relative; 
    overflow:hidden;
    width:100%;
  }
  
  .testi-track{
    display:flex; 
    gap:1.4rem; 
    width:max-content; 
    animation:marquee-scroll 200s linear infinite;
    animation-play-state: running;
  }

  @keyframes marquee-scroll {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(calc(-50%));
    }
  }

  @-webkit-keyframes marquee-scroll {
    0% {
      -webkit-transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(calc(-50%));
    }
  }
  
  .testi-marquee:hover .testi-track{
    animation-play-state:paused;
  }
  .testi-card{
    flex:0 0 340px; background:linear-gradient(160deg, rgba(255,45,120,0.06), transparent);
    border:1px solid var(--line); border-radius:8px; padding:1.9rem 1.8rem; transition:all 0.3s;
  }
  .testi-card:hover{border-color:var(--gold); box-shadow:0 12px 30px rgba(0,0,0,0.35); transform:translateY(-4px);}
  .testi-card .stars{color:var(--gold); font-size:0.8rem; letter-spacing:0.2em; margin-bottom:0.9rem;}
  .testi-card p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.05rem; line-height:1.65; color:var(--ivory); margin-bottom:1.3rem; min-height:6.6rem;}
  .testi-card .who{font-size:0.78rem; letter-spacing:0.04em; color:rgba(255,255,255,0.7);}
  .testi-card .who strong{display:block; font-family:'Jost',sans-serif; font-size:0.92rem; font-weight:600; color:var(--gold-light); margin-bottom:0.15rem; letter-spacing:0.02em;}
  @media (max-width:620px){
    .testi-card{flex:0 0 270px;}
    .testi-track{animation-duration:160s;}
  }
  @media (prefers-reduced-motion: reduce){
    .testi-track{animation:none;}
  }

  /* ---------- contact ---------- */
  .contact{background:var(--deep-2);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start;}
  .info-row{display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.7rem;}
  .info-row .ic{width:38px; height:38px; border:1px solid var(--gold-dim); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold-light); font-size:0.95rem;}
  .info-row h4{font-size:1rem; color:var(--ivory); margin-bottom:0.2rem; font-weight:500; font-family:'Jost',sans-serif;}
  .info-row p, .info-row a{font-size:0.88rem; color:rgba(255,255,255,0.88);}
  .form-card{background:var(--deep); border:1px solid var(--line); border-radius:6px; padding:2.4rem;}
  .form-card input, .form-card select, .form-card textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
    color:var(--ivory); padding:0.7rem 0; margin-bottom:1.3rem; font-family:'Jost',sans-serif; font-size:0.9rem;
  }
  .form-card label{font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim); display:block; margin-bottom:0.3rem;}
  .form-card input:focus, .form-card select:focus, .form-card textarea:focus{outline:none; border-color:var(--gold);}
  .form-card textarea{resize:vertical; min-height:70px;}
  .form-card .btn{width:100%; justify-content:center; margin-top:0.4rem;}

  @media (max-width:880px){.contact-grid{grid-template-columns:1fr;}}

  /* ---------- footer ---------- */
  footer{padding:3rem 0 2rem; text-align:center; border-top:1px solid var(--line);}
  footer .logo{justify-content:center; display:inline-flex; flex-direction:column;}
  .foot-links{display:flex; gap:1.8rem; justify-content:center; margin:1.6rem 0; flex-wrap:wrap; font-size:0.78rem;}
  .foot-links a{color:rgba(255,255,255,0.87); transition:color 0.25s;}
  .foot-links a:hover{color:var(--gold-light);}
  .social-row{display:flex; gap:0.9rem; justify-content:center; margin-bottom:1.8rem;}
  .social-btn{
    width:42px; height:42px; border-radius:50%; border:1px solid var(--gold-dim);
    display:flex; align-items:center; justify-content:center; color:var(--gold-light);
    transition:all 0.3s;
  }
  .social-btn:hover{
    background:var(--gold); color:var(--deep); border-color:var(--gold);
    box-shadow:0 0 22px rgba(255,45,120,0.5); transform:translateY(-3px);
  }
  footer .copy{font-size:0.7rem; color:rgba(255,255,255,0.7); letter-spacing:0.04em;}

  /* ---------- floating whatsapp ---------- */
  .wa-float{
    position:fixed; bottom:1.8rem; right:1.8rem; z-index:90;
    background:var(--gold); color:var(--deep); width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; font-size:1.5rem;
    box-shadow:0 0 0 0 rgba(255,45,120,0.6); animation:wa-pulse 2.6s infinite;
  }
  @keyframes wa-pulse{
    0%{box-shadow:0 0 0 0 rgba(255,45,120,0.55);}
    70%{box-shadow:0 0 0 16px rgba(255,45,120,0);}
    100%{box-shadow:0 0 0 0 rgba(255,45,120,0);}
  }

  /* ---------- floating music toggle ---------- */
  .music-float{
    position:fixed; bottom:1.8rem; left:1.8rem; z-index:90;
    background:rgba(20,10,16,0.75); border:1.5px solid var(--gold); color:var(--gold-light);
    width:52px; height:52px; border-radius:50%; cursor:pointer;
    display:flex; align-items:center; justify-content:center; font-size:1.25rem;
    backdrop-filter:blur(6px); transition:all 0.3s;
  }
  .music-float:hover{background:var(--gold); color:var(--deep); box-shadow:var(--shadow-glow);}
  .music-float .bars{display:flex; align-items:center; gap:2.5px; height:16px;}
  .music-float .bars span{width:3px; background:currentColor; border-radius:2px; display:block;}
  .music-float .bars span:nth-child(1){height:6px;}
  .music-float .bars span:nth-child(2){height:14px;}
  .music-float .bars span:nth-child(3){height:9px;}
  .music-float.playing .bars span{animation:music-bounce 0.9s ease-in-out infinite;}
  .music-float.playing .bars span:nth-child(1){animation-delay:-0.6s;}
  .music-float.playing .bars span:nth-child(2){animation-delay:-0.3s;}
  .music-float.playing .bars span:nth-child(3){animation-delay:0s;}
  @keyframes music-bounce{0%,100%{transform:scaleY(0.5);} 50%{transform:scaleY(1.3);}}