/* ============================================================
   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;
}


/* ============================================================
   SP responsive refinements — v0.4.7
   ============================================================ */
@media (max-width:767px){
  /* Fill the smartphone viewport below the 68px mobile top bar. */
  body.critlab-site-template-active .fv,
  body.critlab-site-template-active .subfv,
  body.critlab-site-template-active .movie-fv{
    position:relative !important;
    display:flex !important;
    align-items:flex-end !important;
    /* Width is owned by the shared rounded-card rule, not by the legacy mobile FV reset. */
    min-height:calc(100svh - 68px) !important;
    height:calc(100dvh - 68px) !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
  }
  body.critlab-site-template-active .fv-img,
  body.critlab-site-template-active .subfv-img,
  body.critlab-site-template-active .movie-fv-img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    aspect-ratio:auto !important;
    object-fit:cover !important;
  }

  /* Slightly larger final CTA buttons on smartphones. */
  body.critlab-site-template-active .final-cta-ctas .btn,
  body.critlab-site-template-active .pp-final-cta-ctas .btn,
  body.critlab-site-template-active .movie-final-buttons .btn,
  body.critlab-site-template-active .guide-final-actions .btn{
    min-height:58px;
    padding:1.02em 1.9em;
    font-size:1rem;
  }
}

/* Keep all triangular arrows in text presentation rather than emoji style. */
body.critlab-site-template-active .arrow,
body.critlab-site-template-active .btn-arrow::after{
  font-family:Arial,Helvetica,sans-serif !important;
  font-variant-emoji:text;
}


/* ============================================================
   Gallery showcase enhancement — v0.5.6
   Left stage image + right thumb selector
   ============================================================ */
