.page-contact{
  --contact-wrap:720px;
  --contact-pad:clamp(1rem,4vw,2rem);
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(1rem,1.4vw,1.0625rem);
  line-height:1.8;
  padding-bottom:clamp(3rem,8vw,5.5rem);
}

.page-contact .contact-shell{
  max-width:var(--contact-wrap);
  margin-inline:auto;
  padding-inline:var(--contact-pad);
}

.page-contact .breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
  margin-top:1.5rem;
  font-family:var(--font-mono);
  font-size:.75rem;
  letter-spacing:.08em;
  color:var(--muted);
}
.page-contact .breadcrumbs__link{
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:1px;
}
.page-contact .breadcrumbs__link:hover{
  color:var(--purple);
  border-bottom-color:var(--gold);
}
.page-contact .breadcrumbs__link[aria-current="page"]{
  color:var(--purple);
  border-bottom-color:var(--gold);
}
.page-contact .breadcrumbs__sep{color:var(--gold);}

.page-contact .contact-hero{
  position:relative;
  margin-top:1.25rem;
  padding:clamp(1.6rem,5vw,2.75rem);
  background:var(--purple);
  color:var(--ivory);
  border:1.5px solid var(--gold);
  overflow:hidden;
}
.page-contact .contact-hero::after{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(231,206,123,.35);
  pointer-events:none;
}
.page-contact .contact-hero__index{
  color:var(--gold-light);
  margin:0 0 .8rem;
  letter-spacing:.14em;
}
.page-contact .contact-hero h1{
  margin:0 0 1rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.85rem,5.4vw,2.9rem);
  line-height:1.24;
  letter-spacing:-.02em;
}
.page-contact .contact-hero__lead{
  margin:0;
  max-width:34em;
  font-size:clamp(.98rem,1.6vw,1.06rem);
  line-height:1.85;
  color:var(--index-ivory);
}
.page-contact .contact-hero__facts{
  list-style:none;
  margin:1.6rem 0 0;
  padding:1rem 0 0;
  border-top:1px solid rgba(201,162,39,.55);
  display:grid;
  gap:.5rem;
  font-family:var(--font-mono);
  font-size:.8rem;
  letter-spacing:.02em;
  color:var(--index-ivory);
  word-break:break-word;
}
.page-contact .contact-hero__facts li{
  display:flex;
  gap:.6rem;
  align-items:baseline;
}
.page-contact .contact-hero__k{
  flex:0 0 3.2em;
  color:var(--gold-light);
  letter-spacing:.12em;
}

.page-contact .contact-jump{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .9rem;
  margin-top:1.25rem;
  padding:.7rem 0;
  border-top:1px solid rgba(22,18,27,.18);
  border-bottom:1px solid rgba(22,18,27,.18);
}
.page-contact .contact-jump__link{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.06em;
  color:var(--purple-mid);
  text-decoration:none;
  padding:.15rem 0;
  border-bottom:1px solid transparent;
}
.page-contact .contact-jump__link:hover,
.page-contact .contact-jump__link:focus-visible{
  color:var(--ink);
  border-bottom-color:var(--gold);
}

.page-contact .contact-section{
  margin-top:clamp(2.4rem,6vw,3.6rem);
}
.page-contact .section-head{
  display:flex;
  align-items:baseline;
  gap:.7rem;
  padding-bottom:.55rem;
  margin-bottom:1.2rem;
  border-bottom:1.5px solid var(--gold);
}
.page-contact .section-no{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.1em;
  color:var(--purple-mid);
}
.page-contact .section-head h2{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.35rem,3.4vw,1.85rem);
  line-height:1.35;
  letter-spacing:-.01em;
}
.page-contact .lead-sm{
  margin:0 0 1.4rem;
  color:var(--muted);
  font-size:.95rem;
}

