/* ═══════════════════════════════════════════
   GKGM — contact.css
   Contact Page
═══════════════════════════════════════════ */

/* ═══ JUSTIFIED BODY COPY ═══ */
.ct-sub, .ct-info-desc, .ct-map-note {
  text-align: justify; text-justify: inter-word; hyphens: auto;
}

/* ═══ HERO (mirrors sh-hero / ph-hero pattern) ═══ */
.ct-hero {
  position: relative;
  height: 62vh; min-height: 460px;
  display: flex; align-items: flex-end;
  overflow: hidden; background: var(--dark);
}
.ct-hero-bg { position: absolute; inset: 0; }
.ct-hero-bg img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.55) saturate(0.85);
  transform: scale(1.06);
  animation: ctHeroZoom 12s ease-out both;
}
@keyframes ctHeroZoom { from { transform: scale(1.12); } to { transform: scale(1.06); } }
.ct-hero-grain {
  position: absolute; inset: 0; opacity: 0.05; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.ct-hero-grad {
  position: absolute; inset: 0;
  background: linear-gradient(to top, var(--dark) 0%, rgba(8,8,8,0.55) 45%, rgba(8,8,8,0.15) 75%, transparent 100%);
}
.ct-hero-content {
  position: relative; z-index: 2;
  width: 100%; max-width: 1280px; margin: 0 auto;
  padding: 0 3rem 4.5rem;
}
.ct-eyebrow {
  display: flex; align-items: center; gap: 0.9rem;
  font-family: var(--sans); font-size: 0.72rem; font-weight: 400;
  letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 1.4rem;
}
.ct-eline { width: 40px; height: 1px; background: var(--gold); }
.ct-title {
  font-family: var(--serif); font-weight: 400; color: var(--white);
  font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1.05; letter-spacing: -0.01em;
}
.ct-ln { display: block; overflow: hidden; }
.ct-ln em { font-style: italic; font-weight: 300; color: rgba(255,255,255,0.85); }
.ct-ln strong { font-weight: 500; }
.ct-sub {
  font-family: var(--sans); font-size: 0.95rem; font-weight: 300; line-height: 1.8;
  color: rgba(255,255,255,0.55); max-width: 560px; margin-top: 1.4rem;
}
.ct-anim { opacity: 0; transform: translateY(24px); animation: ctFadeUp 0.9s var(--ease) both; }
@keyframes ctFadeUp { to { opacity: 1; transform: translateY(0); } }

/* ═══ INFO + FORM SECTION ═══ */
.ct-main-section {
  background: var(--white);
  padding: 6rem 3rem;
}
.ct-main-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 5rem;
  align-items: start;
}

/* ── Left: contact info ── */
.ct-info-col .eyebrow { color: var(--gold-d); }
.ct-info-col .eyebrow::before { background: var(--gold-d); opacity: 0.6; }
.ct-info-title {
  font-family: var(--serif); font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 300; color: var(--dark); line-height: 1.15; margin-bottom: 1rem;
}
.ct-info-title em { font-style: italic; color: var(--gold-d); }
.ct-info-desc {
  font-family: var(--sans); font-size: 0.86rem; font-weight: 300; line-height: 1.85;
  color: rgba(0,0,0,0.48); margin-bottom: 2.5rem; max-width: 420px;
}

