 :root{
    --gold:#cbab04;
    --steel:#4682b4;
    --cream:#f2ebe1;
    --navy:#213c53;
    --steel-tint:#eaf1f7;
    --gold-tint:#faf3d9;
    --white:#ffffff;
  }

  *{box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    font-family:'Inter', sans-serif;
    color:var(--navy);
    background:var(--cream);
    overflow-x:hidden;
  }

  h1,h2,h3,h4,.font-display{
    font-family:'Poppins', sans-serif;
    color:var(--navy);
    font-weight:700;
  }

  .signature{
    font-family:'Playwrite GB S', cursive;
    font-weight:400;
  }

  .eyebrow{
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--steel);
    font-weight:600;
  }

  a{ color:var(--steel); }

  /* ---------- NAV ---------- */
  .navbar{
    background:rgba(242,235,225,0.92);
    backdrop-filter:blur(8px);
    padding-top:.85rem;
    padding-bottom:.85rem;
    transition:box-shadow .3s ease;
  }
  .navbar.scrolled{ box-shadow:0 4px 24px rgba(33,60,83,0.08); }
  .navbar-brand{
    display:flex;
    align-items:center;
    gap:.6rem;
    font-family:'Poppins',sans-serif;
    font-weight:700;
    color:var(--navy) !important;
    font-size:1.05rem;
  }
  .navbar-brand img{ height:42px; width:42px; }
  .nav-link{
    font-family:'Poppins',sans-serif;
    font-weight:500;
    font-size:.92rem;
    color:var(--navy) !important;
    margin:0 .5rem;
    position:relative;
  }
  .nav-link::after{
    content:'';
    position:absolute;
    left:0; bottom:2px;
    width:0; height:2px;
    background:var(--gold);
    transition:width .25s ease;
  }
  .nav-link:hover::after{ width:100%; }
  .btn-nav-cta{
    background:var(--steel);
    color:var(--white) !important;
    border-radius:30px;
    padding:.5rem 1.4rem;
    font-family:'Poppins',sans-serif;
    font-weight:600;
    font-size:.88rem;
    border:none;
  }
  .btn-nav-cta:hover{ background:var(--navy); color:var(--white) !important; }

  /* ---------- DECORATIVE ARCS ---------- */
  .arc{
    position:absolute;
    border-radius:50%;
    z-index:0;
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding:8.5rem 0 6rem;
    overflow:hidden;
    background:var(--cream);
  }
  .hero .arc-gold{
    width:640px; height:640px;
    top:-320px; right:-220px;
    background:var(--gold);
    opacity:.85;
  }
  .hero .arc-steel{
    width:260px; height:260px;
    bottom:-120px; left:-90px;
    background:var(--steel);
    opacity:.14;
  }
  .hero-content{ position:relative; z-index:2; }
  .hero-eyebrow{
    font-family:'Poppins',sans-serif;
    letter-spacing:.24em;
    text-transform:uppercase;
    font-size:.8rem;
    color:var(--steel);
    font-weight:600;
    margin-bottom:1rem;
  }
  .hero-name{
    font-family:'Playwrite GB S', cursive;
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    color:var(--navy);
    line-height:1.05;
    margin-bottom:.4rem;
  }
  .hero-tagline{
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:clamp(1.3rem, 2.6vw, 1.9rem);
    color:var(--steel);
    line-height:1.3;
    margin-bottom:1.3rem;
  }
  .hero-sub{
    font-size:1.05rem;
    max-width:520px;
    color:#3d5266;
    margin-bottom:2.1rem;
  }
  .btn-gold{
    background:var(--gold);
    color:var(--navy);
    border:none;
    border-radius:30px;
    padding:.75rem 1.9rem;
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:.95rem;
    box-shadow:0 8px 20px rgba(203,171,4,0.35);
  }
  .btn-gold:hover{ background:#b89804; color:var(--navy); transform:translateY(-2px); }
  .btn-outline-steel{
    border:2px solid var(--steel);
    color:var(--steel);
    border-radius:30px;
    padding:.7rem 1.8rem;
    font-family:'Poppins',sans-serif;
    font-weight:600;
    font-size:.95rem;
    background:transparent;
  }
  .btn-outline-steel:hover{ background:var(--steel); color:var(--white); }

  .hero-badge{
    position:absolute;
    z-index:3;
    background:var(--white);
    border-radius:16px;
    padding:.9rem 1.2rem;
    box-shadow:0 12px 30px rgba(33,60,83,0.15);
    font-family:'Poppins',sans-serif;
  }
  .hero-visual{ position:relative; }
  .hero-ring{
    position:absolute;
    border:2px solid var(--gold);
    border-radius:50%;
    z-index:1;
  }
  .hero-photo-wrap{
    position:relative;
    z-index:2;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 25px 50px rgba(33,60,83,0.25);
  }
  .hero-photo-wrap img{ width:100%; display:block; }

  /* ---------- SECTION GENERAL ---------- */
  section{ position:relative; }
  .section-pad{ padding:5.5rem 0; }
  .section-title{
    font-size:clamp(1.8rem, 3.2vw, 2.5rem);
    margin-bottom:.6rem;
  }
  .section-intro{ max-width:620px; color:#3d5266; }

  .bg-white-section{ background:var(--white); }
  .bg-navy-section{ background:var(--navy); color:var(--cream); }
  .bg-navy-section .section-title{ color:var(--white); }
  .bg-navy-section .section-intro{ color:#c9d5df; }

  /* ---------- ABOUT ---------- */
  .about-photo{
    width:80%;
    margin:0 auto;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 20px 45px rgba(33,60,83,0.18);
    position:relative;
  }
  .about-photo img{ width:100%; display:block; }

  .principle-card{
    background:var(--steel-tint);
    border-left:4px solid var(--steel);
    border-radius:10px;
    padding:1.1rem 1.3rem;
    margin-top:1.6rem;
  }
  .principle-card i{ color:var(--steel); }

  .about-tag{
    display:inline-block;
    background:var(--gold-tint);
    color:var(--navy);
    border-radius:20px;
    padding:.35rem .95rem;
    font-size:.82rem;
    font-weight:600;
    font-family:'Poppins',sans-serif;
    margin:.2rem .3rem .2rem 0;
  }

  /* ---------- SKILLS ---------- */
  .skill-card{
    background:var(--white);
    border-radius:16px;
    padding:1.7rem 1.4rem;
    height:100%;
    box-shadow:0 6px 20px rgba(33,60,83,0.06);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .skill-card:hover{ transform:translateY(-6px); box-shadow:0 18px 34px rgba(33,60,83,0.14); }
  .skill-icon{
    width:52px; height:52px;
    border-radius:14px;
    background:var(--steel-tint);
    display:flex; align-items:center; justify-content:center;
    color:var(--steel);
    font-size:1.4rem;
    margin-bottom:1rem;
  }
  .skill-card h4{ font-size:1.02rem; margin-bottom:.4rem; }
  .skill-card p{ font-size:.87rem; color:#5a6b7a; margin:0; }

  /* ---------- PRICING TOGGLE ---------- */
  .toggle-wrap{
    display:inline-flex;
    align-items:center;
    gap:.9rem;
    background:var(--white);
    border-radius:40px;
    padding:.5rem .6rem;
    box-shadow:0 8px 22px rgba(33,60,83,0.08);
  }
  .toggle-label{
    font-family:'Poppins',sans-serif;
    font-weight:600;
    font-size:.88rem;
    color:#8fa0af;
    padding:.35rem .5rem;
    transition:color .2s ease;
  }
  .toggle-label.active{ color:var(--navy); }
  .switch{
    position:relative;
    width:56px; height:30px;
    background:var(--steel);
    border-radius:30px;
    cursor:pointer;
    border:none;
    flex-shrink:0;
  }
  .switch::after{
    content:'';
    position:absolute;
    top:3px; left:3px;
    width:24px; height:24px;
    border-radius:50%;
    background:var(--white);
    transition:left .25s ease;
  }
  .switch.on::after{ left:29px; }
  .save-pill{
    background:var(--gold-tint);
    color:#8a7203;
    font-size:.72rem;
    font-weight:700;
    border-radius:20px;
    padding:.2rem .65rem;
    font-family:'Poppins',sans-serif;
  }

  .price-card{
    background:var(--white);
    border-radius:22px;
    padding:2.2rem 1.9rem;
    height:100%;
    box-shadow:0 10px 28px rgba(33,60,83,0.08);
    border:1px solid rgba(33,60,83,0.06);
    position:relative;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .price-card:hover{ transform:translateY(-8px); box-shadow:0 22px 40px rgba(33,60,83,0.14); }
  .price-card.featured{
    background:var(--navy);
    color:var(--cream);
    transform:scale(1.03);
  }
  .price-card.featured:hover{ transform:scale(1.03) translateY(-8px); }
  .price-card.featured h3, .price-card.featured .price-hours{ color:var(--white); }
  .price-card.featured .price-list li{ color:#d7e0e8; }
  .price-card.featured .price-list i{ color:var(--gold); }
  .featured-badge{
    position:absolute;
    top:-14px; right:1.6rem;
    background:var(--gold);
    color:var(--navy);
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:.72rem;
    letter-spacing:.05em;
    text-transform:uppercase;
    border-radius:20px;
    padding:.35rem .9rem;
  }
  .price-hours{
    font-size:.82rem;
    color:#8fa0af;
    font-family:'Poppins',sans-serif;
    font-weight:600;
    margin-bottom:.3rem;
  }
  .price-value{
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:2.5rem;
    line-height:1;
    transition:opacity .15s ease;
  }
  .price-value sup{ font-size:1.1rem; font-weight:600; }
  .price-per{
    font-size:.85rem;
    color:#8fa0af;
    margin-bottom:1.5rem;
    display:block;
  }
  .price-card.featured .price-per{ color:#a9bac8; }
  .price-list{
    list-style:none;
    padding:0;
    margin:0 0 1.8rem;
  }
  .price-list li{
    font-size:.92rem;
    padding:.4rem 0;
    color:#3d5266;
    display:flex;
    gap:.6rem;
    align-items:flex-start;
  }
  .price-list i{ color:var(--steel); margin-top:.2rem; }
  .price-list .opt{ font-style:italic; color:#8fa0af; }

  /* ---------- OTHER SERVICES ---------- */
  .other-service{
    background:var(--white);
    border-radius:16px;
    padding:1.5rem 1.6rem;
    height:100%;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    box-shadow:0 6px 18px rgba(33,60,83,0.06);
  }
  .other-service h4{ font-size:1rem; margin-bottom:.35rem; }
  .other-service p{ font-size:.85rem; color:#5a6b7a; margin:0; }
  .other-price{
    font-family:'Poppins',sans-serif;
    font-weight:700;
    color:var(--gold);
    background:var(--navy);
    border-radius:12px;
    padding:.4rem .8rem;
    font-size:.85rem;
    white-space:nowrap;
  }

  .welcome-banner{
    background:var(--gold);
    border-radius:24px;
    padding:2.4rem 2.2rem;
    color:var(--navy);
    position:relative;
    overflow:hidden;
  }
  .welcome-banner i.bi-stars{ font-size:1.6rem; }

  /* ---------- ZONE / CONDITIONS ---------- */
  .zone-card{
    background:var(--steel-tint);
    border-radius:16px;
    padding:1.4rem 1.5rem;
    height:100%;
  }
  .zone-card i{ color:var(--steel); font-size:1.3rem; }
  .zone-card h4{ font-size:.95rem; margin:.6rem 0 .3rem; }
  .zone-card p{ font-size:.85rem; color:#3d5266; margin:0; }

  /* ---------- CONTACT ---------- */
  .contact-card{
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.12);
    border-radius:16px;
    padding:1.5rem;
    height:100%;
    color:var(--cream);
    text-decoration:none;
    display:block;
    transition:background .2s ease, transform .2s ease;
  }
  .contact-card:hover{ background:rgba(255,255,255,0.12); transform:translateY(-4px); color:var(--white); }
  .contact-card i{ color:var(--gold); font-size:1.5rem; margin-bottom:.7rem; display:block; }
  .contact-card .lbl{ font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:#a9bac8; font-family:'Poppins',sans-serif; }
  .contact-card .val{ font-family:'Poppins',sans-serif; font-weight:600; font-size:1.02rem; }

  /* ---------- FOOTER ---------- */
  footer{
    background:#152838;
    color:#8fa0af;
    padding:2.6rem 0;
    font-size:.85rem;
  }
  footer img{ height:34px; width:34px; }
  footer .footer-brand{
    font-family:'Playwrite GB S', cursive;
    color:var(--cream);
    font-size:1.2rem;
  }
  .footer-legal-links{
    padding-top:1.4rem;
    margin-top:1.4rem;
    border-top:1px solid rgba(255,255,255,0.08);
    font-size:.8rem;
  }
  .footer-legal-links a{
    color:#8fa0af;
    text-decoration:none;
    font-family:'Poppins',sans-serif;
    font-weight:500;
  }
  .footer-legal-links a:hover{ color:var(--gold); }

  /* ---------- MODALES LEGALES ---------- */
  .legal-modal .modal-content{
    border-radius:18px;
    border:none;
    background:var(--white);
  }
  .legal-modal .modal-header{
    border-bottom:1px solid rgba(33,60,83,0.08);
    padding:1.5rem 1.8rem;
  }
  .legal-modal .modal-title{
    font-size:1.5rem;
    color:var(--navy);
  }
  .legal-modal .modal-body{
    padding:1.6rem 1.8rem 2rem;
    color:#3d5266;
    font-size:.92rem;
    line-height:1.65;
  }
  .legal-modal h4{
    font-size:.98rem;
    color:var(--steel);
    margin-top:1.5rem;
    margin-bottom:.5rem;
  }
  .legal-modal h4:first-of-type{ margin-top:.5rem; }
  .legal-modal .placeholder-note{
    background:var(--gold-tint);
    border-radius:10px;
    padding:.8rem 1rem;
    font-size:.83rem;
    color:#7a6703;
    margin-bottom:1.2rem;
  }
  .legal-modal .tbd{
    background:#fdecc8;
    color:#8a5a00;
    padding:.05rem .4rem;
    border-radius:5px;
    font-weight:600;
    font-style:normal;
  }

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.visible{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    html{ scroll-behavior:auto; }
  }

  @media (max-width:991.98px){
    .hero{ padding:7rem 0 4rem; text-align:center; }
    .hero-sub{ margin-left:auto; margin-right:auto; }
    .hero-visual{ margin-top:3rem; max-width:420px; margin-left:auto; margin-right:auto; }
    .price-card.featured{ transform:scale(1); margin-top:1.5rem; margin-bottom:1.5rem; }
    .price-card.featured:hover{ transform:translateY(-8px); }
  }

  @media (max-width:575.98px){
    .section-pad{ padding:3.8rem 0; }
    .hero-badge{ display:none; }
    .toggle-wrap{ flex-wrap:wrap; justify-content:center; }
  }
