.page-contact{
  --c-cut:20px;
  --c-gap:clamp(16px,2.4vw,26px);
  display:block;
}

.page-contact .contact-hero{
  position:relative;
  padding:clamp(22px,3.6vw,48px) 0 clamp(24px,3.6vw,46px);
  overflow:hidden;
}
.page-contact .contact-hero::before{
  content:"";
  position:absolute;
  inset:-20% -20% auto -20%;
  height:420px;
  background:
    radial-gradient(circle at 18% 34%, rgba(227,178,75,.14), transparent 58%),
    radial-gradient(circle at 74% 8%, rgba(46,140,122,.13), transparent 55%);
  pointer-events:none;
}
.page-contact .contact-hero__grid{
  position:relative;
  display:grid;
  gap:clamp(26px,4vw,44px);
  grid-template-columns:minmax(0,1fr);
}
.page-contact .contact-hero__main,
.page-contact .contact-hero__aside{min-width:0;}

.page-contact .contact-kicker{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.16em;
  color:var(--stone);
}
.page-contact .contact-kicker .coord{
  color:var(--gold);
  letter-spacing:.12em;
}
.page-contact .contact-hero h1{
  margin:14px 0 0;
  font-size:clamp(30px,5.4vw,56px);
  line-height:1.14;
  font-weight:900;
  letter-spacing:-.01em;
  color:var(--paper);
}
.page-contact .contact-lead{
  max-width:33em;
  margin:18px 0 0;
  font-size:var(--fs-body);
  line-height:1.85;
  color:var(--stone);
}

.page-contact .contact-address{
  margin-top:clamp(24px,3.4vw,38px);
  padding-left:clamp(14px,2vw,22px);
  border-left:2px solid var(--gold);
}
.page-contact .contact-address__pre{
  margin:0;
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.2em;
  color:var(--stone);
}
.page-contact .contact-address__region{
  margin:8px 0 0;
  font-size:var(--fs-sm);
  color:var(--stone);
  letter-spacing:.04em;
}
.page-contact .contact-address__street{
  margin:4px 0 0;
  font-size:clamp(28px,5vw,52px);
  line-height:1.12;
  font-weight:900;
  color:var(--gold-soft);
  letter-spacing:.01em;
}
.page-contact .contact-address__name{
  margin:6px 0 0;
  font-size:var(--fs-md);
  font-weight:700;
  color:var(--paper);
}

.page-contact .contact-cards{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
}
.page-contact .contact-card{
  position:relative;
  padding:18px 20px 20px;
  background:var(--ink-2);
  clip-path:polygon(0 0, calc(100% - var(--c-cut)) 0, 100% var(--c-cut), 100% 100%, 0 100%);
}
.page-contact .contact-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:3px;
  height:38px;
  background:var(--gold);
}
.page-contact .contact-card--phone::before{background:var(--cinnabar);}
.page-contact .contact-card--alt::before{background:var(--jade);}
.page-contact .contact-card--mail{margin-right:clamp(0px,3vw,26px);}
.page-contact .contact-card--phone{margin-left:clamp(0px,3vw,22px);}
.page-contact .contact-card--alt{margin-right:clamp(0px,2vw,14px);}

.page-contact .contact-card__label{
  margin:0;
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.18em;
  color:var(--stone);
}
.page-contact .contact-card__value{
  margin:8px 0 0;
  font-family:var(--mono);
  font-size:clamp(15px,1.7vw,18px);
  font-weight:600;
  line-height:1.5;
  color:var(--gold-soft);
  word-break:break-word;
}
.page-contact .contact-card--alt .contact-card__value{color:var(--paper);}
.page-contact .contact-card__note{
  margin:10px 0 0;
  font-size:var(--fs-sm);
  line-height:1.75;
  color:var(--stone);
}

