/* San Marco · main.css
   Tokens → reset → navegación → hero → booking → intro → rooms → experiencias → gastronomía → testimonial → CTA → footer → utilidades → responsive
   Paleta oficial del logo: azul marino #00075A · dorado #C9A44A · granate #8B1A2B · marfil #F8F5F2 */

:root {
	--sm-bg: #F8F5F2;
	--sm-bg-alt: #F1EDE8;
	--sm-bg-warm: #F1EDE8;
	--sm-sand: #E8E0D5;
	--sm-bone: #FFFFFF;
	--sm-ink: #00075A;
	--sm-ink-deep: #000741;
	--sm-ink-soft: #1F2B6E;
	--sm-ink-mute: rgba(0,7,90,0.62);
	--sm-olive: #C9A44A;
	--sm-olive-deep: #8B7420;
	--sm-olive-soft: rgba(201,164,74,0.25);
	--sm-terracota: #C9A44A;
	--sm-terracota-deep: #8B7420;
	--sm-terracota-soft: rgba(201,164,74,0.15);
	--sm-green: #6A7A4F;
	--sm-green-deep: #4F5D3B;
	--sm-garnet: #8B1A2B;
	--sm-garnet-soft: rgba(139,26,43,0.15);
	--sm-line: rgba(0,7,90,0.14);
	--sm-line-soft: rgba(0,7,90,0.08);
	--sm-cream: #F8F5F2;
	--sm-font-serif: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	--sm-font-sans: 'Inter', system-ui, -apple-system, sans-serif;
	--sm-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--sm-tr-slow: 1s;
	--sm-tr-med: 0.4s;
	--sm-tr-fast: 0.3s;
	--sm-container: 1320px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sm-font-sans); font-size: 15px; font-weight: 400; line-height: 1.7; color: var(--sm-ink); background: var(--sm-bg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 300; letter-spacing: 0.005em; }

.screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }
.skip-link { position: absolute; top: -60px; left: 20px; background: var(--sm-ink); color: var(--sm-cream); padding: 12px 18px; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; z-index: 999; transition: top 0.2s var(--sm-ease); }
.skip-link:focus { top: 16px; }

.sm-eyebrow { display: inline-block; font-family: var(--sm-font-sans); font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--sm-olive); font-weight: 400; }

.sm-divider { width: 44px; height: 1px; background: var(--sm-olive); margin: 44px auto 0; }

.sm-btn { display: inline-block; font-family: var(--sm-font-sans); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; padding: 13px 30px; border: 0.5px solid var(--sm-ink); background: transparent; color: var(--sm-ink); cursor: pointer; transition: all var(--sm-tr-med) var(--sm-ease); text-decoration: none; }
.sm-btn:hover { letter-spacing: 0.32em; }
.sm-btn--outline:hover { background: var(--sm-ink); color: var(--sm-cream); }
.sm-btn--primary { background: var(--sm-ink); color: var(--sm-cream); }
.sm-btn--primary:hover { background: var(--sm-olive); border-color: var(--sm-olive); }
.sm-btn--olive { border-color: var(--sm-olive); color: var(--sm-olive); }
.sm-btn--olive:hover { background: var(--sm-olive); color: var(--sm-cream); }

.sm-reveal { opacity: 0; transform: translateY(36px); transition: opacity var(--sm-tr-slow) var(--sm-ease), transform var(--sm-tr-slow) var(--sm-ease); }
.sm-reveal.is-in { opacity: 1; transform: translateY(0); }
.sm-reveal--delay-1 { transition-delay: 0.15s; }
.sm-reveal--delay-2 { transition-delay: 0.3s; }
.sm-reveal--delay-3 { transition-delay: 0.45s; }

.sm-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 24px 50px; background: rgba(248,245,242,0); transition: all var(--sm-tr-med) var(--sm-ease); }
.sm-nav.is-scrolled { background: rgba(248,245,242,0.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 0.5px solid var(--sm-line-soft); padding: 16px 50px; }
.sm-nav__logo { font-family: var(--sm-font-serif); font-size: 22px; font-weight: 400; letter-spacing: 0.22em; color: var(--sm-ink); transition: color var(--sm-tr-med) var(--sm-ease); display: inline-flex; align-items: center; line-height: 0; position: relative; }
.sm-nav__logo-img { display: block; height: 52px; width: auto; max-width: 220px; transition: opacity var(--sm-tr-med) var(--sm-ease), height var(--sm-tr-med) var(--sm-ease); }
.sm-nav.is-scrolled .sm-nav__logo-img { height: 44px; }
.sm-nav__logo-img--mobile { display: none; }
.sm-nav__logo-img--light { position: absolute; top: 0; left: 0; opacity: 0; pointer-events: none; }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__logo-img--dark { opacity: 0; }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__logo-img--light { opacity: 1; }
@media (max-width: 768px) {
	.sm-nav__logo-img--desktop { display: none; }
	.sm-nav__logo-img--mobile { display: block; height: 36px; max-width: 160px; }
	.sm-nav.is-scrolled .sm-nav__logo-img--mobile { height: 32px; }
}
.sm-nav__links { list-style: none; display: flex; gap: 34px; margin: 0; padding: 0; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; }
.sm-nav__links a { color: var(--sm-ink); position: relative; padding: 4px 0; transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-nav__links a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 0.5px; background: var(--sm-olive); transform: scaleX(0); transform-origin: left; transition: transform var(--sm-tr-med) var(--sm-ease); }
.sm-nav__links a:hover::after { transform: scaleX(1); }
.sm-nav__right { display: flex; align-items: center; gap: 24px; }
.sm-nav__lang { font-size: 10px; letter-spacing: 0.22em; color: var(--sm-olive); text-transform: uppercase; }
.sm-nav__lang b { color: var(--sm-ink); font-weight: 500; }
.sm-nav__lang a { color: var(--sm-olive); transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-nav__lang a:hover { color: var(--sm-ink); }
.sm-nav__cta { padding: 11px 24px; font-size: 10px; letter-spacing: 0.26em; }
.sm-nav__toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px; width: 40px; height: 40px; flex-direction: column; justify-content: center; gap: 5px; }
.sm-nav__toggle span { display: block; width: 22px; height: 1px; background: var(--sm-ink); transition: transform var(--sm-tr-med) var(--sm-ease), opacity var(--sm-tr-fast); }
.sm-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.sm-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.sm-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__logo,
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__links a,
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__lang,
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__lang a,
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__cta { color: var(--sm-cream); }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__cta { border-color: var(--sm-cream); }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__cta:hover { background: var(--sm-cream); color: var(--sm-ink); }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__lang b { color: var(--sm-cream); }
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__toggle span { background: var(--sm-cream); }

.sm-hero { position: relative; height: 100vh; min-height: 640px; background: #00075A; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 0 40px; overflow: hidden; }
.sm-hero__video, .sm-hero__image, .sm-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; will-change: transform; }
.sm-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.sm-hero__bg { background: linear-gradient(135deg, #2a2620 0%, #00075A 50%, #141210 100%); }
.sm-hero__bg::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 30% 35%, rgba(107,112,92,0.18) 0%, transparent 60%), radial-gradient(circle at 75% 70%, rgba(248,245,242,0.08) 0%, transparent 55%); }
.sm-hero__overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 40%, rgba(0,0,0,0.6) 100%); z-index: 1; }
.sm-hero__inner { position: relative; z-index: 2; max-width: 680px; }
.sm-hero__eyebrow { font-size: 10px; letter-spacing: 0.4em; text-transform: uppercase; color: var(--sm-olive); font-weight: 400; }
.sm-hero__title { font-family: var(--sm-font-serif); font-weight: 300; font-size: clamp(40px, 6vw, 72px); line-height: 1.08; color: var(--sm-cream); margin: 22px 0 26px; }
.sm-hero__title em { font-style: italic; font-weight: 300; }
.sm-hero__rule { width: 1px; height: 56px; background: rgba(248,245,242,0.4); margin: 0 auto 26px; }
.sm-hero__sub { font-size: 14px; color: rgba(248,245,242,0.78); line-height: 2; font-weight: 300; margin: 0 auto; max-width: 460px; }
.sm-hero__sound { position: absolute; bottom: 40px; right: 40px; background: transparent; border: 0; font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(248,245,242,0.7); cursor: pointer; display: flex; align-items: center; gap: 10px; z-index: 3; padding: 8px 0; }
.sm-hero__sound::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--sm-olive); }
.sm-hero__scroll { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); font-size: 9px; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(248,245,242,0.6); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.sm-hero__scroll i { display: block; width: 1px; height: 40px; background: rgba(248,245,242,0.5); animation: smScrollPulse 2s ease-in-out infinite; }
@keyframes smScrollPulse { 0%, 100% { transform: scaleY(0.3); opacity: 0.3; } 50% { transform: scaleY(1); opacity: 1; } }

.sm-booking { max-width: 1100px; margin: -36px auto 0; background: var(--sm-bg); padding: 22px 28px; display: flex; gap: 0; align-items: center; position: relative; z-index: 10; border: 0.5px solid var(--sm-line-soft); box-shadow: 0 20px 60px rgba(0,7,90,0.08); }
.sm-booking__field { flex: 1; padding: 0 22px; border-right: 0.5px solid var(--sm-line); min-width: 0; }
.sm-booking__field:first-child { padding-left: 6px; }
.sm-booking__field:last-of-type { border-right: 0; }
.sm-booking__label { display: block; font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--sm-olive); margin-bottom: 5px; }
.sm-booking__input { width: 100%; border: 0; background: transparent; font-family: var(--sm-font-serif); font-size: 18px; color: var(--sm-ink); padding: 2px 0; outline: none; }
.sm-booking__input:focus { color: var(--sm-olive); }
.sm-booking__submit { background: var(--sm-ink); color: var(--sm-cream); padding: 16px 34px; font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; border: 0; cursor: pointer; margin-left: 20px; transition: background var(--sm-tr-med) var(--sm-ease); font-family: var(--sm-font-sans); position: relative; }
.sm-booking__submit:hover { background: var(--sm-olive); }
.sm-booking__submit-loading { display: none; }
.sm-booking.is-loading .sm-booking__submit-label { display: none; }
.sm-booking.is-loading .sm-booking__submit-loading { display: inline; }

.sm-section { padding: clamp(70px, 10vw, 130px) 50px; }

.sm-intro-wrap { padding-top: clamp(80px, 11vw, 140px); padding-bottom: clamp(80px, 11vw, 140px); }
.sm-intro { max-width: 760px; margin: 0 auto; text-align: center; }
.sm-intro__title { font-family: var(--sm-font-serif); font-size: clamp(32px, 4vw, 48px); line-height: 1.2; margin: 20px 0 32px; }
.sm-intro__title em { font-style: italic; }
.sm-intro__body p { font-size: 16px; line-height: 2; color: var(--sm-ink-soft); font-weight: 300; margin: 0 0 18px; }

.sm-senses { list-style: none; padding: 0; margin: 72px auto 0; max-width: 1100px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 0.5px solid var(--sm-line); border-bottom: 0.5px solid var(--sm-line); }
.sm-sense { padding: 38px 22px; text-align: center; border-right: 0.5px solid var(--sm-line-soft); }
.sm-sense:last-child { border-right: 0; }
.sm-sense__num { display: block; font-family: var(--sm-font-serif); font-size: 13px; color: var(--sm-olive); letter-spacing: 0.22em; margin-bottom: 14px; font-style: italic; }
.sm-sense__title { font-family: var(--sm-font-serif); font-size: 22px; font-weight: 300; margin-bottom: 8px; }
.sm-sense__desc { font-size: 12px; color: var(--sm-ink-mute); line-height: 1.7; font-weight: 300; margin: 0; }

.sm-rooms-wrap { max-width: var(--sm-container); margin: 0 auto; }
.sm-rooms__header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 56px; padding-bottom: 26px; border-bottom: 0.5px solid var(--sm-line); }
.sm-rooms__title { font-family: var(--sm-font-serif); font-size: clamp(32px, 4vw, 48px); line-height: 1; margin-top: 14px; }
.sm-rooms__title em { font-style: italic; }
.sm-ver-todo { font-size: 11px; color: var(--sm-olive); letter-spacing: 0.24em; text-transform: uppercase; padding-bottom: 6px; border-bottom: 0.5px solid var(--sm-olive); transition: all var(--sm-tr-fast) var(--sm-ease); }
.sm-ver-todo:hover { color: var(--sm-ink); border-color: var(--sm-ink); letter-spacing: 0.28em; }

.sm-rooms__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; }
.sm-rooms__col { display: flex; flex-direction: column; gap: 32px; }

.sm-room-card { display: block; color: inherit; cursor: pointer; }
.sm-room-card__img { position: relative; overflow: hidden; margin-bottom: 18px; background: var(--sm-bg-alt); }
.sm-room-card__img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,7,90,0.40) 100%); pointer-events: none; }
.sm-room-card__img--tall { aspect-ratio: 3/4; }
.sm-room-card__img--wide { aspect-ratio: 4/3; }
.sm-room-card__img-inner { position: absolute; inset: 0; transition: transform 1.4s var(--sm-ease); }
.sm-room-card__img-inner img { width: 100%; height: 100%; object-fit: cover; }
.sm-room-card:hover .sm-room-card__img-inner { transform: scale(1.04); }
.sm-room-card__num { position: absolute; top: 18px; left: 18px; font-family: var(--sm-font-serif); font-size: 13px; color: var(--sm-cream); letter-spacing: 0.26em; z-index: 2; }
.sm-room-card__body { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: 4px 2px 0; }
.sm-room-card__title { font-family: var(--sm-font-serif); font-size: 26px; margin-bottom: 6px; }
.sm-room-card__title em { font-style: italic; }
.sm-room-card__meta { font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--sm-olive); }
.sm-room-card__price { text-align: right; }
.sm-room-card__price-label { font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--sm-olive); margin-bottom: 3px; }
.sm-room-card__price-num { font-family: var(--sm-font-serif); font-size: 22px; color: var(--sm-ink); }

