.page-contact{
  --page-accent:#C9A86A;
  --page-accent-2:#E0C878;
  --page-surface:#122A4A;
  --page-surface-deep:#081426;
  --page-text:#F0EAD6;
  --page-muted:#A8B8C8;
  --page-border:#B8964A;
  background-image:
    linear-gradient(rgba(201,168,106,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,106,.035) 1px, transparent 1px);
  background-size:36px 36px;
  background-position:center top;
}

.page-contact .page-container{
  padding-top:24px;
}

.page-contact .breadcrumb{
  margin:0 0 28px;
  font-size:.85rem;
}

.page-contact .contact-hero{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:56px 0 48px;
  border-bottom:1px solid rgba(201,168,106,.28);
  margin-bottom:56px;
}

.page-contact .contact-hero::before{
  content:"";
  position:absolute;
  top:-1px;
  left:0;
  width:96px;
  height:2px;
  background:linear-gradient(90deg,var(--page-accent),transparent);
}

.page-contact .hero-main h1{
  font-family:var(--font-serif);
  font-size:clamp(2rem,5.2vw,3.4rem);
  line-height:1.18;
  letter-spacing:.04em;
  margin:16px 0 14px;
  color:var(--page-text);
}

.page-contact .hero-lead{
  max-width:44em;
  margin:0;
  color:var(--page-muted);
  font-size:1.05rem;
  line-height:1.75;
}

.page-contact .hero-side{
  display:flex;
  align-items:center;
  gap:16px;
  color:var(--page-muted);
}

.page-contact .hero-index{
  font-family:var(--font-serif);
  font-size:2.5rem;
  line-height:1;
  letter-spacing:.06em;
  color:rgba(201,168,106,.5);
}

.page-contact .hero-index::after{
  content:"";
  display:block;
  width:100%;
  height:1px;
  background:var(--page-accent);
  margin-top:8px;
}

.page-contact .section-heading{
  margin-bottom:24px;
}

.page-contact .channel-section{
  margin-bottom:64px;
}

.page-contact .channel-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}

.page-contact .channel-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:
    linear-gradient(140deg,rgba(201,168,106,.05),transparent 55%),
    var(--page-surface);
  border:1px solid rgba(184,150,74,.35);
  padding:28px 22px;
  transition:border-color .35s ease,transform .35s ease;
}

.page-contact .channel-card:hover{
  border-color:var(--page-accent);
}

.page-contact .channel-card h3{
  margin:8px 0 0;
  font-family:var(--font-sans);
  font-size:1rem;
  font-weight:400;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--page-muted);
}

.page-contact .channel-value{
  margin:4px 0 0;
  font-family:var(--font-serif);
  font-size:clamp(1.25rem,2.6vw,1.65rem);
  line-height:1.4;
  color:var(--page-text);
  word-break:break-all;
}

.page-contact .channel-note{
  margin:2px 0 0;
  color:var(--page-muted);
  font-size:.92rem;
  line-height:1.6;
}

.page-contact .channel-glyph{
  width:40px;
  height:40px;
  stroke:var(--page-accent);
  margin-bottom:8px;
}

.page-contact .channel-card-email .channel-icon{
  width:160px;
  height:160px;
  object-fit:cover;
  border:1px solid rgba(184,150,74,.35);
  align-self:center;
}

.page-contact .channel-card .btn{
  margin-top:14px;
  align-self:flex-start;
}

.page-contact .service-location-band{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  margin-bottom:64px;
}

.page-contact .service-time{
  position:relative;
  background:
    linear-gradient(160deg,rgba(201,168,106,.08),transparent 48%),
    var(--page-surface-deep);
  border:1px solid rgba(184,150,74,.35);
  padding:28px 22px;
}

.page-contact .service-time::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:4px;
  height:100%;
  background:linear-gradient(180deg,var(--page-accent),transparent 80%);
}

.page-contact .clock-icon{
  width:64px;
  height:64px;
  margin-bottom:12px;
}

.page-contact .time-range{
  margin:10px 0 4px;
  font-family:var(--font-serif);
  font-size:clamp(1.3rem,2.4vw,1.6rem);
  letter-spacing:.03em;
  color:var(--page-text);
}

.page-contact .time-note{
  margin-bottom:16px;
  color:var(--page-muted);
  font-size:.92rem;
  line-height:1.65;
}

