.page-contact {
  --con-red:#E63946;
  --con-blue:#3A86FF;
  --con-yellow:#FFD60A;
  --con-dark:#0A0A0A;
  --con-mid:#6C757D;
  --con-line:rgba(255,255,255,0.07);
  --con-mono:'Roboto Mono','SFMono-Regular','Consolas',monospace;
  position:relative;
  overflow-x:hidden;
  color:var(--c-white);
  background:var(--con-dark);
}

/* ========== HERO ========== */
.page-contact .contact-hero{
  position:relative;
  padding:var(--space-5) 0 var(--space-6);
  background:
    radial-gradient(ellipse 80% 60% at 82% 0%,rgba(230,57,70,0.16),transparent),
    radial-gradient(ellipse 60% 50% at 4% 92%,rgba(58,132,255,0.12),transparent),
    var(--con-dark);
}
.page-contact .contact-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.045) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(135deg,transparent 5%,#000 65%);
  mask-image:linear-gradient(135deg,transparent 5%,#000 65%);
}
.page-contact .contact-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  gap:var(--space-6);
}
.page-contact .contact-hero-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-3);
}
.page-contact .breadcrumb{
  margin-bottom:var(--space-2);
}
.page-contact .breadcrumb ol{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  list-style:none;
  padding:0;
  margin:0;
  font-size:0.875rem;
}
.page-contact .breadcrumb li{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  color:var(--con-mid);
}
.page-contact .breadcrumb li+li::before{
  content:"/";
  color:var(--con-mid);
}
.page-contact .breadcrumb a{
  color:var(--con-blue);
  text-decoration:none;
}
.page-contact .breadcrumb a:hover,
.page-contact .breadcrumb a:focus{
  text-decoration:underline;
}
.page-contact .exhibit-label{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  font-family:var(--con-mono);
  font-size:0.75rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--con-yellow);
  padding:0.35rem 0.75rem;
  border:1px solid rgba(255,214,10,0.35);
  transform:skewX(-2deg);
}
.page-contact .contact-hero-copy h1{
  margin:0;
  font-family:var(--font-heading);
  font-size:clamp(1.75rem,5.2vw,3.5rem);
  font-weight:800;
  line-height:1.1;
  color:var(--c-white);
  transform:skewX(-2deg);
  text-shadow:0 2px 20px rgba(0,0,0,0.45);
}
.page-contact .contact-hero-copy > p{
  margin:0;
  max-width:480px;
  color:var(--con-mid);
  font-size:1rem;
  line-height:1.75;
}
.page-contact .contact-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
  margin-top:var(--space-2);
}
.page-contact .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.85rem 1.6rem;
  font-family:var(--font-heading);
  font-weight:700;
  font-size:0.95rem;
  text-decoration:none;
  transform:skewX(-2deg);
  transition:transform var(--speed) var(--ease-out),box-shadow var(--speed) var(--ease-out);
  border-radius:0;
}
.page-contact .btn:hover,
.page-contact .btn:focus{
  transform:skewX(-2deg) translateX(4px);
}
.page-contact .btn-primary{
  background:var(--con-red);
  color:#fff;
  border:1px solid var(--con-red);
  box-shadow:0 6px 20px rgba(230,57,70,0.35);
}
.page-contact .btn-secondary{
  background:transparent;
  color:var(--con-blue);
  border:1px solid var(--con-blue);
}
.page-contact .contact-hero-visual{
  position:relative;
  overflow:hidden;
}
.page-contact .contact-hero-img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
  opacity:0.6;
  transform:scale(1.02);
}
.page-contact .contact-hero-board{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) skewX(-3deg);
  min-width:min(280px,82%);
  background:rgba(10,10,10,0.92);
  border:1px solid rgba(255,255,255,0.12);
  border-left:4px solid var(--con-red);
  padding:var(--space-4) var(--space-5);
  display:flex;
  flex-direction:column;
  gap:var(--space-1);
  box-shadow:0 16px 48px rgba(0,0,0,0.55);
}
.page-contact .contact-board-label{
  font-size:0.75rem;
  font-family:var(--con-mono);
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--con-mid);
}
.page-contact .contact-board-phone,
.page-contact .contact-board-email{
  font-family:var(--con-mono);
  font-size:1.05rem;
  font-weight:500;
  color:var(--c-white);
  line-height:1.5;
  text-decoration:none;
  word-break:break-all;
}
.page-contact .contact-board-phone{
  color:var(--con-red);
}
.page-contact .contact-board-time{
  margin-top:var(--space-2);
  color:var(--con-yellow);
  font-size:0.875rem;
  font-weight:600;
}