.sm-exp { background: var(--sm-ink); color: var(--sm-cream); padding: clamp(90px, 12vw, 140px) 50px; }
.sm-exp__header { text-align: center; margin-bottom: 70px; }
.sm-exp__title { font-family: var(--sm-font-serif); font-size: clamp(32px, 4vw, 48px); line-height: 1.15; margin-top: 20px; color: var(--sm-cream); }
.sm-exp__title em { font-style: italic; }
.sm-exp__grid { max-width: var(--sm-container); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.sm-exp-card { display: block; color: inherit; cursor: pointer; }
.sm-exp-card__img { aspect-ratio: 3/4; position: relative; overflow: hidden; margin-bottom: 20px; background: #2a2620; }
.sm-exp-card__img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,0.55) 100%); pointer-events: none; }
.sm-exp-card__img-inner { position: absolute; inset: 0; transition: transform 1.4s var(--sm-ease); }
.sm-exp-card__img-inner img { width: 100%; height: 100%; object-fit: cover; }
.sm-exp-card:hover .sm-exp-card__img-inner { transform: scale(1.04); }
.sm-exp-card__num { position: absolute; top: 20px; left: 20px; font-family: var(--sm-font-serif); font-size: 13px; color: var(--sm-cream); letter-spacing: 0.26em; z-index: 2; font-style: italic; }
.sm-exp-card__tag { position: absolute; bottom: 18px; right: 18px; font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--sm-cream); z-index: 2; }
.sm-exp-card__title { font-family: var(--sm-font-serif); font-size: 24px; margin-bottom: 8px; color: var(--sm-cream); }
.sm-exp-card__title em { font-style: italic; }
.sm-exp-card__desc { font-size: 13px; color: rgba(248,245,242,0.65); line-height: 1.8; font-weight: 300; margin: 0; }

.sm-gastro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0; background: var(--sm-bg); min-height: 640px; }
.sm-gastro__img { position: relative; overflow: hidden; background: #8a7461; }
.sm-gastro__img-inner { position: absolute; inset: 0; transition: transform 1.4s var(--sm-ease); }
.sm-gastro__img-inner img { width: 100%; height: 100%; object-fit: cover; }
.sm-gastro:hover .sm-gastro__img-inner { transform: scale(1.03); }
.sm-gastro__badge { position: absolute; top: 36px; left: 36px; font-family: var(--sm-font-serif); color: var(--sm-cream); font-size: 14px; letter-spacing: 0.22em; font-style: italic; z-index: 2; }
.sm-gastro__content { padding: clamp(60px, 8vw, 100px) clamp(40px, 6vw, 80px); display: flex; flex-direction: column; justify-content: center; max-width: 640px; }
.sm-gastro__title { font-family: var(--sm-font-serif); font-size: clamp(30px, 3.8vw, 46px); line-height: 1.14; margin: 20px 0 28px; }
.sm-gastro__title em { font-style: italic; }
.sm-gastro__body p { font-size: 16px; line-height: 2; color: var(--sm-ink-soft); font-weight: 300; margin-bottom: 16px; }
.sm-gastro__meta { margin: 36px 0 34px; padding-top: 28px; border-top: 0.5px solid var(--sm-line); display: flex; gap: 40px; }
.sm-gastro__meta-item { flex: 1; min-width: 0; }
.sm-gastro__meta-item dt { font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--sm-olive); margin-bottom: 6px; }
.sm-gastro__meta-item dd { font-family: var(--sm-font-serif); font-size: 18px; color: var(--sm-ink); margin: 0; }

.sm-testimonial { padding: clamp(90px, 13vw, 140px) 50px; text-align: center; background: var(--sm-bg); border-top: 0.5px solid var(--sm-line-soft); border-bottom: 0.5px solid var(--sm-line-soft); }
.sm-testimonial__inner { max-width: 780px; margin: 0 auto; position: relative; }
.sm-testimonial__mark { font-family: var(--sm-font-serif); font-size: 88px; color: var(--sm-olive); line-height: 0.5; margin-bottom: 28px; font-style: italic; }
.sm-testimonial__item { display: none; }
.sm-testimonial__item.is-active { display: block; animation: smFadeIn 0.8s var(--sm-ease); }
@keyframes smFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.sm-testimonial__quote { font-family: var(--sm-font-serif); font-weight: 300; font-style: italic; font-size: clamp(22px, 2.8vw, 34px); line-height: 1.5; margin: 0 0 38px; color: var(--sm-ink); }
.sm-testimonial__attr { font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--sm-olive); }
.sm-testimonial__attr b { color: var(--sm-ink); font-weight: 500; margin-right: 12px; }

.sm-press { display: flex; justify-content: center; gap: clamp(30px, 5vw, 60px); margin-top: 72px; padding-top: 44px; border-top: 0.5px solid var(--sm-line-soft); flex-wrap: wrap; max-width: 1000px; margin-left: auto; margin-right: auto; }
.sm-press__item { font-family: var(--sm-font-serif); font-size: 15px; font-style: italic; color: rgba(0,7,90,0.50); letter-spacing: 0.1em; }

.sm-cta { background: var(--sm-ink); color: var(--sm-cream); padding: clamp(90px, 13vw, 140px) 50px; text-align: center; position: relative; overflow: hidden; }
.sm-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(107,112,92,0.15) 0%, transparent 60%); }
.sm-cta__inner { position: relative; z-index: 2; max-width: 680px; margin: 0 auto; }
.sm-cta__eyebrow { color: var(--sm-olive); letter-spacing: 0.4em; }
.sm-cta__title { font-family: var(--sm-font-serif); font-size: clamp(34px, 4.5vw, 54px); line-height: 1.12; color: var(--sm-cream); margin: 20px 0 28px; }
.sm-cta__title em { font-style: italic; }
.sm-cta__body { font-size: 15px; color: rgba(248,245,242,0.72); line-height: 1.9; font-weight: 300; margin: 0 auto 40px; max-width: 500px; }
.sm-cta__btn { border: 0.5px solid var(--sm-cream); padding: 17px 44px; font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; background: var(--sm-cream); color: var(--sm-ink); cursor: pointer; transition: all var(--sm-tr-med) var(--sm-ease); font-family: var(--sm-font-sans); }
.sm-cta__btn:hover { background: transparent; color: var(--sm-cream); letter-spacing: 0.36em; }
.sm-cta__phone { font-family: var(--sm-font-serif); font-style: italic; font-size: 15px; color: rgba(248,245,242,0.7); margin-top: 32px; }
.sm-cta__phone b { color: var(--sm-cream); font-weight: 400; font-family: var(--sm-font-sans); font-style: normal; font-size: 13px; margin-left: 4px; letter-spacing: 0.08em; }
.sm-cta__phone a { transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-cta__phone a:hover b { color: var(--sm-olive); }

.sm-footer { background: var(--sm-bg); padding: 90px 50px 40px; border-top: 0.5px solid var(--sm-line-soft); }
.sm-footer__inner { max-width: var(--sm-container); margin: 0 auto; }
.sm-footer__top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 56px; border-bottom: 0.5px solid var(--sm-line); }
.sm-footer__logo { display: inline-block; margin-bottom: 18px; line-height: 0; }
.sm-footer__logo-img { display: block; height: 72px; width: auto; max-width: 220px; }
.sm-footer__tagline { font-size: 13px; color: var(--sm-ink-mute); line-height: 1.9; font-weight: 300; max-width: 300px; margin: 0 0 20px; }
.sm-footer__newsletter { display: flex; gap: 8px; max-width: 320px; }
.sm-footer__newsletter input { flex: 1; padding: 10px 12px; background: transparent; border: 0.5px solid var(--sm-line); font-size: 12px; color: var(--sm-ink); outline: none; }
.sm-footer__newsletter input:focus { border-color: var(--sm-olive); }
.sm-footer__newsletter button { padding: 10px 18px; background: var(--sm-ink); color: var(--sm-cream); border: 0; font-size: 9px; letter-spacing: 0.26em; text-transform: uppercase; cursor: pointer; transition: background var(--sm-tr-fast) var(--sm-ease); }
.sm-footer__newsletter button:hover { background: var(--sm-olive); }
.sm-footer__col h4 { font-size: 9px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--sm-olive); margin-bottom: 22px; font-weight: 500; }
.sm-footer__menu { list-style: none; padding: 0; margin: 0; }
.sm-footer__menu li { font-size: 13px; margin-bottom: 12px; font-weight: 300; }
.sm-footer__menu a { color: var(--sm-ink); transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-footer__menu a:hover { color: var(--sm-olive); }
.sm-footer__address { font-style: normal; font-size: 13px; color: var(--sm-ink-soft); line-height: 1.95; font-weight: 300; }
.sm-footer__address a { color: var(--sm-ink); transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-footer__address a:hover { color: var(--sm-olive); }
.sm-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 30px; font-size: 10px; color: var(--sm-ink-mute); letter-spacing: 0.18em; text-transform: uppercase; flex-wrap: wrap; gap: 20px; }
.sm-footer__social { display: flex; gap: 24px; }
.sm-footer__social a { color: var(--sm-ink); transition: color var(--sm-tr-fast) var(--sm-ease); }
.sm-footer__social a:hover { color: var(--sm-olive); }
.sm-footer__credit { margin: 0; display: inline-flex; align-items: baseline; gap: 10px; font-family: var(--sm-font-sans); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sm-ink-mute); font-weight: 400; }
.sm-footer__credit-label { color: var(--sm-ink-mute); }
.sm-footer__credit-sep { color: var(--sm-olive); opacity: 0.6; font-size: 12px; line-height: 1; transform: translateY(-1px); }
.sm-footer__credit-link { font-family: var(--sm-font-serif); font-style: italic; font-weight: 400; font-size: 14px; letter-spacing: 0.04em; text-transform: none; color: var(--sm-ink); position: relative; padding-bottom: 2px; transition: color var(--sm-tr-med) var(--sm-ease); }
.sm-footer__credit-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 0.5px; background: var(--sm-olive); transform: scaleX(0); transform-origin: left; transition: transform var(--sm-tr-med) var(--sm-ease); }
.sm-footer__credit-link:hover { color: var(--sm-olive); }
.sm-footer__credit-link:hover::after { transform: scaleX(1); }
.sm-footer__credit-link:focus-visible { outline: 1px solid var(--sm-olive); outline-offset: 4px; }

.sm-whatsapp { position: fixed; bottom: 28px; right: 28px; width: 54px; height: 54px; background: var(--sm-olive); border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 90; transition: transform var(--sm-tr-fast) var(--sm-ease); box-shadow: 0 8px 24px rgba(0,7,90,0.14); }
.sm-whatsapp:hover { transform: scale(1.08); }
.sm-whatsapp svg { width: 26px; height: 26px; fill: var(--sm-cream); }

@media (max-width: 960px) {
	.sm-nav { padding: 14px 24px; }
	.sm-nav.is-scrolled { padding: 12px 24px; }
	.sm-nav__links { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; flex-direction: column; justify-content: center; align-items: center; background: var(--sm-bg); gap: 28px; z-index: 99; padding: 80px 32px 32px; overflow-y: auto; }
	.sm-nav.is-open .sm-nav__links { display: flex; }
	.sm-nav__toggle { display: flex; }
	.sm-nav__cta { padding: 9px 18px; font-size: 9px; }

	.sm-section { padding: 70px 24px; }
	.sm-booking { flex-wrap: wrap; margin: -24px 24px 0; padding: 18px 16px; }
	.sm-booking__field { flex: 1 1 45%; border-right: 0; border-bottom: 0.5px solid var(--sm-line); padding: 10px 12px; }
	.sm-booking__field:nth-child(3), .sm-booking__field:nth-child(4) { border-bottom: 0; }
	.sm-booking__submit { width: 100%; margin: 12px 0 0; }

	.sm-senses { grid-template-columns: repeat(2, 1fr); }
	.sm-sense:nth-child(2) { border-right: 0; }
	.sm-sense:nth-child(1), .sm-sense:nth-child(2) { border-bottom: 0.5px solid var(--sm-line-soft); }

	.sm-rooms__grid { grid-template-columns: 1fr; gap: 36px; }
	.sm-rooms__col { gap: 36px; }
	.sm-exp__grid { grid-template-columns: 1fr; gap: 40px; }

	.sm-gastro { grid-template-columns: 1fr; }
	.sm-gastro__img { min-height: 380px; }
	.sm-gastro__content { padding: 60px 24px; max-width: none; }
	.sm-gastro__meta { gap: 20px; flex-wrap: wrap; }

	.sm-footer { padding: 60px 24px 32px; }
	.sm-footer__top { grid-template-columns: 1fr 1fr; gap: 36px; }
	.sm-footer__brand { grid-column: 1 / -1; }
	.sm-footer__bottom { flex-direction: column; text-align: center; }

	.sm-press { gap: 22px 32px; margin-top: 56px; padding-top: 32px; }
	.sm-testimonial, .sm-cta { padding: 80px 24px; }

	.sm-whatsapp { bottom: 20px; right: 20px; width: 48px; height: 48px; }
	.sm-whatsapp svg { width: 22px; height: 22px; }
}

