.page-contact{
  --ctc-reveal-delay:0s;
  --ctc-icon-size:44px;
  background:var(--color-white);
}

.page-contact .c-hero{
  display:block;
}

.page-contact .c-hero__info{
  position:relative;
  padding:40px 24px 64px;
  background:var(--color-white);
}

.page-contact .c-hero__info > *:not(.c-contact-emblem){
  position:relative;
  z-index:1;
}

.page-contact .c-contact-emblem{
  margin-top:28px;
  max-width:420px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-md);
}

.page-contact .c-contact-emblem img{
  display:block;
  width:100%;
  height:auto;
}

.page-contact .breadcrumb{
  margin-bottom:20px;
}

.page-contact .chip{
  margin-bottom:18px;
}

.page-contact .c-hero__rule{
  width:72px;
  height:4px;
  border-radius:var(--radius-pill);
  background:var(--color-gold);
  margin:4px 0 20px;
}

.page-contact .c-hero h1{
  font-family:var(--font-title);
  font-size:clamp(40px,7vw,72px);
  font-weight:900;
  line-height:1.06;
  letter-spacing:-.02em;
  color:var(--color-deep);
  margin:0 0 18px;
}

.page-contact .c-hero__lead{
  font-size:16px;
  line-height:1.85;
  color:var(--color-muted);
  max-width:600px;
  margin:0 0 8px;
}

.page-contact .c-contact-list{
  margin-top:32px;
}

.page-contact .c-contact-item{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px 16px 20px 0;
  border-bottom:1px solid rgba(13,27,62,.09);
  text-decoration:none;
  color:var(--color-ink);
  position:relative;
  transition:padding-left .35s var(--ease);
}

.page-contact .c-contact-item::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:0;
  height:3px;
  border-radius:var(--radius-pill);
  background:var(--color-gold);
  transition:width .45s var(--ease);
}

.page-contact .c-contact-item:hover::after{
  width:100%;
}

.page-contact .c-contact-item:hover{
  padding-left:8px;
}

.page-contact .c-contact-item--plain{
  cursor:default;
}

.page-contact .c-contact-item--plain::after{
  background:transparent;
}

.page-contact .c-contact-item--plain:hover{
  padding-left:0;
}

.page-contact .c-contact-item__icon{
  flex:0 0 var(--ctc-icon-size);
  width:var(--ctc-icon-size);
  height:var(--ctc-icon-size);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}

.page-contact .c-contact-item__icon svg{
  width:22px;
  height:22px;
}

.page-contact .c-contact-item:nth-child(1) .c-contact-item__icon{
  background:var(--color-green);
}

.page-contact .c-contact-item:nth-child(2) .c-contact-item__icon{
  background:var(--color-blue);
}

.page-contact .c-contact-item:nth-child(3) .c-contact-item__icon{
  background:var(--color-red);
}

.page-contact .c-contact-item:nth-child(4) .c-contact-item__icon{
  background:var(--color-gold);
  color:var(--color-deep);
}

.page-contact .c-contact-item__body{
  min-width:0;
  flex:1;
}

.page-contact .c-contact-item__label{
  display:block;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--color-muted);
  text-transform:uppercase;
}

.page-contact .c-contact-item__value{
  display:block;
  margin:4px 0 6px;
  font-size:clamp(17px,2.4vw,22px);
  font-weight:800;
  color:var(--color-deep);
  line-height:1.45;
  overflow-wrap:break-word;
  word-break:break-word;
}

.page-contact .c-contact-item__value--sm{
  font-size:clamp(16px,2vw,20px);
  line-height:1.5;
}

.page-contact .c-contact-item__hint{
  font-size:14px;
  line-height:1.65;
  color:var(--color-muted);
}

.page-contact .c-contact-item__arrow{
  align-self:center;
  flex:0 0 20px;
  color:var(--color-gold);
  opacity:.55;
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}

.page-contact .c-contact-item__arrow svg{
  width:20px;
  height:20px;
  display:block;
}

@media (hover:hover){
  .page-contact .c-contact-item__arrow{
    opacity:0;
    transform:translateX(-8px);
  }
  .page-contact .c-contact-item:hover .c-contact-item__arrow{
    opacity:1;
    transform:translateX(0);
  }
}

.page-contact .c-hero__visual{
  background:var(--color-deep);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 24px 76px;
}

.page-contact .c-hero__visual::before{
  content:"";
  position:absolute;
  left:-12%;
  right:-12%;
  top:22%;
  height:22px;
  border-radius:var(--radius-pill);
  background:repeating-linear-gradient(90deg,var(--color-red) 0 44px,var(--color-yellow) 0 88px,var(--color-green) 0 132px,var(--color-blue) 0 176px,var(--color-gold) 0 220px);
  transform:rotate(-7deg);
  opacity:.88;
  z-index:2;
}