.page-contact .channels{
  display:grid;
  gap:1rem;
}
.page-contact .channel{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  padding:1.2rem 1.05rem 1.3rem;
  border:1.5px solid var(--ink);
  background:#FBF7EE;
}
.page-contact .channel::before,
.page-contact .channel::after{
  content:"";
  position:absolute;
  width:10px;
  height:10px;
  border:1.5px solid var(--gold);
}
.page-contact .channel::before{
  top:-1.5px;
  left:-1.5px;
  border-right:0;
  border-bottom:0;
}
.page-contact .channel::after{
  bottom:-1.5px;
  right:-1.5px;
  border-left:0;
  border-top:0;
}
.page-contact .channel--mail{
  background:var(--index-ivory);
  border-color:var(--purple);
}
.page-contact .channel__no{
  margin:0;
  color:var(--purple-mid);
  letter-spacing:.14em;
}
.page-contact .channel__title{
  margin:0;
  font-family:var(--font-display);
  font-size:1.15rem;
  font-weight:700;
  line-height:1.4;
}
.page-contact .channel__value{
  margin:0;
  font-family:var(--font-mono);
  font-size:.92rem;
  font-weight:600;
  line-height:1.6;
  color:var(--ink);
  word-break:break-word;
}
.page-contact .channel--mail .channel__value{
  color:var(--celadon);
  font-size:.95rem;
}
.page-contact .channel__addr{
  font-family:var(--font-body);
  font-size:.94rem;
  font-weight:600;
}
.page-contact .channel__fit{
  margin:0;
  font-size:.9rem;
  line-height:1.75;
  color:var(--ink);
}
.page-contact .channel__note{
  margin:auto 0 0;
  padding-top:.6rem;
  border-top:1px dashed rgba(22,18,27,.25);
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--purple-mid);
}

.page-contact .contact-figure{
  margin:1.5rem 0 0;
  border:1.5px solid var(--ink);
  padding:6px;
  background:#FBF7EE;
}
.page-contact .contact-figure .media-frame__img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:cover;
  filter:saturate(.85);
}
.page-contact .media-frame__caption{
  margin:.6rem 0 .1rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--muted);
}

.page-contact .steps{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:1.15rem;
}
.page-contact .step{
  display:grid;
  grid-template-columns:2rem 1fr;
  gap:.85rem;
  align-items:start;
}
.page-contact .step__no{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.08em;
  color:var(--purple-mid);
  padding-top:.55rem;
  border-top:1.5px solid var(--gold);
}
.page-contact .step__body h3{
  margin:.35rem 0 .3rem;
  font-family:var(--font-display);
  font-size:1.08rem;
  font-weight:700;
  line-height:1.45;
}
.page-contact .step__body p{
  margin:0;
  font-size:.95rem;
  line-height:1.8;
  color:var(--ink);
}

.page-contact .mail-outline-wrap{
  margin-top:1.6rem;
}
.page-contact .mail-outline__cap{
  margin:0 0 .5rem;
  color:var(--purple-mid);
  letter-spacing:.14em;
}
.page-contact .mail-outline{
  margin:0;
  padding:1.1rem 1.15rem;
  background:var(--ink);
  color:var(--index-ivory);
  border-left:4px solid var(--gold);
  font-family:var(--font-mono);
  font-size:.82rem;
  line-height:1.95;
  letter-spacing:.02em;
  white-space:pre-wrap;
  overflow-x:auto;
  tab-size:2;
}

.page-contact .timing{
  border-left:3px solid var(--purple-mid);
  padding-left:1.1rem;
}
.page-contact .timing p{
  margin:0 0 .9rem;
  font-size:.96rem;
  line-height:1.85;
}
.page-contact .timing p:last-child{margin-bottom:0;}
.page-contact .timing__big{
  font-family:var(--font-display);
  font-size:clamp(1.3rem,3.6vw,1.7rem) !important;
  font-weight:700;
  color:var(--purple);
  letter-spacing:.01em;
  line-height:1.5 !important;
}