@media (max-width: 480px) {
	.sm-hero__sound, .sm-hero__scroll { display: none; }
	.sm-booking__field { flex: 1 1 100%; }
	.sm-booking__field { border-right: 0; border-bottom: 0.5px solid var(--sm-line); }
	.sm-booking__field:last-of-type { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
	.sm-reveal { opacity: 1; transform: none; }
	.sm-hero__scroll i { animation: none; }
}

.sm-404 { min-height: 80vh; display: flex; align-items: center; justify-content: center; padding: clamp(80px, 12vw, 140px) 40px; }
.sm-404__inner { max-width: 640px; text-align: center; }
.sm-404__mark { display: block; margin: 0 auto 32px; opacity: 0.9; }
.sm-404__title { font-family: var(--sm-font-serif); font-weight: 300; font-size: clamp(28px, 3.8vw, 44px); line-height: 1.2; margin: 20px 0 0; color: var(--sm-ink); letter-spacing: 0.005em; }
.sm-404__title em { font-style: italic; }
.sm-404__rule { width: 40px; height: 1px; background: var(--sm-olive); margin: 36px auto; }
.sm-404__text { font-size: 15px; line-height: 1.9; color: var(--sm-ink-soft); font-weight: 300; margin: 0 0 36px; }
.sm-404__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* === Bloques Gutenberg custom del tema === */
.wp-block-sanmarco-eyebrow { font-family: var(--sm-font-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--sm-olive); font-weight: 400; margin: 0 0 12px; }
.sm-eyebrow--align-left { text-align: left; }
.sm-eyebrow--align-center { text-align: center; }
.sm-eyebrow--align-right { text-align: right; }

.wp-block-sanmarco-quote { position: relative; max-width: 820px; margin: clamp(40px, 6vw, 80px) auto; padding: 0 20px; text-align: center; }
.sm-quote__mark { font-family: var(--sm-font-serif); font-size: 72px; color: var(--sm-olive); line-height: 1; margin-bottom: -20px; font-weight: 300; }
.sm-quote__text { font-family: var(--sm-font-serif); font-style: italic; font-weight: 300; font-size: clamp(22px, 3vw, 32px); line-height: 1.5; color: var(--sm-ink); margin: 0 0 32px; border: none; padding: 0; }
.sm-quote__cite { font-family: var(--sm-font-sans); font-size: 11px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--sm-ink-mute); }

.wp-block-sanmarco-hero { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 0 40px; overflow: hidden; color: var(--sm-cream); background: var(--sm-ink); }
.wp-block-sanmarco-hero .sm-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.wp-block-sanmarco-hero .sm-hero__overlay { position: absolute; inset: 0; background: #00075A; pointer-events: none; z-index: 1; }
.wp-block-sanmarco-hero .sm-hero__inner { position: relative; z-index: 2; max-width: 680px; }
.wp-block-sanmarco-hero .sm-hero__eyebrow { font-size: 11px; letter-spacing: 0.4em; text-transform: uppercase; color: var(--sm-olive); font-weight: 400; }
.wp-block-sanmarco-hero .sm-hero__title { font-family: var(--sm-font-serif); font-weight: 300; font-size: clamp(40px, 6vw, 72px); line-height: 1.08; color: var(--sm-cream); margin: 22px 0 26px; }
.wp-block-sanmarco-hero .sm-hero__title em { font-style: italic; font-weight: 300; }
.wp-block-sanmarco-hero .sm-hero__rule { width: 1px; height: 56px; background: rgba(248,245,242,0.4); margin: 0 auto 26px; }
.wp-block-sanmarco-hero .sm-hero__sub { font-size: 14px; color: rgba(248,245,242,0.78); line-height: 2; font-weight: 300; margin: 0 auto; max-width: 460px; }


/* === Sección de páginas auto-generadas (diseño de referencia) === */
.sm-hero-cover { position: relative; }
.sm-hero-cover .wp-block-cover__inner-container { padding: 0 !important; }
.sm-booking-bar { position: relative; z-index: 3; box-shadow: 0 20px 60px rgba(0,7,90,0.15); }
.sm-booking-bar > * { flex: 1; min-width: 180px; }
.sm-booking-bar .wp-block-buttons { flex: 0 0 auto; }
.sm-gallery__grid img { width: 100%; height: auto; object-fit: cover; }
.sm-map-embed { width: 100%; aspect-ratio: 16/9; max-width: 1320px; margin: 60px auto; padding: 0 20px; }
.sm-map-embed iframe { width: 100%; height: 100%; border: 0.5px solid rgba(0,7,90,0.14); }
@media (max-width: 768px) {
	.sm-booking-bar { margin-top: -20px !important; padding: 20px !important; flex-direction: column; }
	.sm-booking-bar > * { width: 100%; min-width: 0; }
	.sm-hero-cover { min-height: 70vh !important; }
	.sm-hero-cover .wp-block-group { padding-left: 24px !important; padding-right: 24px !important; }
}

/* ============================================================
   AJUSTES DE FIDELIDAD AL DISEÑO DE REFERENCIA
   ============================================================ */

/* Header · CTA azul marino sólido (no outline) */
.sm-nav__cta.sm-btn--solid {
	background: var(--sm-ink);
	color: var(--sm-cream);
	border: 1px solid var(--sm-ink);
	padding: 12px 28px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	border-radius: 0;
	transition: all 0.3s var(--sm-ease);
}
.sm-nav__cta.sm-btn--solid:hover {
	background: var(--sm-olive);
	border-color: var(--sm-olive);
	color: var(--sm-ink);
}
.is-hero-over-nav .sm-nav:not(.is-scrolled) .sm-nav__cta.sm-btn--solid {
	background: var(--sm-cream);
	color: var(--sm-ink);
	border-color: var(--sm-cream);
}

/* Curva decorativa bajo el header (separador del hero) */
.sm-nav__curve {
	display: none;
}

/* Footer · estructura de 4 columnas como el diseño */
.sm-footer {
	background: var(--sm-cream);
	color: var(--sm-ink);
	padding: 80px 0 32px;
	border-top: 1px solid var(--sm-line-soft);
}
.sm-footer__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
}
.sm-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1.4fr 1.4fr;
	gap: 60px;
	margin-bottom: 60px;
}
.sm-footer__col--brand .sm-footer__logo {
	display: inline-block;
	line-height: 0;
	margin-bottom: 16px;
}
.sm-footer__col--brand .sm-footer__logo-img {
	display: block;
	height: auto;
	width: auto;
	max-width: 180px;
	max-height: 200px;
}
.sm-footer__col--brand .sm-footer__tagline {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 13px;
	color: var(--sm-ink-soft);
	line-height: 1.7;
	max-width: 280px;
	margin: 0;
}
.sm-footer__heading {
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--sm-olive);
	font-weight: 500;
	margin: 0 0 20px;
}
.sm-footer__heading--newsletter {
	margin-top: 32px;
}
.sm-footer__address {
	font-style: normal;
	font-size: 13px;
	line-height: 2;
	color: var(--sm-ink-soft);
}
.sm-footer__address a {
	color: var(--sm-ink-soft);
	text-decoration: none;
	transition: color 0.3s var(--sm-ease);
}
.sm-footer__address a:hover {
	color: var(--sm-olive);
}
.sm-footer__links-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 32px;
}
.sm-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13px;
	line-height: 2;
}
.sm-footer__links a {
	color: var(--sm-ink-soft);
	text-decoration: none;
	transition: color 0.3s var(--sm-ease);
}
.sm-footer__links a:hover {
	color: var(--sm-olive);
}
.sm-footer__social-icons {
	display: flex;
	gap: 18px;
	margin-bottom: 8px;
}
.sm-footer__social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: var(--sm-ink);
	transition: color 0.3s var(--sm-ease), transform 0.3s var(--sm-ease);
}
.sm-footer__social-icon svg {
	width: 22px;
	height: 22px;
}
.sm-footer__social-icon:hover {
	color: var(--sm-olive);
	transform: translateY(-2px);
}
.sm-footer__newsletter-tagline {
	font-size: 12px;
	color: var(--sm-ink-mute);
	margin: 0 0 12px;
	line-height: 1.6;
}
.sm-footer__newsletter {
	display: flex;
	border: 1px solid var(--sm-line);
	background: #fff;
	max-width: 340px;
}
.sm-footer__newsletter input {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 12px;
	color: var(--sm-ink);
	outline: none;
}
.sm-footer__newsletter input::placeholder {
	color: var(--sm-ink-mute);
}
.sm-footer__newsletter button {
	background: var(--sm-ink);
	color: var(--sm-cream);
	border: 0;
	width: 44px;
	cursor: pointer;
	font-size: 16px;
	transition: background 0.3s var(--sm-ease);
}
.sm-footer__newsletter button:hover {
	background: var(--sm-olive);
	color: var(--sm-ink);
}
.sm-footer__bottom {
	padding-top: 24px;
	border-top: 1px solid var(--sm-line-soft);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	font-size: 11px;
	color: var(--sm-ink-mute);
	letter-spacing: 0.04em;
}
.sm-footer__legal {
	display: flex;
	gap: 14px;
	align-items: center;
}
.sm-footer__legal a {
	color: var(--sm-ink-mute);
	text-decoration: none;
	transition: color 0.3s var(--sm-ease);
}
.sm-footer__legal a:hover {
	color: var(--sm-olive);
}
.sm-footer__legal span {
	color: var(--sm-line);
}
.sm-footer__credit a {
	color: var(--sm-ink-soft);
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-size: 13px;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color 0.3s var(--sm-ease);
}
.sm-footer__credit a:hover {
	color: var(--sm-olive);
}

@media (max-width: 1100px) {
	.sm-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 48px;
	}
}
@media (max-width: 640px) {
	.sm-footer { padding: 60px 0 24px; }
	.sm-footer__inner { padding: 0 24px; }
	.sm-footer__grid {
		grid-template-columns: 1fr;
		gap: 36px;
		margin-bottom: 40px;
	}
	.sm-footer__bottom {
		justify-content: center;
		text-align: center;
	}
	.sm-footer__legal {
		justify-content: center;
	}
}


/* ============================================================
   FRONT PAGE · Réplica pixel-perfect del diseño de referencia
   ============================================================ */

.sm-eyebrow {
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--sm-olive);
	font-weight: 500;
	margin: 0;
}
.sm-eyebrow--gold { color: var(--sm-olive); }

/* HERO ----------------------------------------------------- */
.sm-front-hero {
	position: relative;
	min-height: 88vh;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.sm-front-hero__bg,
.sm-front-hero__bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.sm-front-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, rgba(0,7,90,0.55) 0%, rgba(0,7,90,0.25) 50%, rgba(0,7,90,0) 80%);
	z-index: 1;
}
.sm-front-hero__content {
	position: relative;
	z-index: 2;
	max-width: 720px;
	padding: 140px 80px 60px;
	color: var(--sm-cream);
}
.sm-front-hero__eyebrow {
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--sm-olive);
	font-weight: 500;
	margin: 0 0 24px;
}
.sm-front-hero__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(36px, 4.6vw, 60px);
	line-height: 1.1;
	letter-spacing: 0.005em;
	color: var(--sm-cream);
	margin: 0 0 28px;
}
.sm-front-hero__title em {
	font-style: italic;
	font-weight: 300;
}
.sm-front-hero__rule {
	width: 60px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 0 28px;
}
.sm-front-hero__sub {
	font-family: var(--sm-font-sans);
	font-size: 14px;
	line-height: 1.9;
	color: rgba(248, 245, 242, 0.9);
	font-weight: 300;
	margin: 0 0 36px;
	max-width: 380px;
}
.sm-front-hero__ctas {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.sm-btn--solid-cream,
.sm-btn--outline-cream {
	display: inline-block;
	padding: 14px 28px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.3s var(--sm-ease);
	border: 1px solid var(--sm-cream);
}
.sm-btn--solid-cream {
	background: var(--sm-cream);
	color: var(--sm-ink);
}
.sm-btn--solid-cream:hover {
	background: var(--sm-olive);
	border-color: var(--sm-olive);
	color: var(--sm-ink);
}
.sm-btn--outline-cream {
	background: transparent;
	color: var(--sm-cream);
}
.sm-btn--outline-cream:hover {
	background: var(--sm-cream);
	color: var(--sm-ink);
}
.sm-front-hero__pagination {
	position: absolute;
	right: 56px;
	bottom: 100px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--sm-cream);
	font-family: var(--sm-font-sans);
	font-size: 12px;
	letter-spacing: 0.2em;
}
.sm-front-hero__page-current { color: var(--sm-olive); }
.sm-front-hero__page-sep {
	display: inline-block;
	width: 32px;
	height: 1px;
	background: var(--sm-olive);
	font-size: 0;
}
.sm-front-hero__page-total { opacity: 0.7; }

/* BOOKING BAR --------------------------------------------- */
.sm-front-booking {
	position: relative;
	z-index: 5;
	max-width: 1200px;
	margin: -55px auto 0;
	padding: 0 50px;
}
.sm-front-booking__form {
	background: var(--sm-ink);
	display: grid;
	grid-template-columns: repeat(4, 1fr) auto;
	gap: 0;
	box-shadow: 0 24px 60px rgba(0, 7, 90, 0.18);
}
.sm-front-booking__field {
	padding: 22px 26px;
	border-right: 1px solid rgba(201, 164, 74, 0.18);
}
.sm-front-booking__field:nth-child(4) { border-right: 0; }
.sm-front-booking__label {
	display: block;
	font-family: var(--sm-font-sans);
	font-size: 10px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--sm-olive);
	margin-bottom: 8px;
	font-weight: 500;
}
.sm-front-booking__input-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	color: var(--sm-cream);
	position: relative;
}
.sm-front-booking__input {
	font-family: var(--sm-font-sans);
	font-size: 14px;
	font-weight: 400;
	color: var(--sm-cream);
	background: transparent;
	border: 0;
	padding: 0;
	width: 100%;
	cursor: pointer;
	outline: none;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}