body.critlab-site-template-active .gallery-showcase{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.95fr);
  gap:clamp(28px,3vw,60px);
  align-items:start;
  margin-top:40px;
}
body.critlab-site-template-active .gallery-showcase .gallery-stage{
  position:relative;
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-media{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,255,255,.6);
  box-shadow:0 20px 48px rgba(0,5,1,.08);
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-media img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-badge{
  position:absolute;
  left:24px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:14px;
  max-width:calc(100% - 48px);
  padding:16px 22px;
  background:rgba(255,255,255,.96);
  border-radius:999px;
  box-shadow:0 12px 30px rgba(0,5,1,.1);
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-index{
  flex:0 0 auto;
  font:600 13px/1 "Poppins",sans-serif;
  letter-spacing:.12em;
  color:var(--blue-text);
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-title{
  flex:0 0 auto;
  font-size:15px;
  font-weight:800;
  line-height:1.3;
  color:var(--text);
}
body.critlab-site-template-active .gallery-showcase .gallery-stage-detail{
  min-width:0;
  font-size:15px;
  line-height:1.4;
  color:#5e5a4c;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.critlab-site-template-active .gallery-showcase .gallery-sidebar{
  min-width:0;
}
body.critlab-site-template-active .gallery-showcase .gallery-sidebar .section-head{
  margin-bottom:0;
}
body.critlab-site-template-active .gallery-showcase .gallery-sidebar .section-intro{
  margin:24px 0 0;
  max-width:none;
}
body.critlab-site-template-active .gallery-showcase .gallery-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px 16px;
  margin-top:34px;
}
body.critlab-site-template-active .gallery-showcase .gallery-grid figure{
  margin:0;
  cursor:pointer;
  outline:none;
}
body.critlab-site-template-active .gallery-showcase .gallery-grid figure:focus-visible{
  border-radius:18px;
  box-shadow:0 0 0 3px rgba(100,166,189,.28);
}
body.critlab-site-template-active .gallery-showcase .gallery-thumb.has-image{
  border-radius:18px;
  border:2px solid transparent;
  opacity:.62;
  transition:opacity .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
  box-shadow:none;
}
body.critlab-site-template-active .gallery-showcase .gallery-grid figure:hover .gallery-thumb.has-image,
body.critlab-site-template-active .gallery-showcase .gallery-grid figure.is-active .gallery-thumb.has-image{
  opacity:1;
  transform:translateY(-1px);
}
body.critlab-site-template-active .gallery-showcase .gallery-grid figure.is-active .gallery-thumb.has-image{
  border-color:var(--yellow);
  box-shadow:0 10px 24px rgba(0,5,1,.08);
}
body.critlab-site-template-active .gallery-showcase .gallery-caption{
  display:block;
  margin-top:10px;
}
body.critlab-site-template-active .gallery-showcase .gallery-caption .t{
  display:block;
  font-size:14px;
  font-weight:800;
  line-height:1.45;
}
body.critlab-site-template-active .gallery-showcase .gallery-caption .d{
  display:none;
}

@media (max-width:1100px){
  body.critlab-site-template-active .gallery-showcase{
    grid-template-columns:1fr;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-badge{
    max-width:calc(100% - 36px);
    left:18px;
    right:18px;
    bottom:16px;
    padding:14px 18px;
  }
}
@media (max-width:767px){
  body.critlab-site-template-active .gallery-showcase{
    gap:26px;
    margin-top:30px;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-media{
    border-radius:26px;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 14px;
    margin-top:26px;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-badge{
    position:static;
    max-width:none;
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:8px 12px;
    padding:18px 20px;
    border-radius:24px;
    box-shadow:0 10px 24px rgba(0,5,1,.08);
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-index{
    grid-column:1;
    grid-row:1;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-title{
    grid-column:2;
    grid-row:1;
  }
  body.critlab-site-template-active .gallery-showcase .gallery-stage-detail{
    grid-column:1 / -1;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}
@media (prefers-reduced-motion:reduce){
  body.critlab-site-template-active .gallery-showcase .gallery-thumb.has-image{
    transition:none;
  }
}


/* v0.5.10 — Match mobile primary CTA sizing and layout to LINE CTA. */
@media (max-width:767px){
  body.critlab-site-template-active .critlab-final-action-primary,
  body.critlab-site-template-active .critlab-final-action-line{
    grid-template-columns:38px minmax(0,1fr) 28px;
    gap:clamp(8px,2.7vw,20px);
    min-height:92px;
    padding:18px clamp(14px,4vw,26px);
    font-size:20px;
    letter-spacing:.08em;
  }
  body.critlab-site-template-active .critlab-final-action-primary .critlab-final-action-icon,
  body.critlab-site-template-active .critlab-final-action-line .critlab-final-action-icon{
    width:38px;
    height:38px;
    justify-self:center;
  }
  body.critlab-site-template-active .critlab-final-action-primary .critlab-final-arrow,
  body.critlab-site-template-active .critlab-final-action-line .critlab-final-arrow{
    font-size:48px;
    line-height:1;
    justify-self:end;
  }
  body.critlab-site-template-active .critlab-final-action-primary > span:not(.critlab-final-arrow),
  body.critlab-site-template-active .critlab-final-action-line > span:not(.critlab-final-arrow){
    white-space:nowrap;
    text-align:center;
    justify-self:stretch;
  }
}

/* v0.5.33 — enforce visible clipping of the CTA’s upper-right corner.
   clip-path applies the rounded silhouette to backgrounds AND the moving marquee,
   rather than relying solely on the border radius in theme/layout contexts. */
body.critlab-site-template-active section.critlab-final-cta[data-component="critlab-final-cta"] {
  border-radius: 0 110px 0 0 !important;
  clip-path: inset(0 round 0 110px 0 0);
  overflow: hidden;
}
@media (max-width: 767px) {
  body.critlab-site-template-active section.critlab-final-cta[data-component="critlab-final-cta"] {
    border-radius: 0 70px 0 0 !important;
    clip-path: inset(0 round 0 70px 0 0);
  }
}

/* v0.5.42 — Reservation form: consistent rhythm between all fields.
   CF7 may wrap fields in paragraphs. Let the form own vertical spacing,
   rather than stacking paragraph, fieldset and label margins. */
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form {
  display:flex;
  flex-direction:column;
  gap:24px;
}
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > p,
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > fieldset,
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > label,
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > .cr-field-row,
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > .cr-privacy-consent {
  margin-top:0 !important;
  margin-bottom:0 !important;
}
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > p:empty,
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > br {
  display:none;
}
body.critlab-corporate-reservation-template .cr-cf7-form .cr-field-row {
  gap:20px;
  margin-top:0 !important;
  margin-bottom:0 !important;
  align-items:start;
}
body.critlab-corporate-reservation-template .cr-cf7-form .cr-field-row > p,
body.critlab-corporate-reservation-template .cr-cf7-form .cr-field-row > label,
body.critlab-corporate-reservation-template .cr-cf7-form .cr-field-row > div {
  margin-top:0 !important;
  margin-bottom:0 !important;
  min-width:0;
}
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form-control-wrap {
  margin-top:9px;
}
body.critlab-corporate-reservation-template .cr-cf7-form .cr-choice-panel .wpcf7-form-control-wrap,
body.critlab-corporate-reservation-template .cr-cf7-form .cr-consent .wpcf7-form-control-wrap {
  margin-top:0;
}
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > fieldset > legend {
  margin-bottom:14px;
}
body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form > .wpcf7-response-output {
  margin-top:0 !important;
}
@media (max-width:640px) {
  body.critlab-corporate-reservation-template .cr-cf7-form .wpcf7-form {gap:20px;}
  body.critlab-corporate-reservation-template .cr-cf7-form .cr-field-row {gap:20px;}
}

/* v0.5.50 — SP hero subject-safe framing (no change to desktop crops) */
@media (max-width:767px){
  body.critlab-site-template-active .fv-img,
  body.critlab-site-template-active .subfv-img,
  body.critlab-site-template-active .movie-fv-img {
    object-position: 68% center !important;
  }
  /* Page-level overrides are intentionally isolated to their templates. */
  body.critlab-site-template-active:has(img[src*="profile-fv.webp"]) .subfv-img {object-position:72% center !important;}
  body.critlab-site-template-active:has(img[src*="coming-fv.webp"]) .subfv-img {object-position:70% center !important;}
  body.critlab-site-template-active:has(img[src*="graduation-fv.webp"]) .subfv-img {object-position:70% center !important;}
  body.critlab-site-template-active:has(img[src*="anniversary-fv.webp"]) .subfv-img {object-position:70% center !important;}
  body.critlab-site-template-active:has(img[src*="tourist-fv.webp"]) .subfv-img {object-position:70% center !important;}
  body.critlab-site-template-active:has(img[src*="job-fv.webp"]) .subfv-img {object-position:72% center !important;}
  body.critlab-site-template-active:has(img[src*="real-estate-fv.webp"]) .subfv-img {object-position:65% center !important;}
  body.critlab-site-template-active:has(img[src*="product-fv.webp"]) .subfv-img {object-position:65% center !important;}
}

/* v0.5.52 - footer spacing and three-line address on all templates */
body.critlab-site-template-active .site-footer{
  padding-bottom:20px;
}
body.critlab-site-template-active .site-footer .side-copyright{
  margin-top:14px;
  margin-bottom:0;
}
body.critlab-site-template-active .site-footer .side-address{
  line-height:1.7;
}
@media (max-width:1024px){
  body.critlab-site-template-active .site-footer{
    padding-bottom:calc(20px + env(safe-area-inset-bottom));
  }
}


/* v0.5.55 — No duplicate branding within the opened mobile navigation.
   The main yellow topbar brand/link remains visible and interactive. */
body.critlab-site-template-active .mobile-nav-drawer :is(
  .side-brand-header,
  .brand-logo,
  .brand-wordmark,
  .logo-box,
  .brand-name,
  .drawer-brand,
  .modal-brand,
  .mobile-menu-brand
) {
  display: none !important;
}

/* Topbar brand links are above the decorative layers and fully tappable. */
@media (max-width:1024px) {
  body.critlab-site-template-active .mobile-topbar {
    isolation:isolate;
    z-index:1000 !important;
  }
  body.critlab-site-template-active .mobile-topbar > a.critlab-brand-home-link {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    pointer-events:auto !important;
    touch-action:manipulation;
    cursor:pointer;
  }
  body.critlab-site-template-active .mobile-topbar > a.critlab-brand-home-link > * {
    pointer-events:none;
  }
  body.critlab-site-template-active .mobile-nav-drawer {z-index:999;}
}

/* v0.5.59 — Single owner for hero card geometry.
   The 58px fixed-header offset is reserved by .layout in common.css.
   This wrapper alone owns the card's exterior spacing. The hero itself
   is 100% wide inside the wrapper and has no margin. */
body.critlab-site-template-active .main .critlab-fv-frame {
  display:block;
  position:relative;
  box-sizing:border-box;
  width:calc(100% - 80px);
  margin:40px 40px 0;
  padding:0;
  border-radius:30px;
  overflow:hidden;
  isolation:isolate;
}
body.critlab-site-template-active .main .critlab-fv-frame > :is(.fv,.subfv,.movie-fv,.bl-hero) {
  display:flex;
  box-sizing:border-box;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-top:0;
  border-radius:0 !important;
  position:relative;
  overflow:hidden;
}
body.critlab-site-template-active .main .critlab-fv-frame > .bl-hero {
  display:block;
}
@media (min-width:768px) and (max-width:1024px) {
  body.critlab-site-template-active .main .critlab-fv-frame {
    width:calc(100% - 48px);
    margin:24px 24px 0;
    border-radius:24px;
  }
}
@media (max-width:767px) {
  body.critlab-site-template-active .main .critlab-fv-frame {
    width:calc(100% - 32px);
    margin:16px 16px 0;
    border-radius:20px;
  }
  body.critlab-site-template-active .main .critlab-fv-frame > :is(.fv,.subfv,.movie-fv) {
    display:flex !important;
    align-items:flex-end !important;
  }
}

/* v0.5.65 — PC-only visual refinements */
@media (min-width:1025px) {
  /* Rental Studio: restore breathing room between the label and the use chips. */
  body.critlab-template-home .rental-foot .rental-uses-ttl {
    margin-bottom:24px;
  }

  /* Corporate scope note: reserve enough width for the complete heading. */
  body.critlab-site-template-active .cr-page .cr-square-notice {
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:start;
    column-gap:28px;
  }
  body.critlab-site-template-active .cr-page .cr-square-notice > strong {
    white-space:nowrap;
    min-width:0;
    line-height:1.6;
  }
  body.critlab-site-template-active .cr-page .cr-square-notice > p {
    min-width:0;
    margin:0;
  }

  /* Desktop footer: three information cells above a full-width copyright band. */
  body.critlab-site-template-active .site-footer {
    --critlab-footer-x:clamp(20px,5vw,64px);
    display:grid;
    grid-template-columns:minmax(170px,1.05fr) minmax(270px,1.3fr) minmax(185px,.8fr);
    align-items:center;
    column-gap:clamp(14px,2vw,38px);
    row-gap:24px;
    padding-left:var(--critlab-footer-x);
    padding-right:var(--critlab-footer-x);
    padding-bottom:0;
  }
  body.critlab-site-template-active .site-footer > :is(.side-shop-name,.side-address,.side-tel,.side-copyright) {
    margin:0;
    min-width:0;
  }
  body.critlab-site-template-active .site-footer .side-copyright {
    grid-column:1/-1;
    justify-self:stretch;
    text-align:right;
    white-space:nowrap;
    background:#FFF1B8;
    margin-left:calc(-1 * var(--critlab-footer-x));
    margin-right:calc(-1 * var(--critlab-footer-x));
    padding:16px var(--critlab-footer-x);
  }
}

/* FV white type: a restrained dark shadow to retain contrast on pale photographs.
   Applied only to text in visual hero sections, not links or other UI. */
body.critlab-site-template-active .fv-inner :is(h1,.fv-lead),
body.critlab-site-template-active .subfv-inner :is(h1,.subfv-lead),
body.critlab-site-template-active .movie-fv-inner :is(h1,.movie-fv-lead,.movie-fv-sub) {
  text-shadow:0 1px 3px rgba(0,0,0,.28);
}

/* v0.5.67 | Mobile FV readability for pale photographs (3 pages only).
   Reuse the existing scrim rather than introducing another stacking layer. */
@media (max-width:767px) {
  body.critlab-site-template-active:is(.critlab-corporate-template,.critlab-qa-template,.critlab-equipment-template)
  .critlab-fv-frame > .subfv > .subfv-scrim {
    position:absolute !important;
    inset:auto 0 0 !important;
    top:auto !important;
    bottom:0 !important;
    display:block !important;
    width:100% !important;
    height:80% !important;
    z-index:1 !important;
    pointer-events:none !important;
    background:linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.14) 26%,
      rgba(0,0,0,.46) 62%,
      rgba(0,0,0,.73) 100%) !important;
  }
  body.critlab-site-template-active:is(.critlab-corporate-template,.critlab-qa-template,.critlab-equipment-template)
  .critlab-fv-frame > .subfv > .subfv-inner {
    position:relative;
    z-index:2;
  }
  body.critlab-site-template-active:is(.critlab-corporate-template,.critlab-qa-template,.critlab-equipment-template)
  .critlab-fv-frame > .subfv > .subfv-inner :is(h1,.subfv-lead,.subfv-lead strong) {
    color:#fff;
    text-shadow:0 1px 3px rgba(0,0,0,.4);
  }
}


/* v0.5.69 — smooth, restrained button hover behavior site-wide.
   Preserve existing borders and colors at rest; remove hover-added lines and lifts.
   Keyboard focus rings are intentionally not disabled. */
@media (hover:hover) and (pointer:fine) {
  body.critlab-site-template-active :is(
    a.btn, button.btn, input[type="submit"], .wpcf7-submit,
    .critlab-final-action, .sticky-cta a, .side-ctas a,
    .rental-ctas a, .fv-way, .movie-content-cta-btn,
    .cr-contact-card, .cr-related a, .related-card,
    .movie-related-card, .movie-related-grid a,
    .bl-guide-card, .bl-pager a, .bl-chip,
    .guide-category-nav a, .eq-chip
  ) {
    transition: opacity .34s ease, background-color .34s ease, color .34s ease !important;
  }
  body.critlab-site-template-active :is(
    a.btn, button.btn, input[type="submit"], .wpcf7-submit,
    .critlab-final-action, .sticky-cta a, .side-ctas a,
    .rental-ctas a, .fv-way, .movie-content-cta-btn,
    .cr-contact-card, .cr-related a, .related-card,
    .movie-related-card, .movie-related-grid a,
    .bl-guide-card, .bl-pager a, .bl-chip,
    .guide-category-nav a, .eq-chip
  ):hover {
    opacity:.70 !important;
    transform:none !important;
    box-shadow:none !important;
    text-decoration:none !important;
  }
  /* Remove accent borders that previously appeared only on hover. */
  body.critlab-site-template-active .related-card:hover {border-color:rgba(0,5,1,.12) !important; background-color:#fff !important;}
  body.critlab-site-template-active .cr-contact-card:hover {border-color:#deddd5 !important; background-color:#fff !important;}
  body.critlab-site-template-active .cr-contact-line:hover {border-color:#06c755 !important; background-color:#f5fff8 !important;}
  body.critlab-site-template-active .cr-related a:hover {border-color:#deddd5 !important; background-color:#fff !important;}
  body.critlab-site-template-active :is(.related-card,.cr-related a,.movie-related-card):hover :is(.arrow,.related-icon,i,b) {transform:none !important;}
  body.critlab-site-template-active .service-card:hover h3 {text-decoration:none !important;}
}
@media(prefers-reduced-motion:reduce){
  body.critlab-site-template-active :is(a.btn,button.btn,input[type="submit"],.critlab-final-action,.sticky-cta a,.side-ctas a,.rental-ctas a,.fv-way,.movie-content-cta-btn,.cr-contact-card,.cr-related a,.related-card,.movie-related-card,.movie-related-grid a,.bl-guide-card,.bl-pager a,.bl-chip,.guide-category-nav a,.eq-chip){transition:none !important;}
}

/* v0.5.70 — desktop fixed sidebar navigation: soft opacity-only hover.
   Keep menu toggles, current-page styling, and keyboard focus behavior. */
@media (min-width: 901px) and (hover:hover) and (pointer:fine) {
  body.critlab-site-template-active .sidebar .side-nav :is(a,.nav-toggle) {
    transition:opacity .34s ease !important;
  }
  body.critlab-site-template-active .sidebar .side-nav :is(a,.nav-toggle):hover {
    opacity:.70 !important;
    color:var(--text) !important;
    text-decoration:none !important;
    background-color:transparent !important;
    box-shadow:none !important;
    transform:none !important;
  }
  /* Stop the submenu's left rule from suddenly changing color on hover. */
  body.critlab-site-template-active .sidebar .side-nav .submenu a:hover {
    border-left-color:rgba(0,5,1,.18) !important;
  }
  body.critlab-site-template-active .sidebar .side-nav .submenu a.is-current:hover {
    border-left-color:var(--text) !important;
  }
}
@media (prefers-reduced-motion:reduce) {
  body.critlab-site-template-active .sidebar .side-nav :is(a,.nav-toggle) {
    transition:none !important;
  }
}
