/* ── HERO ────────────────────────────────── */
.hero{position:relative;width:100%;height:100vh;overflow:hidden;background:#000}
.hero-track{display:flex;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.25,.46,.45,.94)}
.hero-slide{
  position:relative;width:33.333%;height:100%;flex-shrink:0;
  display:flex;align-items:center;background:#000;overflow:hidden;
}
.hero-slide-left{
  width:36%;
  padding:0 2rem 0 5.5rem;
  display:flex;flex-direction:column;
  justify-content:center;
  z-index:10;flex-shrink:0;
  height:100%;
}
.hero-slide-right{
  width:64%;
  display:flex;align-items:center;justify-content:center;
  height:100%;
  padding:5.5rem 4rem 5.5rem 1rem;
}
.hero-slide-right img{
  width:100%;height:100%;
  object-fit:cover;display:block;
}
.hero-slide-tag{
  font-family:'Syne',sans-serif;font-size:.65rem;letter-spacing:.28em;
  color:var(--red);margin-bottom:1.2rem;text-transform:uppercase;font-weight:700;
  display:flex;align-items:center;gap:.6rem;
}
.hero-slide-tag::before{content:'';width:24px;height:1px;background:var(--red)}
.hero-slide-title{
  font-family:'Noto Sans KR',sans-serif;font-weight:900;
  font-size:clamp(1.5rem,2.7vw,2.35rem);color:var(--white);
  line-height:1.42;margin-bottom:1.2rem;
  word-break:keep-all;
}
.hero-slide-desc{
  font-size:clamp(.82rem,1vw,.9rem);color:rgba(255,255,255,.72);
  font-weight:300;line-height:1.9;margin-bottom:2.4rem;
}
.hero-slide-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:'Syne',sans-serif;font-size:.8rem;font-weight:700;
  color:var(--white);text-decoration:none;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.5);
  padding:.55rem 1.3rem;
  transition:all .35s;
  align-self:flex-start;
}
.hero-slide-btn:hover{background:var(--red);border-color:var(--red)}

/* ── FLOATING CTA ─────────────────────────── */
.float-cta{
  position:fixed;bottom:2.8rem;right:2rem;
  z-index:80;display:flex;align-items:center;gap:0;
  background:#0D0D0D;
  border:1px solid rgba(255,255,255,.08);
  text-decoration:none;
  box-shadow:0 8px 40px rgba(0,0,0,.7),0 0 0 1px rgba(192,57,43,.15);
  transition:all .4s;
  overflow:hidden;
}
.float-cta:hover{
  box-shadow:0 12px 50px rgba(0,0,0,.8),0 0 0 1px rgba(192,57,43,.5);
  transform:translateY(-2px);
}
.float-cta-text{
  padding:.9rem 1.4rem;
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:700;
  color:var(--white);letter-spacing:.16em;text-transform:uppercase;
  white-space:nowrap;
}
.float-cta-arrow{
  font-size:.85rem;color:rgba(255,255,255,.5);
  padding-right:.2rem;transition:transform .3s;
}
.float-cta:hover .float-cta-arrow{transform:translateX(3px);color:var(--white)}
.float-cta-icon{
  width:52px;height:52px;min-width:52px;
  background:var(--red);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.float-cta-icon svg{width:18px;height:18px}
.hero-arrows{position:absolute;bottom:5%;right:5.5rem;display:flex;gap:.5rem;z-index:10}
.hero-arrow{
  width:52px;height:52px;
  border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:1.3rem;color:rgba(255,255,255,.6);
  transition:all .3s;background:rgba(0,0,0,.3);
  backdrop-filter:blur(6px);
}
.hero-arrow:hover{border-color:var(--red);color:var(--white);background:var(--red)}
.hero-counter{
  position:absolute;bottom:5.8%;right:calc(5.5rem + 120px);z-index:10;
  font-family:'Archivo',sans-serif;font-size:.78rem;color:rgba(255,255,255,.4);
  letter-spacing:.05em;
}
.hero-counter .cur{color:var(--white);font-weight:700;font-size:1rem}
.hero-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:rgba(255,255,255,.08);z-index:10}
.hero-progress-bar{height:100%;background:var(--red);width:25%;transition:width .5s ease}

