/* ==========================================================================
   J&A LABOUR SUPPLY SOLUTIONS — DESIGN SYSTEM
   Display: Poppins  |  Body: Inter  |  Utility/Eyebrow: Manrope
   ========================================================================== */

:root{
  --orange: #F57C00;
  --orange-deep: #C45C00;
  --amber: #FFB74D;
  --dark: #1B1B1B;
  --dark-2: #131313;
  --light-gray: #F7F7F7;
  --border: #EAEAEA;
  --text: #555555;
  --text-dark: #1B1B1B;
  --success: #2E7D32;
  --white: #FFFFFF;

  --font-display: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-utility: 'Manrope', sans-serif;

  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 10px;
  --shadow-soft: 0 20px 60px -20px rgba(27,27,27,0.18);
  --shadow-card: 0 10px 30px -12px rgba(27,27,27,0.12);
  --ease: cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  color: var(--text);
  background: var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{ font-family: var(--font-display); color: var(--text-dark); font-weight:600; letter-spacing:-0.02em; }
.eyebrow{
  font-family: var(--font-utility);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--orange-deep);
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:2px;
  background: linear-gradient(90deg,var(--orange),var(--amber));
  border-radius:2px;
}
a{ text-decoration:none; }
.text-orange{ color:var(--orange); }
.bg-dark-panel{ background: var(--dark); }
.section{ padding: 6.5rem 0; }
.section-tight{ padding: 4rem 0; }
@media (max-width: 767px){
  .section{ padding: 3.5rem 0; }
}