.sm-front-booking__input:focus {
	outline: none;
}
.sm-front-booking__input::placeholder {
	color: rgba(248, 245, 242, 0.55);
}
input.sm-front-booking__input::-webkit-calendar-picker-indicator {
	filter: invert(1) brightness(2);
	opacity: 0;
	cursor: pointer;
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}
input.sm-front-booking__input::-webkit-datetime-edit-text,
input.sm-front-booking__input::-webkit-datetime-edit-month-field,
input.sm-front-booking__input::-webkit-datetime-edit-day-field,
input.sm-front-booking__input::-webkit-datetime-edit-year-field {
	color: var(--sm-cream);
}
input.sm-front-booking__input:not(:focus):not(:valid)::-webkit-datetime-edit {
	color: rgba(248, 245, 242, 0.55);
}
.sm-front-booking__select {
	background-image: none;
	cursor: pointer;
}
.sm-front-booking__select option {
	background: var(--sm-ink);
	color: var(--sm-cream);
}
.sm-front-booking__icon {
	color: var(--sm-cream);
	opacity: 0.8;
	display: inline-flex;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	pointer-events: none;
}
.sm-front-booking__icon svg {
	width: 100%;
	height: 100%;
}
.sm-front-booking__cta {
	background: var(--sm-olive);
	color: var(--sm-ink);
	border: 0;
	padding: 22px 36px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 600;
	cursor: pointer;
	max-width: 220px;
	line-height: 1.3;
	transition: background 0.3s var(--sm-ease);
}
.sm-front-booking__cta:hover {
	background: var(--sm-olive-deep);
	color: var(--sm-cream);
}

/* LEGADO -------------------------------------------------- */
.sm-front-legado {
	background: var(--sm-bg);
	padding: 120px 0;
}
.sm-front-legado__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
	display: grid;
	grid-template-columns: 38% 62%;
	gap: 80px;
	align-items: start;
}
.sm-front-legado__text {
	padding-top: 16px;
}
.sm-front-legado__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(34px, 3.2vw, 44px);
	line-height: 1.15;
	color: var(--sm-ink);
	margin: 14px 0 20px;
	letter-spacing: 0.01em;
}
.sm-front-legado__rule {
	width: 56px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 0 32px;
}
.sm-front-legado__copy {
	font-size: 14.5px;
	line-height: 2;
	color: var(--sm-ink-soft);
	max-width: 400px;
	margin: 0 0 36px;
	font-weight: 300;
}

/* Stats destacadas estilo editorial */
.sm-front-legado__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 0 0 44px;
	padding: 28px 0 0;
	border-top: 1px solid var(--sm-line-soft);
	max-width: 400px;
}
.sm-front-legado__stat {
	margin: 0;
}
.sm-front-legado__stat-num {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(28px, 2.4vw, 36px);
	line-height: 1;
	color: var(--sm-olive);
	margin: 0 0 8px;
	letter-spacing: 0.01em;
}
.sm-front-legado__stat-label {
	font-family: var(--sm-font-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sm-ink-mute);
	margin: 0;
	line-height: 1.4;
}

@media (max-width: 600px) {
	.sm-front-legado__stats {
		grid-template-columns: repeat(3, 1fr);
		gap: 12px;
		padding-top: 20px;
		margin-bottom: 32px;
	}
	.sm-front-legado__stat-num { font-size: 24px; }
	.sm-front-legado__stat-label { font-size: 9px; letter-spacing: 0.14em; }
}
.sm-front-legado__link {
	display: inline-flex;
	align-items: center;
	gap: 32px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sm-ink);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s var(--sm-ease);
}
.sm-front-legado__link:hover { color: var(--sm-olive); }
.sm-front-legado__link span {
	display: inline-block;
	width: 60px;
	height: 1px;
	background: currentColor;
	font-size: 0;
}
.sm-front-legado__gallery {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 16px;
	aspect-ratio: 1 / 1.05;
	max-height: 600px;
	min-height: 480px;
}
.sm-front-legado__img {
	overflow: hidden;
	background-color: var(--sm-bg-alt);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	min-height: 200px;
	transition: transform 0.6s var(--sm-ease);
	position: relative;
}
.sm-front-legado__img:hover {
	transform: scale(1.02);
}
.sm-front-legado__img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sm-front-legado__img--main { grid-row: 1 / 3; }

/* ROOMS --------------------------------------------------- */
.sm-front-rooms {
	background: var(--sm-bg);
	padding: 80px 0 120px;
}
.sm-front-rooms__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 60px;
	align-items: center;
}
.sm-front-rooms__intro { padding-top: 40px; }
.sm-front-rooms__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(32px, 2.8vw, 40px);
	line-height: 1.15;
	color: var(--sm-ink);
	margin: 14px 0 20px;
	letter-spacing: 0.01em;
}
.sm-front-rooms__rule {
	width: 56px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 0 60px;
}
.sm-front-rooms__link {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sm-ink);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s var(--sm-ease);
}
.sm-front-rooms__link:hover { color: var(--sm-olive); }
.sm-front-rooms__link span {
	display: inline-block;
	width: 50px;
	height: 1px;
	background: currentColor;
	font-size: 0;
}

.sm-front-rooms__carousel {
	position: relative;
	padding: 0 32px;
}
.sm-front-rooms__viewport {
	overflow: hidden;
	position: relative;
}
.sm-front-rooms__track {
	display: flex;
	gap: 24px;
	transition: transform 0.5s var(--sm-ease);
	will-change: transform;
}
.sm-front-room {
	flex: 0 0 calc((100% - 48px) / 3);
	min-width: 0;
}
.sm-front-room__link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.4s var(--sm-ease);
}

/* Imagen más alta tipo magazine, ratio 4:5 */
.sm-front-room__image {
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--sm-bg-alt);
	margin-bottom: 24px;
	position: relative;
}
.sm-front-room__image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(0,7,90,0.18) 100%);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.6s var(--sm-ease);
}
.sm-front-room:hover .sm-front-room__image::after {
	opacity: 1;
}
.sm-front-room__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1.2s var(--sm-ease);
}
.sm-front-room:hover .sm-front-room__image img {
	transform: scale(1.06);
}

/* Nombre serif grande, peso ligero, color elegante */
.sm-front-room__name {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 28px;
	color: var(--sm-ink);
	letter-spacing: 0.005em;
	margin: 0 0 12px;
	line-height: 1.15;
	transition: color 0.4s var(--sm-ease);
}
.sm-front-room:hover .sm-front-room__name {
	color: var(--sm-olive-deep);
}

/* Filete dorado bajo el nombre */
.sm-front-room__rule {
	width: 28px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 0 14px;
	opacity: 0.7;
}

/* Precio en serif itálica, sutil */
.sm-front-room__price {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 14px;
	color: var(--sm-ink-soft);
	margin: 0 0 18px;
	letter-spacing: 0.02em;
}

/* Meta items en línea con separadores */
.sm-front-room__meta {
	display: flex;
	gap: 0;
	flex-wrap: wrap;
	font-size: 10.5px;
	color: var(--sm-ink-mute);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	margin-bottom: 18px;
}
.sm-front-room__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 0 14px;
	border-right: 1px solid rgba(0,7,90,0.12);
}
.sm-front-room__meta-item:first-child { padding-left: 0; }
.sm-front-room__meta-item:last-child { border-right: 0; padding-right: 0; }
.sm-front-room__meta-item svg {
	color: var(--sm-olive);
	flex-shrink: 0;
}

/* CTA discreto al final */
.sm-front-room__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-ink);
	padding-top: 4px;
}
.sm-front-room__cta::after {
	content: '';
	display: inline-block;
	width: 28px;
	height: 1px;
	background: currentColor;
	transition: width 0.4s var(--sm-ease);
}
.sm-front-room:hover .sm-front-room__cta {
	color: var(--sm-olive-deep);
}
.sm-front-room:hover .sm-front-room__cta::after {
	width: 44px;
}

/* Slides clonados se ven igual que los originales */
.sm-front-room[data-clone="true"] {
	/* Sin estilo especial, solo presentes para loop */
}

.sm-front-rooms__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--sm-ink);
	color: var(--sm-cream);
	border: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s var(--sm-ease);
	z-index: 5;
	margin-top: -28px;
	box-shadow: 0 6px 20px rgba(0,7,90,0.18);
}
.sm-front-rooms__nav:hover:not(:disabled) {
	background: var(--sm-olive);
	color: var(--sm-ink);
}
.sm-front-rooms__nav:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}
.sm-front-rooms__nav svg {
	width: 18px;
	height: 18px;
}
.sm-front-rooms__nav--prev { left: -16px; }
.sm-front-rooms__nav--next { right: -16px; }

.sm-front-rooms__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}
.sm-carousel-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(0,7,90,0.18);
	border: 0;
	cursor: pointer;
	padding: 0;
	transition: all 0.3s var(--sm-ease);
}
.sm-carousel-dot:hover {
	background: rgba(0,7,90,0.35);
}
.sm-carousel-dot.is-active {
	background: var(--sm-olive);
	width: 24px;
	border-radius: 4px;
}

/* EXPERIENCIAS · banda azul ------------------------------- */
.sm-front-exp {
	background: var(--sm-ink);
	padding: 80px 0;
	color: var(--sm-cream);
}
.sm-front-exp__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
	display: grid;
	grid-template-columns: 30% 1fr;
	gap: 80px;
	align-items: center;
}
.sm-front-exp__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(28px, 2.4vw, 34px);
	line-height: 1.2;
	color: var(--sm-cream);
	margin: 14px 0 20px;
	letter-spacing: 0.01em;
}
.sm-front-exp__rule {
	width: 56px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 0 32px;
}
.sm-front-exp__link {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sm-cream);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s var(--sm-ease);
}
.sm-front-exp__link:hover { color: var(--sm-olive); }
.sm-front-exp__link span {
	display: inline-block;
	width: 56px;
	height: 1px;
	background: currentColor;
	font-size: 0;
}
.sm-front-exp__items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	border-left: 1px solid rgba(201, 164, 74, 0.22);
	padding-left: 60px;
}
.sm-front-exp__item { text-align: center; }
.sm-front-exp__icon {
	width: 56px;
	height: 56px;
	margin: 0 auto 20px;
	color: var(--sm-olive);
}
.sm-front-exp__icon svg {
	width: 100%;
	height: 100%;
}
.sm-front-exp__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.sm-front-exp__item-title {
	font-family: var(--sm-font-serif);
	font-weight: 400;
	font-size: 17px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sm-cream);
	margin: 0 0 12px;
}
.sm-front-exp__item-text {
	font-size: 12px;
	line-height: 1.8;
	color: rgba(248, 245, 242, 0.7);
	margin: 0;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
	.sm-front-legado__inner { grid-template-columns: 1fr; gap: 48px; }
	.sm-front-legado__gallery { height: auto; aspect-ratio: 16/10; }
	.sm-front-rooms__inner { grid-template-columns: 1fr; }
	.sm-front-room { flex: 0 0 calc((100% - 24px) / 2); }
	.sm-front-exp__inner { grid-template-columns: 1fr; gap: 48px; }
	.sm-front-exp__items { grid-template-columns: repeat(2, 1fr); border-left: 0; padding-left: 0; padding-top: 32px; border-top: 1px solid rgba(201,164,74,0.22); }
}
@media (max-width: 760px) {
	.sm-front-hero__content { padding: 0 24px; }
	.sm-front-hero__pagination { right: 24px; bottom: 80px; }
	.sm-front-booking { padding: 0 16px; margin-top: -30px; }
	.sm-front-booking__form { grid-template-columns: 1fr; }
	.sm-front-booking__field { border-right: 0; border-bottom: 1px solid rgba(201,164,74,0.18); }
	.sm-front-booking__cta { width: 100%; max-width: none; }
	.sm-front-legado { padding: 60px 0; }
	.sm-front-legado__inner { padding: 0 24px; }
	.sm-front-legado__gallery { grid-template-columns: 1fr; grid-template-rows: auto auto auto; aspect-ratio: auto; }
	.sm-front-legado__img--main { aspect-ratio: 3/4; }
	.sm-front-legado__img--top, .sm-front-legado__img--bottom { aspect-ratio: 16/10; }

	/* Carrusel mobile · scroll snap nativo · cero JS */
	.sm-front-rooms__inner { padding: 0 !important; max-width: 100% !important; }
	.sm-front-rooms__carousel {
		padding: 0 !important;
		margin: 0 !important;
		position: relative;
		width: 100%;
		overflow: hidden;
	}
	.sm-front-rooms__viewport {
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
		width: 100%;
		max-width: 100vw;
	}
	.sm-front-rooms__viewport::-webkit-scrollbar { display: none; }
	.sm-front-rooms__track {
		display: flex !important;
		gap: 16px !important;
		transform: none !important;
		transition: none !important;
		padding: 0 24px;
		width: auto;
	}
	.sm-front-room {
		flex: 0 0 calc(100vw - 48px) !important;
		max-width: calc(100vw - 48px);
		min-width: 0;
		scroll-snap-align: center;
	}
	.sm-front-room__image {
		aspect-ratio: 4 / 3;
		margin-bottom: 18px;
	}
	.sm-front-room__name { font-size: 24px; margin-bottom: 10px; }
	.sm-front-room__price { font-size: 13px; margin-bottom: 14px; }
	.sm-front-room__meta { font-size: 9.5px; letter-spacing: 0.14em; gap: 0; margin-bottom: 14px; }
	.sm-front-room__meta-item { padding: 0 10px; }
	.sm-front-room__meta-item:first-child { padding-left: 0; }
	.sm-front-room__meta-item:last-child { padding-right: 0; }

	/* En mobile las flechas no son necesarias con scroll snap, las ocultamos */
	.sm-front-rooms__nav { display: none !important; }

	.sm-front-exp__inner { padding: 0 24px; }
	.sm-front-exp__items { grid-template-columns: 1fr; }
}

