/* ============================================================
   Crit Lab — Shared Design System (common.css)
   Used by index.html (top page) and every Photo Service subpage.
   Contains: CSS variables, base reset, typography, buttons,
   left nav / SP drawer shell, FAQ, final CTA band, footer,
   sticky mobile CTA, and their shared responsive rules.

   Page-specific sections (FV, About, Why, Price cards, Use Case,
   Facility, Access, Blog on the top page — or the new sections on
   subpages) live in each page's own <style> block, NOT here.
   ============================================================ */
/* ============================================================
   Crit Lab Top Page Prototype
   Base: Claude Design PC(1440) / SP(390) approved mockups
   ============================================================ */
:root{
  --yellow:#FFDA4C;
  --bg:#FFFBEB;
  --blue:#64A6BD;
  --blue-text:#3C798E;
  --text:#000501;
  --white:#ffffff;

  --sidebar-w: clamp(260px, 21vw, 320px);
  --content-max: 1240px;
  --section-pad-y: clamp(48px, 8vw, 160px);
  --section-x: clamp(20px, 5vw, 64px);
  --gap: clamp(16px, 2vw, 32px);

  --fs-h1: clamp(2.25rem, 1.2rem + 4vw, 4rem);
  --fs-h2: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
  --fs-num: clamp(2rem, 1.4rem + 2vw, 2.75rem);
  --fs-label: clamp(0.68rem, 0.65rem + 0.1vw, 0.75rem);
  --fs-body: clamp(0.95rem, 0.9rem + 0.2vw, 1.0625rem);

  --radius-pill: 999px;
  --motion-smooth: .45s cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Zen Kaku Gothic New","Poppins",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,p{margin:0;}
button{font-family:inherit;cursor:pointer;}

.en{font-family:"Poppins","Zen Kaku Gothic New",sans-serif;}

.label{
  font-family:"Poppins",sans-serif;
  font-size:var(--fs-label);
  font-weight:600;
  letter-spacing:.14em;
  color:var(--blue-text);
  text-transform:uppercase;
}

.section{
  padding:var(--section-pad-y) var(--section-x);
  max-width:var(--content-max);
  margin:0 auto;
}
.section-head{margin-bottom:clamp(28px,4vw,56px);}
.section-head .label{display:block;margin-bottom:.75em;}
.section-head h2{
  font-size:var(--fs-h2);
  font-weight:700;
  letter-spacing:.02em;
}
.underline{
  width:56px;height:3px;background:var(--yellow);
  margin-top:20px;
}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:var(--radius-pill);
  padding:.95em 1.9em;
  font-weight:700;
  font-size:.95rem;
  border:1px solid transparent;
  transition:opacity var(--motion-smooth), transform var(--motion-smooth), background-color var(--motion-smooth), border-color var(--motion-smooth);
  white-space:nowrap;
}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--yellow);color:var(--text);}
.btn-primary:hover{opacity:.85;color:var(--text);}
.btn-outline{background:transparent;border-color:currentColor;color:var(--text);}
.btn-outline:hover{opacity:.7;color:var(--text);}
.btn-outline-white{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white);}
.btn-outline-white:hover{opacity:.75;color:var(--white);}
.btn-dark{background:var(--text);color:var(--yellow);}
.btn-dark:hover{opacity:.85;color:var(--yellow);}
.btn-white{background:var(--white);color:var(--text);}
.btn-white:hover{opacity:.85;color:var(--text);}
.btn-line{background:#06C755;color:var(--white);}
.btn-line:hover{opacity:.85;color:var(--white);}
.btn-arrow::after{content:"\25B6\FE0E";font-family:Arial,Helvetica,sans-serif;font-size:.6em;margin-left:2px;}

/* ============================================================
   SHARED RELATED LINKS — Design System v1 / LOCKED
   ============================================================ */
.related-section .section-head h2{font-size:clamp(23px,2.2vw,30px);}
.related-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
  margin-top:32px;
}
.related-card{
  display:flex;
  align-items:center;
  gap:16px;
  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 .22s ease,border-color .22s ease,background-color .22s ease;
}
.related-card:hover{transform:translateY(-3px);border-color:var(--blue);background-color:#fffefa;}
.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 .22s ease;
}
.related-card:hover .related-icon{transform:scale(1.06);}
.related-icon svg{width:24px;height:24px;}
.related-card .t{flex:1;line-height:1.6;}
.related-card .arrow{font-size:10px;color:var(--blue-text);transition:transform .22s ease;}
.related-card:hover .arrow{transform:translateX(4px);}
@media (prefers-reduced-motion:reduce){
  .related-card,.related-icon,.related-card .arrow{transition:none;}
  .related-card:hover,.related-card:hover .related-icon,.related-card:hover .arrow{transform:none;}
}