.page-contact .contact-band{
  margin:0;
  position:relative;
  background:var(--char);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 26px), 0 100%);
}
.page-contact .contact-band img{
  display:block;
  width:100%;
  height:auto;
  max-height:52vh;
  object-fit:cover;
  opacity:.82;
  filter:saturate(.9);
}
.page-contact .contact-band__cap{
  position:absolute;
  left:0;
  bottom:0;
  right:0;
  padding:clamp(14px,2.4vw,26px) clamp(16px,4vw,52px);
  font-size:var(--fs-sm);
  color:var(--paper);
  background:linear-gradient(180deg, rgba(7,12,24,0), rgba(7,12,24,.88));
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:baseline;
}
.page-contact .contact-band__cap .coord{
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.16em;
  color:var(--gold);
}

.page-contact .contact-body{
  padding-bottom:clamp(40px,6vw,76px);
}

.page-contact .contact-index{
  display:flex;
  gap:10px;
  overflow-x:auto;
  margin:clamp(22px,3.4vw,38px) 0 clamp(26px,4vw,48px);
  padding:12px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  scrollbar-width:thin;
}
.page-contact .contact-index__link{
  flex:0 0 auto;
  padding:8px 14px;
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.06em;
  white-space:nowrap;
  text-decoration:none;
  color:var(--stone);
  border:1px solid var(--line);
  clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
  transition:color .18s ease, background-color .18s ease, border-color .18s ease;
}
.page-contact .contact-index__link:hover,
.page-contact .contact-index__link:focus-visible{
  color:var(--gold-soft);
  border-color:var(--line-strong);
}
.page-contact .contact-index__link[aria-current]{
  color:var(--char);
  background:var(--gold);
  border-color:var(--gold);
}

.page-contact .contact-section{
  padding-top:clamp(26px,4vw,48px);
  border-top:1px solid var(--line);
  margin-top:clamp(26px,4vw,46px);
}
.page-contact .contact-section:first-of-type{
  border-top:0;
  margin-top:0;
  padding-top:0;
}
.page-contact .contact-section__head{
  display:grid;
  gap:10px;
  margin-bottom:clamp(18px,2.8vw,28px);
}
.page-contact .contact-num{
  font-family:var(--mono);
  font-size:var(--fs-sm);
  letter-spacing:.18em;
  color:var(--gold);
}
.page-contact .contact-section__head h2{
  margin:0;
  font-size:clamp(22px,3.2vw,34px);
  line-height:1.3;
  font-weight:800;
  color:var(--paper);
}
.page-contact .contact-section__lead{
  margin:0;
  max-width:33em;
  font-size:var(--fs-body);
  line-height:1.85;
  color:var(--stone);
}

.page-contact .contact-tabs__bar{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:10px;
  scrollbar-width:thin;
}
.page-contact .contact-tabs__tab{
  flex:0 0 auto;
  appearance:none;
  padding:10px 16px;
  font-family:inherit;
  font-size:var(--fs-sm);
  font-weight:600;
  white-space:nowrap;
  cursor:pointer;
  color:var(--stone);
  background:transparent;
  border:1px solid var(--line);
  clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
  transition:color .18s ease, background-color .18s ease, border-color .18s ease;
}
.page-contact .contact-tabs__tab:hover,
.page-contact .contact-tabs__tab:focus-visible{
  color:var(--gold-soft);
  border-color:var(--line-strong);
}
.page-contact .contact-tabs__tab[aria-selected="true"]{
  color:var(--char);
  background:var(--gold);
  border-color:var(--gold);
}
.page-contact .contact-tabs__panel{
  margin-top:14px;
  padding:clamp(18px,2.8vw,28px);
  background:var(--ink-2);
  clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
}
.page-contact .contact-tabs__panel h3{
  margin:0 0 10px;
  font-size:var(--fs-md);
  line-height:1.4;
  font-weight:800;
  color:var(--gold-soft);
}
.page-contact .contact-tabs__panel p{
  margin:0;
  max-width:33em;
  font-size:var(--fs-body);
  line-height:1.85;
  color:var(--paper);
}
.page-contact .contact-tabs__panel p + p{margin-top:12px;}
.page-contact .contact-tabs__panel .contact-tabs__hint{
  font-size:var(--fs-sm);
  color:var(--stone);
  border-top:1px dashed var(--line);
  padding-top:12px;
}
.page-contact .contact-tabs__panel a{
  color:var(--gold-soft);
  text-decoration:none;
  border-bottom:1px solid rgba(246,217,138,.45);
}
.page-contact .contact-tabs__panel a:hover,
.page-contact .contact-tabs__panel a:focus-visible{
  color:var(--gold);
}