.ct-info-list { display: flex; flex-direction: column; gap: 1.75rem; }
.ct-info-item {
  display: flex; gap: 1.1rem; align-items: flex-start;
  opacity: 0; transform: translateY(18px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.ct-info-item.in-view { opacity: 1; transform: translateY(0); }
.ct-info-icon {
  flex-shrink: 0; width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(200,169,81,0.3); color: var(--gold-d);
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.ct-info-item:hover .ct-info-icon { background: var(--gold-d); color: var(--white); border-color: var(--gold-d); }
.ct-info-label {
  font-family: var(--sans); font-size: 0.6rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase; color: rgba(0,0,0,0.32);
  margin-bottom: 0.35rem;
}
.ct-info-value {
  font-family: var(--serif); font-size: 1.1rem; font-weight: 400; color: var(--dark);
  line-height: 1.4;
}
.ct-info-value a { transition: color 0.25s; }
.ct-info-value a:hover { color: var(--gold-d); }
.ct-info-value span {
  display: block; font-family: var(--sans); font-size: 0.72rem;
  font-weight: 300; color: rgba(0,0,0,0.4); margin-top: 0.15rem;
}

.ct-social {
  display: flex; gap: 0.6rem; margin-top: 2.5rem;
}
.ct-social a {
  width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(0,0,0,0.12); color: rgba(0,0,0,0.5);
  transition: all 0.3s;
}
.ct-social a:hover { border-color: var(--gold-d); color: var(--gold-d); }

/* ── Right: form ── */
.ct-form-col {
  background: var(--dark2);
  padding: 3rem 2.75rem;
  position: relative; overflow: hidden;
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.85s var(--ease), transform 0.85s var(--ease);
}
.ct-form-col.in-view { opacity: 1; transform: translateY(0); }
.ct-form-col::before {
  content: ''; position: absolute; inset: 0; opacity: 0.05; pointer-events: none;
  background-image: radial-gradient(circle at 85% 15%, var(--gold) 0, transparent 40%);
}
.ct-form-title {
  font-family: var(--serif); font-size: 1.7rem; font-weight: 300; color: var(--white);
  margin-bottom: 0.5rem; position: relative; z-index: 1;
}
.ct-form-sub {
  font-family: var(--sans); font-size: 0.8rem; font-weight: 300;
  color: rgba(255,255,255,0.35); margin-bottom: 2.2rem; position: relative; z-index: 1;
}

.ct-form { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 1.4rem; }
.ct-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }

.ct-field { position: relative; }
.ct-field label {
  display: block; font-family: var(--sans); font-size: 0.6rem; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.35);
  margin-bottom: 0.55rem;
}
.ct-field input,
.ct-field select,
.ct-field textarea {
  width: 100%; background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  padding: 0.85rem 1rem;
  font-family: var(--sans); font-size: 0.85rem; font-weight: 300;
  color: var(--white); outline: none;
  transition: border-color 0.3s, background 0.3s;
}
.ct-field select { cursor: pointer; }
.ct-field select option { background: var(--dark2); color: var(--white); }
.ct-field textarea { resize: vertical; min-height: 110px; line-height: 1.6; }
.ct-field input::placeholder, .ct-field textarea::placeholder { color: rgba(255,255,255,0.2); }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus {
  border-color: rgba(200,169,81,0.5); background: rgba(255,255,255,0.05);
}

.ct-submit {
  align-self: flex-start; margin-top: 0.5rem;
  display: inline-flex; align-items: center; gap: 0.7rem;
  padding: 1rem 2.4rem;
  background: var(--gold); color: var(--dark);
  font-family: var(--sans); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  position: relative; overflow: hidden;
  transition: transform 0.35s var(--ease);
}
.ct-submit::after {
  content: ''; position: absolute; inset: 0; background: var(--gold-l);
  transform: translateY(101%); transition: transform 0.4s var(--ease);
}
.ct-submit span, .ct-submit svg { position: relative; z-index: 1; }
.ct-submit:hover::after { transform: translateY(0); }
.ct-submit:hover { transform: translateY(-2px); }

.ct-form-note {
  font-family: var(--sans); font-size: 0.68rem; font-weight: 300;
  color: rgba(255,255,255,0.22); margin-top: -0.4rem;
}

/* Success state (shown after submit — demo only) */
.ct-form-success {
  display: none; align-items: center; gap: 0.8rem;
  font-family: var(--sans); font-size: 0.8rem; font-weight: 400;
  color: var(--gold-l); padding: 1rem 0;
}
.ct-form-success.show { display: flex; }
.ct-form.hide { display: none; }

/* ═══ MAP SECTION (full showroom map on contact page) ═══ */
.ct-map-section {
  background: var(--dark2); padding: 0;
  position: relative;
}
.ct-map-frame {
  width: 100%; height: 480px; position: relative;
  filter: grayscale(0.4) contrast(1.05) brightness(0.9);
}
.ct-map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.ct-map-badge {
  position: absolute; top: 1.5rem; left: 1.5rem; z-index: 2;
  background: rgba(8,8,8,0.85); backdrop-filter: blur(10px);
  border: 1px solid rgba(200,169,81,0.3);
  padding: 1rem 1.4rem;
  max-width: 260px;
}
.ct-map-badge-label {
  font-family: var(--sans); font-size: 0.56rem; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 0.4rem;
}
.ct-map-badge-name {
  font-family: var(--serif); font-size: 1.1rem; font-weight: 400; color: var(--white);
  margin-bottom: 0.25rem;
}
.ct-map-badge-addr {
  font-family: var(--sans); font-size: 0.7rem; font-weight: 300; color: rgba(255,255,255,0.45);
  line-height: 1.5;
}

/* ═══ FACTORY-STYLE LOCATIONS STRIP ═══ */
.ct-locs-section { padding: 6rem 3rem; max-width: 1280px; margin: 0 auto; }
.ct-locs-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  background: rgba(0,0,0,0.08); margin-top: 3rem;
}
.ct-loc-card {
  background: var(--white); padding: 2.6rem 2.2rem;
  opacity: 0; transform: translateY(20px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.ct-loc-card.in-view { opacity: 1; transform: translateY(0); }
.ct-loc-icon { color: var(--gold-d); margin-bottom: 1.4rem; }
.ct-loc-name {
  font-family: var(--serif); font-size: 1.3rem; font-weight: 400; color: var(--dark); margin-bottom: 0.6rem;
}
.ct-loc-addr {
  font-family: var(--sans); font-size: 0.8rem; font-weight: 300; line-height: 1.8;
  color: rgba(0,0,0,0.48); margin-bottom: 1.2rem;
}
.ct-loc-tag {
  display: inline-block; font-family: var(--sans); font-size: 0.6rem; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-d);
  border: 1px solid rgba(200,169,81,0.3); padding: 0.3rem 0.8rem;
}

/* ═══ FAQ (brief accordion, echoes svc-item pattern) ═══ */
.ct-faq-section { background: var(--dark2); padding: 6rem 3rem; }
.ct-faq-inner { max-width: 900px; margin: 0 auto; }
.ct-faq-section .eyebrow { color: var(--gold); }
.ct-faq-section .eyebrow::before { background: var(--gold); }
.ct-faq-list { margin-top: 2.5rem; }
.ct-faq-item { border-bottom: 1px solid rgba(255,255,255,0.08); }
.ct-faq-trigger {
  width: 100%; display: flex; align-items: center; gap: 1.2rem;
  padding: 1.3rem 0; text-align: left;
  transition: padding-left 0.3s var(--ease);
}
.ct-faq-item.active .ct-faq-trigger, .ct-faq-trigger:hover { padding-left: 0.4rem; }
.ct-faq-q {
  font-family: var(--sans); font-size: 0.88rem; font-weight: 400; letter-spacing: 0.02em;
  color: rgba(255,255,255,0.6); flex: 1; transition: color 0.3s;
}
.ct-faq-item.active .ct-faq-q, .ct-faq-trigger:hover .ct-faq-q { color: var(--white); }
.ct-faq-arrow { color: rgba(255,255,255,0.2); flex-shrink: 0; transition: transform 0.4s var(--ease), color 0.3s; }
.ct-faq-item.active .ct-faq-arrow { transform: rotate(45deg); color: var(--gold); }
.ct-faq-panel { overflow: hidden; max-height: 0; transition: max-height 0.5s var(--ease); }
.ct-faq-item.active .ct-faq-panel { max-height: 200px; }
.ct-faq-panel p {
  padding: 0 0 1.3rem 0; font-family: var(--sans); font-size: 0.8rem; font-weight: 300;
  line-height: 1.85; color: rgba(255,255,255,0.4); max-width: 640px;
}

/* ═══ SHARED OVERRIDES for white-bg sections ═══ */
.ct-main-section .eyebrow, .ct-locs-section .eyebrow { color: var(--gold-d); }
.ct-main-section .eyebrow::before, .ct-locs-section .eyebrow::before { background: var(--gold-d); opacity: 0.6; }

/* ═══════════════════════════════════════════
   FOOTER MAP WIDGET (shared across all pages)
═══════════════════════════════════════════ */
.footer-map-section {
  background: var(--dark);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.footer-map-inner {
  max-width: 1360px; margin: 0 auto;
  padding: 2.4rem 2.5rem;
  display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 2.5rem;
  align-items: center;
}
.footer-map-text-label {
  font-family: var(--sans); font-size: 0.6rem; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold);
  margin-bottom: 0.6rem; display: flex; align-items: center; gap: 0.7rem;
}
.footer-map-text-label::before { content: ''; display: block; width: 22px; height: 1px; background: var(--gold); }
.footer-map-title {
  font-family: var(--serif); font-size: 1.3rem; font-weight: 400; color: var(--white); margin-bottom: 0.5rem;
}
.footer-map-addr {
  font-family: var(--sans); font-size: 0.78rem; font-weight: 300; line-height: 1.7;
  color: rgba(255,255,255,0.35); margin-bottom: 1rem; max-width: 340px;
}
.footer-map-link {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--sans); font-size: 0.66rem; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold);
  border-bottom: 1px solid rgba(200,169,81,0.3); padding-bottom: 0.2rem;
  transition: border-color 0.3s, gap 0.3s;
}
.footer-map-link:hover { border-color: var(--gold); gap: 0.8rem; }

