/* Haven Boquete: compatibilidad móvil y accesibilidad global */
:root { color-scheme: light; }
*, *::before, *::after { box-sizing: border-box; }
html { width:100%; max-width:100%; scroll-padding-top:88px; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { width:100%; max-width:100%; margin:0; overflow-x:hidden; overflow-wrap:break-word; }
img, picture, video, canvas, svg { max-width:100%; }
img, video { height:auto; }
iframe, embed, object { max-width:100%; }
input, select, textarea, button { max-width:100%; font:inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
a { overflow-wrap:anywhere; }
:focus-visible { outline:3px solid #9a7b52; outline-offset:3px; }
.mobile-menu-toggle { display:none; border:1px solid rgba(139,115,85,.55); border-radius:10px; background:#fffdf9; color:#1a1a1a; width:44px; height:44px; min-width:44px; min-height:44px; font:700 1.45rem/1 Arial,sans-serif; align-items:center; justify-content:center; cursor:pointer; }
@media (max-width: 900px) {
 html { scroll-padding-top:76px; }
 body { overflow-x:hidden; }
 .header { display:flex!important; position:fixed!important; top:0!important; left:0!important; right:0!important; width:100%!important; max-width:100%!important; min-height:62px; flex-direction:row!important; flex-wrap:wrap!important; justify-content:space-between!important; align-items:center!important; gap:8px!important; padding:8px 12px!important; z-index:10000!important; background:rgba(250,249,246,.98)!important; border-bottom:1px solid rgba(0,0,0,.1)!important; }
 .header-brand { display:flex!important; flex:1 1 0%; min-width:0!important; max-width:calc(100% - 56px)!important; justify-content:flex-start!important; gap:8px!important; }
 .header-logo-img { height:40px!important; width:auto!important; max-width:48px!important; object-fit:contain; }
 .header-logo-text { min-width:0; font-size:clamp(.62rem,2.6vw,.8rem)!important; letter-spacing:.4px!important; line-height:1.15!important; overflow-wrap:anywhere; }
 .header-logo-text small { font-size:.48rem!important; letter-spacing:.3px!important; }
 .mobile-menu-toggle { display:inline-flex!important; flex:0 0 44px; margin-left:auto; position:relative; z-index:10002; }
 .header .header-nav { display:none!important; position:absolute!important; top:100%!important; left:0!important; right:0!important; width:100%!important; max-width:100vw!important; max-height:calc(100vh - 70px)!important; max-height:calc(100dvh - 70px)!important; overflow-y:auto!important; overflow-x:hidden!important; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; flex:0 0 100%!important; flex-direction:column!important; flex-wrap:nowrap!important; align-items:stretch!important; justify-content:flex-start!important; gap:0!important; padding:8px 14px 18px!important; margin:0!important; background:#faf9f6!important; box-shadow:0 14px 24px rgba(0,0,0,.14); border-top:1px solid rgba(0,0,0,.06); }
 .header .header-nav.is-open { display:flex!important; }
 .header .header-nav > a, .header .header-nav .nav-item > a { display:flex!important; align-items:center!important; justify-content:flex-start!important; width:100%!important; min-width:0!important; min-height:44px!important; margin:0!important; padding:12px 8px!important; white-space:normal!important; font-size:.88rem!important; line-height:1.35!important; overflow-wrap:anywhere; border-bottom:1px solid rgba(0,0,0,.07); }
 .header .header-nav .nav-item { width:100%!important; min-width:0!important; margin:0!important; }
 .header .header-nav .dropdown-menu { position:static!important; inset:auto!important; width:100%!important; max-width:none!important; min-width:0!important; display:none; padding:4px 0 8px 12px!important; margin:0!important; box-shadow:none!important; border:0!important; background:transparent!important; transform:none!important; }
 .header .header-nav .nav-item.open .dropdown-menu { display:block!important; }
 .header .header-nav .dropdown-menu a { display:flex!important; min-height:44px; align-items:center; padding:10px 8px!important; white-space:normal!important; overflow-wrap:anywhere; }
 .header .header-nav .lang-switch { display:flex!important; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; width:100%; margin:12px 0 2px!important; }
 .header .header-nav .nav-cta { justify-content:center!important; margin-top:10px!important; border-radius:8px; }
 main, section, article, aside, footer, header { min-width:0; }
 main { width:100%; max-width:100%; }
 section { max-width:100%; }
 .container, .content, .section-inner, .footer-main, .gallery-grid, .studio-gallery-grid { max-width:100%; }
 .studio-hero { min-height:68vh!important; min-height:68svh!important; padding:110px 18px 54px!important; }
 .studio-hero-title { font-size:clamp(2rem,8.5vw,4rem)!important; line-height:1.06!important; overflow-wrap:anywhere; }
 .studio-gallery-section { padding:52px 16px!important; }
 .gallery-grid, .studio-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px!important; }
 .gallery-item, .gallery-card { min-width:0!important; }
 .footer-main { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px!important; }
 table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
@media (max-width:600px) {
 h1 { font-size:clamp(1.8rem,8vw,2.8rem); overflow-wrap:anywhere; }
 h2 { font-size:clamp(1.4rem,6vw,2.1rem); overflow-wrap:anywhere; }
 p, li { overflow-wrap:break-word; }
 .header-logo-text { font-size:clamp(.58rem,2.5vw,.72rem)!important; }
 .header-logo-text small { font-size:.42rem!important; }
 .studio-hero { min-height:64vh!important; min-height:64svh!important; padding:104px 15px 48px!important; }
 .studio-hero-title { font-size:clamp(1.8rem,9.5vw,3rem)!important; }
 .studio-gallery-section { padding:42px 12px!important; }
 .gallery-grid, .studio-gallery-grid { grid-template-columns:minmax(0,1fr)!important; }
 .footer-main { grid-template-columns:minmax(0,1fr)!important; gap:22px!important; }
 .studio-cta-button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
 .footer { padding-left:16px!important; padding-right:16px!important; }
 input:not([type=checkbox]):not([type=radio]):not([type=submit]), select, textarea { width:100%; min-width:0; }
}
@media (max-width:360px) {
 .header { padding:7px 8px!important; gap:5px!important; }
 .header-logo-img { max-width:38px!important; height:36px!important; }
 .header-logo-text { font-size:.56rem!important; }
 .mobile-menu-toggle { width:42px; height:42px; min-width:42px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }


/* Corrección específica del encabezado de inicio en móviles: fondo claro y texto oscuro desde el primer instante. */
@media (max-width: 900px) {
  .header, .header.transparent {
    background: #faf9f6 !important;
    background-color: #faf9f6 !important;
    background-image: none !important;
    border-bottom: 1px solid rgba(0,0,0,.12) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }
  .header.transparent .header-logo-text,
  .header .header-logo-text {
    color: #1a1a1a !important;
    text-shadow: none !important;
    opacity: 1 !important;
  }
  .header.transparent .header-logo-text small,
  .header .header-logo-text small {
    color: #705638 !important;
    text-shadow: none !important;
    opacity: 1 !important;
  }
  .header.transparent .header-nav > a,
  .header.transparent .header-nav .nav-item > a,
  .header .header-nav > a,
  .header .header-nav .nav-item > a {
    color: #262626 !important;
    text-shadow: none !important;
  }
  .header.transparent .header-nav a.nav-cta,
  .header .header-nav a.nav-cta {
    background: #1a1a1a !important;
    color: #ffffff !important;
    border-color: #1a1a1a !important;
    text-shadow: none !important;
  }
  .header .mobile-menu-toggle {
    background: #ffffff !important;
    color: #1a1a1a !important;
    border-color: #8b7355 !important;
    box-shadow: 0 1px 5px rgba(0,0,0,.08);
  }
  .header .header-nav {
    background: #faf9f6 !important;
  }
}
