
:root{
  --brand:#0b3d91;
  --line:rgba(14,36,72,.12);
  --muted:#56667d;
}

body{
  background:#fff;
}
.brushline{
  display:none !important;
}

/* Top hero */
.hero.hero-full{
  padding:0 !important;
  margin:0 !important;
  min-height:0 !important;
  background:transparent !important;
}
.hero-slideshow{
  position:relative;
  display:block !important;
  line-height:0 !important;
  font-size:0 !important;
  margin:0 !important;
  padding:0 !important;
  height:min(86vh,760px);
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-slideshow .hero-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:0;
  transition:opacity .65s ease;
  display:block !important;
  vertical-align:top;
}
.hero-slideshow .hero-slide.active,
.hero-slideshow .hero-slide:first-child{
  opacity:1;
}
.hero-copy{
  padding:20px 0 40px !important;
}
.hero-copy-inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;
}
.hero-box--below{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.08);
  padding:22px 22px 18px;
}
.hero-note{
  margin-top:14px;
}

@media (max-width:980px){
  .hero-slideshow{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
    background:transparent !important;
  }
  .hero-slideshow .hero-slide{
    position:static !important;
    inset:auto !important;
    display:none !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    opacity:1 !important;
    transition:none !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
  }
  .hero-slideshow .hero-slide.active,
  .hero-slideshow .hero-slide:first-child{
    display:block !important;
  }
  .hero-copy{
    padding:14px 0 28px !important;
  }
  .hero-copy-inner{
    padding:0 16px;
  }
  .hero-box--below{
    padding:18px 16px 14px;
  }
}

/* General sections */
main .section{
  border-top:1px solid var(--line);
  padding:56px 0;
}
main .section:first-of-type{
  border-top:none;
}
.card{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}
.notice{
  background:transparent !important;
  box-shadow:none !important;
  border:1px solid var(--line) !important;
}

/* Header logo */
.brand .logo{
  width:auto !important;
  height:auto !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
.brand-logo{
  display:block;
  width:auto;
  height:54px;
}
.brand-logo--header{
  height:46px;
}
@media (max-width:980px){
  .brand-logo--header{
    height:38px;
  }
}

/* Title bars */
.section-title-bar,
.gallery-title-bar{
  display:inline-flex;
  align-items:center;
  min-height:52px;
  padding:10px 18px;
  border:2px solid var(--brand);
  background:var(--brand);
  color:#fff !important;
  border-radius:14px;
  line-height:1.2;
  letter-spacing:.04em;
  font-weight:700;
}
.section-title-bar{
  margin:8px 0 18px;
  font-size:clamp(24px,3vw,40px);
}
.gallery-title-bar{
  margin:0 0 10px;
  font-size:clamp(18px,2vw,28px);
}
.title-sub{
  margin:0 0 14px;
  color:var(--muted);
  font-family:var(--sans);
}

/* Menu cards */
.menu-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:18px;
}
.menu-card{
  border:1px solid var(--line) !important;
  border-radius:18px;
  overflow:hidden;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
}
.menu-thumb{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#f6f7fb;
}
.menu-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.menu-thumb:hover img{
  transform:scale(1.03);
}
.menu-body{
  padding:16px 16px 18px;
}
@media (max-width:980px){
  .menu-grid{
    grid-template-columns:1fr;
  }
}

/* Shared marquee cards */
.flow-marquee{
  position:relative;
  overflow:hidden;
  margin-top:16px;
  padding:8px 0 14px;
}
.flow-marquee::before,
.flow-marquee::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:72px;
  z-index:2;
  pointer-events:none;
}
.flow-marquee::before{
  left:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,0) 100%);
}
.flow-marquee::after{
  right:0;
  background:linear-gradient(270deg,#fff 0%,rgba(255,255,255,0) 100%);
}
.flow-track{
  display:flex;
  gap:18px;
  width:max-content;
  animation:flowLeft 36s linear infinite;
  will-change:transform;
}
.flow-marquee:hover .flow-track{
  animation-play-state:paused;
}
@keyframes flowLeft{
  from{ transform:translateX(0); }
  to{ transform:translateX(calc(-50% - 9px)); }
}
.flow-card{
  width:fit-content;
  display:inline-flex;
  flex:0 0 auto;
  align-self:flex-end;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  overflow:hidden;
}
.flow-card a{
  display:inline-flex;
  flex-direction:column;
  width:fit-content;
  text-decoration:none;
}
.flow-figure{
  width:fit-content;
  display:block;
  background:#fff;
  padding:12px;
}
.flow-figure img{
  display:block;
  width:auto;
  height:220px;
  object-fit:contain;
}
.flow-meta{
  padding:10px 12px 12px;
  font-family:var(--sans);
  font-size:12px;
  color:rgba(18,27,43,.74);
  border-top:1px solid rgba(14,36,72,.08);
  white-space:nowrap;
}
@media (max-width:820px){
  .flow-marquee{
    margin-inline:-4px;
  }
  .flow-marquee::before,
  .flow-marquee::after{
    width:28px;
  }
  .flow-figure{
    padding:10px;
  }
  .flow-figure img{
    height:170px;
  }
}

/* Gallery layout */
.gallery-groups{
  display:grid;
  gap:24px;
}
.gallery-group + .gallery-group{
  border-top:1px solid var(--line);
  padding-top:24px;
}

/* Footer */
.footer.footer-dark{
  background:var(--brand);
  color:#fff;
}
.footer.footer-dark a,
.footer.footer-dark h1,
.footer.footer-dark h2,
.footer.footer-dark h3,
.footer.footer-dark p,
.footer.footer-dark b,
.footer.footer-dark .small,
.footer.footer-dark .muted,
.footer.footer-dark .li{
  color:#fff !important;
}
.footer.footer-dark .notice{
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(255,255,255,.22) !important;
}
.footer.footer-dark .fine{
  border-top:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.72) !important;
}