/* Mobile interaction feedback: avoid browser red tap flash on navigation controls. */
.hamburger,
.side-nav a,
.side-nav .nav-toggle{
  -webkit-tap-highlight-color:rgba(255,218,76,.28);
}
.hamburger:active,
.mobile-nav-drawer .side-nav a:active,
.mobile-nav-drawer .side-nav .nav-toggle:active{
  color:var(--text) !important;
  background:rgba(255,244,184,.72);
}
.hamburger:active{
  border-radius:6px;
}
.side-nav a:active,
.side-nav .nav-toggle:active{
  color:var(--text) !important;
}

/* ============================================================
   LAYOUT SHELL
   ============================================================ */
.layout{display:flex;min-height:100vh;}

/* ---- Sidebar (PC) ---- */
.sidebar{
  width:var(--sidebar-w);
  flex-shrink:0;
  background:var(--yellow);
  padding:clamp(28px,3vw,48px) clamp(20px,2.2vw,32px);
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
.side-nav{margin-bottom:auto;}
.side-nav .nav-item{border-bottom:1px dashed rgba(0,5,1,.35);padding:14px 0;}
.side-nav .nav-item:first-child{padding-top:0;}
.side-nav a,
.side-nav .nav-toggle{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.sidebar .side-nav a,
.sidebar .side-nav .nav-toggle,
.mobile-nav-drawer .side-nav a,
.mobile-nav-drawer .side-nav .nav-toggle{
  color:var(--text) !important;
  transition:opacity var(--motion-smooth), color var(--motion-smooth), border-color var(--motion-smooth);
}
.side-nav .en-name{font-family:"Poppins",sans-serif;font-weight:700;font-size:1.15rem;white-space:nowrap;}
.side-nav .ja-name{font-size:.8rem;opacity:.8;white-space:nowrap;}

.side-nav a.is-current{}

.nav-toggle{
  all:unset;box-sizing:border-box;cursor:pointer;width:100%;
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
}
.nav-toggle .label-group{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.nav-toggle .chevron{flex-shrink:0;transition:transform var(--motion-smooth);opacity:.7;align-self:center;}
.nav-item.is-open .nav-toggle .chevron{transform:rotate(180deg);}

.submenu{
  list-style:none;margin:0;padding:0;
  max-height:0;overflow:hidden;
  transition:max-height var(--motion-smooth);
}
.submenu li{padding:0;border:none;}
.submenu a{
  display:block;padding:9px 0 9px 16px;font-size:.83rem;
  border-left:2px solid rgba(0,5,1,.18);
  opacity:.85;
}
.submenu a:hover{opacity:1;border-left-color:var(--text);}
.submenu a.is-current{opacity:1;border-left-color:var(--text);font-weight:700;}
.nav-item.is-open .submenu{max-height:600px;margin-top:10px;}

.side-ctas{display:flex;flex-direction:column;gap:12px;margin:28px 0;}
.side-ctas .btn{width:100%;}

.side-brand-header{
  display:flex;align-items:center;gap:14px;
  margin-bottom:28px;
}
.side-brand-header .brand-logo{
  height:52px;width:auto;aspect-ratio:868/857;flex-shrink:0;object-fit:contain;
}
.side-brand-header .brand-wordmark{
  display:flex;flex-direction:column;justify-content:center;
  font-family:"Poppins",sans-serif;font-weight:700;color:#1B5FA8;line-height:1.15;
}
.side-brand-header .brand-wordmark-sub{font-size:1rem;}
.side-brand-header .brand-wordmark-main{font-size:1.85rem;}

.side-meta-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;}
.side-meta-row svg{flex-shrink:0;margin-top:2px;opacity:.85;}
.side-walktime{font-size:.85rem;line-height:1.5;}
.side-tel{display:flex;align-items:center;gap:10px;}
.side-tel svg{flex-shrink:0;opacity:.85;}
.side-tel a{font-family:"Poppins",sans-serif;color:var(--blue-text);font-size:.95rem;font-weight:600;}

.side-shop-name{font-family:"Poppins",sans-serif;font-weight:700;color:var(--blue-text);font-size:1rem;margin-bottom:8px;}
.side-address{font-size:.85rem;line-height:1.7;margin-bottom:6px;}
.side-copyright{font-size:.72rem;opacity:.6;margin-top:20px;}

/* ---- Mobile top bar (hidden on desktop) ---- */
.mobile-topbar{display:none;}
.mobile-nav-drawer{display:none;}

/* ---- Main content ---- */
.main{flex:1;min-width:0;background:var(--bg);}


/* ============================================================
   FAQ
   ============================================================ */
.faq-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 clamp(24px,4vw,56px);
}
.faq-item{padding:20px 0;border-top:1px solid rgba(0,5,1,.12);}
.faq-item:nth-child(1),.faq-item:nth-child(2){padding-top:0;}
.faq-item:nth-child(-n+2){border-top:none;}
.faq-q{font-weight:700;font-size:1rem;margin-bottom:.7em;}
.faq-a{font-size:.9rem;}
.faq-cta{display:flex;justify-content:flex-start;margin-top:36px;}


/* ============================================================
   FINAL CTA band
   ============================================================ */
.final-cta{
  position:relative;
  overflow:hidden;
  padding:clamp(56px,7vw,96px) clamp(20px,5vw,64px);
}
.final-cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.final-cta-tint{position:absolute;inset:0;background:var(--yellow);opacity:.82;}
.final-cta-inner{
  position:relative;z-index:1;
  max-width:var(--content-max);margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;
}
.final-cta-text{max-width:620px;}
.final-cta h2{font-size:var(--fs-h2);font-weight:700;margin-bottom:.5em;}
.final-cta p{font-size:.95rem;line-height:1.9;margin-bottom:1.3em;}
.final-cta-chips{display:flex;gap:10px;flex-wrap:wrap;}
.chip{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,251,235,.8);
  padding:.6em 1.1em;
  font-size:.82rem;font-weight:500;
  border-radius:var(--radius-pill);
  white-space:nowrap;
}
.chip svg{width:18px;height:18px;flex-shrink:0;}
.final-cta-ctas{display:flex;flex-direction:column;gap:14px;flex-shrink:0;}