.page-contact .contact-scale{
  padding:clamp(18px,2.8vw,28px);
  background:var(--ink-2);
  clip-path:polygon(0 0, 0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
.page-contact .contact-scale__row{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  font-family:var(--mono);
  font-size:var(--fs-sm);
  letter-spacing:.1em;
  color:var(--stone);
}
.page-contact .contact-scale__time{
  font-size:clamp(18px,2.4vw,24px);
  font-weight:600;
  color:var(--gold-soft);
  letter-spacing:.06em;
}
.page-contact .contact-scale__track{
  position:relative;
  height:6px;
  margin:14px 0 18px;
  background:rgba(168,176,191,.2);
  border-radius:2px;
}
.page-contact .contact-scale__fill{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, var(--jade), var(--gold) 62%, var(--cinnabar));
  border-radius:2px;
}
.page-contact .contact-scale__notes{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.page-contact .contact-scale__notes li{
  position:relative;
  padding-left:16px;
  font-size:var(--fs-body);
  line-height:1.8;
  color:var(--stone);
}
.page-contact .contact-scale__notes li::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  width:6px;
  height:6px;
  background:var(--gold);
  transform:rotate(45deg);
}

.page-contact .contact-arrive{
  display:grid;
  gap:clamp(20px,3.2vw,34px);
  grid-template-columns:minmax(0,1fr);
}
.page-contact .contact-arrive__text{min-width:0;}
.page-contact .contact-arrive__addr{
  margin:0 0 18px;
  padding:16px 18px;
  border-left:2px solid var(--jade);
  background:rgba(24,42,78,.6);
  display:grid;
  gap:6px;
}
.page-contact .contact-arrive__addr-main{
  font-size:var(--fs-body);
  font-weight:700;
  line-height:1.6;
  color:var(--paper);
}
.page-contact .contact-arrive__addr-sub{
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.08em;
  color:var(--jade);
}

.page-contact .contact-details{
  border-top:1px solid var(--line);
}
.page-contact .contact-details details{
  border-bottom:1px solid var(--line);
}
.page-contact .contact-details summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:15px 0;
  cursor:pointer;
  list-style:none;
  font-size:var(--fs-body);
  font-weight:600;
  color:var(--paper);
}
.page-contact .contact-details summary::-webkit-details-marker{display:none;}
.page-contact .contact-details summary::after{
  content:"+";
  flex:0 0 auto;
  font-family:var(--mono);
  font-size:var(--fs-md);
  color:var(--gold);
  line-height:1;
}
.page-contact .contact-details details[open] summary::after{content:"–";}
.page-contact .contact-details details p{
  margin:0 0 16px;
  max-width:32em;
  font-size:var(--fs-sm);
  line-height:1.85;
  color:var(--stone);
}

.page-contact .contact-arrive__media{
  margin:0;
  min-width:0;
}
.page-contact .contact-arrive__media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 2;
  object-fit:cover;
  clip-path:polygon(0 0, 100% 0, 100% 100%, var(--c-cut) 100%, 0 calc(100% - var(--c-cut)));
  filter:saturate(.92);
}
.page-contact .contact-arrive__media figcaption{
  margin-top:10px;
  font-family:var(--mono);
  font-size:var(--fs-xs);
  line-height:1.7;
  letter-spacing:.04em;
  color:var(--stone);
}