/* Back to top */
.backtop{
  width:auto !important;
  height:auto !important;
  padding:10px 14px !important;
  line-height:1 !important;
}


/* Hero manual controls */
.hero-slideshow{
  touch-action:pan-y;
  cursor:pointer;
}
.hero-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:4;
  width:52px;
  height:52px;
  border:none;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.86);
  color:#0b3d91;
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, opacity .2s ease;
}
.hero-nav:hover{
  background:#fff;
}
.hero-nav:focus-visible,
.hero-dot:focus-visible{
  outline:2px solid rgba(11,61,145,.55);
  outline-offset:2px;
}
.hero-nav.prev{ left:18px; }
.hero-nav.next{ right:18px; }
.hero-nav span{
  font-size:24px;
  line-height:1;
}
.hero-dots{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:4;
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-dot{
  width:12px;
  height:12px;
  border:none;
  border-radius:999px;
  padding:0;
  background:rgba(255,255,255,.65);
  box-shadow:0 2px 10px rgba(0,0,0,.12);
  cursor:pointer;
}
.hero-dot.active{
  width:30px;
  background:#fff;
}
@media (max-width:980px){
  .hero-nav{
    width:42px;
    height:42px;
    opacity:.9;
  }
  .hero-nav.prev{ left:10px; }
  .hero-nav.next{ right:10px; }
  .hero-nav span{ font-size:20px; }
  .hero-dots{
    bottom:12px;
    gap:8px;
  }
  .hero-dot{
    width:10px;
    height:10px;
  }
  .hero-dot.active{
    width:24px;
  }
}

/* Relocation / additional lettering section */
.relocation-intro{
  margin-top:16px;
  line-height:1.8;
}
.relocation-block{
  margin-top:28px;
}
.subsection-bar{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:56px;
  padding:12px 18px;
  border-radius:18px;
  background:linear-gradient(135deg, #2ba7eb, #1d66ca 58%, #194caa 100%);
  color:#fff;
  font-family:var(--sans);
  font-weight:800;
  font-size:24px;
  box-shadow:0 10px 24px rgba(12,66,146,.14);
}
.subsection-bar::before{
  content:"";
  width:6px;
  height:28px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 0 0 2px rgba(255,255,255,.18);
}
.relocation-font-board{
  display:block;
  width:100%;
  border-radius:16px;
  border:1px solid rgba(14,36,72,.08);
  background:#fff;
}
.font-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.process-grid{
  display:grid;
  gap:18px;
  margin-top:16px;
}
.process-card{
  overflow:hidden;
}
.process-card__figure{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:320px;
  padding:16px;
  background:linear-gradient(180deg, #faf9f5, #f3f0e6);
  border-bottom:1px solid rgba(14,36,72,.08);
}
.process-card__figure--field{
  min-height:380px;
}
.process-card__figure img{
  display:block;
  width:100%;
  max-height:420px;
  object-fit:contain;
}
.process-step-id{
  font-family:var(--sans);
  font-weight:800;
  font-size:20px;
  color:var(--brand);
  margin-bottom:8px;
}
.process-card p{
  margin:0;
  line-height:1.8;
}
.relocation-caution{
  margin-top:14px;
  border-color:rgba(176,46,46,.18);
  background:rgba(255,248,248,.94);
  color:#9b2323;
  font-weight:700;
}
.pdf-grid{
  display:grid;
  gap:16px;
  margin-top:16px;
}
.pdf-card{
  display:block;
  text-decoration:none;
  color:inherit;
}
.pdf-card h3{
  margin-top:10px;
}
.pdf-card__top{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.pdf-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  height:30px;
  padding:0 12px;
  border-radius:999px;
  background:linear-gradient(135deg, #d83434, #aa1414);
  color:#fff;
  font-family:var(--sans);
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}
.pdf-category{
  display:inline-flex;
  align-items:center;
  height:30px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(11,61,145,.08);
  color:var(--brand);
  font-family:var(--sans);
  font-size:13px;
  font-weight:700;
}
.relocation-contact{
  margin-top:26px;
}
@media (min-width:760px){
  .pdf-grid,
  .process-grid--2{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (min-width:1100px){
  .process-grid--3{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}
@media (max-width:820px){
  .subsection-bar{
    min-height:48px;
    padding:10px 14px;
    font-size:18px;
    border-radius:14px;
  }
  .subsection-bar::before{
    height:22px;
  }
  .process-card__figure,
  .process-card__figure--field{
    min-height:260px;
    padding:12px;
  }
  .process-step-id{
    font-size:18px;
  }
}
