[hidden]{display:none!important}

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{--navy:#142b42;--navy2:#0b1b2c;--ink:#182c3b;--paper:#faf7f1;--cream:#f3eee5;--line:rgba(20,43,66,.16);--gold:#be9566;--muted:#64717a;--radius:17px;--font:'DM Sans',Arial,sans-serif}
*[hidden]{display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}::selection{background:#e4d1ad;color:var(--navy)}.container{width:min(1170px,calc(100% - 48px));margin:auto}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:700;text-transform:uppercase;color:var(--gold)}.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500;letter-spacing:-.025em}.header{height:79px;position:sticky;top:0;z-index:30;background:rgba(250,247,241,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(20px)}.header-inner{height:100%;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{height:41px;width:41px;background:var(--navy);color:white;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:17px;letter-spacing:-.07em}.brand-word{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:21px;color:var(--navy);line-height:1}.brand-word small{display:block;font:600 8px var(--font);letter-spacing:.3em;text-transform:uppercase;margin-top:6px}.nav-links{display:flex;align-items:center;gap:30px}.nav-links a{font-size:12px;font-weight:700;transition:color .2s}.nav-links a:hover{color:#a37a4c}.nav-cta{background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:4px;padding:13px 20px;display:inline-flex;gap:10px;align-items:center;font-size:12px;font-weight:700;transition:background .2s,transform .2s}.nav-cta:hover,.btn:hover{transform:translateY(-2px);background:#294b68}.mobile-toggle{display:none;background:none;border:0;cursor:pointer;color:var(--navy);padding:10px}.hero{position:relative;min-height:690px;color:white;background:var(--navy2);isolation:isolate;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.7;filter:saturate(.8)}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,25,39,.95),rgba(8,25,39,.74) 45%,rgba(8,25,39,.15)),linear-gradient(0deg,rgba(8,25,39,.30),transparent 45%)}.hero-content{padding:95px 0 115px}.hero .eyebrow{color:#e6bd8d;display:flex;align-items:center;gap:15px}.hero .eyebrow:before{content:"";width:30px;height:1px;background:#e6bd8d}.hero h1{font-size:clamp(58px,7.9vw,115px);max-width:900px;line-height:1.04;margin:30px 0 23px}.hero h1 em{font-weight:400;color:#e5c49c}.hero-lead{font-size:16px;max-width:460px;line-height:1.9;color:#f1eee9;margin:0 0 37px}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:51px;padding:0 25px;background:var(--navy);color:white;font-size:12px;font-weight:700;border:1px solid var(--navy);border-radius:3px;transition:transform .2s,background .2s}.btn-light{background:#f5eee3;color:var(--navy);border-color:#f5eee3}.btn-light:hover{background:#fff}.btn-outline{background:transparent;color:white;border:1px solid rgba(255,255,255,.6)}.btn-outline:hover{background:rgba(255,255,255,.12)}.hero-bottom{position:absolute;bottom:30px;left:0;right:0}.hero-caption{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#e1d9d0}.hero-caption span{display:flex;align-items:center;gap:12px}.circle{height:7px;width:7px;border-radius:50%;background:#d8ad7a;display:inline-block}.intro{padding:100px 0 94px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.intro h2,.section-heading h2,.story h2,.locations h2,.events h2,.cta-band h2{font-size:clamp(35px,4.5vw,58px);line-height:1.18;margin:20px 0 24px}.body-copy{font-size:15px;line-height:2;color:#52616d}.intro-signature{border-top:1px solid var(--line);margin-top:30px;padding-top:20px;display:flex;gap:22px;align-items:center}.sig-monogram{font-family:Georgia,serif;font-size:36px;font-style:italic;color:var(--gold)}.intro-signature strong,.intro-signature small{display:block}.intro-signature strong{font-size:13px}.intro-signature small{font-size:11px;color:var(--muted);margin-top:6px}.intro-visual{position:relative}.intro-visual>img{width:100%;height:530px;object-fit:cover;border-radius:170px 170px 5px 5px}.visual-note{position:absolute;bottom:23px;left:-28px;padding:23px 28px;background:var(--navy);color:#fff;max-width:232px;box-shadow:0 12px 28px #0002}.visual-note strong{font-family:Georgia,serif;font-size:28px;font-weight:400;display:block}.visual-note span{font-size:10px;line-height:1.8;text-transform:uppercase;letter-spacing:.15em}.section-heading{text-align:center;margin-bottom:47px}.section-heading h2{margin-bottom:10px}.section-heading p{color:var(--muted);line-height:1.7;margin:0 auto;max-width:545px;font-size:14px}.offerings{padding:92px 0 108px;background:var(--cream)}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.offer{position:relative;overflow:hidden;background:#ddd;min-height:440px;isolation:isolate;display:flex;align-items:flex-end;color:#fff}.offer img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:-2;transition:transform .6s}.offer:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,19,30,.9),transparent 75%);z-index:-1}.offer:hover img{transform:scale(1.06)}.offer-body{padding:32px}.offer-number{font-size:11px;letter-spacing:.15em;color:#e8c394}.offer h3{font-size:33px;margin:12px 0;font-family:'Playfair Display',Georgia,serif;font-weight:500}.offer p{font-size:13px;line-height:1.8;color:#ece9e6;margin:0}.menu{padding:110px 0}.menu-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}.menu-head h2{font-size:clamp(34px,4.5vw,56px);margin:16px 0 5px}.menu-head p{font-size:13px;color:var(--muted);line-height:1.7;max-width:370px}.menu-filters{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:21px}.filter{background:transparent;border:1px solid var(--line);color:var(--navy);font-size:12px;font-weight:700;padding:12px 18px;border-radius:2px;cursor:pointer}.filter[aria-pressed=true],.filter:hover{background:var(--navy);color:#fff}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:65px;row-gap:0;margin-top:18px}.dish{padding:23px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.dish h3{font-size:15px;margin:0 0 8px;font-weight:700}.dish p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.dish .tag{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#9c774a;font-weight:700;margin-top:6px;white-space:nowrap}.menu-footnote{font-size:12px;color:var(--muted);line-height:1.7;margin:29px 0 0}.story{background:var(--navy);color:white;padding:105px 0}.story-grid{display:grid;grid-template-columns:1.02fr 1fr;align-items:center;gap:8vw}.story img{width:100%;height:auto;object-fit:contain;display:block}.story .eyebrow{color:#ddb281}.story h2{margin:19px 0 22px}.story p{font-size:14px;line-height:2;color:#d7dfe5}.story-quote{border-left:1px solid var(--gold);padding-left:23px;font-family:'Playfair Display',Georgia,serif;font-size:22px;line-height:1.6;font-style:italic;color:#f2e1ca;margin-top:32px}.locations{padding:110px 0}.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;margin-top:48px}.location-card{border:1px solid var(--line);background:#fff;overflow:hidden}.location-img{height:235px;position:relative;background:#ddd}.location-img img{width:100%;height:100%;object-fit:cover}.location-label{position:absolute;left:21px;bottom:20px;background:var(--paper);padding:10px 15px;color:var(--navy);font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:700}.location-body{padding:32px}.location-body h3{font-size:34px;margin:0 0 9px;font-family:'Playfair Display',Georgia,serif;font-weight:500}.location-body>p{font-size:13px;color:var(--muted);line-height:1.9;min-height:70px;margin-bottom:20px}.hours{border-top:1px solid var(--line);padding-top:15px}.hours div{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:7px 0;font-size:12px}.hours div span:first-child{color:var(--muted)}.hours div span:last-child{font-weight:700;text-align:right}.location-action{margin-top:22px;display:flex;gap:19px;align-items:center;flex-wrap:wrap}.location-action a{font-size:12px;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:5px}.events{padding:92px 0;background:#e9e0d4}.events-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}.events h2{margin-bottom:15px}.events p{font-size:14px;color:#54616a;line-height:1.9}.events-list{display:grid;gap:0}.event{border-bottom:1px solid #cfc4b6;display:grid;grid-template-columns:70px 1fr;gap:25px;padding:23px 0}.event:first-child{border-top:1px solid #cfc4b6}.event span{font-family:'Playfair Display',Georgia,serif;color:#987247;font-size:31px}.event h3{font-size:16px;margin:3px 0 8px}.event p{font-size:12px;margin:0}.cta-band{background:#e8d1b1;text-align:center;padding:86px 20px}.cta-band h2{max-width:700px;margin:18px auto 26px}.cta-band p{color:#5d5f60;font-size:14px;line-height:1.7}.cta-band .btn{margin-top:15px}.footer{background:var(--navy2);color:white;padding:64px 0 26px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:60px;padding-bottom:55px}.footer .brand-word{color:#fff}.footer .brand-mark{background:#f8eee0;color:var(--navy)}.footer p{max-width:340px;color:#b6c3ce;font-size:13px;line-height:1.95}.footer h4{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#d9b58e;margin:5px 0 25px}.footer a:not(.brand){display:block;color:#d3dde6;font-size:13px;margin:13px 0}.footer a:hover{color:white;text-decoration:underline}.footer-bottom{border-top:1px solid #ffffff30;padding-top:23px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11px;color:#9caab7;line-height:1.7}.wa-float{position:fixed;right:22px;bottom:22px;z-index:20;background:#2d7154;color:white;padding:14px 17px;box-shadow:0 5px 20px #0018;border-radius:100px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px}.wa-float:hover{background:#205c42}.skip{position:absolute;top:-60px;left:10px;z-index:100;background:#fff;padding:12px;color:#000}.skip:focus{top:5px}.footnote{font-size:11px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.nav-links{gap:15px}.nav-links a{font-size:11px}.nav-cta{padding:11px}.intro-grid{gap:50px}.intro-visual>img{height:450px}.offer{min-height:360px}.offer-body{padding:22px}.offer h3{font-size:27px}.story-grid{gap:38px}.story img{height:auto}.footer-grid{gap:25px}}
@media(max-width:720px){.container{width:min(100% - 34px,580px)}.header{height:70px}.brand-word{font-size:19px}.mobile-toggle{display:block}.nav-links{position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:23px;flex-direction:column;gap:23px;align-items:stretch;display:none}.nav-links.is-open{display:flex}.nav-links a{font-size:14px}.header .nav-cta{margin-left:auto;padding:11px 13px;font-size:10px}.hero{min-height:680px}.hero:before{background:linear-gradient(90deg,rgba(8,25,39,.86),rgba(8,25,39,.45)),linear-gradient(0deg,#0b1b2c66,transparent)}.hero-content{padding:90px 0 130px}.hero h1{font-size:clamp(57px,13vw,80px)}.hero-lead{font-size:14px;max-width:350px}.hero-caption{font-size:9px}.intro{padding:76px 0}.intro-grid,.story-grid,.events-row{grid-template-columns:1fr}.intro-visual{margin:20px 15px 0}.intro-visual>img{height:470px}.visual-note{left:-15px}.offerings{padding:73px 0}.offer-grid{grid-template-columns:1fr}.offer{min-height:370px}.menu{padding:75px 0}.menu-head{display:block}.menu-grid{grid-template-columns:1fr}.menu-filters{overflow:auto;flex-wrap:nowrap;padding-bottom:15px}.filter{white-space:nowrap}.story{padding:76px 0}.story img{height:auto}.locations{padding:76px 0}.location-grid{grid-template-columns:1fr}.events{padding:70px 0}.events-row{gap:25px}.cta-band{padding:65px 20px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-grid>div:first-child{grid-column:span 2}.footer-bottom{display:block}.wa-float{bottom:14px;right:14px;padding:13px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Identidad visual Rangue — revisión noviembre 2026 */
.brand-mark{background:#24243b;border:2px solid #d7b777;box-shadow:inset 0 0 0 2px #24243b,inset 0 0 0 3px #bc9966;font-family:Georgia,serif;letter-spacing:-.08em;}
.hero .eyebrow{color:#e9c797}
.rangue-nature{background:#f0e8dc;padding:85px 0;border-top:1px solid #e3d8c7;border-bottom:1px solid #e3d8c7}
.nature-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:center}
.rangue-nature h2{font-size:clamp(38px,4.8vw,64px);margin:20px 0 22px}
.rangue-nature p{font-size:15px;line-height:2;color:#53636f;max-width:610px}
.nature-link{display:inline-flex;gap:12px;border-bottom:1px solid var(--gold);padding-bottom:9px;color:var(--navy);font-weight:700;font-size:12px;margin-top:15px}
.nature-marks{height:275px;border:1px solid #cbb798;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:160px 160px 10px 10px;color:#9e7b50}
.nature-marks span{font-size:80px;line-height:1}
.nature-marks strong{font-family:'Playfair Display',Georgia,serif;font-size:38px;font-weight:400;color:var(--navy);margin:15px 0 8px}
.nature-marks small{font-size:11px;letter-spacing:.15em;text-transform:uppercase}
@media(max-width:720px){.nature-grid{grid-template-columns:1fr}.nature-marks{height:210px}}


/* Logotipo oficial aportado por Tazón & Miga: se conserva sin redibujarlo */
img.brand-logo{height:62px;width:62px;object-fit:contain;display:block;border-radius:50%;background:transparent;flex:none}
.footer img.brand-logo{height:82px;width:82px;background:transparent}
@media(max-width:720px){.header img.brand-logo{height:46px;width:46px}.header .brand-word{font-size:17px}.header-inner{gap:9px}.footer img.brand-logo{height:76px;width:76px}}

.location-photo-link{display:block;width:100%;height:100%}.location-card--champa .location-img img{object-position:center 48%;transition:transform .25s}.location-card--champa .location-photo-link:hover img{transform:scale(1.035)}

/* Entrada de fotografías interiores al desplazarse — noviembre 2026.
   Sin cambios en la fotografía de portada ni en los logotipos. */
@media (prefers-reduced-motion: no-preference) {
  html.has-photo-reveal main img.photo-reveal {
    opacity: 0;
    transform: translate3d(0, 46px, 0) scale(.97);
    transition: opacity 1.1s ease-out, transform 1.1s cubic-bezier(.2, .72, .2, 1);
    will-change: opacity, transform;
  }
  html.has-photo-reveal main img.photo-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  html.has-photo-reveal main .offer:hover img.photo-reveal.is-visible {
    transform: scale(1.06);
  }
  html.has-photo-reveal main .location-card--champa .location-photo-link:hover img.photo-reveal.is-visible {
    transform: scale(1.035);
  }
}

/* Ajustes solicitados: ubicación en dos líneas y botón WhatsApp oficial */
.hero-locations-copy{display:flex;flex-direction:column;align-items:flex-start;gap:5px;line-height:1.3;text-transform:none}.hero-locations-copy>span{display:block}.hero-locations-name{font-weight:700}
.hero-region{font-size:11px;letter-spacing:.19em;color:#f4e6d1}
.wa-float{background:#25D366;color:#fff;gap:8px}
.wa-float:hover{background:#20c65c}
.wa-float img{width:24px;height:24px;object-fit:contain;flex-shrink:0}

/* Fotografía real de pastelería: mostrarla completa, sin recortar el logo ni los postres. */
.offer--pasteleria{background:#241c17}
.offer--pasteleria img{object-fit:contain;object-position:center top}
/* Portada: línea dorada físicamente encima; cada texto es su propio bloque. */
.hero .hero-location-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  width: 100%;
  text-align: left;
}
.hero .hero-location-block::before { display: none !important; content: none !important; }
.hero .hero-location-block .hero-location-rule {
  display: block;
  width: 34px;
  height: 2px;
  background: #e6bd8d;
  margin: 0 0 12px;
  flex: 0 0 auto;
}
.hero .hero-location-block .hero-locations-main {
  display: block;
  color: #f5ddba;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.35;
  text-transform: none;
  white-space: nowrap;
}
.hero .hero-location-block .hero-region {
  display: block;
  color: #f1e3d4;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1.35;
  text-transform: none;
}

/* Portada: ubicación elevada, nombre con espacio propio y logo oficial. */
.hero{align-items:flex-start}
.hero-content{padding-top:48px;padding-bottom:115px}
.hero-brand-logo{position:absolute;top:28px;right:max(24px,calc((100vw - 1180px)/2));width:clamp(140px,19vw,230px);height:auto;clip-path:circle(47% at 50% 50%);z-index:1}
.hero-brand-name{font-size:clamp(28px,3.5vw,44px);font-weight:700;line-height:1.2;margin:38px 0 0;color:#fff}
.hero h1{margin-top:18px}
@media(max-width:720px){
.hero-content{padding-top:32px;padding-bottom:130px}
.hero-brand-logo{top:20px;right:14px;width:clamp(90px,27vw,140px)}
.hero .hero-location-block{max-width:calc(100% - 108px);min-height:78px}
.hero .hero-location-block .hero-locations-main{white-space:normal!important;font-size:12px!important}
.hero-brand-name{font-size:clamp(27px,7.6vw,36px);margin-top:28px}
.hero h1{margin-top:18px}
}

/* Invitación especial: fotografía de matrimonio, degradado azul y texto blanco. */
.cta-band{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background-image:linear-gradient(to top,rgba(7,25,44,.94) 0%,rgba(13,40,67,.81) 52%,rgba(20,47,77,.56) 100%),url('/invitacion-boda-20261103.avif?v=20261103');
  background-color:#142b42;
  background-position:center,center 46%;
  background-size:cover;
  background-repeat:no-repeat;
  padding:110px 20px 115px;
}
.cta-band .container{position:relative;z-index:1;max-width:900px}
.cta-band .eyebrow{color:#fff;font-size:11px;letter-spacing:.22em}
.cta-band h2{color:#fff;font-weight:700;font-style:italic;max-width:820px;margin:19px auto 23px;text-shadow:0 2px 20px rgba(0,0,0,.24)}
.cta-band h2 strong,.cta-band h2 em{font-weight:700;font-style:italic}
.cta-band p{color:#fff;max-width:765px;margin:0 auto 25px;font-size:clamp(14px,1.45vw,17px);line-height:1.85;text-shadow:0 1px 12px rgba(0,0,0,.27)}
.cta-band .btn{color:#fff;background:#142b42;border-color:rgba(255,255,255,.58);margin-top:17px}
.cta-band .btn:hover,.cta-band .btn:focus-visible{background:#294b68}
@media(max-width:720px){.cta-band{padding:85px 18px 92px;background-position:center,46% center}.cta-band h2{margin:20px auto 24px}.cta-band p{font-size:14px;line-height:1.83}}


/* UX/CX móvil: controles táctiles y foco accesible, sin alterar la identidad. */
:where(a,button):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.mobile-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}
.location-action a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
.wa-float{min-height:48px}
@media(max-width:720px){
  .mobile-toggle{display:inline-flex;flex:none}
  .nav-links{gap:4px;padding:12px 17px 17px;max-height:calc(100dvh - 70px);overflow-y:auto;box-shadow:0 12px 20px rgba(8,25,39,.1)}
  .nav-links a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:4px;font-size:14px}
  .nav-links a:active{background:var(--cream)}
  .nav-links .nav-branch-link{padding-left:24px;color:var(--navy);font-weight:700}
  .location-action{gap:6px 20px}
  .location-action a{min-height:44px}
  .footer a:not(.brand){min-height:44px;display:flex;align-items:center;margin:4px 0}
}
@media(min-width:721px){.nav-branch-link{display:none!important}}