.page-contact .c-hero__visual::after{
  content:"";
  position:absolute;
  left:-18%;
  right:8%;
  bottom:-10%;
  height:58%;
  background:var(--color-gold);
  clip-path:polygon(0 54%,30% 10%,48% 44%,70% 5%,100% 58%,100% 110%,0 110%);
  opacity:.1;
  z-index:0;
}

.page-contact .c-hero__visual-img{
  position:relative;
  z-index:1;
  width:100%;
  max-width:480px;
  aspect-ratio:4/3;
  border-radius:32px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 24px 60px rgba(0,0,0,.32);
}

.page-contact .c-hero__visual-img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.page-contact .c-hero__visual-note{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  font-size:13px;
  font-weight:600;
  color:var(--color-white);
  background:rgba(13,27,62,.82);
  border:1px solid rgba(255,255,255,.12);
  padding:8px 18px;
  border-radius:var(--radius-pill);
  backdrop-filter:blur(6px);
}

.page-contact .c-promise{
  background:var(--color-deep);
  color:var(--color-white);
  position:relative;
  overflow:hidden;
  padding:72px 24px 96px;
  clip-path:polygon(0 3%,100% 0,100% 97%,0 100%);
}

.page-contact .c-promise::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:8px;
  z-index:2;
  background:linear-gradient(90deg,var(--color-red) 0 20%,var(--color-yellow) 0 40%,var(--color-green) 0 60%,var(--color-blue) 0 80%,var(--color-gold) 0 100%);
}

.page-contact .c-promise::after{
  content:"";
  position:absolute;
  right:-140px;
  top:42%;
  width:340px;
  height:340px;
  border-radius:50%;
  border:1px dashed rgba(212,160,23,.26);
  z-index:0;
}

.page-contact .c-promise__inner{
  position:relative;
  z-index:1;
  max-width:1120px;
  margin:0 auto;
}

.page-contact .c-promise .section-kicker{
  color:var(--color-gold);
}

.page-contact .c-promise__head{
  max-width:680px;
}

.page-contact .c-promise__head h2{
  font-size:clamp(30px,5vw,48px);
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--color-white);
  margin:8px 0 18px;
}

.page-contact .c-promise__lead{
  font-size:16px;
  line-height:1.8;
  color:rgba(247,245,240,.74);
  margin:0;
}

.page-contact .c-promise__grid{
  display:grid;
  gap:24px;
  margin-top:44px;
}

.page-contact .c-promise__cell{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius-lg);
  padding:28px 24px;
  transition:transform .35s var(--ease),border-color .35s var(--ease);
}

.page-contact .c-promise__cell:hover{
  transform:translateY(-4px);
  border-color:rgba(212,160,23,.55);
}

.page-contact .c-promise__num{
  font-size:clamp(46px,7vw,62px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  color:var(--color-gold);
}

.page-contact .c-promise__num span{
  display:inline-block;
  margin-left:2px;
  font-size:.38em;
  font-weight:700;
  color:var(--color-white);
  opacity:.7;
  vertical-align:baseline;
}

.page-contact .c-promise__cell h3{
  font-size:18px;
  font-weight:800;
  color:var(--color-white);
  margin:16px 0 8px;
}

.page-contact .c-promise__cell p{
  font-size:14px;
  line-height:1.75;
  color:rgba(247,245,240,.72);
  margin:0;
}

.page-contact .c-location{
  max-width:1200px;
  margin:0 auto;
  padding:64px 24px 72px;
  display:grid;
  gap:36px;
}

.page-contact .c-location .section-kicker{
  color:var(--color-gold);
}

.page-contact .c-location__info h2{
  font-size:clamp(28px,4.5vw,40px);
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--color-deep);
  margin:8px 0 14px;
}

.page-contact .c-location__address{
  font-size:clamp(22px,3vw,30px);
  font-weight:800;
  line-height:1.4;
  color:var(--color-deep);
  margin:0 0 16px;
}

.page-contact .c-location__desc{
  font-size:15px;
  line-height:1.8;
  color:var(--color-muted);
  max-width:520px;
  margin:0;
}

.page-contact .c-location__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.page-contact .c-location__map{
  position:relative;
  aspect-ratio:16/10;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:#EDE8DD;
  box-shadow:var(--shadow-md);
}

.page-contact .c-location__grid{
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(13,27,62,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(13,27,62,.07) 1px,transparent 1px);
  background-size:48px 48px;
}

.page-contact .c-location__roads{
  position:absolute;
  inset:0;
  background:linear-gradient(112deg,transparent 47%,rgba(212,160,23,.5) 48%,rgba(212,160,23,.5) 52%,transparent 53%),linear-gradient(24deg,transparent 46%,rgba(13,27,62,.18) 47%,rgba(13,27,62,.18) 49%,transparent 50%);
}

.page-contact .c-location__block{
  position:absolute;
  border-radius:20px;
  opacity:.36;
}