/* ============================================================
   HEADER · Logo destacado + curva diagonal asimétrica
   Versión 2.5 · La curva baja en el logo y sube en el menú
   ============================================================ */

.sm-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	min-height: 310px;
}
.sm-header__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	z-index: 1;
}
.sm-header__bar {
	position: relative;
	z-index: 2;
	max-width: 1440px;
	margin: 0 auto;
	padding: 18px 60px 18px 50px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	min-height: 110px;
}
.sm-header__logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	flex-shrink: 0;
	position: relative;
	z-index: 3;
	margin-top: 12px;
	margin-bottom: -55px;
}
.sm-header__logo-img {
	display: block;
	height: auto;
	width: auto;
	max-height: 155px;
	max-width: 190px;
}

.sm-header__nav {
	display: flex;
	align-items: center;
	gap: 28px;
	flex: 1;
	justify-content: flex-end;
}
.sm-header__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 30px;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
}
.sm-header__menu a {
	color: var(--sm-ink-soft);
	text-decoration: none;
	padding: 6px 0;
	position: relative;
	transition: color 0.3s var(--sm-ease);
}
.sm-header__menu a:hover {
	color: var(--sm-ink);
}
.sm-header__menu .current-menu-item > a,
.sm-header__menu .current-menu-item a {
	color: var(--sm-ink);
}
.sm-header__menu .current-menu-item > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1.5px;
	background: var(--sm-olive);
}

.sm-header__cta {
	display: inline-block;
	padding: 12px 24px;
	background: var(--sm-ink);
	color: var(--sm-cream);
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid var(--sm-ink);
	transition: all 0.3s var(--sm-ease);
}
.sm-header__cta:hover {
	background: var(--sm-olive);
	border-color: var(--sm-olive);
	color: var(--sm-ink);
}

.sm-header__lang {
	position: relative;
}
.sm-header__lang-toggle {
	background: transparent;
	border: 0;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sm-ink);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 0;
	font-weight: 500;
}
.sm-header__lang-toggle:hover { color: var(--sm-olive); }
.sm-header__lang-menu {
	position: absolute;
	top: 100%;
	right: 0;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--sm-bg);
	border: 1px solid var(--sm-line-soft);
	min-width: 60px;
	display: none;
	box-shadow: 0 8px 24px rgba(0,7,90,0.08);
}
.sm-header__lang-toggle[aria-expanded="true"] + .sm-header__lang-menu {
	display: block;
}
.sm-header__lang-menu a {
	display: block;
	padding: 6px 14px;
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--sm-ink-soft);
	text-decoration: none;
	transition: color 0.2s var(--sm-ease);
}
.sm-header__lang-menu a:hover { color: var(--sm-olive); }

/* MOBILE TOGGLE */
.sm-header__toggle {
	display: none;
	background: transparent;
	border: 0;
	width: 32px;
	height: 32px;
	flex-direction: column;
	gap: 6px;
	justify-content: center;
	cursor: pointer;
	padding: 0;
}
.sm-header__toggle span {
	display: block;
	width: 24px;
	height: 1.5px;
	background: var(--sm-ink);
	transition: all 0.3s var(--sm-ease);
}

/* HERO arranca desde el top porque el header es absolute */
.sm-front-hero {
	margin-top: 0;
	padding-top: 0;
}

/* RESPONSIVE */
@media (max-width: 1100px) {
	.sm-header__bar { padding: 16px 40px; gap: 24px; min-height: 100px; }
	.sm-header__menu { gap: 22px; font-size: 10.5px; }
	.sm-header__logo-img { max-height: 140px; max-width: 170px; }
}
@media (max-width: 960px) {
	.sm-header { min-height: 160px; }
	.sm-header__menu, .sm-header__cta, .sm-header__lang { display: none; }
	.sm-header__toggle { display: flex; }
	.sm-header__bar { padding: 14px 24px; min-height: 88px; }
	.sm-header__logo { margin-bottom: -28px; }
	.sm-header__logo-img { max-height: 110px; max-width: 140px; }
}

/* ============================================================
   STICKY HEADER & MOBILE MENU · v2.7
   ============================================================ */

/* Sticky · header colapsado al hacer scroll */
.sm-header {
	transition: background 0.4s var(--sm-ease), box-shadow 0.4s var(--sm-ease), min-height 0.4s var(--sm-ease);
}
.sm-header.is-sticky {
	position: fixed;
	background: var(--sm-bg);
	box-shadow: 0 2px 24px rgba(0, 7, 90, 0.08);
	min-height: 0;
	border-bottom: 1px solid var(--sm-line-soft);
}
.sm-header.is-sticky .sm-header__bg {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s var(--sm-ease);
}
.sm-header__bg {
	transition: opacity 0.4s var(--sm-ease);
}
.sm-header.is-sticky .sm-header__bar {
	min-height: 70px;
	padding-top: 10px;
	padding-bottom: 10px;
	transition: min-height 0.4s var(--sm-ease), padding 0.4s var(--sm-ease);
}
.sm-header__bar {
	transition: min-height 0.4s var(--sm-ease), padding 0.4s var(--sm-ease);
}
.sm-header.is-sticky .sm-header__logo {
	margin-top: 0;
	margin-bottom: 0;
	transition: all 0.4s var(--sm-ease);
}
.sm-header.is-sticky .sm-header__logo-img {
	max-height: 56px;
	max-width: 80px;
	transition: all 0.4s var(--sm-ease);
}
.sm-header__logo,
.sm-header__logo-img {
	transition: all 0.4s var(--sm-ease);
}

/* Mobile menu · off-canvas */
@media (max-width: 960px) {
	.sm-header__nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		background: var(--sm-bg);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		padding: 80px 24px 40px;
		gap: 32px;
		transform: translateX(100%);
		transition: transform 0.4s var(--sm-ease);
		visibility: hidden;
		z-index: 100;
		overflow-y: auto;
	}
	.sm-header.is-mobile-open .sm-header__nav {
		transform: translateX(0);
		visibility: visible;
	}
	.sm-header.is-mobile-open .sm-header__menu,
	.sm-header.is-mobile-open .sm-header__cta,
	.sm-header.is-mobile-open .sm-header__lang {
		display: flex !important;
	}
	.sm-header.is-mobile-open .sm-header__menu {
		flex-direction: column;
		gap: 24px;
		font-size: 14px;
		text-align: center;
		align-items: center;
	}
	.sm-header.is-mobile-open .sm-header__cta {
		font-size: 12px;
		padding: 16px 32px;
	}
	.sm-header.is-mobile-open .sm-header__lang {
		display: inline-flex !important;
	}
	.sm-header__toggle {
		position: relative;
		z-index: 110;
	}
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(2) {
		opacity: 0;
	}
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}
}

/* ============================================================

/* ============================================================
   PÁGINAS INTERNAS · v2.8 · Replicando los diseños de referencia
   ============================================================ */

/* ─── HABITACIONES · Hero ─── */
.sm-rooms-hero {
	position: relative;
	min-height: 65vh;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.sm-rooms-hero__bg, .sm-rooms-hero__bg img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.sm-rooms-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(0,7,90,0.7) 0%, rgba(0,7,90,0.35) 60%, rgba(0,7,90,0.2) 100%);
	z-index: 1;
}
.sm-rooms-hero__content {
	position: relative; z-index: 2;
	max-width: 1320px; width: 100%; margin: 0 auto;
	padding: 200px 50px 60px;
}
.sm-rooms-hero__title {
	font-family: var(--sm-font-serif); font-weight: 300;
	font-size: clamp(40px, 5vw, 64px); line-height: 1.1;
	color: var(--sm-cream); margin: 0 0 24px;
}
.sm-rooms-hero__sub {
	font-size: 14px; line-height: 1.9;
	color: rgba(248,245,242,0.9); max-width: 460px; margin: 0;
}

/* ─── HABITACIONES · Booking bar ─── */
.sm-rooms-booking {
	background: var(--sm-bg);
	padding: 0 50px;
	margin: -50px auto 0;
	max-width: 1320px;
	position: relative; z-index: 5;
}
.sm-rooms-booking__form {
	background: var(--sm-ink);
	display: grid;
	grid-template-columns: repeat(4, 1fr) auto;
	box-shadow: 0 24px 60px rgba(0,7,90,0.15);
}
.sm-rooms-booking__field {
	padding: 20px 24px;
	border-right: 1px solid rgba(201,164,74,0.18);
}
.sm-rooms-booking__field:nth-child(4) { border-right: 0; }
.sm-rooms-booking__label {
	display: block; font-family: var(--sm-font-sans);
	font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--sm-olive); margin-bottom: 6px; font-weight: 500;
}
.sm-rooms-booking__wrap {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; color: var(--sm-cream);
}
.sm-rooms-booking__value { font-size: 13px; }
.sm-rooms-booking__icon { color: var(--sm-cream); opacity: 0.8; width: 16px; height: 16px; display: inline-flex; }
.sm-rooms-booking__icon svg { width: 100%; height: 100%; }
.sm-rooms-booking__cta {
	background: var(--sm-olive); color: var(--sm-ink);
	border: 0; padding: 20px 30px;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600;
	cursor: pointer; max-width: 200px; line-height: 1.3;
	transition: background 0.3s var(--sm-ease);
}
.sm-rooms-booking__cta:hover { background: var(--sm-olive-deep); color: var(--sm-cream); }

/* ─── HABITACIONES · Lista ─── */
.sm-rooms-list { background: var(--sm-bg); padding: 80px 0 100px; }
.sm-rooms-list__inner { max-width: 1320px; margin: 0 auto; padding: 0 50px; }
.sm-rooms-list__header { text-align: center; margin-bottom: 56px; }
.sm-rooms-list__title {
	font-family: var(--sm-font-serif); font-weight: 300;
	font-size: clamp(28px, 3vw, 38px);
	color: var(--sm-ink); margin: 0 0 16px;
}
.sm-rooms-list__ornament {
	display: flex; align-items: center; justify-content: center; gap: 14px;
	color: var(--sm-olive);
}
.sm-rooms-list__ornament .sm-rooms-list__line {
	width: 32px; height: 1px; background: currentColor;
}
.sm-rooms-list__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.sm-rooms-card {
	background: #fff;
	border: 1px solid var(--sm-line-soft);
	display: flex; flex-direction: column;
	transition: box-shadow 0.3s var(--sm-ease);
}
.sm-rooms-card:hover { box-shadow: 0 12px 36px rgba(0,7,90,0.08); }
.sm-rooms-card__image { aspect-ratio: 4/3; overflow: hidden; }
.sm-rooms-card__image img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 0.6s var(--sm-ease);
}
.sm-rooms-card:hover .sm-rooms-card__image img { transform: scale(1.05); }
.sm-rooms-card__body { padding: 22px 24px 24px; }
.sm-rooms-card__name {
	font-family: var(--sm-font-serif); font-weight: 400;
	font-size: 22px; color: var(--sm-ink);
	margin: 0 0 4px; letter-spacing: 0.04em;
}
.sm-rooms-card__price {
	font-family: var(--sm-font-serif); font-style: italic; font-weight: 300;
	font-size: 13px; color: var(--sm-ink-soft); margin: 0 0 14px;
}
.sm-rooms-card__meta {
	display: flex; gap: 14px; flex-wrap: wrap;
	font-size: 11px; color: var(--sm-ink-soft);
	letter-spacing: 0.06em; padding: 12px 0;
	border-top: 1px solid var(--sm-line-soft);
	border-bottom: 1px solid var(--sm-line-soft);
	margin-bottom: 14px;
}
.sm-rooms-card__meta-item { display: inline-flex; align-items: center; gap: 5px; }
.sm-rooms-card__link {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500;
	color: var(--sm-olive); text-decoration: none;
	transition: gap 0.3s var(--sm-ease);
}
.sm-rooms-card__link:hover { gap: 16px; }

/* ─── HABITACIONES · Quote band ─── */
.sm-rooms-quote {
	background: var(--sm-ink);
	padding: 60px 50px;
	color: var(--sm-cream);
	text-align: center;
}
.sm-rooms-quote__inner { max-width: 1100px; margin: 0 auto; }
.sm-rooms-quote__text {
	display: flex; align-items: center; justify-content: center;
	gap: 24px; flex-wrap: wrap;
	font-family: var(--sm-font-sans);
	font-size: 13px; letter-spacing: 0.04em;
	color: rgba(248,245,242,0.86); margin: 0;
}
.sm-rooms-quote__ornament { color: var(--sm-olive); flex-shrink: 0; }

/* ─── RESTAURANTE · Hero ─── */
.sm-rest-hero {
	position: relative; min-height: 60vh; overflow: hidden;
	display: flex; align-items: center;
}
.sm-rest-hero__bg, .sm-rest-hero__bg img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.sm-rest-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(0,7,90,0.85) 0%, rgba(0,7,90,0.4) 50%, transparent 100%);
	z-index: 1;
}
.sm-rest-hero__content {
	position: relative; z-index: 2;
	max-width: 1320px; width: 100%; margin: 0 auto;
	padding: 200px 50px 80px;
}
.sm-rest-hero__text { max-width: 520px; }
.sm-rest-hero__title {
	font-family: var(--sm-font-serif); font-weight: 300;
	font-size: clamp(40px, 5vw, 60px); line-height: 1.08;
	color: var(--sm-cream); margin: 0 0 24px;
}
.sm-rest-hero__sub {
	font-size: 14px; line-height: 1.9;
	color: rgba(248,245,242,0.88); margin: 0;
}

