.page-contact{
  --contact-red-deep:#B31C1C;
  --contact-gold-soft:rgba(242,183,5,.28);
  --contact-radius-large:28px 8px 28px 8px;
  position:relative;
  background:var(--c-cream);
  color:var(--c-ink);
  font-family:var(--font-body);
  line-height:1.7;
}
.page-contact .breadcrumbs{
  padding-top:1.5rem;
}
.page-contact .contact-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(118deg,var(--c-red) 0 62%,var(--c-brown) 62% 100%);
  color:#fff;
}
.page-contact .contact-hero::before{
  content:"";
  position:absolute;
  right:-110px;
  top:-120px;
  width:420px;
  height:420px;
  border-radius:50%;
  border:42px solid var(--c-gold);
  opacity:.18;
  pointer-events:none;
}
.page-contact .contact-hero::after{
  content:"";
  position:absolute;
  left:-60px;
  bottom:-90px;
  width:280px;
  height:200px;
  background:var(--contact-gold-soft);
  transform:rotate(14deg);
  pointer-events:none;
}
.page-contact .contact-hero__inner{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:2.2rem;
  padding-top:3rem;
  padding-bottom:3.5rem;
}
.page-contact .contact-hero__copy{
  max-width:40rem;
}
.page-contact .hero-kicker{
  display:inline-block;
  background:var(--c-gold);
  color:var(--c-brown);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  padding:.34rem .88rem;
  border-radius:999px;
  margin-bottom:1rem;
}
.page-contact .contact-hero h1{
  font-family:var(--font-heading);
  font-weight:900;
  font-size:clamp(2rem,4.6vw,3.1rem);
  line-height:1.15;
  margin:0 0 1.1rem;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.18);
}
.page-contact .hero-lead{
  font-size:1rem;
  line-height:1.75;
  color:rgba(255,255,255,.92);
  max-width:32em;
}
.page-contact .hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-top:1.6rem;
}
.page-contact .hero-actions .btn-primary{
  background:var(--c-gold);
  color:var(--c-brown);
  border:none;
  font-weight:800;
}
.page-contact .hero-actions .btn-primary:hover{
  background:#FFD54D;
}
.page-contact .hero-actions .btn-outline{
  border:1px solid rgba(255,255,255,.65);
  color:#fff;
  background:transparent;
}
.page-contact .hero-actions .btn-outline:hover{
  background:rgba(255,255,255,.14);
}
.page-contact .contact-hero__badge{
  display:flex;
  justify-content:flex-start;
}
.page-contact .hero-badge-card{
  position:relative;
  max-width:230px;
  background:var(--c-cream);
  color:var(--c-brown);
  border-radius:var(--contact-radius-large);
  padding:1.6rem 2rem;
  text-align:center;
  transform:rotate(-2deg);
  box-shadow:0 18px 44px rgba(0,0,0,.22);
}
.page-contact .hero-badge-card::before{
  content:"招";
  position:absolute;
  top:-18px;
  right:-14px;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--c-gold);
  color:var(--c-brown);
  font-family:var(--font-heading);
  font-weight:900;
  font-size:1.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 14px rgba(0,0,0,.16);
}
.page-contact .badge-num{
  display:block;
  font-family:var(--font-heading);
  font-size:4.6rem;
  font-weight:900;
  line-height:1;
  color:var(--c-red);
}
.page-contact .badge-unit{
  display:block;
  font-size:.92rem;
  color:var(--c-gold);
  font-weight:700;
  margin-top:.2rem;
}
.page-contact .badge-text{
  display:block;
  font-size:.9rem;
  color:var(--c-brown);
  font-weight:600;
  margin-top:.45rem;
}
.page-contact .badge-slogan{
  display:block;
  font-size:.78rem;
  color:var(--c-ink);
  opacity:.75;
  margin-top:.6rem;
}
.page-contact .contact-channels{
  background:var(--c-cream);
  padding:3.5rem 0;
}
.page-contact .channels-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
}
.page-contact .channels-content{
  order:1;
}
.page-contact .channels-visual{
  order:2;
}
.page-contact .channels-figure{
  margin:0;
  background:var(--c-butter);
  border-radius:var(--radius-organic);
  overflow:hidden;
}
.page-contact .channels-img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
}
.page-contact .figure-note{
  background:var(--c-brown);
  color:rgba(255,255,255,.86);
  font-size:.85rem;
  line-height:1.5;
  margin:0;
  padding:.7rem 1.1rem;
  border-radius:0 0 22px 22px;
}
.page-contact .section-label{
  display:inline-block;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.14em;
  color:var(--c-red);
  background:var(--c-butter);
  border-left:4px solid var(--c-gold);
  padding:.28rem .8rem;
  margin:0 0 .8rem;
}
.page-contact .contact-channels h2,
.page-contact .contact-address h2,
.page-contact .contact-response h2,
.page-contact .contact-guide h2{
  font-family:var(--font-heading);
  font-weight:900;
  font-size:clamp(1.5rem,3vw,2.2rem);
  line-height:1.2;
  margin:0 0 1rem;
  color:var(--c-brown);
}
.page-contact .channels-content > p{
  max-width:34em;
}
.page-contact .channel-list{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin-top:1.6rem;
}
.page-contact .channel-item{
  display:flex;
  align-items:center;
  gap:1.1rem;
  background:var(--c-butter);
  border:1px solid rgba(62,39,35,.12);
  border-radius:var(--radius-organic);
  padding:1.1rem 1.2rem;
  text-decoration:none;
  color:var(--c-ink);
  transition:transform .2s ease,box-shadow .2s ease;
}
.page-contact .channel-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(214,40,40,.14);
}
.page-contact .channel-icon{
  flex:0 0 48px;
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--c-red);
  color:#fff;
}
.page-contact .channel-item--email .channel-icon{
  background:var(--c-brown);
}
.page-contact .channel-icon svg{
  width:22px;
  height:22px;
}
.page-contact .channel-body{
  display:block;
  min-width:0;
}
.page-contact .channel-label{
  display:block;
  font-size:.8rem;
  color:var(--c-brown);
  letter-spacing:.06em;
}
.page-contact .channel-value{
  display:block;
  font-weight:800;
  font-size:1.1rem;
  margin-top:.1rem;
  color:var(--c-ink);
  word-break:break-all;
}
.page-contact .channel-hint{
  display:block;
  font-size:.82rem;
  color:#6b5b57;
  margin-top:.25rem;
}
.page-contact .channel-security-note{
  margin-top:1.3rem;
  font-size:.88rem;
  color:#6b5b57;
  border-left:3px solid var(--c-orange);
  padding-left:.8rem;
  max-width:36em;
}
.page-contact .contact-address{
  background:var(--c-brown);
  color:#fff;
  padding:3.5rem 0;
}
.page-contact .contact-address__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:2.5rem;
}
.page-contact .address-copy{
  order:1;
}
.page-contact .address-copy .section-label{
  color:var(--c-gold);
  background:rgba(255,255,255,.06);
  border-left-color:var(--c-gold);
}
.page-contact .address-copy h2{
  color:#fff;
}
.page-contact .address-copy p{
  color:rgba(255,255,255,.84);
  max-width:34em;
}
.page-contact .address-copy address{
  font-style:normal;
  font-family:var(--font-heading);
  font-weight:800;
  font-size:1.25rem;
  color:var(--c-gold);
  margin:1.2rem 0;
  line-height:1.4;
}
.page-contact .address-note{
  font-size:.88rem;
  color:rgba(255,255,255,.68);
}
.page-contact .address-copy .btn-outline{
  border-color:var(--c-gold);
  color:var(--c-gold);
  margin-top:.6rem;
  background:transparent;
}
.page-contact .address-copy .btn-outline:hover{
  background:rgba(242,183,5,.12);
}
.page-contact .address-map{
  order:2;
  position:relative;
  min-height:220px;
  background:var(--c-cream);
  border-radius:var(--contact-radius-large);
  overflow:hidden;
  border:2px solid var(--c-gold);
}
.page-contact .address-map svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.page-contact .map-pin{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:var(--c-red);
  color:#fff;
  padding:.4rem 1.1rem;
  border-radius:999px;
  font-size:.85rem;
  font-weight:700;
  box-shadow:0 6px 16px rgba(214,40,40,.3);
  z-index:2;
  white-space:nowrap;
}
.page-contact .contact-response{
  background:var(--c-butter);
  padding:3.5rem 0;
}
.page-contact .response-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
}
.page-contact .response-copy h2{
  color:var(--c-red);
}
.page-contact .response-times{
  list-style:none;
  padding:0;
  margin:1.4rem 0;
  display:grid;
  gap:.7rem;
}
.page-contact .response-times li{
  background:var(--c-cream);
  border-radius:12px 26px 12px 26px;
  padding:.9rem 1.1rem;
  font-size:.95rem;
  border:1px solid rgba(62,39,35,.08);
}
.page-contact .response-figure{
  margin:0;
  background:var(--c-cream);
  border-radius:var(--radius-organic);
  overflow:hidden;
  border:1px solid rgba(62,39,35,.08);
}
.page-contact .response-img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
}
.page-contact .response-figure figcaption{
  font-size:.82rem;
  color:var(--c-brown);
  padding:.6rem 1rem;
  background:var(--c-cream);
}
.page-contact .contact-guide{
  background:var(--c-cream);
  padding:3.5rem 0;
}
.page-contact .guide-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:2.2rem;
}
.page-contact .guide-copy h2{
  color:var(--c-brown);
}
.page-contact .guide-list{
  margin:1.4rem 0 0;
  padding-left:0;
  list-style:none;
  counter-reset:guide;
  display:grid;
  gap:.8rem;
}
.page-contact .guide-list li{
  counter-increment:guide;
  position:relative;
  padding:.85rem 1rem .85rem 3.4rem;
  background:var(--c-butter);
  border-radius:10px 22px 10px 22px;
  font-size:.95rem;
  border-left:4px solid var(--c-gold);
}
.page-contact .guide-list li::before{
  content:counter(guide);
  position:absolute;
  left:1rem;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--c-red);
  color:#fff;
  font-weight:800;
  font-size:.9rem;
  display:flex;
  align-items:center;
  justify-content:center;
}
.page-contact .guide-panel{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,var(--c-red) 0,var(--contact-red-deep) 100%);
  color:#fff;
  border-radius:var(--contact-radius-large);
  padding:2.2rem 1.8rem;
  box-shadow:0 22px 44px rgba(214,40,40,.26);
}
.page-contact .guide-panel::before{
  content:"";
  position:absolute;
  inset:.7rem;
  border:1px solid rgba(242,183,5,.4);
  border-radius:22px 5px 22px 5px;
  pointer-events:none;
}
.page-contact .guide-panel__seal{
  position:absolute;
  top:1.4rem;
  right:1.4rem;
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--c-gold);
  color:var(--c-brown);
  font-family:var(--font-heading);
  font-weight:900;
  font-size:1.3rem;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:rotate(8deg);
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.page-contact .guide-panel__title{
  font-family:var(--font-heading);
  font-size:1.3rem;
  font-weight:800;
  color:var(--c-gold);
  margin:0 0 1.2rem;
  letter-spacing:.06em;
}
.page-contact .guide-panel__list{
  margin:0 0 1.2rem;
  display:grid;
}
.page-contact .guide-panel__row{
  display:flex;
  justify-content:space-between;
  gap:1.2rem;
  padding:.85rem 0;
  border-bottom:1px dashed rgba(255,255,255,.2);
}
.page-contact .guide-panel__row:last-child{
  border-bottom:none;
}
.page-contact .guide-panel__row dt{
  color:rgba(255,255,255,.78);
  font-size:.9rem;
}
.page-contact .guide-panel__row dd{
  margin:0;
  font-weight:700;
  text-align:right;
  font-size:.92rem;
  word-break:break-all;
}
.page-contact .guide-panel__note{
  font-size:.86rem;
  color:rgba(255,255,255,.88);
  line-height:1.6;
  margin:0 0 1.2rem;
}
.page-contact .guide-panel__note a{
  color:var(--c-gold);
  text-decoration:underline;
  text-underline-offset:3px;
}
.page-contact .guide-panel .btn-primary{
  position:relative;
  z-index:2;
  background:var(--c-gold);
  color:var(--c-brown);
  border:none;
  font-weight:800;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.page-contact .guide-panel .btn-primary:hover{
  background:#FFD54D;
}
.page-contact .back-to-top{
  box-sizing:border-box;
}
@media (min-width:768px){
  .page-contact .contact-hero__inner{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:4rem;
    padding-top:4.5rem;
    padding-bottom:5rem;
  }
  .page-contact .contact-hero__copy{
    flex:0 0 60%;
  }
  .page-contact .contact-hero__badge{
    flex:0 0 34%;
    justify-content:center;
  }
  .page-contact .channels-layout{
    grid-template-columns:5fr 7fr;
    align-items:center;
    gap:4rem;
  }
  .page-contact .channels-content{
    order:2;
  }
  .page-contact .channels-visual{
    order:1;
  }
  .page-contact .channel-list{
    grid-template-columns:1fr 1fr;
  }
  .page-contact .contact-address__inner{
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:4rem;
  }
  .page-contact .address-copy{
    order:2;
  }
  .page-contact .address-map{
    order:1;
    min-height:280px;
  }
  .page-contact .response-layout{
    grid-template-columns:1.15fr .85fr;
    align-items:center;
    gap:4rem;
  }
  .page-contact .guide-layout{
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:4rem;
  }
  .page-contact .guide-list{
    grid-template-columns:1fr 1fr;
  }
}
@media (min-width:1024px){
  .page-contact .contact-hero__inner{
    padding-top:5.5rem;
    padding-bottom:6rem;
  }
  .page-contact .channel-list{
    gap:1.3rem;
  }
  .page-contact .guide-list li{
    font-size:1rem;
  }
}
