.page-contact{
  --ct-edge:1px solid rgba(233,227,211,.16);
  --ct-soft:rgba(233,227,211,.62);
  background:var(--ink);
  color:var(--paper);
  padding-bottom:56px;
  overflow-x:hidden;
}
.page-contact .shell{position:relative;z-index:1;}

.page-contact .crumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  padding:18px 0 0;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
  color:var(--stone);
}
.page-contact .crumbs a{color:var(--sage);text-decoration:none;transition:color .2s var(--ease);}
.page-contact .crumbs a:hover{color:var(--lime);}
.page-contact .ct-crumb-sep{color:var(--moss);}

.page-contact .ct-hero{position:relative;padding:20px 0 6px;}
.page-contact .ct-hero::before{
  content:"";
  position:absolute;
  top:-96px;
  right:-14%;
  width:min(700px,92%);
  height:380px;
  background:linear-gradient(125deg,var(--deep) 0%,rgba(15,42,34,0) 82%);
  clip-path:polygon(24% 0,100% 0,100% 100%,0 72%);
  pointer-events:none;
  z-index:0;
}
.page-contact h1{
  margin:10px 0 0;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(32px,7.4vw,64px);
  line-height:1.02;
  letter-spacing:-.01em;
  color:var(--paper);
}
.page-contact .ct-lead{
  max-width:56ch;
  margin:16px 0 0;
  font-size:15.5px;
  line-height:1.85;
  color:var(--sage);
}

.page-contact .ct-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px;
  margin-top:24px;
}

.page-contact .ct-card{
  position:relative;
  padding:22px 20px 8px;
  background:linear-gradient(158deg,var(--deep) 0%,#0a1a15 100%);
  border:1px solid var(--moss);
  box-shadow:0 18px 34px -26px rgba(0,0,0,.9);
}
.page-contact .ct-card::after{
  content:"";
  position:absolute;
  top:-1px;
  right:-1px;
  width:46px;
  height:46px;
  background:var(--lime);
  clip-path:polygon(100% 0,100% 100%,0 0);
}
.page-contact .ct-card-title{
  margin:0 0 4px;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--yellow);
}
.page-contact .ct-row{
  display:grid;
  gap:5px;
  padding:15px 0;
  border-bottom:var(--ct-edge);
}
.page-contact .ct-row:last-child{border-bottom:0;}
.page-contact .ct-label{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--stone);
}
.page-contact .ct-strong{
  font-family:var(--font-mono);
  font-size:22px;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--paper);
}
.page-contact .ct-mail{
  font-family:var(--font-mono);
  font-size:15px;
  color:var(--lime);
  text-decoration:none;
  word-break:break-all;
  border-bottom:1px solid rgba(199,255,61,.35);
  padding-bottom:2px;
  justify-self:start;
  transition:color .2s var(--ease),border-color .2s var(--ease);
}
.page-contact .ct-mail:hover{color:var(--paper);border-color:var(--paper);}
.page-contact .ct-address{
  font-style:normal;
  font-size:15px;
  line-height:1.7;
  color:var(--paper);
}
.page-contact .ct-note{
  font-size:13px;
  line-height:1.7;
  color:var(--soft,var(--stone));
}

.page-contact .ct-side{display:grid;gap:16px;}

.page-contact .ct-prep{
  padding:22px 20px;
  background:var(--paper);
  color:#122019;
  border:1px solid var(--moss);
  box-shadow:7px 7px 0 rgba(49,92,76,.45);
}
.page-contact .ct-prep-title{
  margin:0;
  font-family:var(--font-head);
  font-weight:800;
  font-size:23px;
  line-height:1.25;
  color:#0d1b15;
}
.page-contact .ct-prep-intro{
  margin:10px 0 0;
  font-size:13.5px;
  line-height:1.75;
  color:#41574c;
}
.page-contact .ct-prep-list{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}
.page-contact .ct-prep-list li{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:9px;
  font-size:14px;
  line-height:1.72;
  color:#1d2f27;
  padding-top:12px;
  border-top:1px solid rgba(15,42,34,.16);
}
.page-contact .ct-idx{
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  color:#6d4d1c;
  padding-top:2px;
}
.page-contact .ct-prep-list b{color:#0d1b15;font-weight:700;}

.page-contact .ct-media{
  margin:0;
  border:1px solid var(--moss);
  background:repeating-linear-gradient(135deg,rgba(49,92,76,.28) 0 8px,rgba(11,15,13,.5) 8px 16px);
  overflow:hidden;
}
.page-contact .ct-media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
}

.page-contact .ct-strip{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin:34px 0 0;
  padding:12px 0;
  border-top:1px solid var(--moss);
  border-bottom:1px solid rgba(49,92,76,.5);
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  color:var(--sage);
}
.page-contact .ct-strip-key{
  display:inline-block;
  margin-right:7px;
  padding:2px 6px;
  background:var(--yellow);
  color:#20180a;
  font-size:10.5px;
  letter-spacing:.12em;
}
.page-contact .ct-strip-sep{color:var(--moss);}

