/* =========================================================================
   Slate Crest Zone — Shared Editorial Design System
   静嶺帯 (Slate Crest Zone) — 共有デザインシステム
   ========================================================================= */

:root{
  --scz-slate:        #4a5259;
  --scz-slate-dark:    #262b2f;
  --scz-slate-deep:    #1b1e21;
  --scz-forest:        #4d5f4f;
  --scz-forest-dark:   #33402f;
  --scz-beige:         #ece4d5;
  --scz-cream:         #f8f4ec;
  --scz-mist:          #b7c3c6;
  --scz-mist-light:    #dfe6e5;
  --scz-gold:          #b8905c;
  --scz-gold-light:    #d8b384;
  --scz-ink:           #23262a;

  --font-display: 'Fraunces', 'Shippori Mincho', serif;
  --font-jp:      'Shippori Mincho', serif;
  --font-body:    'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;

  --ease-soft: cubic-bezier(.22,.61,.36,1);
  --container-max: 1280px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--scz-ink);
  background: var(--scz-cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: .01em;
  margin: 0 0 .5em;
  color: var(--scz-slate-dark);
}
.jp{ font-family: var(--font-jp); }
.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family: var(--font-jp);
  font-size: .8rem;
  letter-spacing: .28em;
  color: var(--scz-gold);
  text-transform: uppercase;
  margin-bottom: 1.1em;
}
.eyebrow::before{
  content:"";
  width: 34px; height: 1px;
  background: var(--scz-gold);
}
.container{
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 3rem);
}