/* ========== CHANNELS ========== */
.page-contact .contact-channels{
  position:relative;
  background:var(--con-dark);
}
.page-contact .section-head{
  position:relative;
  margin-bottom:var(--space-5);
}
.page-contact .section-kicker{
  display:block;
  font-family:var(--con-mono);
  font-size:0.8rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--con-red);
  margin-bottom:var(--space-2);
}
.page-contact .section-title{
  margin:0;
  font-family:var(--font-heading);
  font-size:var(--text-subheading);
  font-weight:800;
  color:var(--c-white);
  transform:skewX(-2deg);
}
.page-contact .contact-channels-grid{
  display:grid;
  gap:var(--space-4);
}
.page-contact .contact-channel-card{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-2);
  padding:var(--space-5) var(--space-4);
  background:rgba(255,255,255,0.04);
  border:1px solid var(--con-line);
  border-left:4px solid var(--con-red);
  transform:skewX(-1deg);
  transition:transform var(--speed) var(--ease-out),background var(--speed) var(--ease-out),box-shadow var(--speed) var(--ease-out);
}
.page-contact .contact-channel-card::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:64px;
  height:4px;
  background:repeating-linear-gradient(135deg,var(--con-red) 0 8px,transparent 8px 14px);
  opacity:0.6;
}
.page-contact .contact-channel-card:hover,
.page-contact .contact-channel-card:focus-within{
  transform:skewX(-1deg) translateY(-4px);
  background:rgba(255,255,255,0.06);
  box-shadow:0 14px 40px rgba(0,0,0,0.4);
}
.page-contact .contact-channel-mail{
  border-left-color:var(--con-blue);
}
.page-contact .contact-channel-mail::after{
  background:repeating-linear-gradient(135deg,var(--con-blue) 0 8px,transparent 8px 14px);
}
.page-contact .contact-channel-address{
  border-left-color:var(--con-yellow);
}
.page-contact .contact-channel-address::after{
  background:repeating-linear-gradient(135deg,var(--con-yellow) 0 8px,transparent 8px 14px);
}
.page-contact .contact-channel-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  color:var(--con-red);
  background:rgba(230,57,70,0.12);
  border:1px solid rgba(230,57,70,0.3);
  margin-bottom:var(--space-1);
}
.page-contact .contact-channel-mail .contact-channel-icon{
  color:var(--con-blue);
  background:rgba(58,132,255,0.1);
  border-color:rgba(58,132,255,0.3);
}
.page-contact .contact-channel-address .contact-channel-icon{
  color:var(--con-yellow);
  background:rgba(255,214,10,0.08);
  border-color:rgba(255,214,10,0.3);
}
.page-contact .contact-channel-icon svg{
  width:24px;
  height:24px;
}
.page-contact .contact-channel-title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:700;
  color:var(--c-white);
}
.page-contact .contact-channel-value{
  font-family:var(--con-mono);
  font-size:1.15rem;
  font-weight:500;
  color:var(--c-white);
  text-decoration:none;
  word-break:break-all;
  line-height:1.5;
}
.page-contact .contact-channel-phone .contact-channel-value{
  color:var(--con-red);
}
.page-contact .contact-channel-mail .contact-channel-value{
  color:var(--con-blue);
}
.page-contact .contact-channel-address .contact-channel-value{
  color:var(--con-yellow);
  font-style:normal;
}
.page-contact .contact-channel-note{
  margin:0;
  color:var(--con-mid);
  font-size:0.9rem;
  line-height:1.6;
  max-width:320px;
}
.page-contact .contact-channel-mail-icon{
  display:none;
}

/* ========== SERVICE ========== */
.page-contact .contact-service{
  position:relative;
  background:
    linear-gradient(180deg,transparent,rgba(58,132,255,0.04) 40%,rgba(230,57,70,0.06));
}
.page-contact .contact-service-wrap{
  display:grid;
  gap:var(--space-6);
  padding:var(--space-5);
  background:rgba(255,255,255,0.03);
  border:1px solid var(--con-line);
  position:relative;
  overflow:hidden;
}
.page-contact .contact-service-wrap::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:8px;
  height:100%;
  background:linear-gradient(180deg,var(--con-red),var(--con-blue));
}
.page-contact .contact-service-copy{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}
.page-contact .contact-service-copy p{
  margin:0;
  color:rgba(255,255,255,0.85);
  font-size:0.98rem;
  line-height:1.75;
}
.page-contact .contact-service-copy a{
  color:var(--con-blue);
  text-decoration:none;
  border-bottom:1px solid rgba(58,132,255,0.4);
}
.page-contact .contact-service-copy a:hover,
.page-contact .contact-service-copy a:focus{
  border-bottom-color:var(--con-blue);
}
.page-contact .contact-service-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:var(--space-2);
  padding:var(--space-5) var(--space-4);
  background:rgba(10,10,10,0.7);
  border:1px dashed rgba(255,214,10,0.4);
  color:var(--con-yellow);
  text-align:center;
  font-family:var(--con-mono);
}
.page-contact .contact-service-days{
  font-size:0.8rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  opacity:0.8;
}
.page-contact .contact-service-hours{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  font-size:clamp(1.5rem,4vw,2.25rem);
  font-weight:700;
  line-height:1;
}
.page-contact .contact-service-arrow{
  color:var(--con-red);
  animation:contactPulse 1.6s ease-in-out infinite;
}
.page-contact .contact-service-online{
  margin-top:var(--space-2);
  font-size:0.85rem;
  color:rgba(255,255,255,0.7);
  letter-spacing:0.1em;
  text-transform:uppercase;
}
@keyframes contactPulse{
  0%,100%{opacity:1}
  50%{opacity:0.35}
}

