/* =========================================================
   CONTACT PAGE — page-specific styles (responsive + map beside form)
   Uses shared tokens from styles.css
   ========================================================= */

/* ---------- HERO ---------- */
.contact-hero{
  position:relative;
  min-height:60vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:140px 20px 80px;
  border-bottom:1px solid var(--border);
}
.contact-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(1000px 500px at 20% 10%, rgba(247,147,26,.20), transparent 60%),
    radial-gradient(900px 500px at 85% 90%, rgba(240,201,105,.14), transparent 65%),
    linear-gradient(180deg,#0d1117 0%,#0f1522 60%,#0d1117 100%);
}
.contact-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%);
}
.contact-hero-content{position:relative;z-index:2;max-width:1000px;margin:0 auto;text-align:center}
.contact-hero h1{
  font-size:clamp(1.8rem,5.4vw,4.2rem);
  margin-top:16px;
  max-width:22ch;
  line-height:1.1;
  margin-left:auto;margin-right:auto;
}
.contact-hero .lead{margin:20px auto 0;max-width:64ch;font-size:clamp(.95rem,1.6vw,1.08rem)}
.contact-hero .hero-actions{
  margin-top:32px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center;
}
@media(max-width:600px){
  .contact-hero{padding:120px 16px 60px;min-height:auto}
  .contact-hero .hero-actions .btn{width:100%;justify-content:center}
}

/* ---------- QUICK CONTACT STRIP ---------- */
.quick-contact{padding-top:70px;padding-bottom:30px}
.quick-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.quick-card{
  display:block;
  padding:26px 22px;
  border-radius:20px;
  background:rgba(26,34,51,.55);
  border:1px solid var(--border);
  backdrop-filter:blur(10px);
  transition:.35s ease;
  color:inherit;
  position:relative;
  overflow:hidden;
}
.quick-card::after{
  content:"";
  position:absolute;left:0;top:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));
  transition:width .5s ease;
}
.quick-card:hover{
  transform:translateY(-6px);
  border-color:rgba(247,147,26,.4);
  background:rgba(26,34,51,.75);
  box-shadow:0 25px 60px rgba(0,0,0,.35);
}
.quick-card:hover::after{width:100%}
.quick-icon{
  width:50px;height:50px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(247,147,26,.22),rgba(240,201,105,.10));
  border:1px solid rgba(247,147,26,.3);
  color:var(--primary);
  font-size:1.15rem;
  margin-bottom:16px;
}
.quick-card .tag{
  display:inline-block;
  font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.quick-card h3{font-size:1rem;margin-bottom:6px;word-break:break-word;line-height:1.35}
.quick-card p{color:var(--muted);font-size:.88rem;line-height:1.5}

@media(max-width:1000px){ .quick-grid{grid-template-columns:1fr 1fr} }
@media(max-width:560px){ .quick-grid{grid-template-columns:1fr;gap:14px} }

/* ---------- MAIN: FORM + MAP (desktop) / stacked (mobile) ---------- */
.contact-main{padding-top:50px}
.contact-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:40px;
  align-items:stretch;
}
.contact-form-wrap h2{margin-top:14px;font-size:clamp(1.5rem,3vw,2rem)}
.contact-form-wrap .lead{margin-top:12px;margin-bottom:28px}