.page-contact .c-location__block--a{
  width:34%;
  height:26%;
  left:8%;
  top:22%;
  background:var(--color-green);
  transform:rotate(-8deg);
}

.page-contact .c-location__block--b{
  width:28%;
  height:32%;
  right:12%;
  top:12%;
  background:var(--color-blue);
  transform:rotate(6deg);
}

.page-contact .c-location__block--c{
  width:26%;
  height:20%;
  left:28%;
  bottom:10%;
  background:var(--color-red);
  transform:rotate(-4deg);
}

.page-contact .c-location__pin{
  position:absolute;
  left:44%;
  top:46%;
  transform:translate(-50%,-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}

.page-contact .c-location__pin-dot{
  width:18px;
  height:18px;
  background:var(--color-red);
  border:4px solid var(--color-white);
  border-radius:50%;
  box-shadow:0 0 0 8px rgba(192,57,43,.18);
  animation:c-pin-pulse 2.4s ease-in-out infinite;
}

.page-contact .c-location__pin-label{
  font-size:13px;
  font-weight:700;
  background:var(--color-deep);
  color:var(--color-white);
  padding:4px 14px;
  border-radius:var(--radius-pill);
  white-space:nowrap;
}

.page-contact .c-help{
  background:var(--color-deep-2);
  color:var(--color-white);
  position:relative;
  overflow:hidden;
  padding:64px 24px 72px;
}

.page-contact .c-help::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:8px;
  background:linear-gradient(90deg,var(--color-red) 0 20%,var(--color-yellow) 0 40%,var(--color-green) 0 60%,var(--color-blue) 0 80%,var(--color-gold) 0 100%);
}

.page-contact .c-help__inner{
  position:relative;
  z-index:1;
  max-width:1120px;
  margin:0 auto;
  display:grid;
  gap:32px;
}

.page-contact .c-help .section-kicker{
  color:var(--color-gold);
}

.page-contact .c-help h2{
  font-size:clamp(28px,4.5vw,40px);
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--color-white);
  margin:8px 0 14px;
}

.page-contact .c-help p{
  font-size:15px;
  line-height:1.8;
  color:rgba(247,245,240,.72);
  max-width:640px;
  margin:0;
}

.page-contact .c-help__links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

.page-contact .c-help .btn-ghost{
  border-color:rgba(247,245,240,.35);
  color:var(--color-white);
}

.page-contact .c-help .btn-ghost:hover{
  border-color:var(--color-gold);
  color:var(--color-gold);
}

@keyframes c-pin-pulse{
  0%,100%{
    box-shadow:0 0 0 8px rgba(192,57,43,.18);
  }
  50%{
    box-shadow:0 0 0 16px rgba(192,57,43,.06);
  }
}

@media (min-width:768px){
  .page-contact{
    --ctc-icon-size:52px;
  }

  .page-contact .c-promise__grid{
    grid-template-columns:repeat(3,1fr);
    gap:28px;
  }
}

@media (min-width:992px){
  .page-contact .c-hero{
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    align-items:stretch;
    min-height:calc(100vh - 68px);
  }

  .page-contact .c-hero__info{
    padding:64px 56px 96px;
  }

  .page-contact .c-contact-emblem{
    position:absolute;
    right:32px;
    top:50%;
    transform:translateY(-50%) rotate(3deg);
    width:220px;
    max-width:220px;
    margin:0;
    opacity:.18;
    pointer-events:none;
    mix-blend-mode:multiply;
    box-shadow:none;
  }

  .page-contact .c-contact-emblem img{
    border-radius:var(--radius-lg);
  }

  .page-contact .c-hero__lead{
    font-size:18px;
  }

  .page-contact .c-contact-list{
    margin-top:40px;
    max-width:640px;
  }

  .page-contact .c-hero__visual{
    padding:56px;
  }

  .page-contact .c-hero__visual-img{
    max-width:520px;
    aspect-ratio:1/1;
  }

  .page-contact .c-hero__visual-note{
    bottom:32px;
  }

  .page-contact .c-promise{
    padding:96px 48px 116px;
  }

  .page-contact .c-promise__grid{
    margin-top:56px;
    gap:32px;
  }

  .page-contact .c-location{
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:56px;
    align-items:center;
    padding:96px 48px 110px;
  }

  .page-contact .c-location__map{
    order:1;
    aspect-ratio:1/1;
    max-height:540px;
  }

  .page-contact .c-location__info{
    order:2;
  }

  .page-contact .c-help{
    padding:72px 48px 80px;
  }

  .page-contact .c-help__inner{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:40px;
  }
}

@media (prefers-reduced-motion:reduce){
  .page-contact .c-location__pin-dot{
    animation:none;
  }

  .page-contact .c-contact-item,
  .page-contact .c-promise__cell{
    transition:none;
  }
}