/* ── TRUST BAR ───────────────────────────── */
.trust{background:var(--black-2);padding:4rem 2rem;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}
.trust-eyebrow{
  font-family:'Syne',sans-serif;font-size:.62rem;letter-spacing:.24em;
  color:var(--red);font-weight:600;text-align:center;margin-bottom:2.2rem;text-transform:uppercase;
}
.trust-bar{max-width:960px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.trust-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.4rem 1rem;border-right:1px solid rgba(255,255,255,.07)}
.trust-item:last-child{border-right:none}
.trust-num{
  font-family:'Archivo',sans-serif;font-size:clamp(2.6rem,5vw,3.8rem);
  font-weight:900;line-height:1;color:var(--white);
  height:4rem;display:flex;align-items:center;justify-content:center;
}
.trust-unit{font-family:'Noto Sans KR',sans-serif;font-size:.3em;font-weight:400;color:rgba(255,255,255,.4)}
/* 숫자 카운트업 지표(.trust-num)와 별개 — "품질인정제"처럼 텍스트 값은
   전용 클래스로 분리해 word-break/white-space를 명시적으로 보장한다. */
.trust-cert-label{
  font-family:'Noto Sans KR',sans-serif;font-size:clamp(2rem,3.8vw,2.85rem);
  font-weight:800;line-height:1;color:var(--white);letter-spacing:.01em;
  height:4rem;display:flex;align-items:center;justify-content:center;
  white-space:nowrap;word-break:keep-all;
}
.trust-div{width:24px;height:1px;background:var(--red);margin:.7rem auto;opacity:.6}
.trust-lbl{font-size:.82rem;color:rgba(255,255,255,.4);font-weight:400}

/* ── SECTIONS COMMON (home padding) ──────── */
.section{padding:8rem 3.5rem}

/* ── ABOUT PREVIEW ───────────────────────── */
.about{background:var(--black-3)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);overflow:hidden}
.about-img{overflow:hidden;aspect-ratio:unset}
.about-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease;min-height:420px}
.about-img:hover img{transform:scale(1.03)}
.about-content{padding:4rem 3.5rem;display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.02)}
.about-title{font-size:clamp(1.3rem,2.2vw,1.85rem);font-weight:700;line-height:1.45;margin-bottom:1.6rem;color:var(--white)}
.about-text{font-size:.92rem;color:rgba(255,255,255,.45);line-height:2}
.about-link{
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:600;
  color:var(--white);text-decoration:none;letter-spacing:.1em;
  margin-top:2rem;display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.45);
  padding:.55rem 1.4rem;
  transition:all .35s;
  align-self:flex-start;
  text-transform:uppercase;
}
.about-link:hover{background:var(--red);border-color:var(--red);color:var(--white);gap:12px}

/* ── TECHNOLOGY ──────────────────────────── */
.tech{background:var(--black)}
.tech-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.05);margin-bottom:2rem}
.tech-step{background:var(--black);overflow:hidden;transition:background .3s}
.tech-step:hover{background:var(--black-3)}
.tech-step img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:brightness(.85);transition:filter .4s}
.tech-step:hover img{filter:brightness(1)}
.tech-step-body{padding:1.6rem 1.5rem}
.tech-step-num{font-family:'Archivo',sans-serif;font-size:.72rem;letter-spacing:.15em;color:var(--red);margin-bottom:.4rem;font-weight:700}
.tech-step-name{font-weight:700;font-size:1.05rem;margin-bottom:.4rem;color:var(--white)}
.tech-step-desc{font-size:.82rem;color:rgba(255,255,255,.38);line-height:1.7}

/* ── PRODUCTS ────────────────────────────── */
.products{background:var(--black-3)}
.p-wrap{position:relative;overflow:hidden;margin:0 -1rem}
.p-track{display:flex}
.p-card{width:calc(100%/3);flex-shrink:0;padding:0 1rem}
.p-card-inner{
  background:var(--black);cursor:pointer;
  transition:transform .4s,box-shadow .4s;
  display:flex;flex-direction:column;
  border:1px solid rgba(255,255,255,.05);
}
.p-card-inner:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.5);border-color:rgba(192,57,43,.3)}
.p-card-img{overflow:hidden;aspect-ratio:4/3}
.p-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s;filter:brightness(.9)}
.p-card-inner:hover .p-card-img img{transform:scale(1.04);filter:brightness(1)}
.p-card-body{padding:1.6rem 1.8rem 2rem}
.p-card-badge{
  display:inline-block;font-family:'Syne',sans-serif;font-size:.58rem;
  letter-spacing:.12em;padding:4px 10px;
  border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.4);margin-bottom:.9rem;
}
.p-card-name{font-weight:700;font-size:1.05rem;margin-bottom:.4rem;color:var(--white)}
.p-card-spec{font-size:.8rem;color:rgba(255,255,255,.35);line-height:1.6}
.p-card-link{
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:600;color:var(--red);
  text-decoration:none;letter-spacing:.04em;margin-top:1.2rem;
  display:inline-flex;align-items:center;gap:6px;transition:gap .3s;
}
.p-card-link:hover{gap:10px}

