.page-contact{
  --contact-gap:24px;
  position:relative;
  background:var(--c-ink);
  color:var(--c-navy);
  overflow-x:hidden;
  font-family:var(--font-body);
}
.page-contact .contact-breadcrumb,
.page-contact .contact-breadcrumb__sep,
.page-contact .contact-breadcrumb__current{
  font-family:var(--font-mono);
  font-size:.8rem;
}
.page-contact .contact-breadcrumb{
  color:var(--c-gold);
  text-decoration:none;
  position:relative;
  transition:color .2s ease;
}
.page-contact .contact-breadcrumb::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:-2px;
  height:2px;
  background:var(--c-gold);
  transition:left .25s ease,right .25s ease;
}
.page-contact .contact-breadcrumb:hover::after,
.page-contact .contact-breadcrumb:focus-visible::after{
  left:0;
  right:0;
}
.page-contact .contact-breadcrumb__sep{
  margin:0 8px;
  color:rgba(245,240,230,.5);
}
.page-contact .contact-breadcrumb__current{
  color:rgba(245,240,230,.75);
}
.page-contact .contact-hero{
  position:relative;
  background:var(--c-navy);
  color:var(--c-ink);
  padding:56px 0 64px;
}
.page-contact .contact-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 78% 18%,rgba(212,175,55,.14),transparent 55%);
  pointer-events:none;
}
@media (min-width:900px){
  .page-contact .contact-hero{
    padding:88px 0 112px;
  }
}
.page-contact .contact-hero__grid{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:48px;
}
@media (min-width:900px){
  .page-contact .contact-hero__grid{
    flex-direction:row;
    justify-content:space-between;
    align-items:flex-end;
    gap:56px;
  }
}
.page-contact .contact-hero__main{
  flex:1 1 72%;
  max-width:780px;
}
.page-contact .contact-hero__kicker{
  color:var(--c-gold);
  display:block;
  margin-bottom:16px;
}
.page-contact .contact-hero h1{
  font-family:var(--font-display);
  font-size:clamp(1.9rem,4.2vw,3rem);
  line-height:1.2;
  color:var(--c-ink);
  margin:0 0 20px;
  letter-spacing:.01em;
}
.page-contact .contact-hero__lead{
  font-size:1.05rem;
  line-height:1.7;
  color:rgba(245,240,230,.85);
  max-width:620px;
  margin:0;
}
.page-contact .contact-hero__side{
  flex:0 0 280px;
  display:none;
  position:relative;
  border-left:1px solid rgba(212,175,55,.4);
  padding-left:24px;
  min-height:220px;
}
@media (min-width:900px){
  .page-contact .contact-hero__side{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
  }
}
.page-contact .contact-hero__side-label{
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.1em;
  color:rgba(245,240,230,.55);
}
.page-contact .contact-hero__side-strong{
  font-family:var(--font-display);
  font-size:2rem;
  color:var(--c-gold);
  line-height:1.1;
}
.page-contact .contact-hero__svg{
  position:absolute;
  right:-24px;
  bottom:-8px;
  width:160px;
  height:160px;
  opacity:.7;
  pointer-events:none;
}
.page-contact .contact-channels{
  padding:72px 0 56px;
  background:var(--c-ink);
}
@media (min-width:900px){
  .page-contact .contact-channels{
    padding:108px 0 72px;
  }
}
.page-contact .contact-channels__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--contact-gap);
}
@media (min-width:900px){
  .page-contact .contact-channels__grid{
    grid-template-columns:1.05fr .95fr;
    gap:28px;
    align-items:stretch;
  }
}
.page-contact .contact-channel-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--contact-gap);
}
.page-contact .contact-channel{
  background:#fff;
  border-radius:var(--radius);
  padding:32px 24px;
  border:1px solid rgba(44,62,90,.18);
  box-shadow:0 2px 0 rgba(10,31,68,.04);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
@media (min-width:900px){
  .page-contact .contact-channel{
    padding:40px 36px;
  }
}
.page-contact .contact-channel:hover{
  border-color:var(--c-gold);
  box-shadow:0 8px 24px rgba(10,31,68,.08);
}
.page-contact .contact-channel--phone{
  background:linear-gradient(140deg,var(--c-navy),var(--c-navy-2));
  border:2px solid var(--c-gold);
  color:var(--c-ink);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.page-contact .contact-channel--phone:hover{
  transform:scale(1.02);
}
.page-contact .contact-channel__header{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.page-contact .contact-channel h2{
  font-family:var(--font-display);
  font-size:1.5rem;
  line-height:1.2;
  margin:10px 0 0;
  color:var(--c-navy);
}
.page-contact .contact-channel--phone h2{
  color:var(--c-ink);
}
.page-contact .label-mono--on-dark{
  color:var(--c-gold-soft);
}
.page-contact .contact-channel__phone{
  font-family:var(--font-display);
  font-size:2.1rem;
  line-height:1.1;
  letter-spacing:.02em;
  color:var(--c-gold);
  margin:28px 0 10px;
  padding-bottom:14px;
  border-bottom:1px dashed rgba(212,175,55,.35);
  overflow-wrap:anywhere;
}
@media (min-width:900px){
  .page-contact .contact-channel__phone{
    font-size:3.6rem;
  }
}
.page-contact .contact-channel__sub{
  font-size:.88rem;
  line-height:1.65;
  color:var(--c-cadet);
  margin-top:8px;
}
.page-contact .contact-channel__sub--on-dark{
  color:rgba(245,240,230,.72);
}
.page-contact .contact-channel__phone-secondary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:.85rem;
  color:rgba(245,240,230,.7);
  margin-top:6px;
}
.page-contact .contact-channel__phone-secondary strong{
  font-family:var(--font-mono);
  font-weight:600;
  color:var(--c-ink);
  font-size:1rem;
}
.page-contact .contact-channel__divider{
  border:0;
  border-top:1px solid rgba(212,175,55,.18);
  margin:22px 0 18px;
}
.page-contact .contact-channel__list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.page-contact .contact-channel__list li{
  position:relative;
  padding-left:22px;
  font-size:.95rem;
  line-height:1.6;
  color:rgba(245,240,230,.85);
}
.page-contact .contact-channel__list li::before{
  content:"▪";
  color:var(--c-gold);
  position:absolute;
  left:0;
  top:0;
  font-size:.8rem;
}
.page-contact .contact-channel--mail{
  border-top:4px solid var(--c-orange);
}
.page-contact .contact-channel__mail-group{
  margin-top:20px;
}
.page-contact .contact-channel__mail-label{
  display:block;
  font-family:var(--font-mono);
  font-size:.75rem;
  letter-spacing:.08em;
  color:var(--c-cadet);
  margin-bottom:6px;
}
.page-contact .contact-channel__mail-address{
  display:inline-block;
  position:relative;
  font-family:var(--font-mono);
  font-size:1.05rem;
  font-weight:700;
  color:var(--c-navy);
  word-break:break-all;
  cursor:help;
  padding-bottom:4px;
}
.page-contact .contact-channel__mail-address::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:0;
  height:3px;
  background:var(--c-gold);
  border-radius:2px;
  transition:left .3s ease,right .3s ease;
}
.page-contact .contact-channel--mail:hover .contact-channel__mail-address::after,
.page-contact .contact-channel__mail-address:hover::after{
  left:0;
  right:0;
}
.page-contact .contact-channel--address{
  border-top:4px solid var(--c-gold);
}
.page-contact .contact-address__media{
  position:relative;
  margin:20px 0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(44,62,90,.14);
}
.page-contact .contact-address__media img{
  width:100%;
  max-width:100%;
  height:auto;
  display:block;
  object-fit:cover;
}
.page-contact .contact-address__tag{
  position:absolute;
  left:12px;
  top:12px;
  background:rgba(10,31,68,.82);
  color:var(--c-gold);
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.12em;
  padding:5px 10px;
  border-radius:6px;
}
.page-contact .contact-channel__address{
  font-size:1.05rem;
  font-weight:700;
  color:var(--c-navy);
  margin:6px 0 8px;
  line-height:1.6;
}
.page-contact .contact-channels__action{
  margin-top:32px;
  text-align:center;
}
@media (min-width:900px){
  .page-contact .contact-channels__action{
    margin-top:40px;
    text-align:left;
  }
}
.page-contact .contact-map-section{
  background:var(--c-navy);
  padding:72px 0;
}
@media (min-width:900px){
  .page-contact .contact-map-section{
    padding:96px 0;
  }
}
.page-contact .contact-map-section__head{
  color:var(--c-ink);
  max-width:720px;
  margin-bottom:32px;
}
.page-contact .contact-map-section__head h2{
  color:var(--c-ink);
  font-family:var(--font-display);
  font-size:2rem;
  line-height:1.2;
  margin:12px 0;
}
.page-contact .contact-map-section__head p{
  color:rgba(245,240,230,.75);
  line-height:1.75;
  margin:0;
}
.page-contact .contact-map__frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid rgba(212,175,55,.35);
  background:var(--c-navy-2);
}
.page-contact .contact-map__frame > img{
  display:block;
  width:100%;
  max-width:100%;
  height:240px;
  object-fit:cover;
}
@media (min-width:600px){
  .page-contact .contact-map__frame > img{
    height:auto;
    aspect-ratio:3 / 1;
  }
}
.page-contact .contact-map__lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  opacity:.8;
  pointer-events:none;
}
.page-contact .contact-map__grid-lines line{
  stroke:rgba(212,175,55,.35);
  stroke-width:1;
}
.page-contact .contact-map__diagonal{
  fill:none;
  stroke:rgba(255,107,53,.6);
  stroke-width:1.5;
  stroke-dasharray:6 6;
}
.page-contact .contact-map__rect{
  fill:rgba(10,31,68,.32);
  stroke:rgba(212,175,55,.65);
  stroke-width:1;
}
.page-contact .contact-map__dot{
  fill:var(--c-orange);
  stroke:rgba(245,240,230,.6);
  stroke-width:2;
}
.page-contact .contact-map__coord{
  fill:var(--c-gold);
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.1em;
  opacity:.6;
  transition:opacity .25s ease;
}
.page-contact .contact-map__frame:hover .contact-map__coord{
  opacity:1;
}
.page-contact .contact-map__badge{
  position:absolute;
  right:18px;
  top:18px;
  z-index:3;
  background:rgba(10,31,68,.88);
  border:1px solid var(--c-gold);
  border-radius:14px;
  padding:12px 16px;
  color:var(--c-ink);
  text-align:right;
  line-height:1.4;
}
.page-contact .contact-map__badge-label{
  display:block;
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.08em;
  color:rgba(245,240,230,.66);
}
.page-contact .contact-map__badge-value{
  font-family:var(--font-display);
  font-size:1.5rem;
  color:var(--c-gold);
}
.page-contact .contact-map__reference{
  position:absolute;
  left:18px;
  bottom:16px;
  z-index:3;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  color:var(--c-gold-soft);
  background:rgba(10,31,68,.72);
  padding:5px 10px;
  border-radius:6px;
  border-left:3px solid var(--c-orange);
}
.page-contact .contact-service-notes{
  background:var(--c-ink);
  padding:72px 0 88px;
}
@media (min-width:900px){
  .page-contact .contact-service-notes{
    padding:100px 0 120px;
  }
}
.page-contact .contact-service-notes__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}
@media (min-width:900px){
  .page-contact .contact-service-notes__grid{
    grid-template-columns:.4fr .6fr;
    gap:64px;
  }
}
.page-contact .contact-service-notes__head h2{
  font-family:var(--font-display);
  font-size:2rem;
  line-height:1.2;
  color:var(--c-navy);
  margin:12px 0;
}
.page-contact .contact-service-notes__head p{
  color:var(--c-cadet);
  line-height:1.7;
  margin:0;
}
.page-contact .contact-note-item{
  position:relative;
  background:#fff;
  border:1px solid rgba(44,62,90,.16);
  border-left:4px solid var(--c-gold);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:28px 24px 28px 28px;
  margin-bottom:20px;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.page-contact .contact-note-item:last-child{
  margin-bottom:0;
}
.page-contact .contact-note-item:hover{
  border-color:var(--c-gold);
  box-shadow:0 6px 18px rgba(10,31,68,.06);
  transform:translateX(4px);
}
.page-contact .contact-note-item__index{
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--c-gold);
  letter-spacing:.1em;
}
.page-contact .contact-note-item h3{
  font-family:var(--font-display);
  font-size:1.25rem;
  color:var(--c-navy);
  margin:0 0 4px;
}
.page-contact .contact-note-item p{
  margin:0;
  line-height:1.75;
  color:var(--c-cadet);
}
.page-contact .contact-note-item a{
  color:var(--c-orange-deep);
  font-weight:700;
  text-decoration:none;
  position:relative;
  transition:color .2s ease;
}
.page-contact .contact-note-item a::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:-2px;
  height:2px;
  background:var(--c-gold);
  transition:left .3s ease,right .3s ease;
}
.page-contact .contact-note-item a:hover::after,
.page-contact .contact-note-item a:focus-visible::after{
  left:0;
  right:0;
}