.page-contact .routing{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1.5px solid var(--ink);
}
.page-contact .routing__row{
  display:grid;
  gap:.4rem;
  padding:.95rem .6rem .95rem .7rem;
  border-bottom:1px solid rgba(22,18,27,.16);
  border-left:3px solid transparent;
  transition:background-color .18s ease,border-left-color .18s ease;
}
.page-contact .routing__row:hover{
  background:var(--index-ivory);
  border-left-color:var(--gold);
}
.page-contact .routing__need{
  font-size:.93rem;
  line-height:1.7;
  color:var(--ink);
}
.page-contact .routing__go{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
  text-decoration:none;
  color:var(--purple);
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.04em;
  border-bottom:1px solid rgba(74,44,122,.3);
  padding-bottom:.2rem;
}
.page-contact .routing__go:hover,
.page-contact .routing__go:focus-visible{
  color:var(--ink);
  border-bottom-color:var(--gold);
}
.page-contact .routing__arrow{
  color:var(--gold);
  flex:0 0 auto;
}

.page-contact .contact-section--tinted{
  background:var(--index-ivory);
  border:1.5px solid var(--purple-mid);
  padding:clamp(1.2rem,4vw,2rem);
}
.page-contact .contact-section--tinted .section-head{
  border-bottom-color:var(--purple-mid);
}
.page-contact .contact-section--tinted p{
  font-size:.95rem;
  line-height:1.85;
  margin:0 0 .9rem;
}
.page-contact .partner-grid{
  display:grid;
  gap:1.4rem;
  margin-top:1.2rem;
}
.page-contact .partner-col h3{
  margin:0 0 .55rem;
  font-family:var(--font-display);
  font-size:1.05rem;
  font-weight:700;
  padding-bottom:.4rem;
  border-bottom:1px solid var(--gold);
}
.page-contact .partner-list{
  margin:0;
  padding-left:1.05rem;
  font-size:.92rem;
  line-height:1.85;
}
.page-contact .partner-list li{margin-bottom:.3rem;}
.page-contact .partner-flow{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.5rem;
  font-size:.92rem;
  line-height:1.7;
}
.page-contact .partner-flow li{
  display:flex;
  gap:.55rem;
  align-items:baseline;
}
.page-contact .partner-flow span{
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--purple-mid);
  letter-spacing:.08em;
  flex:0 0 1.8em;
}
.page-contact .partner-note{
  margin-top:1.2rem !important;
  padding-top:.9rem;
  border-top:1px dashed rgba(74,44,122,.4);
  font-size:.9rem !important;
  color:var(--purple);
}

.page-contact .visit{
  border-top:2px solid var(--gold);
  padding-top:1rem;
}
.page-contact .visit p{
  margin:0 0 .9rem;
  font-size:.95rem;
  line-height:1.85;
}
.page-contact .visit__addr{
  font-family:var(--font-display);
  font-size:clamp(1.05rem,2.6vw,1.22rem) !important;
  font-weight:700;
  color:var(--purple);
  line-height:1.6 !important;
}

.page-contact .map-legend{
  margin-top:1.3rem;
  border:1.5px solid var(--ink);
  background:#FBF7EE;
  padding:8px 8px .6rem;
}
.page-contact .map-legend__svg{
  display:block;
  width:100%;
  height:auto;
  background:
    repeating-linear-gradient(0deg,rgba(22,18,27,.04) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,rgba(22,18,27,.04) 0 1px,transparent 1px 22px);
}
.page-contact .map-legend__cap{
  margin:.5rem 0 0;
  padding-left:2px;
  color:var(--muted);
  letter-spacing:.06em;
}

.page-contact a:focus-visible{
  outline:2px solid var(--celadon);
  outline-offset:3px;
}

@media (min-width:640px){
  .page-contact .channels{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
  }
  .page-contact .channel__fit{font-size:.88rem;}
  .page-contact .routing__row{
    grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
    align-items:center;
    gap:1rem;
  }
  .page-contact .partner-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.8rem;
  }
  .page-contact .contact-hero__facts{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.75rem;
  }
  .page-contact .contact-hero__facts li{display:block;}
  .page-contact .contact-hero__k{
    display:block;
    flex:none;
    margin-bottom:.15rem;
  }
}

@media (min-width:900px){
  .page-contact{--contact-wrap:760px;}
  .page-contact .step{
    grid-template-columns:2.4rem 1fr;
    gap:1.1rem;
  }
  .page-contact .contact-figure{margin-top:1.8rem;}
}

@media (prefers-reduced-motion:reduce){
  .page-contact .routing__row{transition:none;}
}