/* ---------------- Buttons ---------------- */
.btn-ja-primary,
.btn-ja-outline,
.btn-ja-dark{
  font-family: var(--font-utility);
  font-weight:700;
  font-size:.92rem;
  padding: .95rem 1.9rem;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  transition: all .35s var(--ease);
  border: 1.5px solid transparent;
  position:relative;
  overflow:hidden;
}
.btn-ja-primary{
  background: linear-gradient(120deg, var(--orange) 0%, var(--orange-deep) 100%);
  color:#fff;
  box-shadow: 0 12px 28px -10px rgba(245,124,0,0.55);
}
.btn-ja-primary:hover{ transform: translateY(-3px); box-shadow: 0 18px 34px -10px rgba(245,124,0,0.6); color:#fff; }
.btn-ja-outline{
  border-color: rgba(27,27,27,.16);
  color: var(--text-dark);
  background: transparent;
}
.btn-ja-outline:hover{ border-color: var(--orange); color: var(--orange-deep); transform: translateY(-3px); }
.btn-ja-dark{
  background: var(--dark);
  color:#fff;
}
.btn-ja-dark:hover{ background:#000; color:#fff; transform: translateY(-3px); }
.btn-sm-pill{ padding:.6rem 1.2rem; font-size:.8rem; }

/* ---------------- Navbar ---------------- */
.ja-navbar{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding: 1.15rem 0;
  transition: all .4s var(--ease);
  background: transparent;
}
.ja-navbar.scrolled{
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 8px 30px -18px rgba(0,0,0,.25);
  padding: .7rem 0;
}
.ja-navbar .nav-link{
  font-family: var(--font-utility);
  font-weight:600;
  font-size:.92rem;
  color: var(--dark);
  margin: 0 .7rem;
  position:relative;
  opacity:.85;
}
.ja-navbar.transparent-light .nav-link{ color:#fff; }
.ja-navbar .nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-4px;
  width:0; height:2px;
  background: var(--orange);
  transition: width .3s var(--ease);
}
.ja-navbar .nav-link:hover::after,
.ja-navbar .nav-link.active::after{ width:100%; }
.ja-navbar .nav-link.active{ opacity:1; color: var(--orange-deep); }
.ja-navbar.transparent-light .nav-link.active{ color: var(--amber); }
.ja-navbar.scrolled.transparent-light .nav-link{ color: var(--dark); opacity:.85; }
.ja-navbar.scrolled.transparent-light .nav-link.active{ color: var(--orange-deep); opacity:1; }
.ja-navbar.scrolled.transparent-light .logo-word{ color: var(--dark); }
.ja-navbar.scrolled.transparent-light .ja-logo small{ color: var(--text); opacity:.75; }
.ja-navbar.scrolled .navbar-toggler i{ color: var(--dark) !important; }

.ja-logo{ display:flex; align-items:center; gap:.65rem; }
.ja-logo .logo-word{ font-family: var(--font-display); font-weight:700; font-size:1.28rem; letter-spacing:-.02em; color: var(--dark); line-height:1; }
.ja-navbar.transparent-light .logo-word{ color:#fff; }
.ja-logo .logo-word span{ color: var(--orange); }
.ja-logo small{ display:block; font-family: var(--font-utility); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color: var(--text); opacity:.75; }
.ja-navbar.transparent-light .ja-logo small{ color:#fff; opacity:.7;}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  background: linear-gradient(155deg,#181512 0%, #0F0D0C 55%, #1B1206 100%);
  overflow:hidden;
  padding-top: 6rem;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(245,124,0,.28), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(245,124,0,.12), transparent 40%);
  pointer-events:none;
}
.hero-noise{
  position:absolute; inset:0; opacity:.05; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%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");
}
.hero .hazard-strip{
  position:absolute; left:0; right:0; bottom:0; height:10px;
  background: repeating-linear-gradient(-45deg, var(--orange) 0 18px, #1B1B1B 18px 36px);
  opacity:.9;
}
.hero-badge-row{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.hero-badge{
  font-family: var(--font-utility); font-weight:600; font-size:.75rem; letter-spacing:.04em;
  color:#fff; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  padding:.4rem .85rem; border-radius:999px; backdrop-filter: blur(6px);
}
.hero h1{
  color:#fff; font-size: clamp(2.4rem, 4.6vw, 4rem); line-height:1.05; letter-spacing:-.03em;
}
.hero h1 em{ font-style:normal; color: var(--orange); position:relative; }
.hero p.lead-copy{ color: rgba(255,255,255,.72); font-size:1.08rem; max-width:520px; margin: 1.4rem 0 2.2rem; }
.hero-stat-strip{ display:flex; gap:2.2rem; margin-top:3rem; flex-wrap:wrap; }
.hero-stat-strip .stat-num{ font-family: var(--font-display); font-size:1.9rem; color:#fff; font-weight:700; }
.hero-stat-strip .stat-label{ font-family: var(--font-utility); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: rgba(255,255,255,.55); }

/* ---- Dispatch board (signature element) ---- */
.dispatch-board{
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  padding: 1.6rem;
  box-shadow: 0 30px 80px -30px rgba(0,0,0,.6);
  position:relative;
}
.dispatch-board .db-head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.1);
}
.dispatch-board .db-title{ font-family: var(--font-utility); font-weight:700; color:#fff; font-size:.85rem; letter-spacing:.04em; }
.db-live{ display:flex; align-items:center; gap:.4rem; font-family: var(--font-utility); font-size:.7rem; color:#8BD98F; font-weight:700; letter-spacing:.06em;}
.db-live .dot{ width:7px; height:7px; border-radius:50%; background:#4CD964; box-shadow:0 0 0 0 rgba(76,217,100,.6); animation: pulseDot 1.6s infinite; }
@keyframes pulseDot{ 0%{box-shadow:0 0 0 0 rgba(76,217,100,.55);} 70%{box-shadow:0 0 0 8px rgba(76,217,100,0);} 100%{box-shadow:0 0 0 0 rgba(76,217,100,0);} }
.db-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:.7rem .6rem; border-radius:12px; margin-bottom:.4rem;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  opacity:0; transform: translateX(14px);
}
.db-row.in{ animation: rowIn .6s var(--ease) forwards; }
@keyframes rowIn{ to{opacity:1; transform:translateX(0);} }
.db-row .db-role{ font-family: var(--font-utility); font-weight:700; font-size:.82rem; color:#fff; }
.db-row .db-site{ font-size:.72rem; color: rgba(255,255,255,.5); }
.db-tag{
  font-family: var(--font-utility); font-size:.65rem; font-weight:700; letter-spacing:.05em;
  padding:.28rem .65rem; border-radius:999px; text-transform:uppercase;
}
.db-tag.deployed{ background: rgba(76,217,100,.14); color:#7BE083; }
.db-tag.en-route{ background: rgba(255,183,77,.16); color: var(--amber); }
.db-tag.staging{ background: rgba(255,255,255,.1); color: rgba(255,255,255,.65); }
.db-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.1); }
.db-clock{ font-family:'Courier New', monospace; color: var(--amber); font-size:.85rem; letter-spacing:.05em; }

/* ---------------- Section headers ---------------- */
.section-head{ max-width: 680px; margin-bottom: 3rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size: clamp(1.9rem, 3vw, 2.6rem); margin-top:.6rem; }

/* ---------------- About preview / split blocks ---------------- */
.split-media{
  border-radius: var(--radius-lg);
  overflow:hidden;
  position:relative;
  box-shadow: var(--shadow-soft);
}
.split-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.floating-badge{
  position:absolute; left:-1.6rem; bottom:1.8rem;
  background:#fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding:1.1rem 1.4rem;
  display:flex; align-items:center; gap:.9rem;
}
.floating-badge .fb-icon{
  width:46px; height:46px; border-radius:12px;
  background: linear-gradient(135deg,var(--orange),var(--orange-deep));
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.15rem; flex-shrink:0;
}
.floating-badge strong{ display:block; font-family:var(--font-display); color:var(--text-dark); font-size:1.05rem; }
.floating-badge span{ font-size:.78rem; color:var(--text); }
@media (max-width:991px){ .floating-badge{ left:1rem; bottom:1rem; } }

/* ---------------- Service cards ---------------- */
.service-card{
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-md);
  padding: 2.1rem 1.8rem; height:100%;
  transition: all .4s var(--ease);
  position:relative; overflow:hidden;
}
.service-card::before{
  content:""; position:absolute; inset:0; opacity:0;
  background: linear-gradient(155deg, rgba(245,124,0,.06), transparent 60%);
  transition: opacity .4s var(--ease);
}
.service-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-card); border-color: transparent; }
.service-card:hover::before{ opacity:1; }
.service-icon{
  width:58px; height:58px; border-radius:16px;
  background: var(--light-gray);
  display:flex; align-items:center; justify-content:center;
  font-size:1.35rem; color: var(--orange-deep);
  margin-bottom:1.3rem;
  transition: all .4s var(--ease);
}
.service-card:hover .service-icon{ background: linear-gradient(135deg,var(--orange),var(--orange-deep)); color:#fff; transform: rotate(-6deg) scale(1.06); }
.service-card h3{ font-size:1.15rem; margin-bottom:.6rem; }
.service-card p{ font-size:.92rem; margin-bottom:1.1rem; }
.service-card .card-link{ font-family:var(--font-utility); font-weight:700; font-size:.82rem; color:var(--text-dark); display:inline-flex; align-items:center; gap:.4rem; }
.service-card .card-link i{ transition: transform .3s var(--ease); }
.service-card:hover .card-link{ color: var(--orange-deep); }
.service-card:hover .card-link i{ transform: translateX(4px); }

/* ---------------- Checklist / why choose us ---------------- */
.check-list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.6rem; }
@media (max-width:575px){ .check-list{ grid-template-columns:1fr; } }
.check-list li{ display:flex; align-items:flex-start; gap:.8rem; font-family: var(--font-utility); font-weight:600; color: var(--text-dark); font-size:.95rem; }
.check-list .check-ic{
  width:26px; height:26px; border-radius:50%; background: rgba(46,125,50,.1); color: var(--success);
  display:flex; align-items:center; justify-content:center; font-size:.72rem; flex-shrink:0; margin-top:.1rem;
}

/* ---------------- Industries grid ---------------- */
.industry-tile{
  border:1px solid var(--border); border-radius: var(--radius-sm);
  padding: 1.5rem 1rem; text-align:center; height:100%;
  transition: all .35s var(--ease); background:#fff;
}
.industry-tile:hover{ background: var(--dark); border-color: var(--dark); transform: translateY(-4px); }
.industry-tile i{ font-size:1.5rem; color: var(--orange); margin-bottom:.7rem; display:block; }
.industry-tile span{ font-family: var(--font-utility); font-weight:700; font-size:.85rem; color: var(--text-dark); }
.industry-tile:hover span{ color:#fff; }

/* ---------------- Stats band ---------------- */
.stats-band{
  background: var(--dark);
  border-radius: var(--radius-lg);
  padding: 3.2rem 2rem;
  position:relative; overflow:hidden;
}
.stats-band::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 90% 10%, rgba(245,124,0,.22), transparent 50%);
}
.stat-block{ text-align:center; position:relative; }
.stat-block .num{ font-family: var(--font-display); font-size: clamp(2.1rem,3.4vw,3rem); color:#fff; font-weight:700; }
.stat-block .num span{ color: var(--orange); }
.stat-block .lbl{ font-family: var(--font-utility); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color: rgba(255,255,255,.55); margin-top:.3rem; }

/* ---------------- Process timeline ---------------- */
.process-track{ position:relative; }
.process-track::before{
  content:""; position:absolute; top:32px; left:6%; right:6%; height:2px;
  background: repeating-linear-gradient(90deg, var(--border) 0 8px, transparent 8px 16px);
}
@media (max-width:767px){ .process-track::before{ display:none; } }
.process-step{ text-align:center; position:relative; }
.process-step .ps-num{
  width:64px; height:64px; border-radius:50%; margin:0 auto 1.1rem;
  background:#fff; border:2px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700; color: var(--orange-deep); font-size:1.15rem;
  position:relative; z-index:2; transition: all .3s var(--ease);
}
.process-step:hover .ps-num{ background: var(--orange); border-color: var(--orange); color:#fff; }
.process-step h4{ font-size:1rem; margin-bottom:.4rem; }
.process-step p{ font-size:.85rem; }

/* ---------------- Testimonials ---------------- */
.testi-card{
  background: rgba(255,255,255,.9);
  border:1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 2rem;
  height:100%;
}
.testi-card .stars{ color: var(--orange); font-size:.85rem; margin-bottom:1rem; letter-spacing:.15em; }
.testi-card p.quote{ font-size:.98rem; color: var(--text-dark); margin-bottom:1.4rem; }
.testi-person{ display:flex; align-items:center; gap:.8rem; }
.testi-avatar{
  width:46px; height:46px; border-radius:50%;
  background: linear-gradient(135deg,var(--orange),var(--orange-deep));
  color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700;
}
.testi-person strong{ display:block; font-size:.9rem; color: var(--text-dark); }
.testi-person span{ font-size:.76rem; }

/* ---------------- CTA banner ---------------- */
.cta-banner{
  background: linear-gradient(120deg, var(--orange) 0%, var(--orange-deep) 100%);
  border-radius: var(--radius-lg);
  padding: 3.4rem 2.5rem;
  position:relative; overflow:hidden;
  color:#fff;
}
.cta-banner::after{
  content:""; position:absolute; right:-40px; top:-40px; width:220px; height:220px; border-radius:50%;
  background: rgba(255,255,255,.08);
}
.cta-banner h2{ color:#fff; font-size: clamp(1.6rem,2.6vw,2.2rem); }
.cta-banner .phone-link{ color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.3rem; }

/* ---------------- News cards ---------------- */
.news-card{ border-radius: var(--radius-md); overflow:hidden; border:1px solid var(--border); transition: all .35s var(--ease); }
.news-card:hover{ box-shadow: var(--shadow-card); transform: translateY(-6px); }
.news-card img{ width:100%; height:200px; object-fit:cover; }
.news-card .nc-body{ padding:1.4rem; }
.news-card .nc-date{ font-family: var(--font-utility); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color: var(--orange-deep); font-weight:700; }
.news-card h4{ font-size:1.02rem; margin:.5rem 0 .6rem; }

/* ---------------- Footer ---------------- */
.ja-footer{ background: var(--dark-2); color: rgba(255,255,255,.65); padding: 5rem 0 0; }
.ja-footer h5{ color:#fff; font-family: var(--font-utility); font-weight:700; font-size:.9rem; letter-spacing:.04em; margin-bottom:1.3rem; text-transform:uppercase; }
.ja-footer a{ color: rgba(255,255,255,.6); font-size:.9rem; }
.ja-footer a:hover{ color: var(--orange); }
.ja-footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.7rem; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.08); margin-top:3rem; padding: 1.6rem 0; font-size:.8rem; }
.social-ic{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.16);
  display:flex; align-items:center; justify-content:center; color:#fff; transition: all .3s var(--ease);
}
.social-ic:hover{ background: var(--orange); border-color: var(--orange); }
.newsletter-form input{
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); color:#fff;
  border-radius: 999px 0 0 999px; padding:.75rem 1.2rem; font-size:.88rem;
}
.newsletter-form input::placeholder{ color: rgba(255,255,255,.4); }
.newsletter-form input:focus{ outline:none; box-shadow:none; background: rgba(255,255,255,.09); }
.newsletter-form button{ border-radius:0 999px 999px 0; }

/* ---------------- Misc / utility ---------------- */
.back-to-top{
  position:fixed; right:1.6rem; bottom:1.6rem; z-index:999;
  width:48px; height:48px; border-radius:50%;
  background: var(--dark); color:#fff; display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition: all .35s var(--ease);
  box-shadow: var(--shadow-card);
}
.back-to-top.show{ opacity:1; pointer-events:auto; }
.back-to-top:hover{ background: var(--orange); }

.whatsapp-float{
  position:fixed; left:1.6rem; bottom:1.6rem; z-index:999;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.5rem;
  box-shadow: 0 12px 26px -8px rgba(37,211,102,.6);
  animation: floatBob 3s ease-in-out infinite;
}
@keyframes floatBob{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-6px);} }