.contact-form{
  background:rgba(26,34,51,.55);
  border:1px solid var(--border);
  border-radius:22px;
  padding:32px;
  backdrop-filter:blur(10px);
  display:flex;flex-direction:column;gap:18px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.form-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.form-field label{
  font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:600;
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  background:rgba(13,17,23,.6);
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px 16px;
  color:var(--fg);
  font-family:var(--sans);
  font-size:.95rem;
  transition:.25s;
  outline:none;
  max-width:100%;
  box-sizing:border-box;
}
.form-field textarea{resize:vertical;min-height:120px}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:rgba(247,147,26,.6);
  background:rgba(13,17,23,.85);
  box-shadow:0 0 0 4px rgba(247,147,26,.12);
}
.form-field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23f7931a' d='M6 8L0 0h12z'/></svg>");
  background-repeat:no-repeat;
  background-position:right 18px center;
  padding-right:44px;
}
.form-submit{align-self:flex-start;margin-top:6px}
.form-status{
  font-size:.9rem;color:var(--muted);margin-top:6px;min-height:1.2em;
}
.form-status.success{color:#7de0a6}
.form-status.error{color:#ff8a8a}

/* ---------- Map beside form (right column on desktop) ---------- */
.contact-map-col{
  display:flex;flex-direction:column;gap:20px;
  min-width:0;
}
.contact-map{
  flex:1 1 auto;
  min-height:420px;
  border-radius:22px;overflow:hidden;
  border:1px solid var(--border);
  background:rgba(26,34,51,.55);
  backdrop-filter:blur(10px);
  position:relative;
  display:flex;flex-direction:column;
}
.contact-map iframe{
  width:100%;
  height:100%;
  min-height:420px;
  flex:1 1 auto;
  border:0;display:block;
  filter:grayscale(.25) contrast(1.05);
}
.map-caption{
  padding:16px 20px;
  border-top:1px solid var(--border);
  background:rgba(13,17,23,.55);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.map-caption h4{font-size:.95rem;margin:0}
.map-caption p{margin:2px 0 0;font-size:.82rem;color:var(--muted)}
.map-caption a{
  color:var(--primary);font-weight:600;font-size:.85rem;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}

/* ---------- INFO CARDS (row below on desktop) ---------- */
.contact-info-row{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.info-card{
  padding:26px;
  border-radius:20px;
  background:rgba(26,34,51,.55);
  border:1px solid var(--border);
  backdrop-filter:blur(10px);
  transition:.35s ease;
}
.info-card:hover{
  transform:translateY(-4px);
  border-color:rgba(247,147,26,.35);
  box-shadow:0 20px 45px rgba(0,0,0,.3);
}
.info-card .tag{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--primary);font-weight:700;margin-bottom:14px;
}
.info-card h3{font-size:1.1rem;margin-bottom:10px}
.info-card p{color:var(--muted);line-height:1.7;font-size:.92rem}
.card-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:16px;
  color:var(--primary);font-weight:600;font-size:.9rem;transition:.25s;
}
.card-link i{transition:transform .25s}
.card-link:hover i{transform:translateX(4px)}

/* Responsive breakpoints for main + info */
@media(max-width:1024px){
  .contact-grid{grid-template-columns:1fr;gap:32px}
  .contact-map{min-height:360px}
  .contact-map iframe{min-height:360px}
}
@media(max-width:900px){
  .contact-info-row{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .contact-main{padding-top:30px}
  .form-row{grid-template-columns:1fr;gap:16px}
  .contact-form{padding:22px;gap:16px}
  .contact-map{min-height:300px}
  .contact-map iframe{min-height:300px}
  .contact-info-row{grid-template-columns:1fr;gap:16px;margin-top:28px}
  .form-submit{align-self:stretch;width:100%;justify-content:center;display:inline-flex}
}

/* ---------- DIRECTORY ---------- */
.directory-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.dir-card{
  padding:28px 24px;
  border-radius:20px;
  background:rgba(26,34,51,.5);
  border:1px solid var(--border);
  backdrop-filter:blur(10px);
  transition:.35s ease;
  position:relative;overflow:hidden;
}
.dir-card::after{
  content:"";position:absolute;left:0;top:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));
  transition:width .5s ease;
}
.dir-card:hover{
  transform:translateY(-6px);
  border-color:rgba(247,147,26,.35);
  background:rgba(26,34,51,.7);
}
.dir-card:hover::after{width:100%}
.dir-icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(247,147,26,.22),rgba(240,201,105,.10));
  border:1px solid rgba(247,147,26,.3);
  color:var(--primary);
  font-size:1.2rem;margin-bottom:18px;
}
.dir-icon.whatsapp{
  background:linear-gradient(135deg,rgba(37,211,102,.22),rgba(37,211,102,.08));
  border-color:rgba(37,211,102,.35);
  color:#25d366;
}
.dir-card h3{font-size:1.1rem;margin-bottom:14px}
.dir-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.dir-list a{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--fg);font-size:.9rem;
  word-break:break-word;
  transition:.25s;
}
.dir-list a i{color:var(--primary);font-size:.7rem;transition:transform .25s;flex-shrink:0}
.dir-list a:hover{color:var(--primary)}
.dir-list a:hover i{transform:translateX(3px)}

@media(max-width:1000px){ .directory-grid{grid-template-columns:1fr 1fr} }
@media(max-width:560px){ .directory-grid{grid-template-columns:1fr;gap:16px} }

/* ---------- CTA BAND (shared) ---------- */
.cta-band{
  padding:70px 20px;
  border-top:1px solid var(--border);
  background:
    radial-gradient(600px 300px at 20% 50%,rgba(247,147,26,.18),transparent 70%),
    linear-gradient(180deg,#0f1522,#0d1117);
}
.cta-inner{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:32px;
  align-items:center;
}
.cta-inner h2{margin-top:12px;font-size:clamp(1.5rem,3.5vw,2.6rem);max-width:20ch}
.cta-inner .lead{margin-top:14px;max-width:52ch}
.cta-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:800px){
  .cta-inner{grid-template-columns:1fr;text-align:left;gap:20px}
  .cta-actions{justify-content:flex-start}
  .cta-actions .btn{flex:1 1 auto;justify-content:center;text-align:center}
}

/* active nav */
.nav-links a.active{color:var(--primary)}



.nav-links a.active{color:var(--primary)}