/* ─── RESTAURANTE · Nuestra Cocina ─── */
.sm-rest-cocina { background: var(--sm-bg); padding: 80px 0; }
.sm-rest-cocina__inner {
	max-width: 1320px; margin: 0 auto;
	padding: 0 50px;
	display: grid; grid-template-columns: 1fr 1.2fr;
	gap: 80px; align-items: center;
}
.sm-rest-cocina__title {
	font-family: var(--sm-font-serif); font-weight: 400; font-style: italic;
	font-size: clamp(28px, 3vw, 38px);
	color: var(--sm-ink); margin: 0 0 24px;
	letter-spacing: 0.005em;
}
.sm-rest-cocina__copy {
	font-size: 14px; line-height: 1.9;
	color: var(--sm-ink-soft); margin: 0 0 32px;
	max-width: 380px;
}
.sm-rest-cocina__cta {
	display: inline-block; padding: 14px 32px;
	border: 1px solid var(--sm-olive);
	color: var(--sm-olive); background: transparent;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
	text-decoration: none;
	transition: all 0.3s var(--sm-ease);
}
.sm-rest-cocina__cta:hover {
	background: var(--sm-olive); color: var(--sm-cream);
}
.sm-rest-cocina__image {
	aspect-ratio: 4/3; overflow: hidden;
}
.sm-rest-cocina__image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ─── RESTAURANTE · Menú destacado ─── */
.sm-rest-menu {
	background: var(--sm-ink); padding: 80px 50px;
	color: var(--sm-cream);
}
.sm-rest-menu__inner { max-width: 1320px; margin: 0 auto; }
.sm-rest-menu__header { text-align: center; margin-bottom: 56px; }
.sm-rest-menu__title {
	font-family: var(--sm-font-serif); font-weight: 400; font-style: italic;
	font-size: clamp(28px, 3vw, 36px);
	color: var(--sm-cream); margin: 0 0 16px;
}
.sm-rest-menu__rule {
	width: 60px; height: 1px;
	background: var(--sm-olive); margin: 0 auto;
}
.sm-rest-menu__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px;
}
.sm-rest-menu__heading {
	font-family: var(--sm-font-sans); font-weight: 600;
	font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--sm-olive); margin: 0 0 24px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(201,164,74,0.3);
}
.sm-rest-menu__list { list-style: none; margin: 0; padding: 0; }
.sm-rest-menu__item { padding: 16px 0; border-bottom: 1px dotted rgba(248,245,242,0.18); }
.sm-rest-menu__item:last-child { border-bottom: 0; }
.sm-rest-menu__row {
	display: flex; justify-content: space-between; align-items: baseline;
	gap: 16px;
}
.sm-rest-menu__name {
	font-family: var(--sm-font-serif); font-weight: 400;
	font-size: 14px; color: var(--sm-cream); line-height: 1.5;
}
.sm-rest-menu__price {
	font-family: var(--sm-font-serif); font-weight: 400;
	font-size: 14px; color: var(--sm-olive);
	flex-shrink: 0; padding-left: 12px;
	border-left: 1px solid rgba(201,164,74,0.3);
}
.sm-rest-menu__ornament {
	text-align: center; margin-top: 56px;
}

/* ─── EVENTOS · Hero ─── */
.sm-events-hero {
	position: relative; min-height: 60vh; overflow: hidden;
	display: flex; align-items: center;
}
.sm-events-hero__bg, .sm-events-hero__bg img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.sm-events-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(0,7,90,0.7) 0%, rgba(0,7,90,0.3) 70%);
	z-index: 1;
}
.sm-events-hero__content {
	position: relative; z-index: 2;
	max-width: 1320px; width: 100%; margin: 0 auto;
	padding: 200px 50px 80px;
}
.sm-events-hero__title {
	font-family: var(--sm-font-serif); font-weight: 300;
	font-size: clamp(40px, 5vw, 60px); line-height: 1.1;
	color: var(--sm-cream); margin: 0 0 24px;
}
.sm-events-hero__sub {
	font-size: 14px; line-height: 1.9;
	color: rgba(248,245,242,0.88); max-width: 480px; margin: 0;
}

/* ─── EVENTOS · Lista de salones ─── */
.sm-events-list { background: var(--sm-bg); padding: 80px 0 60px; }
.sm-events-list__inner { max-width: 1320px; margin: 0 auto; padding: 0 50px; }
.sm-events-list__header { text-align: center; margin-bottom: 48px; }
.sm-events-list__title {
	font-family: var(--sm-font-serif); font-weight: 300;
	font-size: clamp(28px, 3vw, 36px);
	color: var(--sm-ink); margin: 0 0 14px;
}
.sm-events-list__ornament {
	display: flex; align-items: center; justify-content: center;
	gap: 12px; color: var(--sm-olive);
}
.sm-events-list__ornament span {
	width: 28px; height: 1px; background: currentColor; display: inline-block;
}
.sm-events-list__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.sm-events-card {
	background: #fff;
	border: 1px solid var(--sm-line-soft);
	transition: box-shadow 0.3s var(--sm-ease);
}
.sm-events-card:hover { box-shadow: 0 12px 36px rgba(0,7,90,0.08); }
.sm-events-card__image { aspect-ratio: 4/3; overflow: hidden; }
.sm-events-card__image img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 0.6s var(--sm-ease);
}
.sm-events-card:hover .sm-events-card__image img { transform: scale(1.05); }
.sm-events-card__body { padding: 24px 26px 26px; }
.sm-events-card__name {
	font-family: var(--sm-font-serif); font-weight: 400;
	font-size: 22px; color: var(--sm-ink);
	margin: 0 0 6px; letter-spacing: 0.02em;
}
.sm-events-card__cap {
	font-family: var(--sm-font-serif); font-style: italic; font-weight: 300;
	font-size: 13px; color: var(--sm-ink-soft); margin: 0 0 18px;
}
.sm-events-card__link {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500;
	color: var(--sm-olive); text-decoration: none;
	padding-top: 14px; border-top: 1px solid var(--sm-line-soft);
	transition: gap 0.3s var(--sm-ease);
	width: 100%;
}
.sm-events-card__link:hover { gap: 16px; }

/* ─── EVENTOS · Servicios ─── */
.sm-events-services {
	background: var(--sm-bg); padding: 60px 50px 80px;
}
.sm-events-services__inner {
	max-width: 1100px; margin: 0 auto;
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px;
}
.sm-events-service { text-align: center; }
.sm-events-service__icon {
	color: var(--sm-olive);
	width: 48px; height: 48px;
	margin: 0 auto 20px;
}
.sm-events-service__icon svg { width: 100%; height: 100%; }
.sm-events-service__title {
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600;
	color: var(--sm-ink); margin: 0 0 10px;
}
.sm-events-service__text {
	font-size: 13px; line-height: 1.7;
	color: var(--sm-ink-soft); margin: 0;
}

/* ─── EVENTOS · CTA Band ─── */
.sm-events-cta {
	background: var(--sm-ink); padding: 32px 50px;
	color: var(--sm-cream);
}
.sm-events-cta__inner {
	max-width: 1320px; margin: 0 auto;
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; flex-wrap: wrap;
}
.sm-events-cta__title {
	font-family: var(--sm-font-serif); font-weight: 400; font-style: italic;
	font-size: 24px; color: var(--sm-cream); margin: 0;
}
.sm-events-cta__btn {
	background: var(--sm-olive); color: var(--sm-ink);
	padding: 14px 28px;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.24em; text-transform: uppercase; font-weight: 600;
	text-decoration: none;
	transition: all 0.3s var(--sm-ease);
}
.sm-events-cta__btn:hover { background: var(--sm-cream); color: var(--sm-ink); }

/* ─── BLOG ─── */
.sm-blog { background: var(--sm-bg); padding: 200px 0 80px; }
.sm-blog__inner { max-width: 1320px; margin: 0 auto; padding: 0 50px; }
.sm-blog__header { text-align: center; margin-bottom: 56px; }
.sm-blog__title {
	font-family: var(--sm-font-serif); font-weight: 400; font-style: italic;
	font-size: clamp(34px, 4vw, 46px);
	color: var(--sm-ink); margin: 0 0 14px;
	letter-spacing: 0.005em;
}
.sm-blog__sub {
	font-size: 14px; color: var(--sm-ink-soft);
	max-width: 560px; margin: 0 auto;
}
.sm-blog__grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.sm-blog-card { background: transparent; }
.sm-blog-card__link { display: block; text-decoration: none; color: inherit; }
.sm-blog-card__image {
	aspect-ratio: 4/3; overflow: hidden;
	background: var(--sm-bg-alt); margin-bottom: 18px;
}
.sm-blog-card__image img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 0.6s var(--sm-ease);
}
.sm-blog-card:hover .sm-blog-card__image img { transform: scale(1.05); }
.sm-blog-card__cat {
	font-family: var(--sm-font-sans); font-size: 10px;
	letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600;
	color: var(--sm-olive); margin: 0 0 10px;
}
.sm-blog-card__title {
	font-family: var(--sm-font-serif); font-weight: 400;
	font-size: 18px; line-height: 1.35;
	color: var(--sm-ink); margin: 0 0 10px;
	transition: color 0.3s var(--sm-ease);
}
.sm-blog-card:hover .sm-blog-card__title { color: var(--sm-olive); }
.sm-blog-card__excerpt {
	font-size: 12px; line-height: 1.7;
	color: var(--sm-ink-soft); margin: 0 0 14px;
}
.sm-blog-card__more {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--sm-font-sans); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500;
	color: var(--sm-olive);
}
.sm-blog__more { text-align: center; margin-top: 56px; }
.sm-blog__more-btn {
	display: inline-block; padding: 14px 32px;
	border: 1px solid var(--sm-olive);
	color: var(--sm-olive); background: transparent;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
	text-decoration: none;
	transition: all 0.3s var(--sm-ease);
}
.sm-blog__more-btn:hover { background: var(--sm-olive); color: var(--sm-cream); }

/* ─── CONTACTO ─── */
.sm-contact { background: var(--sm-bg); padding: 200px 0 80px; }
.sm-contact__inner {
	max-width: 1440px; margin: 0 auto;
	padding: 0 50px;
	display: grid;
	grid-template-columns: 0.9fr 1.2fr 1fr;
	gap: 56px;
}
.sm-contact__heading {
	font-family: var(--sm-font-serif); font-weight: 400; font-style: italic;
	font-size: clamp(28px, 3vw, 38px); line-height: 1.15;
	color: var(--sm-ink); margin: 0 0 18px;
}
.sm-contact__lead {
	font-size: 14px; line-height: 1.8;
	color: var(--sm-ink-soft); margin: 0 0 36px;
}
.sm-contact__data { list-style: none; margin: 0; padding: 0; }
.sm-contact__data-item {
	display: flex; gap: 16px; margin-bottom: 24px;
	align-items: flex-start;
}
.sm-contact__data-icon {
	flex-shrink: 0; color: var(--sm-olive);
	width: 24px; height: 24px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-top: 2px;
}
.sm-contact__data-label {
	font-family: var(--sm-font-sans); font-size: 10px;
	letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600;
	color: var(--sm-olive); margin: 0 0 4px;
}
.sm-contact__data-body p {
	font-size: 13px; line-height: 1.7;
	color: var(--sm-ink-soft); margin: 0;
}
.sm-contact__data-body a {
	color: var(--sm-ink); text-decoration: none;
	transition: color 0.3s var(--sm-ease);
}
.sm-contact__data-body a:hover { color: var(--sm-olive); }

.sm-contact__form-title {
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600;
	color: var(--sm-olive); margin: 0 0 24px;
}
.sm-contact__field { margin-bottom: 14px; }
.sm-contact__row {
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
	margin-bottom: 14px;
}
.sm-contact__row .sm-contact__field { margin-bottom: 0; }
.sm-contact__field input,
.sm-contact__field textarea {
	width: 100%; padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--sm-line);
	font-family: var(--sm-font-sans);
	font-size: 13px; color: var(--sm-ink);
	transition: border-color 0.3s var(--sm-ease);
}
.sm-contact__field input::placeholder,
.sm-contact__field textarea::placeholder {
	color: var(--sm-ink-mute); opacity: 0.7;
}
.sm-contact__field input:focus,
.sm-contact__field textarea:focus {
	outline: 0; border-color: var(--sm-olive);
}
.sm-contact__submit {
	background: var(--sm-olive); color: var(--sm-ink);
	border: 0; padding: 16px 36px;
	font-family: var(--sm-font-sans); font-size: 11px;
	letter-spacing: 0.24em; text-transform: uppercase; font-weight: 600;
	cursor: pointer;
	transition: background 0.3s var(--sm-ease);
}
.sm-contact__submit:hover { background: var(--sm-olive-deep); color: var(--sm-cream); }
.sm-contact__map { background: var(--sm-bg-alt); min-height: 480px; position: relative; overflow: hidden; }
.sm-contact__map iframe { width: 100%; height: 100%; min-height: 480px; border: 0; display: block; }
.sm-contact__map-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 480px;
	padding: 40px 32px;
	text-align: center;
	color: var(--sm-ink-mute);
	background: var(--sm-bg-alt);
}
.sm-contact__map-placeholder svg {
	width: 48px;
	height: 48px;
	color: var(--sm-olive);
	margin-bottom: 18px;
	opacity: 0.6;
}
.sm-contact__map-placeholder-title {
	font-family: var(--sm-font-serif);
	font-size: 22px;
	font-weight: 300;
	color: var(--sm-ink);
	margin: 0 0 12px;
}
.sm-contact__map-placeholder-text {
	font-family: var(--sm-font-sans);
	font-size: 13px;
	line-height: 1.7;
	max-width: 380px;
	margin: 0;
}