.page-contact .contact-partner{
  display:grid;
  gap:clamp(18px,3vw,30px);
  grid-template-columns:minmax(0,1fr);
}
.page-contact .contact-partner__panel{
  padding:clamp(18px,2.8vw,28px);
  background:var(--ink-2);
  clip-path:polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
}
.page-contact .contact-partner__panel h3{
  margin:0 0 14px;
  font-size:var(--fs-md);
  font-weight:800;
  color:var(--paper);
}
.page-contact .contact-prep{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}
.page-contact .contact-prep li{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:baseline;
  font-size:var(--fs-body);
  line-height:1.75;
  color:var(--stone);
}
.page-contact .contact-prep__num{
  font-family:var(--mono);
  font-size:var(--fs-xs);
  letter-spacing:.14em;
  color:var(--gold);
}
.page-contact .contact-partner__mail{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px dashed var(--line);
  font-size:var(--fs-sm);
  line-height:1.8;
  color:var(--stone);
}
.page-contact .contact-mono{
  font-family:var(--mono);
  color:var(--gold-soft);
  word-break:break-word;
}
.page-contact .contact-partner__side{
  display:grid;
  gap:12px;
  align-content:start;
}
.page-contact .contact-partner__side p{
  margin:0;
  font-size:var(--fs-body);
  line-height:1.85;
  color:var(--stone);
}
.page-contact .contact-partner__side .contact-partner__link{
  font-size:var(--fs-sm);
  color:var(--stone);
}
.page-contact .contact-partner__side a{
  color:var(--gold-soft);
  text-decoration:none;
  border-bottom:1px solid rgba(246,217,138,.45);
}
.page-contact .contact-partner__side a:hover,
.page-contact .contact-partner__side a:focus-visible{color:var(--gold);}

.page-contact .contact-feed{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:2px;
  counter-reset:feed;
}
.page-contact .contact-feed li{
  padding:16px 0 18px 0;
  border-bottom:1px solid var(--line);
}
.page-contact .contact-feed__title{
  margin:0 0 6px;
  font-size:var(--fs-body);
  font-weight:700;
  color:var(--gold-soft);
}
.page-contact .contact-feed__body{
  margin:0;
  max-width:34em;
  font-size:var(--fs-sm);
  line-height:1.85;
  color:var(--stone);
}

.page-contact .contact-closing{
  margin-top:clamp(22px,3.4vw,34px);
  padding:clamp(18px,2.8vw,26px);
  border:1px solid var(--line);
  background:linear-gradient(135deg, rgba(46,140,122,.14), rgba(14,27,51,0) 62%);
  display:grid;
  gap:16px;
}
.page-contact .contact-closing__text{
  margin:0;
  font-size:var(--fs-body);
  line-height:1.8;
  color:var(--paper);
}
.page-contact .contact-closing__links{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.page-contact .contact-closing__links .btn{
  text-decoration:none;
}

@media (min-width:768px){
  .page-contact .contact-section__head{
    grid-template-columns:auto minmax(0,1fr);
    column-gap:24px;
    align-items:baseline;
  }
  .page-contact .contact-section__head h2,
  .page-contact .contact-section__head .contact-section__lead{
    grid-column:2;
  }
  .page-contact .contact-arrive,
  .page-contact .contact-partner{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:start;
  }
  .page-contact .contact-closing{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }
}

@media (min-width:900px){
  .page-contact .contact-hero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,4fr);
    align-items:start;
  }
  .page-contact .contact-hero__aside{
    padding-top:clamp(10px,2vw,26px);
  }
}

@media (min-width:1024px){
  .page-contact .contact-band img{max-height:58vh;}
  .page-contact .contact-arrive{
    grid-template-columns:minmax(0,6fr) minmax(0,6fr);
  }
}

@media (prefers-reduced-motion: reduce){
  .page-contact .contact-index__link,
  .page-contact .contact-tabs__tab{
    transition:none;
  }
}
</main>