.footer-map-embed {
  position: relative; width: 100%; height: 220px;
  overflow: hidden; border: 1px solid rgba(255,255,255,0.08);
  filter: grayscale(0.55) contrast(1.05) brightness(0.85);
  transition: filter 0.4s;
}
.footer-map-embed:hover { filter: grayscale(0.15) contrast(1.05) brightness(0.98); }
.footer-map-embed iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
.footer-map-embed:hover iframe { pointer-events: all; }
.footer-map-pin-note {
  position: absolute; bottom: 0.6rem; right: 0.6rem; z-index: 2;
  background: rgba(8,8,8,0.7); backdrop-filter: blur(6px);
  padding: 0.3rem 0.6rem;
  font-family: var(--sans); font-size: 0.56rem; letter-spacing: 0.08em;
  color: rgba(255,255,255,0.4);
}

/* ═══════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════ */
@media (max-width: 1100px) {
  .ct-main-inner { grid-template-columns: 1fr; gap: 3rem; }
  .footer-map-inner { grid-template-columns: 1fr; }
  .footer-map-embed { height: 260px; }
}
@media (max-width: 768px) {
  .ct-hero { height: 52vh; min-height: 400px; }
  .ct-hero-content { padding: 0 1.5rem 3rem; }
  .ct-main-section { padding: 3.75rem 1.5rem; }
  .ct-form-col { padding: 2.2rem 1.6rem; }
  .ct-form-row { grid-template-columns: 1fr; }
  .ct-locs-section, .ct-faq-section { padding: 3.75rem 1.5rem; }
  .ct-locs-grid { grid-template-columns: 1fr; }
  .ct-map-frame { height: 340px; }
  .footer-map-inner { padding: 2rem 1.5rem; }
}
@media (max-width: 480px) {
  .ct-hero { height: 48vh; min-height: 360px; }
  .ct-title { font-size: clamp(2.1rem, 9vw, 2.6rem); }
  .ct-sub { font-size: 0.88rem; }
  .ct-info-value { font-size: 1rem; }
  .ct-submit { width: 100%; justify-content: center; }
  .ct-map-badge { max-width: 200px; padding: 0.8rem 1rem; left: 1rem; top: 1rem; }
}
