:root{
  --paper:#fcfaf6;
  --ivory:#f8f2e8;
  --cream:#efe3d2;
  --champagne:#e5ceb0;
  --silk:#fffdfa;
  --gold:#b58a4b;
  --gold2:#d6b779;
  --heading:#675342;
  --text:#544a40;
  --muted:#857a6d;
  --line:rgba(103,83,66,.15);
  --shadow:0 28px 80px rgba(123,90,48,.09);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
  --numerals:"Manrope",Arial,sans-serif;
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
body{
  margin:0;
  width:100%;
  max-width:100%;
  min-width:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  overflow-x:hidden;
}
main,section,header,footer,nav,div,article,aside,form,figure{
  min-width:0;
  max-width:100%;
}
img,svg,video,iframe{
  max-width:100%;
  height:auto;
}
body.locked{overflow:hidden}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
img{display:block;max-width:100%}
.noise{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.header{position:absolute;left:0;right:0;top:0;z-index:20;height:96px;padding:0 clamp(22px,5vw,80px);display:flex;align-items:center;justify-content:space-between}
.brand,.footer-brand{display:flex;align-items:center;gap:14px}
.brand>img,.footer-brand>img{width:50px;height:50px;object-fit:contain}
.brand-copy,.footer-brand div{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong,.footer-brand strong{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--heading)}
.brand-copy small,.footer-brand small{font-size:8px;text-transform:uppercase;letter-spacing:.17em;color:var(--muted);margin-top:6px}
.nav{display:flex;gap:28px;align-items:center;font-size:11px}
.nav a:not(.nav-cta){position:relative}
.nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--gold);transition:.3s}
.nav a:hover::after{right:0}
.nav-cta{border:1px solid rgba(181,138,75,.65);padding:12px 20px;border-radius:100px;color:var(--heading);transition:.3s;background:rgba(255,255,255,.42);backdrop-filter:blur(10px)}
.nav-cta:hover{background:var(--gold);color:#fff}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;position:relative;z-index:31}
.menu-toggle span{position:absolute;left:10px;width:24px;height:1px;background:var(--heading);transition:.3s}
.menu-toggle span:first-child{top:18px}.menu-toggle span:last-child{top:26px}

.hero-layout,
.welcome,
.about-shell,
.section-header,
.service-cards,
.packages,
.specialty-grid,
.reservation-shell,
.payment-grid,
.contact-shell,
.credential-grid,
.field-row,
.hero-signals{
  width:100%;
  max-width:100%;
}

.hero{min-height:100vh;position:relative;padding:145px clamp(22px,5vw,80px) 0;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.95),transparent 24%),linear-gradient(135deg,#fffefa 0%,#f7efe5 52%,#ead7bc 100%);overflow:hidden}
.hero-orbit{position:absolute;border:1px solid rgba(181,138,75,.16);border-radius:50%}
.orbit-a{width:720px;height:720px;left:-360px;top:-330px}
.orbit-b{width:430px;height:430px;right:-180px;bottom:30px}
.hero-layout{min-height:calc(100vh - 214px);display:grid;grid-template-columns:1.06fr .94fr;gap:7vw;align-items:center;position:relative;z-index:2}
.hero-label{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.hero-label span{width:45px;height:1px;background:var(--gold)}
.hero-label p,.overline{font-size:9px;text-transform:uppercase;letter-spacing:.25em;color:var(--gold);font-weight:600;margin:0}

.hero h1,
.welcome h2,
.about h2,
.section-header h2,
.reservation h2,
.contact h2,
.service-card h3,
.specialty-grid h3,
.packages-copy h3,
.about-lead,
.profile-lead{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
p,span,strong,a,small,summary,h1,h2,h3{
  overflow-wrap:anywhere;
}

.hero h1,.welcome h2,.about h2,.section-header h2,.reservation h2,.contact h2{font-family:var(--serif);font-weight:600;letter-spacing:-.025em;line-height:.98;margin:0;color:var(--heading)}
.hero h1{font-size:clamp(66px,7.6vw,118px);max-width:900px}
.hero h1 em{display:block;font-weight:500;color:var(--gold);font-style:italic}
.hero-text{max-width:690px;color:var(--text);font-size:clamp(16px,1.35vw,20px);line-height:1.82;margin:34px 0 14px}
.hero-subtext{max-width:650px;color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 30px}
.hero-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border:0;border-radius:100px;padding:17px 22px 17px 28px;font-size:11px;font-weight:600;cursor:pointer;transition:.3s}
.btn:hover{transform:translateY(-3px)}
.btn span{font-size:18px}
.btn-gold{background:linear-gradient(135deg,var(--gold),#caa66a);color:#fff;box-shadow:0 14px 34px rgba(181,138,75,.18)}
.elegant-link{display:inline-flex;gap:12px;padding-bottom:5px;border-bottom:1px solid var(--line);font-size:11px;color:var(--heading)}
.elegant-link span{color:var(--gold)}
.elegant-link.gold{color:var(--gold);border-color:rgba(181,138,75,.35);margin-top:18px}
.hero-signals{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:54px;padding-top:24px;border-top:1px solid var(--line);max-width:680px}
.hero-signals article{display:flex;gap:14px;align-items:flex-start}
.hero-signals article>span{font-family:var(--serif);font-size:30px;color:var(--gold);line-height:1}
.hero-signals div{display:flex;flex-direction:column}
.hero-signals strong{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--heading)}
.hero-signals small{font-size:10px;color:var(--muted);margin-top:5px}
.hero-visual{max-width:600px;margin-left:auto;position:relative}
.portrait-outline{position:absolute;inset:-22px;border:1px solid rgba(181,138,75,.35);border-radius:320px 320px 32px 32px}
.portrait-wrap{margin:0;position:relative;aspect-ratio:4/5;border-radius:300px 300px 26px 26px;overflow:hidden;box-shadow:0 38px 95px rgba(120,90,50,.17);background:#ead9bf}
.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.signature{position:absolute;right:24px;bottom:26px;text-align:right;color:#fff;text-shadow:0 3px 18px rgba(50,30,10,.42)}
.signature span{display:block;font-family:var(--serif);font-size:43px;font-style:italic}
.signature small{font-size:9px;text-transform:uppercase;letter-spacing:.24em}
.quote-card{position:absolute;left:-76px;bottom:42px;width:295px;background:rgba(255,253,249,.96);padding:24px 26px;box-shadow:0 28px 70px rgba(95,70,35,.14);backdrop-filter:blur(12px)}
.quote-card img{width:32px;height:32px;object-fit:contain}
.quote-card p{font-family:var(--serif);font-size:20px;line-height:1.36;margin:10px 0 0;color:var(--heading)}
.portrait-badge{position:absolute;right:-38px;top:29%;width:112px;height:112px;border-radius:50%;background:rgba(255,253,249,.95);box-shadow:0 18px 45px rgba(95,70,35,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.portrait-badge span{font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.portrait-badge strong{font-family:var(--serif);font-size:22px;color:var(--gold);margin-top:3px}
.hero-strip{
  min-height:70px;
  height:auto;
  border-top:1px solid var(--line);
  margin-top:30px;
  padding:18px 12px;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 24px;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--muted);
  position:relative;
  z-index:2;
  text-align:center;
}
.hero-strip i{width:4px;height:4px;background:var(--gold);border-radius:50%}
.section{padding:125px clamp(22px,5vw,80px)}
.welcome{display:grid;grid-template-columns:190px 1fr;gap:7vw}
.section-index{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);padding-top:8px}
.welcome-copy{min-width:0;max-width:1180px}
.welcome h2{
  font-size:clamp(2.55rem,5.35vw,5.25rem);
  max-width:1080px;
  margin:22px 0 30px;
  line-height:1.02;
  letter-spacing:-.025em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.welcome-copy>p:last-child{
  max-width:780px;
  color:var(--muted);
  line-height:1.85;
  font-size:clamp(.95rem,1.15vw,1.05rem);
}
.about{padding-top:30px;background:#f8f4ed}
.about-shell{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:7vw;
  align-items:start;
}
.about-identity{
  position:sticky;
  top:34px;
  min-height:560px;
  padding:34px 28px;
  border:1px solid rgba(181,138,75,.16);
  border-radius:120px 120px 24px 24px;
  background:linear-gradient(180deg,#fffdf9,#efe1cf);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.about-identity img{
  width:96px;
  height:96px;
  object-fit:contain;
  margin-bottom:34px;
}
.about-number{
  font-family:var(--serif);
  font-size:42px;
  color:var(--gold);
}
.about-line{
  width:1px;
  height:110px;
  background:linear-gradient(var(--gold),rgba(181,138,75,.12));
  margin:24px 0;
}
.about-identity p{
  margin:auto 0 0;
  font-size:9px;
  line-height:1.8;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.about-content h2{font-size:clamp(46px,5vw,76px);margin:22px 0 30px}
.about-lead{font-family:var(--serif);font-size:clamp(25px,2.7vw,38px);line-height:1.3;color:var(--heading)}
.about-content>p:not(.overline):not(.about-lead){color:var(--muted);line-height:1.86}
.credential-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:34px 0}
.credential-grid article{background:#fff;border:1px solid rgba(181,138,75,.15);padding:24px;border-radius:18px;box-shadow:0 12px 30px rgba(100,75,40,.035)}
.credential-grid span{font-size:8px;color:var(--gold);letter-spacing:.18em}
.credential-grid strong{display:block;font-family:var(--serif);font-size:22px;color:var(--heading);margin:9px 0 5px}
.credential-grid small{color:var(--muted);line-height:1.5}
.about-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:34px;
  margin-top:10px;
  padding-top:30px;
  border-top:1px solid var(--line);
}
.about-columns p{
  margin:0;
  color:var(--muted);
  line-height:1.86;
}
.book-note{margin-top:30px;border-left:2px solid var(--gold);padding:18px 22px;background:rgba(255,255,255,.55)}
.book-note span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}
.book-note strong{font-family:var(--serif);font-size:28px;color:var(--heading)}
.services{background:#fffdf9}
.section-header{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:60px}
.section-header h2{font-size:clamp(48px,5.5vw,82px);max-width:820px;margin-top:20px}
.section-header>p{max-width:440px;color:var(--muted);line-height:1.85}
.service-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.service-card{min-height:460px;padding:38px;border:1px solid rgba(181,138,75,.16);border-radius:26px;background:linear-gradient(145deg,#fff,#faf5ed);display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(110,80,40,.05);transition:.35s}
.service-card:hover,.service-card.featured{transform:translateY(-7px);background:linear-gradient(145deg,#f0dfc6,#fff8ee);box-shadow:var(--shadow)}
.service-icon{font-family:var(--serif);font-size:28px;color:var(--gold)}
.service-card small{font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);margin-top:55px}
.service-card h3{font-family:var(--serif);font-size:39px;color:var(--heading);margin:10px 0 16px}
.service-card p{color:var(--muted);line-height:1.75;max-width:560px}
.service-price{display:flex;align-items:end;gap:13px;margin-top:18px}
.service-price strong{font-family:var(--serif);font-size:52px;color:var(--gold)}
.service-price span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding-bottom:11px}
.service-card>a{margin-top:auto;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;font-size:11px;color:var(--heading)}
.packages{margin-top:22px;padding:40px;border-radius:26px;background:linear-gradient(135deg,#eee0cc,#fcf8f1);display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.packages-copy h3{font-family:var(--serif);font-size:38px;color:var(--heading);margin:18px 0 0;line-height:1.1}
.package-list{display:grid;gap:10px}
.package-list article{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;background:rgba(255,255,255,.64);border:1px solid rgba(181,138,75,.13);border-radius:14px}
.package-list span{font-size:11px;color:var(--muted)}
.package-list strong{font-family:var(--serif);font-size:27px;color:var(--gold)}
.specialties{background:linear-gradient(135deg,#f0e5d5,#fbf7f1)}
.specialty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.specialty-grid article{min-height:150px;background:rgba(255,255,255,.67);border:1px solid rgba(181,138,75,.13);border-radius:20px;padding:26px;display:flex;flex-direction:column;justify-content:space-between}
.specialty-grid span{font-size:8px;letter-spacing:.18em;color:var(--gold)}
.specialty-grid h3{font-family:var(--serif);font-size:28px;color:var(--heading);margin:20px 0 0;line-height:1.08}
.reservation{background:#fffdf9}
.reservation-shell{background:linear-gradient(135deg,#ead9bf,#fff9f1);border:1px solid rgba(181,138,75,.16);border-radius:30px;padding:clamp(40px,6vw,88px);display:grid;grid-template-columns:1fr 1fr;gap:8vw;box-shadow:var(--shadow)}
.reservation h2{font-size:clamp(50px,5.8vw,86px);margin:22px 0 28px}
.reservation-copy>p:not(.overline){color:var(--muted);line-height:1.85}
.reservation-details{margin-top:35px;border-top:1px solid var(--line)}
.reservation-details article{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}
.reservation-details span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.reservation-details strong,.reservation-details a{color:var(--gold);font-size:12px}
.booking-form{display:grid;gap:17px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.booking-form label{display:grid;gap:7px}
.booking-form label span{font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.booking-form input,.booking-form select,.booking-form textarea{width:100%;background:rgba(255,255,255,.72);border:1px solid rgba(181,138,75,.18);color:var(--text);padding:15px 16px;outline:none;border-radius:14px;resize:vertical;transition:.3s}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(181,138,75,.08);background:#fff}
.booking-form small{font-size:8px;color:var(--muted);line-height:1.5}
.payments{background:#f8f4ed}
.payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.payment-grid article{background:#fff;border:1px solid rgba(181,138,75,.14);border-radius:20px;padding:30px;box-shadow:0 14px 40px rgba(100,75,40,.04)}
.payment-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);margin-bottom:13px}
.payment-grid strong,.payment-grid a{font-family:var(--serif);font-size:25px;color:var(--heading);overflow-wrap:anywhere}
.contact{padding-top:35px}
.contact-shell{background:linear-gradient(135deg,#efe2cf,#fffaf3);border-radius:30px;padding:clamp(40px,5vw,72px);display:grid;grid-template-columns:140px 1fr 1fr;gap:5vw;align-items:center;box-shadow:var(--shadow)}
.contact-logo img{width:120px;height:120px;object-fit:contain;margin:auto}
.contact h2{font-size:clamp(45px,5vw,76px);margin:20px 0}
.contact-copy>p:not(.overline){color:var(--muted);line-height:1.8}
.contact-actions{display:grid;gap:12px}
.contact-button{background:rgba(255,255,255,.65);border:1px solid rgba(181,138,75,.15);border-radius:15px;padding:15px 17px}
.contact-button span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.contact-button strong{display:block;color:var(--gold);font-size:12px;margin-top:5px;overflow-wrap:anywhere}
footer{background:#efe4d4;padding:58px clamp(22px,5vw,80px) 30px}
.footer-nav{display:flex;justify-content:flex-end;gap:28px;margin-top:-38px;font-size:10px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:22px;margin-top:55px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.1em}

.developer-credit{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.developer-credit a{color:var(--gold);font-weight:600;transition:.25s}
.developer-credit a:hover{color:var(--heading);text-decoration:underline;text-underline-offset:3px}
.footer-divider{color:rgba(103,83,66,.4)}


/* Numeración refinada: el “1” conserva una forma claramente numérica */
.hero-signals article>span,
.section-index,
.about-number,
.credential-grid span,
.service-icon,
.service-price strong,
.package-list strong,
.specialty-grid span,
.service-no,
.profile-marker span,
.profile-values span,
.reservation-details strong,
.payment-grid strong,
.footer-bottom,
.about-identity .about-number{
  font-family:var(--numerals);
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1;
}

.hero-signals article>span,
.about-number,
.service-icon,
.service-no,
.profile-marker span,
.about-identity .about-number{
  font-weight:500;
  letter-spacing:.015em;
}

.credential-grid span,
.specialty-grid span,
.profile-values span,
.section-index{
  font-weight:600;
  letter-spacing:.16em;
}

.service-price strong,
.package-list strong,
.payment-grid strong{
  font-weight:500;
  letter-spacing:-.02em;
}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .85s ease,transform .85s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){
  .nav{gap:17px}
  .credential-grid{grid-template-columns:1fr}
  .specialty-grid{grid-template-columns:repeat(2,1fr)}
  .contact-shell{grid-template-columns:110px 1fr 1fr}
}

@media(max-width:1024px){
  .welcome{grid-template-columns:145px minmax(0,1fr);gap:5vw}
  .welcome h2{
    font-size:clamp(2.7rem,6vw,4.6rem);
    max-width:900px;
    line-height:1.03;
  }
}
@media(max-width:850px){
  .welcome{grid-template-columns:1fr;gap:24px}
  .welcome-copy{max-width:100%}
  .welcome h2{
    font-size:clamp(2.65rem,8.2vw,4.4rem);
    max-width:100%;
    margin:16px 0 24px;
    line-height:1.04;
  }
}

@media(max-width:850px){
  .menu-toggle{display:block}
  .nav{position:fixed;inset:0;background:#fbf7ef;flex-direction:column;justify-content:center;gap:30px;font-family:var(--serif);font-size:31px;transform:translateX(100%);transition:.4s;z-index:30}
  .nav.open{transform:none}
  .nav-cta{font-family:var(--sans);font-size:12px}
  .menu-toggle.active span:first-child{top:22px;transform:rotate(45deg)}
  .menu-toggle.active span:last-child{top:22px;transform:rotate(-45deg)}
  .hero-layout,.reservation-shell{grid-template-columns:1fr}
  .about-shell{grid-template-columns:150px minmax(0,1fr);gap:5vw}
  .about-identity{position:relative;top:auto;min-height:440px;padding:28px 18px}
  .about-identity img{width:74px;height:74px}
  .about-columns{grid-template-columns:1fr}
  .hero-visual{margin:40px auto 0}
  .welcome{grid-template-columns:1fr}
  .section-header{display:grid;grid-template-columns:1fr}
  .contact-shell{grid-template-columns:1fr;text-align:center}
  .contact-logo img{width:95px;height:95px}
}
@media(max-width:600px){
  .header{height:78px;padding:0 18px}
  .brand>img{width:42px;height:42px}
  .brand-copy strong{font-size:18px}
  .brand-copy small{letter-spacing:.1em}
  .section{padding:88px 20px}

  .welcome{gap:16px;width:100%}
  .welcome .section-index{padding-top:0}
  .welcome-copy{width:100%;max-width:100%;overflow:hidden}
  .welcome h2{
    width:100%;
    max-width:100%;
    font-size:clamp(2rem,9.7vw,3.05rem);
    line-height:1.08;
    letter-spacing:-.018em;
    margin:12px 0 22px;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
    text-wrap:pretty;
  }
  .welcome-copy>p:last-child{
    width:100%;
    max-width:100%;
    font-size:.96rem;
    line-height:1.72;
    overflow-wrap:anywhere;
  }
  .hero{padding:115px 20px 0}
  .hero h1{font-size:57px}
  .hero-actions{flex-direction:column;align-items:flex-start}
  .hero-signals{grid-template-columns:1fr}
  .portrait-outline{inset:-10px}
  .quote-card{position:relative;left:auto;bottom:auto;width:calc(100% - 24px);margin:-55px auto 0}
  .portrait-badge{right:-4px;top:23%;width:88px;height:88px}
  .hero-strip{gap:10px;font-size:7px;overflow:hidden}

  .about-shell{grid-template-columns:1fr;gap:28px}
  .about-identity{
    min-height:auto;
    border-radius:22px;
    padding:24px;
    flex-direction:row;
    justify-content:flex-start;
    gap:20px;
    text-align:left;
  }
  .about-identity img{
    width:68px;
    height:68px;
    margin:0;
  }
  .about-number{font-size:34px}
  .about-line{
    width:48px;
    height:1px;
    margin:0;
  }
  .about-identity p{
    margin:0;
    font-size:8px;
  }
  .about-columns{grid-template-columns:1fr;gap:18px}
  .service-cards,.packages,.specialty-grid,.payment-grid{grid-template-columns:1fr}
  .service-card{min-height:410px;padding:28px}
  .field-row{grid-template-columns:1fr}
  .reservation-shell{padding:35px 24px;border-radius:20px}
  .footer-nav{justify-content:flex-start;flex-wrap:wrap;margin:35px 0 0}
  .footer-bottom{flex-direction:column}
  .developer-credit{display:flex;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}


@media(max-width:390px){
  .welcome h2{
    font-size:1.9rem;
    line-height:1.1;
  }
  .section{padding-left:16px;padding-right:16px}
}


/* Protección global contra desplazamiento horizontal */
@media(max-width:850px){
  .hero,
  .section,
  footer{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .hero-layout,
  .about-shell,
  .service-cards,
  .packages,
  .specialty-grid,
  .reservation-shell,
  .payment-grid,
  .contact-shell,
  .credential-grid,
  .field-row{
    min-width:0;
    width:100%;
    max-width:100%;
  }

  .hero-copy,
  .welcome-copy,
  .about-content,
  .section-header>div,
  .section-header>p,
  .reservation-copy,
  .booking-form,
  .contact-copy,
  .contact-actions{
    min-width:0;
    width:100%;
    max-width:100%;
  }

  .service-card,
  .specialty-grid article,
  .payment-grid article,
  .contact-button{
    width:100%;
    max-width:100%;
  }

  .hero h1{
    font-size:clamp(3rem,12vw,5.5rem);
    line-height:1;
    overflow-wrap:anywhere;
  }

  .about h2,
  .section-header h2,
  .reservation h2,
  .contact h2{
    font-size:clamp(2.45rem,9vw,4.2rem);
    line-height:1.04;
    overflow-wrap:anywhere;
  }
}

@media(max-width:600px){
  .section{
    padding-left:18px;
    padding-right:18px;
  }

  .welcome{
    display:block;
  }

  .welcome .section-index{
    margin-bottom:26px;
  }

  .welcome h2{
    font-size:clamp(1.95rem,9.2vw,2.8rem);
    line-height:1.1;
    letter-spacing:-.015em;
  }

  .hero h1{
    font-size:clamp(3rem,14.5vw,4.25rem);
  }

  .about h2,
  .section-header h2,
  .reservation h2,
  .contact h2{
    font-size:clamp(2.25rem,10.5vw,3.25rem);
  }

  .about-lead{
    font-size:clamp(1.5rem,7vw,2rem);
  }

  .service-card h3,
  .packages-copy h3{
    font-size:clamp(1.8rem,8vw,2.35rem);
  }

  .specialty-grid h3{
    font-size:clamp(1.55rem,7vw,2rem);
  }

  .hero-strip{
    justify-content:center;
    gap:10px 14px;
    padding-left:14px;
    padding-right:14px;
    line-height:1.45;
  }

  .hero-strip i{
    display:none;
  }

  .footer-bottom,
  .footer-nav,
  .developer-credit{
    width:100%;
    max-width:100%;
  }
}


/* =========================================================
   GALERÍA Y CONTENIDO MULTIMEDIA
   ========================================================= */

.editorial-image{
  padding-top:45px;
  background:#f8f4ed;
}

.editorial-image-shell{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);
  gap:6vw;
  align-items:center;
  background:linear-gradient(135deg,#efe1cf,#fffaf4);
  border:1px solid rgba(181,138,75,.14);
  border-radius:30px;
  padding:clamp(34px,5vw,72px);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.editorial-image-copy{
  min-width:0;
}

.editorial-image-copy h2,
.visual-break-copy h2{
  max-width:100%;
  font-family:var(--serif);
  font-weight:600;
  color:var(--heading);
  font-size:clamp(2.7rem,4.8vw,4.7rem);
  line-height:1.02;
  margin:20px 0 24px;
  letter-spacing:-.025em;
  overflow-wrap:anywhere;
}

.editorial-image-copy>p:last-child,
.visual-break-copy>p:last-child{
  max-width:650px;
  color:var(--muted);
  line-height:1.85;
}

.editorial-image-frame{
  width:100%;
  max-width:420px;
  min-width:0;
  margin:0 auto;
  border-radius:220px 220px 22px 22px;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:0 24px 70px rgba(100,75,40,.12);
}

.editorial-image-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}

.visual-break{
  background:#fffdf9;
}

.visual-break-shell{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:6vw;
  align-items:center;
}

.visual-break-shell figure{
  width:100%;
  max-width:420px;
  min-width:0;
  margin:0 auto;
  aspect-ratio:4/5;
  border-radius:220px 220px 22px 22px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#ead9bf;
}

.visual-break-shell figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 20%;
}

.visual-break-copy{
  min-width:0;
  max-width:650px;
}

/* Videos centrados */
.videos{
  background:linear-gradient(135deg,#f0e5d5,#fbf7f1);
  text-align:center;
}

.videos .section-header{
  width:100%;
  max-width:1080px;
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}

.video-feature{
  width:100%;
  max-width:1080px;
  margin:0 auto 24px;
  border-radius:28px;
  overflow:hidden;
  background:#eadfce;
  box-shadow:0 28px 75px rgba(100,75,40,.12);
}

.video-feature video,
.video-card video{
  display:block;
  width:100%;
  max-width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  background:#eadfce;
}

.video-grid{
  width:100%;
  max-width:1080px;
  margin:0 auto;
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:18px;
  flex-wrap:wrap;
}

.video-card{
  flex:1 1 320px;
  max-width:348px;
  min-width:0;
  border-radius:22px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(181,138,75,.14);
  box-shadow:0 14px 38px rgba(100,75,40,.06);
  transition:transform .35s ease,box-shadow .35s ease;
}

.video-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 58px rgba(100,75,40,.12);
}

@media(max-width:950px){
  .editorial-image-shell,
  .visual-break-shell{
    grid-template-columns:1fr;
  }

  .editorial-image-frame,
  .visual-break-shell figure{
    max-width:360px;
    margin:auto;
  }

  .video-feature{
    max-width:820px;
  }

  .video-grid{
    max-width:760px;
  }

  .video-card{
    flex:1 1 340px;
    max-width:360px;
  }
}

@media(max-width:600px){
  .editorial-image,
  .visual-break,
  .videos{
    padding-left:18px;
    padding-right:18px;
  }

  .editorial-image-shell{
    padding:26px 20px;
    border-radius:22px;
    gap:28px;
  }

  .editorial-image-copy h2,
  .visual-break-copy h2{
    font-size:clamp(2.15rem,10vw,3.1rem);
    line-height:1.06;
  }

  .editorial-image-frame,
  .visual-break-shell figure{
    max-width:300px;
    margin:auto;
    border-radius:170px 170px 20px 20px;
  }

  .visual-break-shell{
    gap:30px;
  }

  .videos .section-header{
    text-align:left;
  }

  .video-feature{
    max-width:100%;
    border-radius:18px;
    margin-bottom:16px;
  }

  .video-grid{
    max-width:100%;
    gap:16px;
  }

  .video-card{
    flex:1 1 100%;
    max-width:100%;
    border-radius:18px;
  }
}


/* =========================================================
   LIBRO PUBLICADO
   ========================================================= */

.book-section{
  background:#fffdf9;
}

.book-shell{
  position:relative;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:7vw;
  align-items:center;
  padding:clamp(38px,6vw,86px);
  border:1px solid rgba(181,138,75,.15);
  border-radius:32px;
  background:
    radial-gradient(circle at 10% 15%,rgba(255,255,255,.92),transparent 28%),
    linear-gradient(135deg,#f2e4d0,#fffaf3);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.book-shell::before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-190px;
  top:-190px;
  border:1px solid rgba(181,138,75,.18);
  border-radius:50%;
  pointer-events:none;
}

.book-visual{
  position:relative;
  width:100%;
  min-width:0;
  margin:0;
  border-radius:28px;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#eadcc8;
  box-shadow:0 28px 75px rgba(100,75,40,.13);
}

.book-visual img{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
}

.book-glow{
  position:absolute;
  inset:-20%;
  z-index:1;
  background:radial-gradient(circle,rgba(214,183,121,.25),transparent 65%);
  filter:blur(10px);
}

.book-content{
  min-width:0;
  position:relative;
  z-index:2;
}

.book-content h2{
  max-width:100%;
  margin:20px 0 10px;
  font-family:var(--serif);
  font-size:clamp(3rem,5.7vw,5.7rem);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.03em;
  color:var(--heading);
  overflow-wrap:anywhere;
}

.book-subtitle{
  margin:0 0 28px;
  font-family:var(--serif);
  font-size:clamp(1.55rem,2.4vw,2.25rem);
  font-style:italic;
  color:var(--gold);
}

.book-lead{
  max-width:680px;
  margin:0;
  color:var(--muted);
  font-size:clamp(.98rem,1.2vw,1.08rem);
  line-height:1.85;
}

.book-details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:32px 0;
}

.book-details article{
  min-width:0;
  padding:20px;
  border:1px solid rgba(181,138,75,.15);
  border-radius:16px;
  background:rgba(255,255,255,.62);
}

.book-details span{
  display:block;
  margin-bottom:7px;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--gold);
}

.book-details strong{
  display:block;
  color:var(--heading);
  font-family:var(--serif);
  font-size:clamp(1.15rem,1.8vw,1.5rem);
  font-weight:600;
  line-height:1.2;
}

@media(max-width:950px){
  .book-shell{
    grid-template-columns:1fr;
  }

  .book-visual{
    width:100%;
    max-width:720px;
    margin:0 auto;
  }

  .book-content{
    max-width:760px;
  }
}

@media(max-width:600px){
  .book-section{
    padding-left:18px;
    padding-right:18px;
  }

  .book-shell{
    gap:30px;
    padding:26px 20px;
    border-radius:22px;
  }

  .book-visual{
    border-radius:18px;
  }

  .book-content h2{
    font-size:clamp(2.6rem,13vw,4rem);
    line-height:1;
  }

  .book-subtitle{
    font-size:clamp(1.35rem,7vw,1.9rem);
  }

  .book-details{
    grid-template-columns:1fr;
  }
}