.scroll-progress{ position:fixed; top:0; left:0; height:3px; background: linear-gradient(90deg,var(--orange),var(--amber)); z-index:1100; width:0%; }

.page-banner{
  position:relative; padding: 10.5rem 0 5rem; overflow:hidden;
  background: linear-gradient(155deg,#181512 0%, #0F0D0C 60%, #1B1206 100%);
}
.page-banner::before{
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(circle at 80% 20%, rgba(245,124,0,.26), transparent 45%);
}
.page-banner h1{ color:#fff; font-size: clamp(2.1rem,3.6vw,3rem); }
.page-banner .breadcrumb{ background:transparent; padding:0; margin-top:1rem; }
.page-banner .breadcrumb a{ color: rgba(255,255,255,.55); }
.page-banner .breadcrumb .active{ color: var(--orange); }
.page-banner .hazard-strip{ position:absolute; left:0; right:0; bottom:0; height:10px; background: repeating-linear-gradient(-45deg, var(--orange) 0 18px, #1B1B1B 18px 36px); opacity:.9; }

.faq-accordion .accordion-item{ border:1px solid var(--border); border-radius: var(--radius-sm) !important; margin-bottom: .9rem; overflow:hidden; }
.faq-accordion .accordion-button{ font-family: var(--font-utility); font-weight:700; font-size:.95rem; color: var(--text-dark); padding: 1.2rem 1.4rem; }
.faq-accordion .accordion-button:not(.collapsed){ background: var(--light-gray); color: var(--orange-deep); box-shadow:none; }
.faq-accordion .accordion-button:focus{ box-shadow:none; }
.faq-accordion .accordion-body{ padding: 0 1.4rem 1.3rem; font-size: .92rem; }

.value-card{ text-align:center; padding: 2rem 1.4rem; border-radius: var(--radius-md); background:#fff; border:1px solid var(--border); height:100%; transition: all .35s var(--ease); }
.value-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-card); }
.value-card i{ font-size:1.7rem; color: var(--orange); margin-bottom:1rem; }

.team-card{ text-align:center; }
.team-card .tc-img{ border-radius: var(--radius-md); overflow:hidden; margin-bottom:1.1rem; position:relative; }
.team-card .tc-img img{ width:100%; height:280px; object-fit:cover; transition: transform .5s var(--ease); }
.team-card:hover .tc-img img{ transform: scale(1.06); }
.team-card h4{ font-size:1.02rem; margin-bottom:.15rem; }
.team-card span{ font-size:.82rem; color: var(--orange-deep); font-family:var(--font-utility); font-weight:600; }

.contact-card{ background:#fff; border:1px solid var(--border); border-radius: var(--radius-md); padding: 1.8rem; text-align:center; height:100%; transition: all .35s var(--ease); }
.contact-card:hover{ box-shadow: var(--shadow-card); transform: translateY(-5px); }
.contact-card .cc-ic{ width:52px; height:52px; border-radius:14px; background: var(--light-gray); color: var(--orange-deep); display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; font-size:1.2rem; }

.form-control-ja{
  border:1px solid var(--border); border-radius: var(--radius-sm); padding: .9rem 1.1rem; font-size:.92rem;
  background: var(--light-gray);
}
.form-control-ja:focus{ outline:none; border-color: var(--orange); background:#fff; box-shadow: 0 0 0 4px rgba(245,124,0,.12); }
label.form-label-ja{ font-family: var(--font-utility); font-weight:700; font-size:.8rem; color: var(--text-dark); margin-bottom:.4rem; }

.map-wrap{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-soft); }
.map-wrap iframe{ width:100%; height:100%; min-height:420px; border:0; display:block; filter: grayscale(.15); }

[data-aos]{ }
.reveal-line{ overflow:hidden; }

::selection{ background: var(--orange); color:#fff; }