/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--white);
  width:100%;
  max-width:none !important;
  margin:0 !important;
  padding:clamp(28px,4vw,40px) clamp(20px,5vw,64px);
}
.site-footer .side-shop-name,
.site-footer .side-address,
.site-footer .side-tel,
.site-footer .side-copyright{color:var(--text);}


/* ============================================================
   Mobile sticky CTA (SP only)
   ============================================================ */
/* ============================================================
   Mobile sticky CTA (SP only)
   ============================================================ */
.sticky-cta{display:none;}

/* ================================================================
   BREAKPOINT: below 1024px -> mobile top-bar layout (shared shell)
   ================================================================ */
@media (max-width:1024px){
  .layout{flex-direction:column;}
  .sidebar{display:none;}

  .mobile-topbar{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--yellow);
    padding:14px 20px;
    position:sticky;top:0;z-index:70;
  }
  .mobile-topbar .brand{display:flex;align-items:center;gap:10px;}
  .mobile-topbar .logo-box{width:40px;height:40px;background:transparent;border:0;border-radius:0;display:flex;align-items:center;justify-content:center;overflow:visible;}
  .mobile-topbar .logo-box img{width:100%;height:100%;object-fit:contain;padding:0;}
  .mobile-topbar .brand-name{font-family:"Poppins",sans-serif;font-weight:700;font-size:1.15rem;color:#037DC8;}
  .hamburger{
    width:32px;height:24px;position:relative;background:none;border:none;padding:0;
  }
  .hamburger span{
    display:block;position:absolute;left:0;width:100%;height:2px;background:var(--text);
    transition:transform var(--motion-smooth), opacity var(--motion-smooth);
  }
  .hamburger span:nth-child(1){top:0;}
  .hamburger span:nth-child(2){top:11px;}
  .hamburger span:nth-child(3){top:22px;}
  .mobile-topbar.open .hamburger span:nth-child(1){transform:translateY(11px) rotate(45deg);}
  .mobile-topbar.open .hamburger span:nth-child(2){opacity:0;}
  .mobile-topbar.open .hamburger span:nth-child(3){transform:translateY(-11px) rotate(-45deg);}

  .mobile-nav-drawer{
    display:none;
    position:fixed;
    left:0;right:0;bottom:0;
    top:var(--mobile-drawer-top,68px);
    z-index:65;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--yellow);
    padding:8px 20px calc(28px + env(safe-area-inset-bottom));
    box-shadow:0 14px 30px rgba(0,5,1,.12);
  }
  .mobile-nav-drawer.open{display:block;}
  .mobile-nav-drawer .side-nav .nav-item{padding:12px 0;}
  .mobile-nav-drawer .side-ctas{margin:20px 0 16px;}
  .mobile-nav-drawer .side-brand-header{margin-bottom:20px;}

  .faq-grid{grid-template-columns:1fr;}
  .faq-item{border-top:1px solid rgba(0,5,1,.12) !important;padding:20px 0 !important;}
  .faq-item:first-child{border-top:none !important;padding-top:0 !important;}

  .final-cta-inner{flex-direction:column;align-items:flex-start;}
  .final-cta-ctas{width:100%;flex-direction:column;}
  .final-cta-ctas .btn{width:100%;}

  .site-footer{padding-bottom:calc(20px + env(safe-area-inset-bottom));} /* final CTA hides fixed reservation bar before footer */

  .sticky-cta{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;
    background:var(--bg);
    border-top:1px solid rgba(0,5,1,.1);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    gap:10px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(100%);
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
  }
  .sticky-cta.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
  .sticky-cta .btn{flex:1;}
  .sticky-cta .btn-tel{flex:0 0 64px;width:64px;height:64px;min-width:64px;min-height:64px;padding:0;border-radius:50%;gap:0;}
  .sticky-cta .btn-tel svg{display:block;width:26px;height:26px;fill:#000;stroke:none;}
  .sticky-cta .btn-tel{border:0;color:#000;background:#FFDA4C;}
  .sticky-cta .btn-tel:hover,.sticky-cta .btn-tel:focus-visible{border:0;color:#000;background:#FFDA4C;}
}


@media (max-width:1024px){
  body.critlab-nav-open{overflow:hidden;}
}

/* Focus visibility */

/* Focus visibility */
a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}



/* ============================================================
   WordPress font lock — v0.3.1
   Keep the redesigned templates independent from theme/Elementor
   global typography. Japanese: Zen Kaku Gothic New / EN & numbers: Poppins.
   ============================================================ */
body.critlab-site-template-active,
body.critlab-site-template-active .layout,
body.critlab-site-template-active .main,
body.critlab-site-template-active .sidebar,
body.critlab-site-template-active .mobile-topbar,
body.critlab-site-template-active .mobile-nav-drawer,
body.critlab-site-template-active .site-footer {
  font-family:"Zen Kaku Gothic New",sans-serif !important;
}
body.critlab-site-template-active :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,summary,dt,dd,th,td,address) {
  font-family:"Zen Kaku Gothic New",sans-serif !important;
}
body.critlab-site-template-active .en,
body.critlab-site-template-active .en *,
body.critlab-site-template-active .label,
body.critlab-site-template-active .label *,
body.critlab-site-template-active .brand-wordmark,
body.critlab-site-template-active .brand-wordmark *,
body.critlab-site-template-active .mobile-topbar .brand-name,
body.critlab-site-template-active .side-nav .en-name,
body.critlab-site-template-active .why-num,
body.critlab-site-template-active .price-amount,
body.critlab-site-template-active .access-tel a,
body.critlab-site-template-active .side-tel a,
body.critlab-site-template-active .side-shop-name,
body.critlab-site-template-active .guide-num,
body.critlab-site-template-active .guide-faq summary b,
body.critlab-site-template-active .eq-notice-mark,
body.critlab-site-template-active .eq-size dd,
body.critlab-site-template-active .eq-price,
body.critlab-site-template-active .eq-color strong,
body.critlab-site-template-active .fl-dim-list dd,
body.critlab-site-template-active .fl-spec dd,
body.critlab-site-template-active .fl-point span,
body.critlab-site-template-active .movie-icon,
body.critlab-site-template-active .movie-photo span,
body.critlab-site-template-active .movie-merit-grid span,
body.critlab-site-template-active .movie-faq-grid summary b,
body.critlab-site-template-active .movie-related-grid span,
body.critlab-site-template-active .cr-check-list article>span,
body.critlab-site-template-active .cr-faq-grid summary b {
  font-family:"Poppins",sans-serif !important;
}


