  :root{
    color-scheme: only light;
    --cream:#FBF6EF; --ink:#2D2B28; --ink-soft:#57534C;
    --blush:#D9A78C; --blush-line:#E4BFA8;
    --clay:#A15C38; --clay-dark:#8C4E2E;
    --lavender:#E4E1F1; --rose:#F3DFDD; --sage:#DDE8E4;
    --dark:#2B2926; --paper:#F0EDE6; --maxw:1060px;
  }

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;background:#FBF6EF !important}
  body{
    background:#FBF6EF !important;
    color:var(--ink);
    font-family:'EB Garamond',Georgia,serif;
    font-size:1.2rem;line-height:1.55;
  }
  main{background:var(--cream)}
  section{background:var(--cream);padding:3rem 0}
  @media(min-width:760px){section{padding:4rem 0}}

  body.lang-es .en{display:none}
  body.lang-en .es{display:none}

  .disp{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:400;line-height:1.25}
  h1{font-size:clamp(1.7rem,5.5vw,2.8rem)}
  h2{font-size:clamp(1.3rem,4vw,1.9rem)}
  h3{font-size:clamp(1.02rem,3vw,1.3rem)}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
  a{color:inherit}

  /* ---------- Header (sticky) ---------- */
  header{border-bottom:1px solid var(--blush-line);background:var(--cream);position:sticky;top:0;z-index:20}
  .nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;max-width:var(--maxw);margin:0 auto;background:var(--cream)}
  .brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
  .brand .mark{width:44px;height:44px;border:1px solid var(--clay);border-radius:50%;display:grid;place-items:center;font-size:1.15rem;color:var(--clay);font-family:'EB Garamond',serif;font-style:italic;flex:none;background:var(--cream)}
  .brand span.name{font-size:.82rem;letter-spacing:.18em;text-align:left}
  .nav-right{display:flex;align-items:center;gap:1.2rem}
  .nav-links{display:flex;gap:1.5rem;list-style:none}
  .nav-links a{text-decoration:none;font-family:'Julius Sans One',sans-serif;text-transform:uppercase;font-size:.72rem;letter-spacing:.16em;padding-bottom:.2rem;border-bottom:1px solid transparent}
  .nav-links a:hover,.nav-links a:focus-visible{border-bottom-color:var(--clay)}
  .nav-links a[aria-current="page"]{border-bottom-color:var(--clay)}

  .lang-toggle{display:flex;border:1px solid var(--clay);border-radius:4px;overflow:hidden;flex:none;background:var(--cream)}
  .lang-toggle button{font-family:'Julius Sans One',sans-serif;font-size:.72rem;letter-spacing:.12em;padding:.5rem .8rem;background:var(--cream);border:none;cursor:pointer;color:var(--ink)}
  .lang-toggle button[aria-pressed="true"]{background:var(--clay);color:#fff}

  .menu-btn{display:none;flex:none;width:44px;height:44px;background:var(--cream);border:1px solid var(--clay);border-radius:4px;cursor:pointer;place-items:center}
  .menu-btn span{display:block;width:20px;height:2px;background:var(--ink);position:relative}
  .menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink)}
  .menu-btn span::before{top:-6px}
  .menu-btn span::after{top:6px}

  @media(max-width:759px){
    .menu-btn{display:grid}
    .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--blush-line);flex-direction:column;gap:0;padding:.5rem 0}
    .nav-links.open{display:flex}
    .nav-links a{display:block;padding:1rem 1.5rem;border-bottom:none;font-size:.8rem}
    .nav-links a:hover,.nav-links a:focus-visible{background:var(--rose)}
  }

  /* ---------- Buttons ---------- */
  .btn{display:inline-block;font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;text-decoration:none;padding:.85rem 1.6rem;border-radius:4px;transition:background .2s,color .2s;cursor:pointer;border:none}
  .btn-solid{background:var(--clay);color:#fff;border:1px solid var(--clay)}
  .btn-solid:hover,.btn-solid:focus-visible{background:var(--clay-dark);color:#fff}
  .btn-outline{border:1px solid var(--clay);color:var(--ink);background:var(--cream)}
  .btn-outline:hover,.btn-outline:focus-visible{background:var(--clay);color:#fff}

  /* ---------- Shared ---------- */
  .kicker{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;color:var(--clay);display:block;margin-bottom:1.2rem}

  .ph{position:relative;border-radius:14px;overflow:hidden;display:grid;place-items:center;color:#6B6258;font-size:.85rem;font-style:italic;text-align:center;padding:1rem;min-height:280px}
  .ph::after{content:attr(data-label)}
  .ph-hero{background:linear-gradient(160deg,#EAD9CE,#D9C3B8 55%,#CBB2A6);min-height:340px;border-radius:16px}
  .ph-photo{background:linear-gradient(150deg,#D8D2C8,#C4BCB0);min-height:300px}

  .ribbon{border-top:1px solid var(--blush-line);border-bottom:1px solid var(--blush-line);overflow:hidden;padding:.85rem 0;background:var(--cream)}
  .ribbon-track{display:flex;gap:3rem;width:max-content;animation:slide 28s linear infinite}
  .ribbon-track span{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--clay);white-space:nowrap}
  @keyframes slide{to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion:reduce){
    .ribbon-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
    html{scroll-behavior:auto}
  }

  /* ---------- Hero ---------- */
  .hero{text-align:center;padding-top:3.5rem}
  .hero h1{margin-bottom:.9rem}
  .hero .sub{font-size:clamp(1.1rem,3.2vw,1.5rem);margin-bottom:1.4rem}
  .hero p.lede{max-width:34rem;margin:0 auto 1.8rem;color:var(--ink-soft)}
  .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.4rem}

  /* ---------- Services strip ---------- */
  .services h2{margin-bottom:.6rem}
  .services .section-lede{color:var(--ink-soft);max-width:36rem;margin-bottom:2.2rem}
  .cards{display:grid;gap:1.4rem}
  @media(min-width:760px){.cards{grid-template-columns:repeat(3,1fr)}}
  .card{border-radius:16px;padding:2rem 1.6rem;display:flex;flex-direction:column;gap:1rem}
  .card.lavender{background:var(--lavender)}
  .card.rose{background:var(--rose)}
  .card.sage{background:var(--sage)}
  .card p{color:var(--ink-soft);flex:1}
  .card .btn{align-self:flex-start}
  .services .more{margin-top:2rem;text-align:center}

  /* ---------- Oficio ---------- */
  .craft{background:var(--dark) !important;color:#F3EFE8}
  .craft h2{margin-bottom:1.4rem}
  .craft p{color:#D9D3C9;max-width:40rem}
  .stat{margin:2.6rem 0;text-align:center}
  .stat .num{font-family:'Julius Sans One',sans-serif;font-size:clamp(2.1rem,7vw,3.6rem);color:var(--blush);letter-spacing:.08em}
  .stat .lbl{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;margin-top:.4rem}
  .gallery{display:grid;gap:1.4rem;margin-top:2rem}
  @media(min-width:760px){.gallery{grid-template-columns:1fr 1fr}}

  /* ---------- Reviews ---------- */
  .reviews h2{margin-bottom:2rem}
  .review-grid{display:grid;gap:1.4rem}
  @media(min-width:760px){.review-grid{grid-template-columns:repeat(3,1fr)}}
  .review{background:var(--paper);border:1px solid var(--ink);padding:1.8rem 1.5rem;display:flex;flex-direction:column;gap:1.2rem}
  .review blockquote{font-style:italic;color:var(--ink-soft);flex:1}
  .review cite{font-style:normal;font-weight:500}

  /* ---------- Contact ---------- */
  #contacto{scroll-margin-top:96px}
  .vision h2{margin-bottom:1rem}
  .vision .lede{color:var(--ink-soft);max-width:38rem;margin-bottom:2.2rem}
  .contact-grid{display:grid;gap:2.5rem}
  @media(min-width:760px){.contact-grid{grid-template-columns:1fr 1fr}}

  form{display:flex;flex-direction:column;gap:1.6rem;max-width:34rem}
  label{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;display:block;margin-bottom:.5rem}
  input,textarea{width:100%;background:var(--cream);border:none;border-bottom:1px solid var(--blush-line);font-family:'EB Garamond',serif;font-size:1.15rem;color:var(--ink);padding:.4rem 0}
  input:focus-visible,textarea:focus-visible{outline:none;border-bottom-color:var(--ink)}
  textarea{min-height:6.5rem;resize:vertical}

  /* ---------- Footer ---------- */
  footer{background:var(--cream);border-top:1px solid var(--blush-line);padding:3rem 0 2rem}
  .foot-grid{display:grid;gap:2rem}
  @media(min-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}
  footer h3{margin-bottom:.9rem;font-size:1rem}
  footer a{text-decoration:none}
  footer .tel{text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--clay)}
  .fineprint{margin-top:2.2rem;text-align:center;color:var(--ink-soft);font-size:.95rem}

  /* ---------- Sticky mobile CTA ---------- */
  .cta-bar{display:none}
  @media(max-width:759px){
    body{padding-bottom:64px}
    .cta-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:30;border-top:1px solid var(--blush-line)}
    .cta-bar a{display:grid;place-items:center;height:60px;text-decoration:none;font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem}
    .cta-bar .call{background:var(--cream);color:var(--ink)}
    .cta-bar .book{background:var(--clay);color:#fff}
  }

  :focus-visible{outline:2px solid var(--clay);outline-offset:3px}
  input:focus-visible,textarea:focus-visible{outline:none}

  /* ---------- Page headers (servicios / novias) ---------- */
  .page-head{text-align:center;padding-top:3.5rem;padding-bottom:1rem;background:var(--cream)}
  .page-head p{max-width:34rem;margin:1.2rem auto 0;color:var(--ink-soft)}

  /* ---------- Servicios ---------- */
  .tier{border-radius:18px;padding:2.4rem 1.6rem;margin-bottom:1.8rem}
  @media(min-width:760px){.tier{padding:3rem 2.4rem}}
  .tier.lavender{background:var(--lavender)}
  .tier.rose{background:var(--rose)}
  .tier.sage{background:var(--sage)}
  .tier > .tier-label{font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;color:var(--clay);display:block;margin-bottom:1.6rem}
  .svc{padding:1.4rem 0;border-top:1px solid rgba(45,43,40,.18)}
  .svc:first-of-type{border-top:none;padding-top:0}
  .svc h3{margin-bottom:.5rem;font-size:clamp(1.3rem,3.8vw,1.7rem)}
  .svc p,.svc li{color:var(--ink-soft)}
  .svc ul{list-style:none;margin-top:.4rem}
  .svc li{padding-left:1.1rem;position:relative;margin-bottom:.4rem}
  .svc li::before{content:"\00B7";position:absolute;left:0;color:var(--clay);font-weight:700}
  .price{display:inline-block;margin-top:.6rem;font-family:'Julius Sans One',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--clay)}
  .rush-note{border:1px solid var(--clay);border-radius:18px;padding:2rem 1.6rem;text-align:center;background:var(--paper)}
  .rush-note h3{margin-bottom:.6rem}
  .rush-note p{color:var(--ink-soft);max-width:36rem;margin:0 auto}
  .rush-note a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--clay);white-space:nowrap}
  .cta-final{text-align:center}
  .cta-final .btn{margin:.4rem}

  /* ---------- Novias ---------- */
  .g-grid{display:grid;gap:1.4rem}
  @media(min-width:640px){.g-grid{grid-template-columns:1fr 1fr}}
  figure.shot{margin:0;display:flex;flex-direction:column;gap:.7rem}
  figcaption{color:var(--ink-soft);font-size:1.05rem;font-style:italic}
  .shot.wide{grid-column:1/-1}
  .shot .ph{min-height:320px}
  .shot.wide .ph{min-height:280px}
  @media(min-width:640px){.shot.wide .ph{min-height:380px}}
  .ph-a{background:linear-gradient(150deg,#EFE6DA,#DECDBC)}
  .ph-b{background:linear-gradient(150deg,#E9E2EF,#D4C8E0)}
  .ph-c{background:linear-gradient(150deg,#EFDDD8,#E0C4BD)}
  .ph-d{background:linear-gradient(150deg,#DFE8E2,#C6D4CB)}
  .quince-note{background:var(--rose);border-radius:18px;padding:2.4rem 1.6rem;margin-top:2.4rem;text-align:center}
  @media(min-width:760px){.quince-note{padding:3rem 2.4rem}}
  .quince-note h2{margin-bottom:1rem}
  .quince-note p{color:var(--ink-soft);max-width:36rem;margin:0 auto 1.6rem}
  .quince-note .btn{margin:.3rem}