/* ========== BUSINESS ========== */
.page-contact .contact-business{
  position:relative;
}
.page-contact .contact-business-layout{
  display:grid;
  gap:var(--space-5);
}
.page-contact .contact-business-copy{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.page-contact .contact-business-copy p{
  margin:0;
  color:rgba(255,255,255,0.85);
  font-size:0.98rem;
  line-height:1.75;
}
.page-contact .contact-business-copy a{
  color:var(--con-blue);
  text-decoration:none;
  border-bottom:1px solid rgba(58,132,255,0.4);
}
.page-contact .contact-business-card{
  position:relative;
  padding:var(--space-5) var(--space-4);
  background:rgba(58,132,255,0.08);
  border:1px solid rgba(58,132,255,0.35);
  border-top:4px solid var(--con-blue);
  transform:skewX(-2deg);
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  align-items:flex-start;
}
.page-contact .contact-business-card::before{
  content:"";
  position:absolute;
  right:-12px;
  bottom:-12px;
  width:48px;
  height:48px;
  background:conic-gradient(from 90deg,rgba(255,214,10,0.6),transparent 60%,transparent);
}
.page-contact .contact-business-title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1.2rem;
  font-weight:700;
  color:var(--c-white);
}
.page-contact .contact-business-mail{
  margin:0;
  font-family:var(--con-mono);
  font-size:1.1rem;
  color:var(--con-blue);
  word-break:break-all;
  line-height:1.5;
}
.page-contact .contact-business-note{
  margin:0;
  font-size:0.85rem;
  color:var(--con-mid);
}

/* ========== ROUTE ========== */
.page-contact .contact-route{
  position:relative;
  padding-bottom:var(--space-8);
}
.page-contact .contact-route-wrap{
  display:grid;
  gap:var(--space-5);
}
.page-contact .contact-route-map{
  position:relative;
  overflow:hidden;
  border:1px solid var(--con-line);
  background:#111;
}
.page-contact .contact-route-map svg{
  display:block;
  width:100%;
  height:auto;
  min-height:180px;
}
.page-contact .contact-route-info{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  padding:var(--space-4);
  background:rgba(255,255,255,0.02);
  border-left:4px solid var(--con-yellow);
}
.page-contact .contact-route-info p{
  margin:0;
  font-size:0.95rem;
  line-height:1.7;
  color:rgba(255,255,255,0.85);
}

/* ========== MEDIA 600px / TABLET ========== */
@media (min-width:600px){
  .page-contact .contact-channels-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .page-contact .contact-channel-address{
    grid-column:1 / -1;
  }
  .page-contact .contact-service-wrap{
    grid-template-columns:1.4fr 1fr;
    align-items:center;
  }
  .page-contact .contact-business-layout{
    grid-template-columns:1.2fr 0.8fr;
    align-items:center;
  }
  .page-contact .contact-route-wrap{
    grid-template-columns:1.1fr 0.9fr;
    align-items:center;
  }
}

/* ========== MEDIA 1024px / DESKTOP ========== */
@media (min-width:1024px){
  .page-contact .contact-hero{
    min-height:calc(100vh - var(--header-h,80px));
    display:flex;
    align-items:center;
  }
  .page-contact .contact-hero-grid{
    grid-template-columns:1fr 1fr;
    gap:var(--space-7);
    align-items:center;
    max-width:var(--container-max);
    width:100%;
    margin:0 auto;
  }
  .page-contact .contact-hero-copy h1{
    font-size:clamp(2.2rem,4.8vw,4rem);
  }
  .page-contact .contact-hero-visual{
    min-height:480px;
  }
  .page-contact .contact-hero-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .page-contact .contact-hero-board{
    min-width:300px;
  }
  .page-contact .contact-channels{
    padding-top:var(--space-8);
  }
  .page-contact .contact-channels-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .page-contact .contact-channel-address{
    grid-column:auto;
  }
  .page-contact .contact-channel-mail-icon{
    display:block;
    position:absolute;
    top:0;
    right:0;
    width:120px;
    height:120px;
    object-fit:cover;
    opacity:0.25;
    transform:skewX(2deg);
    pointer-events:none;
    transition:opacity var(--speed) var(--ease-out);
  }
  .page-contact .contact-channel-mail:hover .contact-channel-mail-icon,
  .page-contact .contact-channel-mail:focus-within .contact-channel-mail-icon{
    opacity:0.45;
  }
  .page-contact .contact-service-badge{
    min-height:240px;
  }
  .page-contact .contact-business-card{
    justify-self:end;
    width:100%;
    max-width:420px;
  }
  .page-contact .contact-route-wrap{
    gap:var(--space-7);
  }
}