.page-contact .text-link{
  color:var(--page-accent);
  text-decoration:none;
  border-bottom:1px solid rgba(201,168,106,.32);
  transition:color .3s,border-color .3s;
}

.page-contact .text-link:hover{
  color:var(--page-accent-2);
  border-color:var(--page-accent-2);
}

.page-contact .location-note{
  background:var(--page-surface);
  border:1px solid rgba(184,150,74,.35);
  padding:0;
  overflow:hidden;
}

.page-contact .location-image{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:2 / 1;
  object-fit:cover;
  border-bottom:1px solid rgba(201,168,106,.35);
}

.page-contact .location-content{
  padding:24px 22px 28px;
}

.page-contact .location-content p{
  margin:8px 0 0;
  color:var(--page-muted);
  line-height:1.7;
}

.page-contact .feedback-section{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  padding:48px 0 64px;
  border-top:1px solid rgba(201,168,106,.25);
  margin-top:8px;
}

.page-contact .feedback-desc{
  max-width:30em;
  margin:16px 0 20px;
  color:var(--page-muted);
  line-height:1.7;
}

.page-contact .mail-link{
  display:inline-block;
  margin-bottom:20px;
  font-family:var(--font-serif);
  font-size:1.2rem;
  color:var(--page-accent-2);
  text-decoration:none;
  border-bottom:1px solid rgba(201,168,106,.45);
  padding-bottom:2px;
  transition:color .3s,border-color .3s;
}

.page-contact .mail-link:hover{
  color:var(--page-text);
  border-color:var(--page-text);
}

.page-contact .feedback-extra{
  margin:0 0 12px;
  color:var(--page-muted);
  font-size:.92rem;
  line-height:1.65;
}

.page-contact .feedback-policy{
  margin:0;
  color:var(--page-muted);
  font-size:.92rem;
  line-height:1.65;
}

.page-contact .feedback-form-wrap{
  position:relative;
  background:rgba(18,42,74,.24);
  border:1px solid rgba(184,150,74,.4);
  padding:30px 24px;
}

.page-contact .feedback-form-wrap::before{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(201,168,106,.14);
  pointer-events:none;
}

.page-contact .feedback-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.page-contact .form-field label{
  display:block;
  margin-bottom:6px;
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--page-muted);
}

.page-contact .form-field input,
.page-contact .form-field select,
.page-contact .form-field textarea{
  width:100%;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(201,168,106,.35);
  border-radius:0;
  padding:10px 2px;
  color:var(--page-text);
  font-family:var(--font-sans);
  font-size:1rem;
  transition:border-color .3s,box-shadow .3s;
  -webkit-appearance:none;
  appearance:none;
}

.page-contact .form-field select{
  padding:10px 30px 10px 2px;
  background-image:
    linear-gradient(45deg,transparent 50%,var(--page-accent) 50%),
    linear-gradient(135deg,var(--page-accent) 50%,transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px;
  background-repeat:no-repeat;
  cursor:pointer;
}

.page-contact .form-field input::placeholder,
.page-contact .form-field textarea::placeholder{
  color:rgba(168,184,200,.5);
}

.page-contact .form-field input:focus,
.page-contact .form-field select:focus,
.page-contact .form-field textarea:focus{
  outline:none;
  border-bottom-color:var(--page-accent-2);
  box-shadow:0 1px 0 0 rgba(224,200,120,.45);
}

.page-contact .form-field textarea{
  resize:vertical;
  min-height:120px;
}

.page-contact .feedback-form .btn{
  align-self:flex-start;
}

.page-contact .form-hint{
  margin:0;
  color:rgba(168,184,200,.7);
  font-size:.82rem;
  line-height:1.6;
}

@media (min-width:720px){
  .page-contact .channel-grid{
    grid-template-columns:1fr 1fr;
  }

  .page-contact .channel-card-email{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:36px;
    align-items:center;
  }

  .page-contact .channel-card-email .channel-icon{
    align-self:center;
  }
}

@media (min-width:960px){
  .page-contact .contact-hero{
    flex-direction:row;
    align-items:flex-end;
  }

  .page-contact .hero-side{
    flex-direction:column;
    align-items:flex-end;
    gap:10px;
  }

  .page-contact .service-location-band{
    grid-template-columns:minmax(0,4fr) minmax(0,6fr);
    gap:32px;
  }

  .page-contact .feedback-section{
    grid-template-columns:minmax(0,4fr) minmax(0,6fr);
    gap:64px;
    align-items:start;
  }
}