/* 모바일 전용 캐러셀 컨트롤(화살표/점) — 데스크탑은 3장이 한 줄에 다 들어가 필요
   없으므로 기본은 숨김. 768px 이하에서만 노출(동방 사이트와 통일된 패턴). */
.p-arrow{display:none;}
.p-dots{display:none;}

/* ── PROJECTS (2x2 checkerboard) ─────────── */
.projects{background:var(--black)}
.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.04)}
.proj-card{
  background:var(--black);
  transition:background .3s;
  display:flex;flex-direction:column;
}
.proj-card:hover{background:var(--black-3)}
.proj-card-img{overflow:hidden;aspect-ratio:16/9;position:relative}
.proj-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s;filter:brightness(.85)}
.proj-card:hover .proj-card-img img{transform:scale(1.03);filter:brightness(.95)}
.proj-card-body{padding:2rem 2.2rem 2.4rem;flex:1;display:flex;flex-direction:column}
.proj-card-tags{display:flex;gap:.6rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.proj-card-tag{font-size:.68rem;letter-spacing:.04em;padding:4px 10px;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.35)}
.proj-card-tag.cat{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.18)}
.proj-card-tag.type{color:var(--red);border-color:rgba(192,57,43,.35)}
.proj-card-loc{font-size:.72rem;color:rgba(255,255,255,.3)}
.proj-card-name{font-weight:700;font-size:1.18rem;margin-bottom:.7rem;color:var(--white)}
.proj-card-desc{font-size:.85rem;color:rgba(255,255,255,.35);line-height:1.8;flex:1}
.proj-card-link{
  font-family:'Syne',sans-serif;font-size:.72rem;font-weight:600;
  color:var(--red);text-decoration:none;letter-spacing:.04em;
  margin-top:1.4rem;display:inline-flex;align-items:center;gap:6px;transition:gap .3s;
}
.proj-card:hover .proj-card-link{gap:10px}

/* ── CONTACT ─────────────────────────────── */
.contact-sec{background:var(--black-2);padding:8rem 3.5rem}
.contact-sec .sec-title{color:var(--white)}
.contact-sec .sec-desc{color:rgba(255,255,255,.35)}
.contact-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:3rem}
.contact-tab{
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.07em;padding:.9rem 1.8rem;
  color:rgba(255,255,255,.3);border:none;background:none;
  cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .3s;text-transform:uppercase;
}
.contact-tab.active{color:var(--white);border-bottom-color:var(--red)}
.contact-tab:hover{color:rgba(255,255,255,.7)}
.contact-form{display:none}
.contact-form.active{display:block}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.contact-field{display:flex;flex-direction:column;gap:.45rem}
.contact-field.full{grid-column:1/-1}
.contact-label{font-family:'Syne',sans-serif;font-size:.58rem;letter-spacing:.14em;color:rgba(255,255,255,.35);text-transform:uppercase;font-weight:600}
.contact-label-opt{text-transform:none;letter-spacing:0;font-weight:400;opacity:.7}
.contact-input,.contact-select,.contact-textarea{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  padding:.8rem 1rem;font-family:'Noto Sans KR',sans-serif;font-size:.85rem;
  color:var(--white);outline:none;transition:border-color .3s;width:100%;
}
.contact-input:focus,.contact-select:focus,.contact-textarea:focus{border-color:rgba(192,57,43,.6)}
.contact-input::placeholder,.contact-textarea::placeholder{color:rgba(255,255,255,.18)}
.contact-select{display:none}