/* === Shared Final CTA component v0.5.3 === */
.critlab-final-cta{
  position:relative;
  overflow:hidden;
  min-height:620px;
  background:var(--yellow,#ffda4c);
  color:#090909;
  isolation:isolate;
}
.critlab-final-marquee{
  position:absolute;
  z-index:0;
  top:34px;
  left:0;
  width:100%;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
}
.critlab-final-marquee-track{
  display:flex;
  width:max-content;
  will-change:transform;
  animation:critlab-final-marquee 42s linear infinite;
}
.critlab-final-marquee-group{
  display:flex;
  flex-shrink:0;
  align-items:center;
}
.critlab-final-marquee-group span{
  flex:none;
  padding-right:clamp(32px,3.5vw,64px);
  font-family:'Poppins',sans-serif;
  font-size:clamp(94px,10.5vw,176px);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.055em;
  white-space:nowrap;
  color:rgba(255,255,255,.46);
}
@keyframes critlab-final-marquee{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}
.critlab-final-cta-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(360px,510px);
  grid-template-areas:'copy actions';
  column-gap:clamp(48px,6vw,100px);
  row-gap:48px;
  align-items:center;
  width:100%;
  min-height:620px;
  padding:clamp(190px,16vw,245px) clamp(28px,5vw,82px) 58px;
}
.critlab-final-copy{grid-area:copy;max-width:760px;}
.critlab-final-copy h2{
  margin:0 0 32px;
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(38px,4.2vw,64px);
  font-weight:900;
  line-height:1.35;
  letter-spacing:.04em;
}
/* v0.5.5: preserve intentional two-line CTA headline breaks */
.critlab-final-copy .critlab-final-title-line{
  display:block;
  white-space:nowrap;
}
@media (min-width:1025px){
  .critlab-final-copy h2{font-size:clamp(26px,3.05vw,48px);}
}
@media (max-width:1024px){
  .critlab-final-copy h2{font-size:clamp(23px,5.4vw,44px);}
}
@media (max-width:480px){
  .critlab-final-copy h2{font-size:clamp(19px,5.1vw,24px);letter-spacing:.01em;}
}
.critlab-final-copy p{
  max-width:720px;
  margin:0;
  font-size:clamp(15px,1.25vw,19px);
  font-weight:500;
  line-height:2.15;
  letter-spacing:.035em;
}
.critlab-final-actions{
  grid-area:actions;
  display:flex;
  flex-direction:column;
  gap:50px;
  width:100%;
  align-self:center;
}
.critlab-final-action-wrap{position:relative;width:100%;}
.critlab-final-bubble{
  position:absolute;
  z-index:2;
  left:50%;
  top:0;
  transform:translate(-50%,-56%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 36px);
  min-height:48px;
  padding:9px 26px;
  border:2px solid #0a0a0a;
  border-radius:999px;
  background:#fff;
  color:#184f69;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  text-align:center;
  white-space:nowrap;
}
.critlab-final-bubble::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-9px;
  width:16px;
  height:16px;
  transform:translateX(-50%) rotate(45deg);
  border-right:2px solid #0a0a0a;
  border-bottom:2px solid #0a0a0a;
  background:#fff;
}
.critlab-final-line-bubble{border-color:#05a94c;color:#087a3a;}
.critlab-final-line-bubble::after{border-color:#05a94c;}
.critlab-final-action{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 28px;
  gap:20px;
  align-items:center;
  width:100%;
  min-height:118px;
  padding:22px 32px;
  border:2px solid transparent;
  border-radius:999px;
  text-decoration:none!important;
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(19px,1.5vw,26px);
  font-weight:700;
  letter-spacing:.08em;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
  -webkit-tap-highlight-color:rgba(255,224,92,.3);
}
.critlab-final-action:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.10);}
.critlab-final-action-primary{background:#fff;color:#0a0a0a;border-color:#fff;}
.critlab-final-action-line{background:#06c755;color:#fff;border-color:#06c755;}
.critlab-final-action > span:not(.critlab-final-arrow){text-align:center;justify-self:stretch;}
.critlab-final-action-icon{width:38px;height:38px;justify-self:center;}
.critlab-final-arrow{justify-self:end;font-family:'Poppins',sans-serif;font-size:48px;font-weight:400;line-height:1;}
@media (prefers-reduced-motion:reduce){
  .critlab-final-marquee-track{animation:none;transform:none;}
}
@media (max-width:1024px){
  .critlab-final-cta{min-height:0;}
  .critlab-final-marquee{top:28px;}
  .critlab-final-marquee-group span{font-size:clamp(76px,16vw,128px);padding-right:30px;}
  .critlab-final-cta-inner{
    grid-template-columns:1fr;
    grid-template-areas:'copy' 'actions';
    row-gap:54px;
    min-height:0;
    padding:clamp(150px,25vw,210px) 24px 54px;
  }
  .critlab-final-copy h2{font-size:clamp(34px,8vw,48px);margin-bottom:22px;}
  .critlab-final-copy p{font-size:15px;line-height:2;}
  .critlab-final-actions{max-width:620px;gap:44px;}
  .critlab-final-action{min-height:92px;padding:18px 26px;font-size:20px;}
  }

/* v0.5.51 — Common mobile header refinements and home-linked logo */
.critlab-brand-home-link{color:inherit;text-decoration:none;}
.critlab-brand-home-link:focus-visible{outline:2px solid #037DC8;outline-offset:3px;border-radius:4px;}
.side-brand-header.critlab-brand-home-link{display:flex;align-items:center;}
@media(max-width:1024px){
  body.critlab-site-template-active .mobile-topbar{
    padding:9px 20px;
    min-height:58px;
  }
  body.critlab-site-template-active .mobile-topbar .hamburger{
    width:27px;height:20px;flex:0 0 27px;
  }
  body.critlab-site-template-active .mobile-topbar .hamburger span:nth-child(1){top:0;}
  body.critlab-site-template-active .mobile-topbar .hamburger span:nth-child(2){top:9px;}
  body.critlab-site-template-active .mobile-topbar .hamburger span:nth-child(3){top:18px;}
  body.critlab-site-template-active .mobile-topbar.open .hamburger span:nth-child(1){transform:translateY(9px) rotate(45deg);}
  body.critlab-site-template-active .mobile-topbar.open .hamburger span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
}


/* v0.5.54 — One viewport-anchored mobile header on ALL redesigned pages.
   Avoid the intermittent gap above sticky headers on specific templates. */
@media (max-width:1024px) {
  body.critlab-site-template-active .layout {
    padding-top: 58px; /* reserve the fixed header's height exactly once */
  }
  body.critlab-site-template-active .mobile-topbar {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    top: 0 !important;
    margin: 0 !important;
    width: 100%;
    height: 58px;
    min-height: 58px;
    z-index: 100;
    box-sizing: border-box;
  }
  /* Drawer starts directly under the fixed header. Branding lives in header only. */
  body.critlab-site-template-active .mobile-nav-drawer {
    top: 58px;
  }
  body.critlab-site-template-active .mobile-topbar .brand {
    position: relative;
    z-index: 1;
    cursor: pointer;
  }
}