/* ============================= NAVIGATION ============================= */
.site-nav{
  position: fixed; top:0; left:0; right:0; z-index: 900;
  padding: 1.35rem 0;
  transition: background var(--ease-soft) .5s, padding var(--ease-soft) .4s, box-shadow .4s, backdrop-filter .4s;
}
.site-nav .nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  max-width: var(--container-max); margin:0 auto;
  padding: 0 clamp(1.25rem, 4vw, 3rem);
}
.site-nav.scrolled{
  background: rgba(248,244,236,.86);
  backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 1px 0 rgba(38,43,47,.08);
  padding: .8rem 0;
}
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand-mark{ width: 40px; height:40px; flex:none; }
.brand-text{ display:flex; flex-direction:column; line-height:1.05; }
.brand-text .b-en{
  font-family: var(--font-display); font-size: 1.05rem; letter-spacing:.06em;
  color: var(--scz-slate-dark); font-weight:600;
}
.site-nav.scrolled .brand-text .b-en, .site-nav.scrolled .brand-text .b-jp{ color: var(--scz-slate-dark); }
.brand-text .b-jp{ font-family: var(--font-jp); font-size:.66rem; letter-spacing:.22em; color: var(--scz-gold); }
.site-nav:not(.scrolled) .brand-text .b-en,
.site-nav:not(.scrolled) .brand-text .b-jp{ color:#fff; text-shadow: 0 1px 10px rgba(0,0,0,.35); }
.site-nav:not(.scrolled) .brand-text .b-jp{ color: var(--scz-gold-light); }

.nav-links{ display:flex; align-items:center; gap: 2.1rem; }
.nav-links a{
  position:relative; font-size:.86rem; letter-spacing:.03em; font-weight:500;
  color:#fff; text-shadow: 0 1px 8px rgba(0,0,0,.3);
  padding: .3rem 0; transition: color .3s;
}
.site-nav.scrolled .nav-links a{ color: var(--scz-slate-dark); text-shadow:none; }
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:0; height:1px;
  background: var(--scz-gold); transition: width .35s var(--ease-soft);
}
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-links a.active{ color: var(--scz-gold) !important; }
.nav-cta{
  display:inline-flex; align-items:center; gap:.5rem;
  border:1px solid rgba(255,255,255,.6); color:#fff; text-shadow:none;
  padding:.55rem 1.3rem; border-radius:999px; font-size:.78rem; letter-spacing:.05em;
  transition: all .35s var(--ease-soft);
}
.site-nav.scrolled .nav-cta{ border-color: var(--scz-slate-dark); color: var(--scz-slate-dark); }
.nav-cta:hover{ background:#fff; color: var(--scz-slate-dark) !important; }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; width:26px; background:none; border:none; cursor:pointer; z-index:1000;
}
.nav-toggle span{ height:2px; width:100%; background:#fff; transition: all .3s var(--ease-soft); }
.site-nav.scrolled .nav-toggle span{ background: var(--scz-slate-dark); }
.nav-toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.mobile-panel{
  position: fixed; inset:0; z-index:850;
  background: linear-gradient(160deg, var(--scz-slate-deep), var(--scz-forest-dark));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6rem;
  opacity:0; visibility:hidden; transform: translateY(-14px);
  transition: all .45s var(--ease-soft);
}
.mobile-panel.open{ opacity:1; visibility:visible; transform:none; }
.mobile-panel a{ color:#f2ede1; font-family: var(--font-display); font-size:1.4rem; letter-spacing:.03em; }
.mobile-panel .b-jp{ font-family: var(--font-jp); font-size:.75rem; color: var(--scz-gold-light); letter-spacing:.2em; margin-top:2.4rem; }

@media (max-width: 940px){
  .nav-links{ display:none; }
  .nav-toggle{ display:flex; }
}

/* =============================== HERO =============================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  overflow:hidden; color:#fff;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  animation: kenburns 26s ease-in-out infinite alternate;
}
@keyframes kenburns{
  0%{ transform: scale(1.02) translate3d(0,0,0); }
  100%{ transform: scale(1.13) translate3d(-1%,-1%,0); }
}
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(20,22,20,.35) 0%, rgba(20,22,20,.15) 38%, rgba(18,20,18,.78) 100%);
}
.hero .mist-layer{ position:absolute; inset:0; z-index:2; pointer-events:none; mix-blend-mode: screen; opacity:.55; }
.hero-content{ position:relative; z-index:3; width:100%; padding: 9rem 0 5.5rem; }
.hero .eyebrow{ color: var(--scz-gold-light); }
.hero .eyebrow::before{ background: var(--scz-gold-light); }
.hero h1{
  color:#fff; font-size: clamp(2.4rem, 6.4vw, 5.3rem); line-height:1.04; margin-bottom:.35em;
  max-width: 16ch; text-wrap: balance;
}
.hero p.hero-sub{
  font-family: var(--font-jp); font-size: clamp(1rem, 2vw, 1.25rem);
  color: var(--scz-mist-light); letter-spacing:.06em; max-width:34ch; margin-bottom:2.4rem;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; }
.page-hero{ min-height: 72vh; }
.page-hero h1{ max-width: 22ch; }

.scroll-cue{
  position:absolute; right: clamp(1.25rem,4vw,3rem); bottom: 2.3rem; z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  color: rgba(255,255,255,.75); font-size:.68rem; letter-spacing:.3em; writing-mode: vertical-rl;
}
.scroll-cue .line{ width:1px; height:52px; background: linear-gradient(180deg, rgba(255,255,255,.9), transparent); animation: scrollcue 2.2s ease-in-out infinite; }
@keyframes scrollcue{ 0%{ transform: scaleY(0); transform-origin: top;} 50%{ transform: scaleY(1); transform-origin: top;} 51%{ transform-origin: bottom;} 100%{ transform: scaleY(0); transform-origin: bottom;} }

/* ============================== BUTTONS ============================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding: .95rem 2.1rem; border-radius: 999px; font-size:.84rem; letter-spacing:.06em;
  font-weight:500; cursor:pointer; border:1px solid transparent; transition: all .4s var(--ease-soft);
  white-space:nowrap;
}
.btn-primary{ background: linear-gradient(120deg, var(--scz-forest), var(--scz-forest-dark)); color:#fff; box-shadow: 0 10px 26px -10px rgba(51,64,47,.6); }
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(51,64,47,.7); }
.btn-outline{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.65); color:#fff; backdrop-filter: blur(6px); }
.btn-outline:hover{ background:#fff; color: var(--scz-slate-dark); }
.btn-dark{ background: var(--scz-slate-dark); color:#fff; }
.btn-dark:hover{ background: var(--scz-ink); transform: translateY(-2px); }
.btn-arrow{ transition: transform .4s var(--ease-soft); }
.btn:hover .btn-arrow{ transform: translateX(5px); }

/* ============================== SECTIONS ============================== */
section{ position:relative; }
.section-pad{ padding: clamp(4.5rem, 9vw, 8rem) 0; }
.bg-cream{ background: var(--scz-cream); }
.bg-beige{ background: var(--scz-beige); }
.bg-slate{ background: linear-gradient(160deg, var(--scz-slate-dark), var(--scz-slate-deep)); color:#f1ede4; }
.bg-slate h2, .bg-slate h3{ color:#fff; }
.bg-forest{ background: linear-gradient(160deg, var(--scz-forest-dark), #26301f); color:#f1ede4; }
.bg-forest h2, .bg-forest h3{ color:#fff; }

.section-head{ max-width: 62ch; margin-bottom: 3.2rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size: clamp(1.9rem, 4vw, 3rem); }
.lead{ font-size: 1.06rem; line-height:1.9; color:#565f57; }
.bg-slate .lead, .bg-forest .lead{ color: #d9ddd2; }

/* Split image/text */
.split{
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); align-items:center;
}
.split.reverse .split-media{ order:2; }
.split.reverse .split-copy{ order:1; }
.split-media{ position:relative; border-radius: 6px; overflow:hidden; aspect-ratio: 4/5; }
.split-media img{ width:100%; height:100%; object-fit:cover; transition: transform 1.2s var(--ease-soft); }
.split-media:hover img{ transform: scale(1.06); }
.split-media .frame-line{
  position:absolute; inset:14px; border:1px solid rgba(255,255,255,.55); pointer-events:none;
}
.split-copy .num{ font-family: var(--font-display); font-size:.85rem; color: var(--scz-gold); letter-spacing:.2em; }
@media (max-width: 860px){
  .split, .split.reverse{ grid-template-columns:1fr; }
  .split.reverse .split-media, .split.reverse .split-copy{ order:0; }
}

/* Editorial cards */
.card-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.9rem; }
@media (max-width: 980px){ .card-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .card-grid{ grid-template-columns: 1fr; } }
.ed-card{
  position:relative; border-radius:8px; overflow:hidden; aspect-ratio: 3/4;
  box-shadow: 0 18px 40px -22px rgba(30,33,28,.45);
}
.ed-card img{ width:100%; height:100%; object-fit:cover; transition: transform 1s var(--ease-soft); }
.ed-card:hover img{ transform: scale(1.08); }
.ed-card .ed-scrim{ position:absolute; inset:0; background: linear-gradient(0deg, rgba(20,20,18,.86) 0%, rgba(20,20,18,.05) 55%); }
.ed-card .ed-body{ position:absolute; left:0; right:0; bottom:0; padding: 1.6rem; color:#fff; }
.ed-card .ed-tag{ font-family: var(--font-jp); font-size:.72rem; letter-spacing:.2em; color: var(--scz-gold-light); margin-bottom:.4rem; display:block; }
.ed-card h3{ color:#fff; font-size:1.35rem; margin-bottom:.3rem; }
.ed-card p{ font-size:.85rem; color:#e4e0d3; margin:0; opacity:.9; }

/* Glass panel */
.glass{
  background: rgba(255,255,255,.55); backdrop-filter: blur(16px) saturate(140%);
  border:1px solid rgba(255,255,255,.6); border-radius: 10px;
}
.glass-dark{
  background: rgba(38,43,47,.35); backdrop-filter: blur(16px) saturate(140%);
  border:1px solid rgba(255,255,255,.18); border-radius: 10px; color:#fff;
}
.stat-strip{ display:flex; flex-wrap:wrap; gap: 2.2rem 3.2rem; }
.stat-strip .stat b{ display:block; font-family: var(--font-display); font-size:2rem; color: var(--scz-gold); }
.stat-strip .stat span{ font-size:.8rem; letter-spacing:.05em; color:#666; }

/* Info / feature list */
.feature-list{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1.6rem 2.4rem; }
@media (max-width:620px){ .feature-list{ grid-template-columns:1fr; } }
.feature{ display:flex; gap:1rem; align-items:flex-start; }
.feature .ic{
  width:44px; height:44px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background: var(--scz-beige); color: var(--scz-forest-dark);
}
.feature h4{ margin-bottom:.25rem; font-size:1.02rem; }
.feature p{ margin:0; font-size:.9rem; color:#666; line-height:1.7; }

/* Trail / itinerary cards */
.trail-card{
  display:grid; grid-template-columns: 220px 1fr; gap:1.6rem; padding:1.6rem;
  border-radius:10px; background:#fff; box-shadow: 0 16px 40px -28px rgba(30,33,28,.5);
  border:1px solid rgba(74,82,89,.08);
}
.trail-card img{ border-radius:6px; height:100%; object-fit:cover; aspect-ratio:1/1; }
@media (max-width:640px){ .trail-card{ grid-template-columns:1fr; } .trail-card img{ aspect-ratio: 16/9; } }
.trail-meta{ display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin:.6rem 0 .9rem; font-size:.78rem; color: var(--scz-forest-dark); letter-spacing:.03em; }
.trail-meta span{ display:flex; align-items:center; gap:.35rem; }
.badge{
  display:inline-block; padding:.3rem .8rem; border-radius:999px; font-size:.7rem; letter-spacing:.08em;
  background: var(--scz-beige); color: var(--scz-forest-dark);
}

/* Masonry gallery */
.masonry{ column-count:3; column-gap: 1.1rem; }
@media (max-width:900px){ .masonry{ column-count:2; } }
@media (max-width:560px){ .masonry{ column-count:1; } }
.masonry .g-item{
  break-inside: avoid; margin-bottom: 1.1rem; border-radius:8px; overflow:hidden; position:relative;
  cursor: zoom-in;
}
.masonry .g-item img{ width:100%; display:block; transition: transform .8s var(--ease-soft), filter .8s; }
.masonry .g-item:hover img{ transform: scale(1.05); }
.masonry .g-item .g-cap{
  position:absolute; left:0; right:0; bottom:0; padding:.9rem 1rem;
  background: linear-gradient(0deg, rgba(15,16,15,.82), transparent);
  color:#fff; font-size:.78rem; letter-spacing:.04em; opacity:0; transition: opacity .4s;
}
.masonry .g-item:hover .g-cap{ opacity:1; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:1100; background: rgba(17,18,17,.94);
  display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden;
  transition: opacity .4s var(--ease-soft); padding: 2rem;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox img{ max-width: min(92vw, 1100px); max-height: 84vh; object-fit:contain; border-radius:4px; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.lightbox .lb-close, .lightbox .lb-prev, .lightbox .lb-next{
  position:absolute; color:#fff; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.3);
  width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition: all .3s;
}
.lightbox .lb-close:hover, .lightbox .lb-prev:hover, .lightbox .lb-next:hover{ background:#fff; color:#111; }
.lightbox .lb-close{ top: 1.6rem; right: clamp(1rem,4vw,3rem); }
.lightbox .lb-prev{ left: clamp(.6rem,3vw,2.4rem); top:50%; transform:translateY(-50%); }
.lightbox .lb-next{ right: clamp(.6rem,3vw,2.4rem); top:50%; transform:translateY(-50%); }
.lightbox .lb-cap{ position:absolute; bottom:1.8rem; left:0; right:0; text-align:center; color: var(--scz-mist-light); font-size:.82rem; letter-spacing:.04em; }

/* Accordion / FAQ */
.faq-item{ border-bottom: 1px solid rgba(74,82,89,.18); }
.faq-q{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: 1.5rem 0; cursor:pointer; font-family: var(--font-display); font-size:1.08rem; color: var(--scz-slate-dark);
}
.faq-q .plus{ position:relative; width:20px; height:20px; flex:none; }
.faq-q .plus::before, .faq-q .plus::after{ content:""; position:absolute; background: var(--scz-forest-dark); transition: transform .35s var(--ease-soft); }
.faq-q .plus::before{ left:0; top:9px; width:20px; height:2px; }
.faq-q .plus::after{ left:9px; top:0; width:2px; height:20px; }
.faq-item.active .plus::after{ transform: rotate(90deg); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .5s var(--ease-soft); }
.faq-a p{ padding: 0 0 1.7rem; color:#5b645c; line-height:1.85; max-width: 68ch; }

/* Forms */
.form-field{ margin-bottom:1.4rem; }
.form-field label{ display:block; font-size:.78rem; letter-spacing:.08em; color: var(--scz-slate-dark); margin-bottom:.5rem; text-transform:uppercase; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding: .9rem 1.1rem; border-radius:6px; border:1px solid rgba(74,82,89,.28);
  background: rgba(255,255,255,.75); font-family: var(--font-body); font-size:.95rem; color: var(--scz-ink);
  transition: border .3s, box-shadow .3s;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--scz-forest); box-shadow: 0 0 0 3px rgba(77,95,79,.15);
}
.form-field textarea{ min-height:140px; resize:vertical; }

/* Toast (non-blocking popup) */
#toast-stack{ position:fixed; top: 1.4rem; right: 1.4rem; z-index:1300; display:flex; flex-direction:column; gap:.7rem; }
.toast{
  min-width:260px; max-width:340px; padding:1rem 1.3rem; border-radius:8px;
  background: var(--scz-slate-dark); color:#fff; box-shadow: 0 18px 40px -14px rgba(0,0,0,.45);
  display:flex; align-items:flex-start; gap:.7rem; font-size:.86rem; line-height:1.5;
  transform: translateX(120%); opacity:0; transition: all .5s var(--ease-soft);
  border-left: 3px solid var(--scz-gold);
}
.toast.show{ transform:none; opacity:1; }
.toast .t-ic{ color: var(--scz-gold-light); flex:none; margin-top:.1rem; }
@media (max-width:520px){ #toast-stack{ left:1rem; right:1rem; } .toast{ max-width:none; min-width:0; } }

/* Fade-in reveal */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .9s var(--ease-soft), transform .9s var(--ease-soft); }
.reveal.in{ opacity:1; transform:none; }
.reveal-delay-1.in{ transition-delay:.1s; }
.reveal-delay-2.in{ transition-delay:.22s; }
.reveal-delay-3.in{ transition-delay:.34s; }

/* Mist drift layers */
.mist-layer span{
  position:absolute; border-radius:50%; filter: blur(40px); background: rgba(255,255,255,.5);
  opacity:.5; animation: drift 34s linear infinite;
}
.mist-layer span:nth-child(1){ width:38vw; height:38vw; top:6%; left:-10%; animation-duration:40s; }
.mist-layer span:nth-child(2){ width:26vw; height:26vw; top:38%; right:-8%; animation-duration:30s; animation-delay:-8s; }
.mist-layer span:nth-child(3){ width:22vw; height:22vw; bottom:-6%; left:22%; animation-duration:46s; animation-delay:-20s; }
@keyframes drift{
  0%{ transform: translateX(0) translateY(0); }
  50%{ transform: translateX(4vw) translateY(-2vw); }
  100%{ transform: translateX(0) translateY(0); }
}

/* Parallax ridge divider */
.ridge-divider{ position:relative; height: clamp(70px,10vw,140px); overflow:hidden; }
.ridge-divider svg{ position:absolute; bottom:-1px; width:100%; height:100%; }

/* Quote / pull */
.pull-quote{
  font-family: var(--font-jp); font-size: clamp(1.3rem,2.6vw,1.9rem); line-height:1.8; color: var(--scz-slate-dark);
  border-left: 2px solid var(--scz-gold); padding-left: 1.6rem; max-width: 42ch;
}

/* Page intro band (for inner pages) */
.crumb{ font-size:.78rem; letter-spacing:.08em; color: var(--scz-mist-light); }
.crumb a:hover{ color: var(--scz-gold-light); }

/* Footer */
.site-footer{ background: linear-gradient(180deg, var(--scz-slate-dark), var(--scz-slate-deep)); color:#dfe0da; }
.footer-top{ padding: 5rem 0 3rem; display:grid; grid-template-columns: 1.3fr 1fr 1fr 1.1fr; gap:3rem; }
@media (max-width: 900px){ .footer-top{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-top{ grid-template-columns: 1fr; } }
.footer-top h5{ color:#fff; font-family: var(--font-display); font-size:1rem; letter-spacing:.05em; margin-bottom:1.1rem; }
.footer-top ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.65rem; }
.footer-top a{ color:#c7cbc2; font-size:.88rem; transition: color .3s; }
.footer-top a:hover{ color: var(--scz-gold-light); }
.footer-brand p{ color:#b7bcb2; font-size:.88rem; line-height:1.85; max-width:34ch; }
.footer-social{ display:flex; gap:.7rem; margin-top:1.3rem; }
.footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; transition: all .3s; }
.footer-social a:hover{ background:#fff; color: var(--scz-slate-dark); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding: 1.6rem 0; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; font-size:.78rem; color:#9aa097; }
.footer-bottom .legal-links{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.footer-bottom .legal-links a:hover{ color: var(--scz-gold-light); }

/* Utility */
.text-center{ text-align:center; }
.mx-auto{ margin-left:auto; margin-right:auto; }
.mt-1{margin-top:1rem;} .mt-2{margin-top:2rem;} .mt-3{margin-top:3rem;}
.op-70{ opacity:.7; }
.small-cap{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color: var(--scz-forest-dark); }
.divider{ height:1px; background: rgba(74,82,89,.15); border:none; margin: 3rem 0; }

/* Back to top */
#backTop{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:500; width:46px; height:46px; border-radius:50%;
  background: var(--scz-slate-dark); color:#fff; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform: translateY(10px); transition: all .4s var(--ease-soft); cursor:pointer;
}
#backTop.show{ opacity:1; visibility:visible; transform:none; }
#backTop:hover{ background: var(--scz-gold); }

/* 404 */
.error-page{ min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; }
.error-page .big{ font-family: var(--font-display); font-size: clamp(5rem,18vw,11rem); color:#fff; line-height:1; letter-spacing:.02em; }