/* ─── Responsive ─── */
@media (max-width: 1100px) {
	.sm-rooms-list__grid { grid-template-columns: repeat(2, 1fr); }
	.sm-events-list__grid { grid-template-columns: 1fr; }
	.sm-events-services__inner { grid-template-columns: 1fr; gap: 32px; }
	.sm-blog__grid { grid-template-columns: repeat(2, 1fr); }
	.sm-rest-menu__grid { grid-template-columns: 1fr; gap: 40px; }
	.sm-contact__inner { grid-template-columns: 1fr; }
	.sm-rest-cocina__inner { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 760px) {
	.sm-rooms-hero__content,
	.sm-rest-hero__content,
	.sm-events-hero__content { padding: 160px 24px 60px; }
	.sm-rooms-list__inner,
	.sm-events-list__inner,
	.sm-events-services__inner,
	.sm-rest-menu__inner,
	.sm-rest-cocina__inner,
	.sm-blog__inner,
	.sm-contact__inner { padding: 0 24px; }
	.sm-rooms-booking { padding: 0 16px; margin-top: -30px; }
	.sm-rooms-booking__form { grid-template-columns: 1fr; }
	.sm-rooms-booking__field { border-right: 0; border-bottom: 1px solid rgba(201,164,74,0.18); }
	.sm-rooms-booking__cta { width: 100%; max-width: none; }
	.sm-rooms-list__grid { grid-template-columns: 1fr; }
	.sm-blog__grid { grid-template-columns: 1fr; gap: 24px; }
	.sm-contact__row { grid-template-columns: 1fr; }
	.sm-events-cta__inner { flex-direction: column; text-align: center; }
}


/* ============================================================
   ADDITIONS · v2.9.4
   - Sección Momentos
   - Hero slider
   - Mobile menu funcional
   ============================================================ */

/* ─── HERO SLIDER ─── */
.sm-front-hero__slide {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0;
	transition: opacity 1.8s var(--sm-ease);
}
.sm-front-hero__slide.is-active { opacity: 1; z-index: 1; }
.sm-front-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1);
	transition: transform 8s ease-out;
}
.sm-front-hero__slide.is-active img {
	transform: scale(1.06);
}
.sm-front-hero__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	pointer-events: none;
	padding: 0 32px;
	z-index: 10;
}
.sm-front-hero__nav-btn {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba(248, 245, 242, 0.16);
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border: 1px solid rgba(248, 245, 242, 0.3);
	color: var(--sm-cream);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.4s var(--sm-ease);
	pointer-events: auto;
	box-shadow: 0 8px 32px rgba(0, 7, 90, 0.12);
}
.sm-front-hero__nav-btn:hover {
	background: rgba(248, 245, 242, 0.95);
	color: var(--sm-ink);
	border-color: rgba(248, 245, 242, 1);
	transform: scale(1.08);
	box-shadow: 0 12px 40px rgba(0, 7, 90, 0.2);
}
.sm-front-hero__nav-btn:active {
	transform: scale(0.96);
}
.sm-front-hero__nav-btn svg {
	width: 22px;
	height: 22px;
	stroke-width: 1.4;
	transition: transform 0.3s var(--sm-ease);
}
.sm-front-hero__nav-btn:hover svg {
	transform: scale(1.1);
}

/* Pagination "01 — 05" más visible y elegante */
.sm-front-hero__pagination {
	position: absolute;
	bottom: 40px;
	right: 50px;
	z-index: 10;
	font-family: var(--sm-font-sans);
	font-size: 13px;
	letter-spacing: 0.32em;
	color: var(--sm-cream);
	display: flex;
	gap: 14px;
	align-items: center;
	background: rgba(0, 7, 90, 0.4);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: 10px 20px;
	border: 1px solid rgba(248, 245, 242, 0.2);
}

@media (max-width: 768px) {
	.sm-front-hero__nav {
		padding: 0 16px;
	}
	.sm-front-hero__nav-btn {
		width: 48px;
		height: 48px;
	}
	.sm-front-hero__nav-btn svg {
		width: 18px;
		height: 18px;
	}
	.sm-front-hero__pagination {
		bottom: 24px;
		right: 24px;
		font-size: 11px;
		padding: 8px 14px;
	}
}

/* ─── MOMENTOS ─── */
.sm-front-momentos {
	background: var(--sm-bg);
	padding: 100px 0 120px;
}
.sm-front-momentos__header {
	max-width: 720px;
	margin: 0 auto 60px;
	text-align: center;
	padding: 0 32px;
}
.sm-front-momentos__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.1;
	color: var(--sm-ink);
	margin: 16px 0 20px;
}
.sm-front-momentos__title em { font-style: italic; }
.sm-front-momentos__sub {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 16px;
	line-height: 1.7;
	color: var(--sm-ink-soft);
	max-width: 480px;
	margin: 0 auto;
}
.sm-front-momentos__grid {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 32px;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	grid-auto-rows: 200px;
	gap: 12px;
}
.sm-front-momentos__cell {
	margin: 0;
	overflow: hidden;
	background: var(--sm-bg-alt);
	position: relative;
}
.sm-front-momentos__cell img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1s var(--sm-ease);
}
.sm-front-momentos__cell:hover img {
	transform: scale(1.05);
}
.sm-front-momentos__cell--1 { grid-column: span 2; grid-row: span 2; }
.sm-front-momentos__cell--2 { grid-column: span 2; grid-row: span 1; }
.sm-front-momentos__cell--3 { grid-column: span 2; grid-row: span 2; }
.sm-front-momentos__cell--4 { grid-column: span 2; grid-row: span 1; }
.sm-front-momentos__cell--5 { grid-column: span 3; grid-row: span 1; }
.sm-front-momentos__cell--6 { grid-column: span 3; grid-row: span 1; }
.sm-front-momentos__handle {
	text-align: center;
	margin: 48px 0 0;
	font-family: var(--sm-font-sans);
	font-size: 12px;
	letter-spacing: 0.32em;
	color: var(--sm-olive);
	font-weight: 500;
}

@media (max-width: 960px) {
	.sm-front-momentos { padding: 70px 0 90px; }
	.sm-front-momentos__grid {
		grid-template-columns: repeat(4, 1fr);
		grid-auto-rows: 160px;
	}
	.sm-front-momentos__cell--1 { grid-column: span 2; grid-row: span 2; }
	.sm-front-momentos__cell--2 { grid-column: span 2; grid-row: span 1; }
	.sm-front-momentos__cell--3 { grid-column: span 2; grid-row: span 1; }
	.sm-front-momentos__cell--4 { grid-column: span 2; grid-row: span 2; }
	.sm-front-momentos__cell--5 { grid-column: span 2; grid-row: span 1; }
	.sm-front-momentos__cell--6 { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 600px) {
	.sm-front-momentos__grid {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows: 160px;
		gap: 8px;
	}
	.sm-front-momentos__cell,
	.sm-front-momentos__cell--1,
	.sm-front-momentos__cell--2,
	.sm-front-momentos__cell--3,
	.sm-front-momentos__cell--4,
	.sm-front-momentos__cell--5,
	.sm-front-momentos__cell--6 {
		grid-column: span 1;
		grid-row: span 1;
	}
	.sm-front-momentos__cell--1 { grid-column: span 2; }
}

/* ─── FOOTER · branding line ─── */
.sm-footer__branding {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	padding: 50px 32px 32px;
	border-top: 1px solid var(--sm-line-soft);
	margin-top: 32px;
}
.sm-footer__branding-rule {
	flex: 1;
	max-width: 100px;
	height: 1px;
	background: var(--sm-olive);
	opacity: 0.45;
}
.sm-footer__branding-text {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 17px;
	color: var(--sm-ink);
	margin: 0;
	letter-spacing: 0.01em;
}
@media (max-width: 600px) {
	.sm-footer__branding {
		flex-direction: column;
		gap: 14px;
		padding: 32px 24px 20px;
	}
	.sm-footer__branding-rule { width: 50px; max-width: 50px; }
}

/* ─── REVEAL (desactivado · siempre visible) ─── */
.sm-reveal {
	opacity: 1;
	transform: none;
}

/* ─── MOBILE MENU FUNCIONAL ─── */
@media (max-width: 960px) {
	/* Header simplificado */
	.sm-header {
		min-height: 80px;
		position: relative;
		background: var(--sm-bg);
		border-bottom: 1px solid var(--sm-line-soft);
	}
	.sm-header__bg { display: none; }
	.sm-header__bar {
		min-height: 80px;
		padding: 14px 20px;
		position: relative;
	}
	/* Logo centrado */
	.sm-header__logo {
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		margin: 0;
	}
	.sm-header__logo-img {
		max-height: 56px;
		max-width: 80px;
	}
	/* Toggle a la derecha */
	.sm-header__toggle {
		display: flex;
		flex-direction: column;
		gap: 5px;
		background: transparent;
		border: 0;
		width: 44px;
		height: 44px;
		justify-content: center;
		align-items: center;
		cursor: pointer;
		padding: 0;
		position: absolute;
		right: 16px;
		top: 50%;
		transform: translateY(-50%);
		z-index: 110;
		touch-action: manipulation;
		-webkit-tap-highlight-color: rgba(0,7,90,0.08);
	}
	.sm-header__toggle span {
		display: block;
		width: 22px;
		height: 1.5px;
		background: var(--sm-ink);
		transition: all 0.3s var(--sm-ease);
	}
	/* Off-canvas menu */
	.sm-header__nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: var(--sm-bg);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		padding: 80px 24px 40px;
		gap: 28px;
		transform: translateX(100%);
		transition: transform 0.4s var(--sm-ease);
		visibility: hidden;
		z-index: 100;
		overflow-y: auto;
		display: flex;
		pointer-events: none;
	}
	.sm-header.is-mobile-open .sm-header__nav {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
	}
	.sm-header__menu {
		flex-direction: column;
		gap: 22px;
		font-size: 14px;
		text-align: center;
		align-items: center;
		padding: 0;
	}
	.sm-header__cta {
		font-size: 12px;
		padding: 14px 32px;
	}
	.sm-header__lang { display: inline-flex; }
	/* Hamburguesa → X */
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(2) {
		opacity: 0;
	}
	.sm-header.is-mobile-open .sm-header__toggle span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}
	/* Sticky desactivado en mobile */
	.sm-header.is-sticky {
		position: relative;
		min-height: 80px;
	}
}

/* ─── Mobile · ajustes responsive específicos a páginas ─── */
@media (max-width: 768px) {
	.sm-front-hero { min-height: 78vh; }
	.sm-front-hero__title { font-size: clamp(32px, 9vw, 44px); }

	/* Booking bar stackeada */
	.sm-front-booking { padding: 0 16px; margin-top: -30px; }
	.sm-front-booking__form { grid-template-columns: 1fr; }
	.sm-front-booking__field {
		border-right: 0;
		border-bottom: 1px solid rgba(201,164,74,0.2);
	}
	.sm-front-booking__field:last-of-type { border-bottom: 0; }
	.sm-front-booking__cta { max-width: none; width: 100%; }

	/* Legado stack */
	.sm-front-legado__inner { grid-template-columns: 1fr; gap: 32px; padding: 0 24px; }
	.sm-front-legado__gallery {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		gap: 12px;
		aspect-ratio: auto;
		height: auto;
	}
	.sm-front-legado__img--main,
	.sm-front-legado__img--top,
	.sm-front-legado__img--bottom {
		grid-column: 1;
		grid-row: auto;
		aspect-ratio: 4/3;
	}

	/* Rooms */
	.sm-front-rooms__inner { grid-template-columns: 1fr; gap: 32px; padding: 0 24px; }
	.sm-front-room { flex: 0 0 100%; }
	.sm-front-rooms__nav { width: 40px; height: 40px; }

	/* Experiencias stack */
	.sm-front-exp__inner { grid-template-columns: 1fr; gap: 40px; padding: 0 24px; }
	.sm-front-exp__items {
		grid-template-columns: 1fr 1fr;
		gap: 32px 16px;
		border-left: 0;
		padding-left: 0;
		padding-top: 32px;
		border-top: 1px solid rgba(201,164,74,0.22);
	}

	/* Page heroes */
	.sm-rooms-hero,
	.sm-rest-hero,
	.sm-events-hero { min-height: 50vh; }
	.sm-rooms-hero__content,
	.sm-rest-hero__content,
	.sm-events-hero__content { padding: 60px 24px; }

	/* Habitaciones page */
	.sm-rooms-list__grid { grid-template-columns: 1fr; gap: 24px; padding: 0 20px; }
	.sm-rooms-quote__text { flex-direction: column; gap: 16px; text-align: center; }

	/* Restaurante page */
	.sm-rest-cocina__inner { grid-template-columns: 1fr; gap: 32px; padding: 0 24px; }
	.sm-rest-menu__grid { grid-template-columns: 1fr; gap: 32px; }

	/* Eventos page */
	.sm-events-list__grid { grid-template-columns: 1fr; padding: 0 20px; }
	.sm-events-services__inner { grid-template-columns: 1fr; gap: 32px; }
	.sm-events-cta__inner { flex-direction: column; gap: 16px; text-align: center; }

	/* Blog */
	.sm-blog__grid { grid-template-columns: 1fr; gap: 32px; padding: 0 20px; }

	/* Contacto */
	.sm-contact__inner { grid-template-columns: 1fr; gap: 36px; padding: 0 20px; }
	.sm-contact__row { grid-template-columns: 1fr; gap: 0; }
	.sm-contact__map { min-height: 300px; }
	.sm-contact__map iframe { min-height: 300px; }

	/* Footer */
	.sm-footer__grid { grid-template-columns: 1fr; gap: 36px; padding: 60px 24px 40px; }
	.sm-footer__bottom { flex-direction: column; gap: 14px; padding: 24px; text-align: center; }
}
@media (max-width: 480px) {
	.sm-blog__grid { grid-template-columns: 1fr; }
	.sm-front-exp__items { grid-template-columns: 1fr; }
}

