/* Shared foundation extracted from site-overrides.css in v0.5.77.
   Load AFTER page CSS and BEFORE site-overrides.css; order is significant.
   Do not move declarations across these files without checking the cascade. */
/* ============================================================
   Crit Lab shared visual consistency overrides — v0.3.5
   Loaded after all template-specific CSS.
   ============================================================ */

/* ---- Footer: yellow band, blue wordmark, icon-only TEL label ---- */
body.critlab-site-template-active .site-footer{
  background:#FFDA4C !important;
}
body.critlab-site-template-active .site-footer .side-shop-name{
  color:#1C5FA8 !important;
}
body.critlab-site-template-active .site-footer .side-address,
body.critlab-site-template-active .site-footer .side-tel,
body.critlab-site-template-active .site-footer .side-tel a,
body.critlab-site-template-active .site-footer .side-copyright{
  color:var(--text) !important;
}
body.critlab-site-template-active .site-footer .side-tel{
  display:flex;
  align-items:center;
  gap:9px;
}
body.critlab-site-template-active .footer-phone-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:20px;
  height:20px;
  color:var(--text);
}
body.critlab-site-template-active .footer-phone-icon svg{
  width:18px;
  height:18px;
}

/* ---- FV: desktop follows the production image ratio 1672 x 940 ----
   Mobile keeps one shared minimum height so copy/CTAs never overflow. */
@media (min-width:1025px){
  body.critlab-site-template-active .fv,
  body.critlab-site-template-active .subfv,
  body.critlab-site-template-active .movie-fv{
    width:100%;
    aspect-ratio:1672 / 940;
    min-height:0 !important;
    height:auto !important;
  }
}
@media (max-width:1024px){
  body.critlab-site-template-active .fv,
  body.critlab-site-template-active .subfv,
  body.critlab-site-template-active .movie-fv{
    aspect-ratio:auto;
    min-height:620px !important;
  }
}

/* ---- Heading weight consistency ---- */
body.critlab-site-template-active .main h2{
  font-weight:700 !important;
}

/* ---- Related pages: floor-map card design is the shared standard ---- */
body.critlab-site-template-active .related-section .section-head h2{
  font-size:clamp(23px,2.2vw,30px);
}
body.critlab-site-template-active .related-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
  margin-top:32px;
}
body.critlab-site-template-active .related-card{
  display:flex;
  align-items:center;
  gap:16px;
  min-height:86px;
  padding:20px 22px;
  color:var(--text);
  background:var(--white);
  border:1px solid rgba(0,5,1,.12);
  border-radius:12px;
  font-size:15px;
  font-weight:500;
  transition:transform var(--motion-smooth),border-color var(--motion-smooth),background-color var(--motion-smooth);
}
body.critlab-site-template-active .related-card:hover{
  transform:translateY(-3px);
  border-color:var(--blue);
  background-color:#fffefa;
  color:var(--text);
}
body.critlab-site-template-active .related-icon{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--yellow);
  transition:transform var(--motion-smooth);
}
body.critlab-site-template-active .related-icon svg{width:24px;height:24px;}
body.critlab-site-template-active .related-card:hover .related-icon{transform:scale(1.06);}
body.critlab-site-template-active .related-card .t{flex:1;line-height:1.6;}
body.critlab-site-template-active .related-card .arrow{
  font-size:10px;
  color:var(--blue-text);
  transition:transform var(--motion-smooth);
}
body.critlab-site-template-active .related-card:hover .arrow{transform:translateX(4px);}

/* ---- Final CTA overlay: yellow only on top; all subpages use dark scrim ---- */
body.critlab-template-subpage .final-cta-tint{
  background:rgba(0,5,1,.68) !important;
  opacity:1 !important;
}
body.critlab-template-subpage .pp-final-cta-scrim,
body.critlab-template-subpage .movie-final-scrim{
  background:rgba(0,5,1,.68) !important;
}
body.critlab-template-subpage .guide-final::after{
  background:rgba(0,5,1,.68) !important;
}
/* Decorative English labels in final CTAs are intentionally omitted on subpages. */
body.critlab-template-subpage .final-cta .label,
body.critlab-template-subpage .pp-final-cta .label,
body.critlab-template-subpage .movie-final-cta .label,
body.critlab-template-subpage .guide-final .label{
  display:none !important;
}

/* ---- Reservation form spacing + accordion choices ---- */
body.critlab-template-subpage .cr-cf7-form .wpcf7-form > fieldset{
  margin:0 0 32px !important;
}
body.critlab-template-subpage .cr-cf7-form .cr-field-row{
  margin-bottom:32px;
}
body.critlab-template-subpage .cr-cf7-form .wpcf7-form .cr-field-row label{
  margin-bottom:0 !important;
}
body.critlab-template-subpage .cr-cf7-form .wpcf7-form > label{
  margin-bottom:32px !important;
}
body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-checkbox{
  display:flex !important;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px 28px;
  width:100%;
  margin:0;
}
body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-list-item{
  flex:0 0 auto;
  width:auto;
  max-width:100%;
  margin:14px 0 0 !important;
}
body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-list-item label{
  display:inline-flex;
  width:auto;
  max-width:100%;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  line-height:1.5;
}
body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-list-item input{
  margin:0;
  flex:0 0 auto;
}
body.critlab-template-subpage .cr-cf7-form .cr-privacy-consent{
  margin-top:0;
}
body.critlab-template-subpage .cr-cf7-form .cr-consent{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:9px !important;
  width:100%;
}
body.critlab-template-subpage .cr-cf7-form .cr-consent p{display:contents;}
body.critlab-template-subpage .cr-cf7-form .cr-consent .wpcf7-form-control-wrap,
body.critlab-template-subpage .cr-cf7-form .cr-consent .wpcf7-acceptance,
body.critlab-template-subpage .cr-cf7-form .cr-consent .wpcf7-list-item,
body.critlab-template-subpage .cr-cf7-form .cr-consent .wpcf7-list-item label{
  display:inline-flex !important;
  align-items:center !important;
  width:auto !important;
  margin:0 !important;
}
body.critlab-template-subpage .cr-cf7-form .cr-consent .required-mark{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  margin:0;
}

@media(max-width:640px){
  body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-checkbox{
    gap:8px 22px;
  }
  body.critlab-template-subpage .cr-cf7-form .cr-choice-panel .wpcf7-list-item label{
    white-space:normal;
  }
}

@media (prefers-reduced-motion:reduce){
  body.critlab-site-template-active .related-card,
  body.critlab-site-template-active .related-icon,
  body.critlab-site-template-active .related-card .arrow{transition:none;}
  body.critlab-site-template-active .related-card:hover,
  body.critlab-site-template-active .related-card:hover .related-icon,
  body.critlab-site-template-active .related-card:hover .arrow{transform:none;}
}
body.critlab-template-subpage .final-cta-inner,
body.critlab-template-subpage .final-cta .fl-final-link{
  color:#fff !important;
}


/* ---- Generated image batch 1 (v0.3.7): 4:3 production imagery ---- */
body.critlab-site-template-active .method-photo.has-image,
body.critlab-site-template-active .gallery-thumb.has-image{
  padding:0 !important;
  overflow:hidden;
  background:none !important;
  aspect-ratio:4 / 3;
  height:auto !important;
}
body.critlab-site-template-active .method-photo.has-image img,
body.critlab-site-template-active .gallery-thumb.has-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
body.critlab-site-template-active .usage-media .method-photo.has-image{
  position:relative;
  aspect-ratio:4 / 3;
  height:auto !important;
}