.page-contact .ct-section{padding:44px 0 0;}
.page-contact .ct-sec-head{max-width:62ch;}
.page-contact .section-title{
  margin:8px 0 0;
  font-family:var(--font-head);
  font-weight:900;
  font-size:clamp(26px,5.4vw,40px);
  line-height:1.12;
  color:var(--paper);
}
.page-contact .ct-sub{
  margin:12px 0 0;
  font-size:15px;
  line-height:1.82;
  color:var(--soft,var(--stone));
}

.page-contact .ct-svc{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1px;
  margin-top:22px;
  background:var(--moss);
  border:1px solid var(--moss);
}
.page-contact .ct-svc-item{
  background:#0c1411;
  padding:20px 18px 22px;
  transition:background .25s var(--ease);
}
.page-contact .ct-svc-item:hover{background:#101f1a;}
.page-contact .ct-svc-idx{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  color:var(--yellow);
}
.page-contact .ct-svc-item h3{
  margin:8px 0 0;
  font-family:var(--font-head);
  font-weight:800;
  font-size:21px;
  line-height:1.3;
  color:var(--paper);
}
.page-contact .ct-svc-item p{
  margin:9px 0 0;
  font-size:14px;
  line-height:1.8;
  color:var(--sage);
}

.page-contact .ct-hours{
  display:grid;
  gap:8px;
  margin-top:18px;
  padding:16px 18px;
  background:rgba(242,194,48,.09);
  border:1px solid rgba(242,194,48,.42);
  border-left:4px solid var(--yellow);
}
.page-contact .ct-hours-key{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--yellow);
}
.page-contact .ct-hours p{
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:var(--paper);
}

.page-contact .ct-section--partner{padding-top:52px;}
.page-contact .ct-partner-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;}

.page-contact .ct-topic-box{
  padding:20px 18px;
  border:1px solid var(--moss);
  background:
    linear-gradient(180deg,rgba(15,42,34,.72),rgba(11,15,13,.9));
}
.page-contact .ct-topic-key{
  margin:0 0 12px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--lime);
}
.page-contact .ct-topic-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.page-contact .ct-topic-list li{
  display:grid;
  gap:7px;
  padding-top:10px;
  border-top:1px solid rgba(233,227,211,.1);
}
.page-contact .ct-topic-tag{
  justify-self:start;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.14em;
  padding:3px 7px;
  background:rgba(199,255,61,.14);
  color:var(--lime);
  border:1px solid rgba(199,255,61,.42);
}
.page-contact .ct-topic-list code{
  font-family:var(--font-mono);
  font-size:12.5px;
  line-height:1.6;
  color:var(--sage);
  word-break:break-all;
}
.page-contact .ct-topic-foot{
  margin:14px 0 0;
  font-size:13px;
  line-height:1.75;
  color:var(--stone);
}

.page-contact .ct-section--visit{padding-top:52px;}
.page-contact .ct-visit-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;}
.page-contact .ct-media--wide img{aspect-ratio:16/9;}
.page-contact .ct-visit-address{
  display:block;
  margin:14px 0 0;
  padding:12px 14px;
  font-style:normal;
  font-family:var(--font-mono);
  font-size:14px;
  line-height:1.65;
  color:var(--paper);
  background:rgba(49,92,76,.3);
  border-left:3px solid var(--clay);
}
.page-contact .ct-visit-copy p{
  margin:13px 0 0;
  font-size:14.5px;
  line-height:1.82;
  color:var(--sage);
}

.page-contact .ct-section--next{padding-top:56px;}
.page-contact .ct-links{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1px;
  background:rgba(49,92,76,.6);
  border-top:1px solid var(--moss);
  border-bottom:1px solid var(--moss);
}
.page-contact .ct-links a{
  display:grid;
  gap:5px;
  padding:15px 4px 15px 0;
  background:var(--ink);
  text-decoration:none;
  transition:background .2s var(--ease),padding-left .2s var(--ease);
}
.page-contact .ct-links a:hover{background:#111d18;padding-left:6px;}
.page-contact .ct-link-title{
  font-family:var(--font-head);
  font-weight:800;
  font-size:19px;
  color:var(--paper);
}
.page-contact .ct-links a:hover .ct-link-title{color:var(--lime);}
.page-contact .ct-link-desc{
  font-size:13px;
  line-height:1.7;
  color:var(--stone);
}

@media (min-width:720px){
  .page-contact .ct-svc{grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-contact .ct-links{grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-contact .ct-hours{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;}
  .page-contact .ct-visit-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:26px;}
  .page-contact .ct-partner-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;}
  .page-contact .ct-prep-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (min-width:960px){
  .page-contact{padding-bottom:80px;}
  .page-contact .ct-hero{padding-top:28px;}
  .page-contact .ct-grid{
    grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    gap:24px;
    align-items:start;
    margin-top:30px;
  }
  .page-contact .ct-card{padding:26px 24px 10px;}
  .page-contact .ct-lead{font-size:16.5px;}
  .page-contact .ct-section{padding-top:56px;}
  .page-contact .ct-section--next{padding-top:64px;}
  .page-contact .ct-links{grid-template-columns:repeat(3,minmax(0,1fr));}
  .page-contact .ct-prep-list{gap:14px 18px;}
}

@media (prefers-reduced-motion:reduce){
  .page-contact *{transition:none !important;}
}
<<<END>>>

.page-contact {
  --soft: currentColor;
}
