:root { --site-serif:"Merriweather",Georgia,serif; --site-sans:"Open Sans",Arial,sans-serif; }
html:not(.vmf-shell-ready) body:not(.article-body){visibility:hidden}
body,body.u-body { font-family:var(--site-sans); }
body h1,body h2,body h3,body h4,body h5,body h6 { font-family:var(--site-serif); }
body button,body input,body select,body textarea { font-family:var(--site-sans); }
.u-font-merriweather.u-custom-font,.u-heading-font.u-custom-font { font-family:var(--site-serif)!important; }
.u-font-montserrat.u-custom-font { font-family:"Montserrat",Arial,sans-serif!important; }
.u-font-open-sans.u-custom-font,.u-text-font.u-custom-font { font-family:var(--site-sans)!important; }
body.u-body { min-height:100vh; }
body.u-body > main,body.u-body > main.reviews-page { flex:1 0 auto; }
.site-skip-link { background:#253024; color:#fff; font:600 12px var(--site-sans); left:14px; padding:10px 14px; position:fixed; top:-60px; transition:top .18s; z-index:9999; }
.site-skip-link:focus { top:14px; }

#header.site-header { background:transparent; min-height:88px; position:relative; transition:background-color .25s ease,box-shadow .25s ease; width:100%; z-index:1200; }
.site-header-inner { align-items:center; display:flex; justify-content:center; margin:0 auto; min-height:88px; padding:7px 28px; position:relative; width:min(1320px,100%); }
.site-logo { display:block; height:70px; width:174px; }
.site-logo img { height:100%; object-fit:contain; width:100%; }
.site-desktop-nav { align-items:center; display:grid; gap:clamp(18px,2.4vw,38px); grid-template-columns:1fr 174px 1fr; width:100%; }
.site-mobile-logo { display:none; }
.site-desktop-nav ul,.site-mobile-menu ul { list-style:none; margin:0; padding:0; }
.site-desktop-nav .site-nav-group { align-items:center; display:flex; gap:clamp(18px,2.4vw,38px); }
.site-nav-group--left { justify-self:end; }
.site-nav-group--right { justify-self:start; }
.site-desktop-logo { display:flex; justify-content:center; }
.site-nav-link { color:#222722; font-family:var(--site-serif); font-size:.7rem; font-weight:500; letter-spacing:.025em; padding:8px 0; position:relative; text-decoration:none; text-transform:uppercase; }
.site-nav-link::after { background:#4f5b43; bottom:2px; content:""; height:1px; left:0; position:absolute; transform:scaleX(0); transform-origin:right; transition:transform .25s ease; width:100%; }
.site-nav-link:hover::after,.site-nav-link:focus-visible::after,.site-nav-link.is-current::after { transform:scaleX(1); transform-origin:left; }
.site-header a,.site-header button { -webkit-tap-highlight-color:transparent; }
.site-header a:focus,.site-header button:focus { background-color:transparent; outline:0; }
.site-header .site-nav-link:focus-visible { border-radius:2px; box-shadow:0 2px 0 rgba(79,91,67,.32); outline:0; }
.site-header .site-logo:focus-visible,.site-header .site-menu-toggle:focus-visible { border-radius:8px; box-shadow:0 0 0 2px rgba(79,91,67,.32); outline:0; }
.site-menu-toggle,.site-menu-close,.site-menu-overlay { appearance:none; background:none; border:0; padding:0; }
.site-menu-toggle { cursor:pointer; display:none; gap:5px; grid-template-columns:repeat(2,5px); grid-template-rows:repeat(2,5px); height:44px; opacity:1; place-content:center; position:absolute; right:14px; top:50%; transform:translateY(-50%) rotate(0); transition:opacity .2s ease,transform .48s cubic-bezier(.22,.72,.23,1); width:44px; z-index:1203; }
.site-menu-toggle span { background:#252a25; border-radius:50%; display:block; height:5px; transition:transform .3s ease,opacity .2s ease; width:5px; }
.has-open-menu .site-menu-toggle span:nth-child(1),.has-open-menu .site-menu-toggle span:nth-child(4){transform:scale(.65)}
.has-open-menu .site-menu-toggle span:nth-child(2),.has-open-menu .site-menu-toggle span:nth-child(3){transform:scale(1.35)}
.has-open-menu .site-menu-toggle{opacity:1;pointer-events:auto;transform:translateY(-50%) rotate(-180deg)}
.site-menu-overlay { background:rgba(20,24,20,.3); cursor:pointer; inset:0; opacity:0; pointer-events:none; position:fixed; transition:opacity .32s ease; visibility:hidden; z-index:1198; }
.site-mobile-menu { background:#f5f3ed; border-radius:0 0 18px 18px; box-shadow:0 18px 45px rgba(18,23,18,.17); display:flex; flex-direction:column; left:0; max-height:100svh; min-height:0; overflow-y:auto; padding:84px 18px 14px; position:fixed; right:0; top:0; transform:translateY(-105%); transition:transform .48s cubic-bezier(.22,.72,.23,1); width:100%; z-index:1199; }
.site-mobile-menu-head { align-items:center; border-bottom:1px solid rgba(37,42,37,.13); color:#6e756c; display:flex; font-size:.58rem; font-weight:700; justify-content:space-between; letter-spacing:.17em; padding:2px 0 8px; }
.site-menu-close { cursor:pointer; height:44px; margin:-10px -10px -10px 0; position:relative; width:44px; }
.site-menu-close span { background:#252a25; height:1px; left:10px; position:absolute; top:21px; width:24px; }
.site-menu-close span:first-child { transform:rotate(45deg); }
.site-menu-close span:last-child { transform:rotate(-45deg); }
.site-mobile-menu-head .site-menu-close { display:none; }
.site-mobile-menu nav { display:block; }
.site-mobile-menu nav ul { display:grid; grid-template-columns:1fr; width:100%; }
.site-mobile-menu nav li { border-bottom:1px solid rgba(37,42,37,.11); }
.site-mobile-menu .site-nav-link { color:#252a25; display:flex; font-family:var(--site-serif); font-size:.88rem; font-weight:400; justify-content:space-between; letter-spacing:0; line-height:1.15; padding:7px 0; text-transform:none; white-space:nowrap; }
.site-mobile-menu .site-nav-link::after { content:"→"; background:none; bottom:auto; height:auto; left:auto; opacity:.5; position:static; transform:none; width:auto; }
.site-mobile-menu .site-nav-link.is-current { color:#5d6954; }
.site-mobile-menu .site-nav-link:focus{outline:0}.site-mobile-menu .site-nav-link:focus-visible{background:rgba(83,99,77,.08);border-radius:5px;color:#4f5b43;outline:0;padding-left:7px;padding-right:7px}
.site-mobile-menu-foot { align-items:center; color:#6e756c; display:flex; font-size:.56rem; justify-content:space-between; letter-spacing:.1em; padding-top:11px; text-transform:uppercase; }
.site-mobile-menu-foot a { color:inherit; text-decoration:none; }
.has-open-menu .site-menu-overlay { opacity:1; pointer-events:auto; visibility:visible; }
.has-open-menu .site-mobile-menu { transform:translateY(0); }
body.site-menu-open { overflow:hidden!important; touch-action:none; }
#header.site-header.is-scrolled { background:transparent!important; box-shadow:none!important; }

.site-footer { background:#404440; color:#f4f4f1; flex-shrink:0; margin-top:auto; min-height:54px; width:100%; }
.site-footer-inner { align-items:center; display:grid; font-family:var(--site-sans); font-size:.72rem; gap:20px; grid-template-columns:1fr 1fr 1fr; letter-spacing:.025em; margin:0 auto; min-height:54px; padding:8px 30px; width:min(1200px,100%); }
.site-footer-inner span:nth-child(2) { text-align:center; }
.site-footer-inner>div { display:flex; gap:16px; justify-self:end; }
.site-footer-inner a { color:#fff; font-size:.68rem; font-weight:600; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.site-footer-inner a:hover,.site-footer-inner a:focus-visible { color:#d9dfd3; text-decoration:underline; text-underline-offset:4px; }

@media(max-width:767px) {
  #header.site-header { background:#fff!important; box-shadow:none!important; }
  #header.site-header,.site-header-inner { min-height:76px; }
  .site-header-inner { justify-content:flex-start; padding:5px 60px 5px 14px; transition:background-color .25s ease; z-index:1200; }
  .site-mobile-logo { display:block; isolation:isolate; position:relative; z-index:1202; }
  .site-mobile-logo .site-logo { height:62px; width:132px; }
  .site-mobile-logo .site-logo img { opacity:1; visibility:visible; }
  .site-desktop-nav { display:none; }
  .site-menu-toggle { display:grid; }
  .site-footer-inner { font-size:.68rem; gap:10px; min-height:62px; padding:10px 18px; }
  .site-footer-inner a { font-size:.62rem; }
  .site-footer-inner>div { gap:12px; }
}

@media(max-width:767px){#header.site-header.has-open-menu .site-header-inner{background:rgba(245,243,237,.98)}}

@media(max-width:480px) {
  .site-footer-inner { grid-template-columns:1fr auto; }
  .site-footer-inner span:nth-child(2) { display:none; }
  .site-footer-inner>div { align-items:flex-end; flex-direction:column; gap:3px; }
}

@media(prefers-reduced-motion:reduce) {
  .site-mobile-menu,.site-menu-overlay,.site-nav-link::after { animation:none!important; transition:none!important; }
}


/* Encabezado móvil unificado para todas las páginas públicas. */
@media(max-width:767px){
  body.u-body #header.site-header,body.u-body #header.site-header .site-header-inner{height:64px!important;min-height:64px!important}
  body.u-body #header.site-header .site-header-inner{padding:4px 58px 4px 12px!important}
  body.u-body #header.site-header .site-mobile-logo .site-logo{height:52px!important;width:116px!important}
  body.u-body #header.site-header .site-menu-toggle{height:42px!important;right:10px!important;width:42px!important}
  body.u-body .site-mobile-menu{background:#fff!important;border-radius:0 0 14px 14px;padding:64px 15px 12px!important}
  body.u-body #header.site-header.has-open-menu .site-header-inner{background:#fff!important}
  body.home-restored #header.site-header{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.82) 58%,rgba(255,255,255,0) 100%)!important}
  body.home-restored #header.site-header.has-open-menu{background:#fff!important}
}

/* Capa estable y suave para el encabezado móvil de Inicio. */
@media(max-width:767px){
  body.home-restored #header.site-header{background:transparent!important;isolation:isolate}
  body.home-restored #header.site-header::before{background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.72) 42%,rgba(255,255,255,.28) 74%,rgba(255,255,255,0) 100%);content:"";inset:0 0 -34px;opacity:1!important;pointer-events:none;position:absolute;transition:background .28s ease;z-index:0}
  body.home-restored #header.site-header .site-header-inner{background:transparent!important;position:relative;z-index:1}
  body.home-restored #header.site-header.has-open-menu::before{background:#fff;inset:0}
}