/* ── 파일 첨부 ──────────────────────────────── */
.file-attach{position:relative;width:100%}
.file-attach input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.file-attach-box{
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  background:rgba(255,255,255,.04);border:1px dashed rgba(255,255,255,.18);
  padding:.8rem 1rem;font-family:'Noto Sans KR',sans-serif;font-size:.85rem;
  color:rgba(255,255,255,.35);transition:border-color .3s,background .3s;
}
.file-attach:hover .file-attach-box{border-color:rgba(192,57,43,.5);background:rgba(255,255,255,.06)}
.file-attach-box.has-file{color:var(--white);border-style:solid;border-color:rgba(192,57,43,.5)}
.file-attach-box.file-attach-warn{color:#e8a33d;border-color:#e8a33d}
.file-attach-btn{
  font-family:'Syne',sans-serif;font-size:.62rem;font-weight:600;letter-spacing:.06em;
  color:var(--red);border:1px solid rgba(192,57,43,.4);padding:.35rem .8rem;
  white-space:nowrap;flex-shrink:0;
}

/* ── 커스텀 드롭다운 ────────────────────────── */
.custom-select-wrap{position:relative;width:100%}
.custom-select-trigger{
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  padding:.8rem 1rem;
  font-family:'Noto Sans KR',sans-serif;font-size:.85rem;
  color:rgba(255,255,255,.4);
  cursor:pointer;transition:border-color .3s;
  user-select:none;
}
.custom-select-trigger:hover{border-color:rgba(255,255,255,.25)}
.custom-select-trigger.open{border-color:rgba(192,57,43,.6)}
.custom-select-trigger.selected{color:var(--white)}
.custom-select-arrow{
  width:16px;height:16px;flex-shrink:0;margin-left:.6rem;
  transition:transform .25s ease;
  opacity:.45;
}
.custom-select-trigger.open .custom-select-arrow{
  transform:rotate(180deg);
  opacity:.9;
}
.custom-select-panel{
  position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:999;
  background:#1a1a1a;
  border:1px solid rgba(255,255,255,.12);
  border-top:1px solid rgba(192,57,43,.5);
  overflow:hidden;
  max-height:0;opacity:0;
  transition:max-height .28s ease, opacity .2s ease;
  pointer-events:none;
}
.custom-select-panel.open{
  max-height:260px;opacity:1;
  pointer-events:auto;
}
.custom-select-option{
  padding:.75rem 1rem;
  font-family:'Noto Sans KR',sans-serif;font-size:.85rem;
  color:rgba(255,255,255,.55);
  cursor:pointer;transition:background .15s, color .15s;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.custom-select-option:last-child{border-bottom:none}
.custom-select-option:hover{background:rgba(192,57,43,.12);color:var(--white)}
.custom-select-option.active{color:var(--white);background:rgba(192,57,43,.18)}
.contact-textarea{resize:vertical;min-height:90px}
.contact-submit{margin-top:2rem;display:flex;align-items:center;gap:1.5rem}
.contact-btn{
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.1em;
  padding:.9rem 2.2rem;background:var(--red);color:#fff;border:none;
  cursor:pointer;text-transform:uppercase;transition:background .3s;
}
.contact-btn:hover{background:#a93226}
.contact-btn:disabled{opacity:.6;cursor:not-allowed}
.contact-hint{font-size:.78rem;color:rgba(255,255,255,.2);line-height:1.5}

/* 허니팟 */
.hp-field{position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;height:0;overflow:hidden}

/* 개인정보 동의 */
.consent-field{margin-top:.2rem}
.consent-label{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;color:rgba(255,255,255,.75);cursor:pointer;line-height:1.5}
.consent-label input[type="checkbox"]{width:16px;height:16px;flex-shrink:0;margin-top:.15rem;accent-color:var(--red);cursor:pointer}
.consent-detail{font-size:.72rem;color:rgba(255,255,255,.28);line-height:1.6;margin-top:.5rem;margin-left:1.75rem}

/* 발송 성공/실패 메시지 */
.contact-msg{display:none;margin-top:1rem;padding:.85rem 1.1rem;font-size:.85rem;border-radius:2px;line-height:1.5}
.contact-msg.show{display:block}
.contact-msg.success{background:rgba(46,125,50,.12);border:1px solid rgba(46,125,50,.4);color:#7fd489}
.contact-msg.error{background:rgba(192,57,43,.1);border:1px solid rgba(192,57,43,.4);color:#f2a29c}

/* ── LOCATION (오시는 길) ─────────────────── */
.loc-wrap{max-width:1100px;margin:0 auto 4rem;text-align:left}
.loc-grid{display:grid;grid-template-columns:7fr 5fr;gap:0;align-items:stretch;text-align:left}
.loc-map{position:relative;aspect-ratio:16/10;background:#111;border:1px solid rgba(255,255,255,.1);border-right:none;overflow:hidden}
#loc-leaflet{position:absolute;inset:0;filter:grayscale(.15) contrast(1.05)}
.loc-map .leaflet-control-attribution{
  font-size:.62rem;background:rgba(10,10,10,.55);color:rgba(255,255,255,.7);
}
.loc-map .leaflet-control-attribution a{color:inherit}
.loc-map-badge{
  position:absolute;right:.8rem;bottom:.5rem;z-index:2;
  background:rgba(10,10,10,.85);color:rgba(255,255,255,.85);
  font-family:'Syne',sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.03em;
  padding:.55rem 1rem;text-decoration:none;border:1px solid rgba(255,255,255,.15);
  transition:all .25s;
}
.loc-map-badge:hover{background:var(--red);border-color:var(--red);color:#fff}
.loc-info{
  background:var(--black-2);border:1px solid rgba(255,255,255,.08);
  padding:2.4rem 2rem;display:flex;flex-direction:column;justify-content:center;
}
.loc-info-name{font-family:'Syne',sans-serif;font-size:1.15rem;font-weight:700;color:var(--white);margin-bottom:1.4rem}
.loc-info-row{display:flex;gap:1.2rem;padding:.85rem 0;border-top:1px solid rgba(255,255,255,.08)}
.loc-info-row:first-of-type{border-top:none}
.loc-info-row dt{flex:0 0 64px;font-family:'Syne',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--red);text-transform:uppercase;padding-top:.1rem}
.loc-info-row dd{margin:0;font-size:.88rem;color:rgba(255,255,255,.7);line-height:1.6}

/* ── RESPONSIVE (home-specific) ──────────── */
@media(max-width:768px){
  .hero{height:auto;min-height:0;}
  .hero-track{height:auto;align-items:stretch;}
  .hero-slide{height:auto;flex-direction:column;align-items:stretch;}
  .hero-slide-left{padding:6.5rem 1.5rem 1.5rem;width:100%;height:auto;}
  .hero-slide-right{display:block;width:100%;height:auto;aspect-ratio:4/3;padding:0;}
  .hero-slide-right img{width:100%;height:100%;object-fit:cover;}
  .hero-counter{position:static;text-align:right;margin:.9rem 1.5rem 0;}
  .hero-arrows{position:static;right:auto;bottom:auto;justify-content:flex-end;margin:.6rem 1.5rem 0;}
  .hero-progress{position:static;margin-top:.75rem;}
  .float-cta{display:none}
  .section{padding:5rem 1.5rem}
  .contact-sec{padding:5rem 1.5rem}
  .trust-bar{grid-template-columns:repeat(2,1fr)}
  .trust-cert-label{font-size:1.5rem;}
  .trust-lbl{word-break:keep-all;}
  .about-grid,.tech-flow,.proj-grid{grid-template-columns:1fr}

  /* 제품 라인업 캐러셀 — 카드 3장이 각각 폭 100%가 되면서 트랙 전체가 300%로
     넘치므로, overflow:hidden 대신 스와이프 가능한 스크롤 컨테이너로 바꾸고
     화살표/점 컨트롤을 얹는다. 데스크탑(위 .p-card{width:calc(100%/3)})은
     그대로 3장이 한 줄에 다 들어가 손대지 않음. */
  /* 화살표는 #pWrap "밖"(.p-carousel의 직계 자식)에 둔다 — #pWrap 안에 두면
     가로 스크롤 콘텐츠의 일부로 취급되어 스크롤할 때 화살표 자체가 화면
     밖으로 같이 밀려나가 버린다(확인함). .p-carousel은 스크롤되지 않는
     고정 기준점이라 화살표가 항상 같은 자리에 떠 있는다. */
  .p-carousel{position:relative}
  .p-wrap{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;}
  .p-wrap::-webkit-scrollbar{display:none;}
  .p-card{width:100%;scroll-snap-align:start;}

  .p-arrow{
    display:flex;align-items:center;justify-content:center;
    position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;
    background:rgba(0,0,0,.45);border:none;color:#fff;cursor:pointer;padding:0;
    transition:background .2s,opacity .2s;touch-action:manipulation;
  }
  .p-arrow:active{background:rgba(0,0,0,.65)}
  .p-arrow-prev{left:1.6rem}
  .p-arrow-next{right:1.6rem}
  .p-arrow[disabled]{opacity:0;pointer-events:none}

  .p-dots{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:1.2rem}
  .p-dot{
    width:8px;height:8px;padding:9px;border:none;border-radius:50%;
    background-color:rgba(255,255,255,.25);background-clip:content-box;box-sizing:content-box;
    cursor:pointer;transition:background-color .3s;
  }
  .p-dot.active{background-color:var(--red)}
  .contact-grid{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr;gap:0}
  .loc-map{border-right:1px solid rgba(255,255,255,.1);border-bottom:none;aspect-ratio:auto;height:280px;}
  .loc-wrap{margin-bottom:3rem}
}