/* ============================================================
   SINGLE ROOM · v3.0.5
   Layout luxury premium para detalle de habitación
   ============================================================ */

.sm-room-single {
	background: var(--sm-bg);
}

/* HERO */
.sm-room-hero {
	position: relative;
	min-height: 80vh;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
}
.sm-room-hero__bg,
.sm-room-hero__bg img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 0;
}
.sm-room-hero__overlay {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(0,7,90,0.10) 0%, rgba(0,7,90,0.55) 100%);
}
.sm-room-hero__content {
	position: relative; z-index: 2;
	max-width: 1320px; width: 100%;
	margin: 0 auto;
	padding: 60px 50px 100px;
	color: var(--sm-cream);
}
.sm-room-hero__crumbs {
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	margin-bottom: 28px;
	display: flex;
	gap: 14px;
	align-items: center;
	color: rgba(248,245,242,0.7);
}
.sm-room-hero__crumbs a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s var(--sm-ease);
}
.sm-room-hero__crumbs a:hover { color: var(--sm-cream); }
.sm-room-hero__crumbs span { opacity: 0.4; }
.sm-room-hero__eyebrow {
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	font-weight: 400;
	color: var(--sm-olive);
	margin: 0 0 18px;
}
.sm-room-hero__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(48px, 6vw, 84px);
	line-height: 1.05;
	letter-spacing: -0.005em;
	margin: 0 0 28px;
}
.sm-room-hero__rule {
	width: 56px;
	height: 1px;
	background: var(--sm-olive);
}
.sm-room-hero__scroll {
	position: absolute;
	bottom: 32px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	width: 1px;
	height: 48px;
	background: rgba(248,245,242,0.4);
	overflow: hidden;
}
.sm-room-hero__scroll span {
	display: block;
	width: 100%;
	height: 24px;
	background: var(--sm-cream);
	animation: sm-scroll-line 2.4s ease-in-out infinite;
}
@keyframes sm-scroll-line {
	0%   { transform: translateY(-100%); }
	100% { transform: translateY(200%); }
}

/* BODY · 2 columnas */
.sm-room-body {
	padding: 100px 0 120px;
	background: var(--sm-bg);
}
.sm-room-body__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 80px;
	align-items: start;
}
.sm-room-body__main {
	min-width: 0;
}

/* Galería slider */
.sm-room-gallery {
	position: relative;
	margin-bottom: 80px;
	overflow: hidden;
}
.sm-room-gallery__viewport {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--sm-bg-alt);
}
.sm-room-gallery__track {
	position: relative;
	width: 100%;
	height: 100%;
}
.sm-room-gallery__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	z-index: 0;
	transition: opacity 1s var(--sm-ease);
}
.sm-room-gallery__slide.is-active {
	opacity: 1;
	z-index: 1;
}
.sm-room-gallery__slide img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.sm-room-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(248,245,242,0.92);
	color: var(--sm-ink);
	border: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s var(--sm-ease);
	z-index: 5;
	box-shadow: 0 4px 16px rgba(0,7,90,0.16);
}
.sm-room-gallery__nav:hover {
	background: var(--sm-ink);
	color: var(--sm-cream);
}
.sm-room-gallery__nav svg { width: 18px; height: 18px; }
.sm-room-gallery__nav--prev { left: 20px; }
.sm-room-gallery__nav--next { right: 20px; }
.sm-room-gallery__count {
	position: absolute;
	bottom: 24px;
	right: 28px;
	z-index: 5;
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.32em;
	color: var(--sm-cream);
	background: rgba(0,7,90,0.55);
	padding: 8px 16px;
	display: flex;
	gap: 10px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.sm-room-gallery__count-sep { opacity: 0.5; }

/* Overview · specs */
.sm-room-overview {
	margin-bottom: 80px;
}
.sm-room-overview__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(32px, 3.4vw, 44px);
	line-height: 1.1;
	color: var(--sm-ink);
	margin: 14px 0 20px;
	letter-spacing: -0.005em;
}
.sm-room-overview__rule {
	width: 32px;
	height: 1px;
	background: var(--sm-olive);
	opacity: 0.7;
	margin: 0 0 36px;
}
.sm-room-overview__specs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px 48px;
	margin: 0;
}
.sm-room-overview__spec {
	margin: 0;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--sm-line-soft);
}
.sm-room-overview__spec dt {
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-ink-mute);
	margin-bottom: 8px;
}
.sm-room-overview__spec dd {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 22px;
	line-height: 1.2;
	color: var(--sm-ink);
	margin: 0;
}

/* Description */
.sm-room-description {
	margin-bottom: 80px;
}
.sm-room-description__text {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 18px;
	line-height: 1.85;
	color: var(--sm-ink-soft);
	letter-spacing: 0.005em;
}
.sm-room-description__text p {
	margin: 0 0 1.4em;
}
.sm-room-description__text p:last-child { margin-bottom: 0; }
.sm-room-description__text p::first-letter {
	font-size: 1em;
}

/* Amenities */
.sm-room-amenities__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(28px, 3vw, 38px);
	color: var(--sm-ink);
	margin: 14px 0 20px;
	letter-spacing: -0.005em;
}
.sm-room-amenities__rule {
	width: 32px;
	height: 1px;
	background: var(--sm-olive);
	opacity: 0.7;
	margin: 0 0 32px;
}
.sm-room-amenities__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 32px;
}
.sm-room-amenities__item {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--sm-font-sans);
	font-size: 14px;
	color: var(--sm-ink-soft);
	font-weight: 300;
	padding: 6px 0;
}
.sm-room-amenities__item svg {
	width: 16px;
	height: 16px;
	color: var(--sm-olive);
	flex-shrink: 0;
}

/* SIDEBAR · sticky booking */
.sm-room-sidebar {
	position: sticky;
	top: 120px;
}
.sm-room-sidebar__inner {
	background: var(--sm-bone, #FFFFFF);
	border: 1px solid var(--sm-line-soft);
	padding: 36px 32px 32px;
	box-shadow: 0 24px 60px rgba(0,7,90,0.08);
}

.sm-room-sidebar__price-block {
	padding-bottom: 24px;
	border-bottom: 1px solid var(--sm-line-soft);
	margin-bottom: 24px;
	text-align: center;
}
.sm-room-sidebar__from {
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-ink-mute);
	margin: 0 0 6px;
}
.sm-room-sidebar__price {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 32px;
	color: var(--sm-ink);
	margin: 0 0 4px;
	line-height: 1.1;
	letter-spacing: -0.005em;
}
.sm-room-sidebar__price .sm-price__symbol {
	font-size: 0.6em;
	vertical-align: super;
	color: var(--sm-olive);
	margin-right: 2px;
}
.sm-room-sidebar__price .sm-price__suffix {
	font-style: italic;
	font-size: 0.55em;
	color: var(--sm-ink-mute);
	font-weight: 300;
	margin-left: 4px;
}
.sm-room-sidebar__note {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 12px;
	color: var(--sm-ink-mute);
	margin: 12px 0 0;
}

/* Currency toggle */
.sm-currency-toggle {
	display: inline-flex;
	gap: 0;
	margin: 12px auto 0;
	padding: 3px;
	background: var(--sm-bg-alt);
	border-radius: 999px;
}
.sm-currency-toggle__btn {
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	font-weight: 500;
	background: transparent;
	color: var(--sm-ink-mute);
	border: 0;
	padding: 6px 14px;
	cursor: pointer;
	border-radius: 999px;
	transition: all 0.3s var(--sm-ease);
}
.sm-currency-toggle__btn.is-active {
	background: var(--sm-ink);
	color: var(--sm-cream);
}

/* Booking form */
.sm-room-booking__field {
	margin-bottom: 18px;
}
.sm-room-booking__field label {
	display: block;
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-olive);
	margin-bottom: 8px;
}
.sm-room-booking__field input,
.sm-room-booking__field select {
	width: 100%;
	padding: 12px 14px;
	font-family: var(--sm-font-sans);
	font-size: 14px;
	color: var(--sm-ink);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--sm-line);
	border-radius: 0;
	transition: border-color 0.3s var(--sm-ease);
	-webkit-appearance: none;
	appearance: none;
}
.sm-room-booking__field input:focus,
.sm-room-booking__field select:focus {
	outline: none;
	border-bottom-color: var(--sm-olive);
}
.sm-room-booking__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2300075A' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 6px center;
	padding-right: 28px;
}

.sm-room-booking__submit {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 16px 24px;
	margin-top: 8px;
	background: var(--sm-ink);
	color: var(--sm-cream);
	border: 1px solid var(--sm-ink);
	font-family: var(--sm-font-sans);
	font-size: 11px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s var(--sm-ease);
}
.sm-room-booking__submit:hover {
	background: var(--sm-olive);
	border-color: var(--sm-olive);
	color: var(--sm-ink);
}
.sm-room-booking__submit svg {
	width: 16px; height: 16px;
	transition: transform 0.3s var(--sm-ease);
}
.sm-room-booking__submit:hover svg {
	transform: translateX(4px);
}

/* Sidebar contact */
.sm-room-sidebar__contact {
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--sm-line-soft);
	text-align: center;
}
.sm-room-sidebar__contact-label {
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-olive);
	margin: 0 0 8px;
}
.sm-room-sidebar__contact-text {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 13px;
	color: var(--sm-ink-soft);
	line-height: 1.6;
	margin: 0 0 14px;
}
.sm-room-sidebar__contact-link {
	display: block;
	font-family: var(--sm-font-sans);
	font-size: 13px;
	color: var(--sm-ink);
	text-decoration: none;
	margin-bottom: 6px;
	transition: color 0.3s var(--sm-ease);
}
.sm-room-sidebar__contact-link:hover {
	color: var(--sm-olive);
}

/* OTRAS HABITACIONES */
.sm-room-others {
	background: var(--sm-bg-alt);
	padding: 100px 0 120px;
}
.sm-room-others__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 50px;
}
.sm-room-others__header {
	text-align: center;
	margin-bottom: 60px;
}
.sm-room-others__title {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: clamp(32px, 3.4vw, 44px);
	color: var(--sm-ink);
	margin: 14px 0 20px;
	letter-spacing: -0.005em;
}
.sm-room-others__rule {
	width: 32px;
	height: 1px;
	background: var(--sm-olive);
	margin: 0 auto;
	opacity: 0.7;
}
.sm-room-others__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.sm-room-others__card {
	transition: transform 0.5s var(--sm-ease);
}
.sm-room-others__card:hover {
	transform: translateY(-4px);
}
.sm-room-others__link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.sm-room-others__image {
	overflow: hidden;
	aspect-ratio: 4 / 5;
	margin-bottom: 22px;
	background: var(--sm-bg);
}
.sm-room-others__image img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 1.2s var(--sm-ease);
}
.sm-room-others__card:hover .sm-room-others__image img {
	transform: scale(1.06);
}
.sm-room-others__name {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 26px;
	color: var(--sm-ink);
	margin: 0 0 12px;
	letter-spacing: 0.005em;
	transition: color 0.4s var(--sm-ease);
}
.sm-room-others__card:hover .sm-room-others__name {
	color: var(--sm-olive-deep);
}
.sm-room-others__rule-card {
	width: 28px;
	height: 1px;
	background: var(--sm-olive);
	opacity: 0.6;
	margin-bottom: 14px;
}
.sm-room-others__feature {
	font-family: var(--sm-font-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 13.5px;
	color: var(--sm-ink-soft);
	margin: 0 0 8px;
}
.sm-room-others__price {
	font-family: var(--sm-font-serif);
	font-weight: 300;
	font-size: 16px;
	color: var(--sm-ink);
	margin: 0 0 18px;
}
.sm-room-others__price .sm-price__symbol {
	color: var(--sm-olive);
	margin-right: 2px;
}
.sm-room-others__price .sm-price__suffix {
	font-style: italic;
	font-size: 12px;
	color: var(--sm-ink-mute);
}
.sm-room-others__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--sm-font-sans);
	font-size: 10.5px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--sm-ink);
}
.sm-room-others__cta::after {
	content: '';
	width: 28px;
	height: 1px;
	background: currentColor;
	transition: width 0.4s var(--sm-ease);
}
.sm-room-others__card:hover .sm-room-others__cta::after {
	width: 44px;
}

/* RESPONSIVE */
@media (max-width: 1100px) {
	.sm-room-body__inner {
		grid-template-columns: 1fr;
		gap: 60px;
	}
	.sm-room-sidebar {
		position: static;
	}
	.sm-room-sidebar__inner {
		max-width: 540px;
		margin: 0 auto;
	}
	.sm-room-others__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 768px) {
	.sm-room-hero { min-height: 60vh; }
	.sm-room-hero__content { padding: 60px 24px 80px; }
	.sm-room-hero__title { font-size: clamp(36px, 9vw, 52px); }
	.sm-room-body { padding: 70px 0 80px; }
	.sm-room-body__inner { padding: 0 24px; gap: 50px; }
	.sm-room-gallery { margin-bottom: 56px; }
	.sm-room-gallery__nav { width: 40px; height: 40px; }
	.sm-room-gallery__nav--prev { left: 12px; }
	.sm-room-gallery__nav--next { right: 12px; }
	.sm-room-overview { margin-bottom: 56px; }
	.sm-room-description { margin-bottom: 56px; }
	.sm-room-description__text { font-size: 16px; }
	.sm-room-overview__specs { grid-template-columns: 1fr; gap: 18px; }
	.sm-room-amenities__list { grid-template-columns: 1fr; }
	.sm-room-sidebar__inner { padding: 28px 24px; }
	.sm-room-others { padding: 70px 0 90px; }
	.sm-room-others__inner { padding: 0 24px; }
	.sm-room-others__grid { grid-template-columns: 1fr; gap: 40px; }
	.sm-room-others__header { margin-bottom: 44px; }
}
