html { scroll-behavior: smooth; }
body.sml-page { margin: 0; overflow-x: hidden; background: #f7f0e6; }
body.sml-page.sml-scroll-locked { overflow: hidden; }
.somos-marruecos-landing { min-height: 100vh; overflow: clip; }
.somos-marruecos-landing img { height: auto; }
.somos-marruecos-landing img[class*="absolute"] { height: 100%; }
.somos-marruecos-landing .site-header { transition: background-color .3s ease, border-color .3s ease, backdrop-filter .3s ease, box-shadow .3s ease; }
.somos-marruecos-landing .site-header.sml-header-scrolled { border-color: rgba(255,255,255,.12); background: rgba(30,20,14,.93); box-shadow: 0 10px 30px rgba(20,13,9,.14); backdrop-filter: blur(14px); }

.sml-mobile-menu { position: fixed; inset: 0; z-index: 240; display: grid; place-items: center; visibility: hidden; opacity: 0; background: rgba(28,18,12,.98); transition: opacity .3s ease, visibility .3s ease; }
.sml-mobile-menu.is-open { visibility: visible; opacity: 1; }
.sml-mobile-menu nav { display: flex; width: min(82vw, 25rem); flex-direction: column; gap: 1.1rem; text-align: center; }
.sml-mobile-menu nav > a { padding: .7rem; color: #fff8f0; font-size: 1rem; font-weight: 800; letter-spacing: .09em; text-decoration: none; transition: color .2s ease; }
.sml-mobile-menu nav > a:hover, .sml-mobile-menu nav > a:focus-visible { color: #fb8500; }
.sml-mobile-menu__close { position: absolute; top: max(1.1rem, env(safe-area-inset-top)); right: 1.2rem; display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: .5rem; background: transparent; color: #fff8f0; font-size: 2rem; line-height: 1; cursor: pointer; }

.sml-booking-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: flex-end; justify-content: center; visibility: hidden; opacity: 0; transition: opacity .24s ease, visibility .24s ease; }
.sml-booking-modal.is-open { visibility: visible; opacity: 1; }
.sml-booking-modal__backdrop { position: absolute; inset: 0; background: rgba(18,12,8,.74); backdrop-filter: blur(5px); }
.sml-booking-dialog { position: relative; z-index: 1; display: flex; width: 100%; max-height: calc(100dvh - .75rem); flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.45); border-radius: 24px 24px 0 0; background: #f6efe5; color: #38251b; box-shadow: 0 28px 90px rgba(16,10,7,.38); transform: translateY(28px) scale(.988); transition: transform .27s cubic-bezier(.22,1,.36,1); }
.sml-booking-modal.is-open .sml-booking-dialog { transform: translateY(0) scale(1); }
.sml-booking-dialog__header { position: relative; flex: none; padding: 1.25rem 4.3rem 1rem 1.25rem; border-bottom: 1px solid rgba(90,59,43,.1); background: rgba(246,239,229,.97); }
.sml-booking-eyebrow { display: flex; align-items: center; gap: .65rem; color: #fb8500; font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.sml-booking-eyebrow span { width: 1.75rem; height: 1px; background: currentColor; }
.sml-booking-dialog h2 { max-width: 35rem; margin: .5rem 0 0; color: #38251b; font-family: var(--font-cormorant), Georgia, serif; font-size: clamp(2.15rem, 7vw, 2.75rem); font-weight: 600; line-height: .98; }
.sml-booking-dialog__header p { max-width: 35rem; margin: .5rem 0 0; color: #69594f; font-size: .84rem; line-height: 1.25rem; }
.sml-booking-close { position: absolute; top: 1rem; right: 1rem; display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(90,59,43,.16); border-radius: .5rem; background: #fff9f2; color: #38251b; font-size: 1.65rem; cursor: pointer; }
.sml-booking-dialog__body { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1.25rem max(1.25rem, env(safe-area-inset-bottom)); }
.sml-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .875rem; }
.sml-form-grid--spaced { margin-top: 1rem; }
.sml-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.sml-field > label, .sml-field > legend { display: block; margin: 0 0 .375rem; padding: 0; color: #4a3428; font-size: .78rem; font-weight: 700; }
.sml-field label span { color: #87776c; font-weight: 600; }
.sml-field input:not([type="radio"]), .sml-field textarea { box-sizing: border-box; width: 100%; min-height: 3rem; border: 1px solid rgba(108,85,71,.24); border-radius: .5rem; outline: 0; background: #fffcf7; padding: .7rem .875rem; color: #38251b; font: inherit; font-size: .95rem; transition: border-color .2s ease, box-shadow .2s ease; }
.sml-field textarea { resize: vertical; }
.sml-field input:focus, .sml-field textarea:focus { border-color: #fb8500; box-shadow: 0 0 0 4px rgba(251,133,0,.12); }
.sml-field input[aria-invalid="true"] { border-color: #a8431d; }
.sml-field-error { min-height: 1rem; margin: .3rem 0 0; color: #a8431d; font-size: .72rem; font-weight: 700; line-height: 1rem; }
.sml-travelers > div { display: flex; min-height: 3rem; align-items: center; justify-content: space-between; border: 1px solid rgba(108,85,71,.24); border-radius: .5rem; background: #fffcf7; padding: .125rem; }
.sml-travelers button { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 0; border-radius: .4rem; background: transparent; color: #5a3b2b; font-size: 1.25rem; cursor: pointer; }
.sml-travelers button:hover { background: #f1e4d6; }
.sml-travelers output { padding: 0 .25rem; color: #38251b; font-size: .8rem; font-weight: 700; text-align: center; }
.sml-contact { margin-top: 1rem; }
.sml-contact > div { display: grid; grid-template-columns: 1fr 1fr; gap: .625rem; }
.sml-contact label { position: relative; cursor: pointer; }
.sml-contact input { position: absolute; opacity: 0; }
.sml-contact label span { display: grid; min-height: 3rem; place-items: center; border: 1px solid rgba(108,85,71,.24); border-radius: .5rem; background: #fffcf7; color: #4a3428; font-size: .82rem; font-weight: 800; }
.sml-contact input:checked + span { border-color: #fb8500; background: rgba(251,133,0,.1); box-shadow: 0 0 0 3px rgba(251,133,0,.1); }
.sml-booking-notice { margin-top: 1rem; border: 1px solid rgba(90,59,43,.12); border-radius: .5rem; background: rgba(255,249,242,.72); padding: .75rem; color: #69594f; font-size: .76rem; line-height: 1.2rem; }
.sml-submit-status { min-height: 1.25rem; margin: .75rem 0 0; color: #8a4217; font-size: .78rem; font-weight: 700; line-height: 1.2rem; }
.sml-submit { width: 100%; min-height: 3.5rem; margin-top: .5rem; }
body.sml-modal-open .somos-marruecos-landing a[href^="https://wa.me/"] { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }

.somos-marruecos-landing .sml-dynamic-open { min-height: 30rem; border-color: rgba(255,255,255,.15); border-radius: 20px; background: #18100b; box-shadow: 0 18px 42px rgba(74,43,28,.16); }
.somos-marruecos-landing .sml-itinerary-image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.somos-marruecos-landing .sml-itinerary-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,rgba(24,16,11,.88),rgba(24,16,11,.62) 30%,rgba(24,16,11,.25) 55%,rgba(24,16,11,.82)),linear-gradient(90deg,rgba(47,27,19,.34),rgba(47,27,19,.08) 72%); pointer-events: none; }
.somos-marruecos-landing .sml-itinerary-content { position: relative; z-index: 2; display: flex; flex: 1; flex-direction: column; border-top: 1px solid rgba(255,255,255,.15); padding: 1rem; color: rgba(255,248,240,.9); }
.somos-marruecos-landing .sml-itinerary-description { max-width: 42rem; margin: 0; font-size: .95rem; font-weight: 500; line-height: 1.65; }
.somos-marruecos-landing .sml-itinerary-more { display: inline-flex; min-height: 2.75rem; align-items: center; margin-top: .25rem; border: 0; background: transparent; padding: 0; color: #fb8500; font-size: .8rem; font-weight: 800; letter-spacing: .06em; cursor: pointer; }
.somos-marruecos-landing .sml-itinerary-extended { overflow: hidden; }
.somos-marruecos-landing .sml-itinerary-extended p { max-width: 42rem; margin: .75rem 0 0; font-size: .875rem; font-weight: 500; line-height: 1.5rem; }
.somos-marruecos-landing .sml-itinerary-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem 1.25rem; margin: auto 0 0; border: 1px solid rgba(255,255,255,.12); border-radius: .625rem; background: rgba(24,16,11,.4); padding: .875rem; }
.somos-marruecos-landing .sml-itinerary-meta dt { color: #fb8500; font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.somos-marruecos-landing .sml-itinerary-meta dd { margin: .25rem 0 0; color: rgba(255,248,240,.9); font-size: .75rem; font-weight: 600; line-height: 1.25rem; }
.somos-marruecos-landing [aria-label^="Mostrar día"][aria-pressed="true"] circle { fill: #fb8500 !important; stroke: #fb8500 !important; }
.somos-marruecos-landing [aria-label^="Mostrar día"] { cursor: pointer; }

.somos-marruecos-landing .sml-faq-panel { overflow: hidden; padding: 0 0 1.5rem; color: #5d4d43; font-size: .93rem; line-height: 1.65; }
.somos-marruecos-landing .sml-faq-panel p { max-width: 54rem; margin: 0; }
.somos-marruecos-landing button[aria-controls^="faq-panel-"][aria-expanded="true"] svg { transform: rotate(180deg); }
.somos-marruecos-landing [role="tab"][aria-selected="true"] { border-color: #fb8500 !important; background: #fb8500 !important; color: #24160e !important; box-shadow: 0 4px 12px rgba(251,133,0,.18); }
.somos-marruecos-landing [role="tab"][aria-selected="false"] { border-color: transparent !important; background: transparent !important; color: #655c53 !important; box-shadow: none; }
.somos-marruecos-landing .sml-comfort-list { display: grid; margin: 0; padding: 0; list-style: none; }
.somos-marruecos-landing .sml-comfort-list li { display: flex; gap: .625rem; border-bottom: 1px solid rgba(74,43,28,.07); padding: .625rem 0; color: #4d433b; font-size: .92rem; line-height: 1.42rem; }
.somos-marruecos-landing .sml-comfort-list li:last-child { border-bottom: 0; }
.somos-marruecos-landing .sml-comfort-icon { display: grid; width: 1.45rem; height: 1.45rem; flex: none; place-items: center; border-radius: 50%; background: #fb8500; color: #24160e; font-size: .75rem; font-weight: 900; }
.somos-marruecos-landing .sml-comfort-list.is-excluded .sml-comfort-icon { background: rgba(138,66,23,.11); color: #8a4217; }
.somos-marruecos-landing .sml-section-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1); }
.somos-marruecos-landing .sml-section-reveal.is-visible { opacity: 1; transform: translateY(0); }
.somos-marruecos-landing .sml-sticky-hidden { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }

@media (min-width: 640px) {
  .sml-booking-modal { align-items: center; padding: 1.25rem; }
  .sml-booking-dialog { max-width: 700px; max-height: calc(100dvh - 2.5rem); border-radius: 26px; }
  .sml-booking-dialog__header { padding: 1.75rem 5rem 1.25rem 2rem; }
  .sml-booking-dialog__body { padding: 1.5rem 2rem 1.75rem; }
  .somos-marruecos-landing .sml-itinerary-content { padding: 1.25rem 1.5rem; }
}
@media (min-width: 1024px) { .sml-mobile-menu { display: none; } }
@media (max-width: 520px) {
  .sml-form-grid { gap: .7rem; }
  .sml-field > label, .sml-field > legend { font-size: .72rem; }
  .sml-field input:not([type="radio"]), .sml-field textarea { padding-inline: .65rem; font-size: .87rem; }
  .sml-travelers output { font-size: .7rem; }
  .somos-marruecos-landing .sml-itinerary-meta { grid-template-columns: 1fr; }
}
@media (max-width: 339px) { .sml-form-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .sml-mobile-menu, .sml-booking-modal, .sml-booking-dialog, .somos-marruecos-landing .sml-section-reveal { transition: none; }
  .somos-marruecos-landing .sml-section-reveal { opacity: 1; transform: none; }
}
