/* Remove the extra space at the top of internal pages: the generic
   `.section-white { padding: 50px 0 }` (first-style.css) pushes the page
   banner ~50px below the header. The banner sits flush under the nav. */
.section-white.scroll.single {
  padding-top: 0;
}

/* ===== Page Banner (inner pages) ===== */
/* Background é o SVG inteiro — já contém o tom cream + ornamento. */
.page-banner {
  position: relative;
  background: url('../img/bnn-interior.svg') right center / cover no-repeat;
  padding: 27px 130px 24px;
  overflow: hidden;
  height: 200px;
  align-content: center;
}
.page-banner__inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
}
.page-banner__eyebrow {
  display: block;
  color: #230704;
  font-family: "Open Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 16px;
  opacity: 0.7;
}
.page-banner__title {
  margin: 0;
  color: #230704;
  font-family: Poppins;
  font-size: 37px;
  font-style: normal;
  font-weight: 400;
  line-height: 42px; /* ~114% */
}
@media (max-width: 960px) {
  .page-banner {padding: 20px 20px 17px;height: 160px;/* background-position-x: -320px; */}

}

/* ===== Service Hours ===== */
.service-hours {
  background: #F9F9F9;
  padding: 90px 0px;
}
.service-hours__title {
  text-align: center;
  margin: 0 0 50px;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.service-hours__grid {
  display: flex;
  gap: 80px;
  text-align: center;
  flex-flow: row;
  justify-content: center;
}
.service-hours__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: #230704;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-transform: capitalize;
}
.service-hours__item i {
  font-size: 28px;
  color: #230704;
}
@media (max-width: 768px) {
  .service-hours__grid { grid-template-columns: 1fr; gap: 24px; }
  .service-hours__title { font-size: 36px; }
.page-banner__title {
  font-size: 25px;
  line-height: normal;
}
.service-hours__grid {
   
  gap: 40px;
   
  flex-flow: column;
   
}
}

/* ===== Team grid — 3 cols for About page ===== */
.about-team .team-grid {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 960px) {
  .about-team .team-grid { grid-template-columns: repeat(2, 1fr); }
.service-hours {
  background: #F9F9F9;
  padding: 40px 0px;
}
}
@media (max-width: 560px) {
  .about-team .team-grid { grid-template-columns: 1fr; }
}

/* ===== Service Features (What to Expect / What We Offer / Features) ===== */
.svc-features {
  background: #F2F2F2;
  padding: 90px 0;
}
.svc-features__layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 60px;
  align-items: center;
}
.svc-features__heading h2 {
  margin: 0 0 16px;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.svc-features__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 80px 52px;
}
.svc-features__item {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-direction: row;
  width: calc((100% - 104px) / 3);
  padding: 0;
  background: transparent;
  border-radius: 0;
  color: #230704;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-transform: capitalize;
}
.svc-features__item i,
.svc-features__icon {
  flex-shrink: 0;
  object-fit: contain;
  color: #230704;
  opacity: 0.5;
}
.svc-features__item i {
  width: 24px;
  height: 24px;
  font-size: 20px;
}
.svc-features__icon {
  width: 29px;
  height: 23px;
}
@media (max-width: 960px) {
  .svc-features__layout { grid-template-columns: 1fr; gap: 32px; }
  .svc-features__item { width: calc((100% - 52px) / 2); }
  .svc-features { padding: 56px 0; }
.page-banner__title {
  font-size: 25px;
  line-height: normal;
}
}
@media (max-width: 600px) {
  .service-hours__title,
  .sr-content h2 { font-size: 28px; }
  .svc-features {
    padding: 40px 0;
  }
  .svc-features__layout {
    gap: 24px;
  }
  .svc-features__heading h2 {
    font-size: 32px;
    margin-bottom: 0;
  }
  .svc-features__grid {
    gap: 26px;
  }
  .svc-features__item {
    width: 100%;
    gap: 10px;
    font-size: 16px;
  }
}

/* ===== Service Availability (Planning Availability / Reserve a Spot) ===== */
.svc-availability {
  background: #FFFFFF;
  padding: 90px 0 120px;
}
.svc-availability__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 70px;
}
.svc-availability__title {
  margin: 0;
  color: #230704;
  font-family: "Open Sans", sans-serif;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 600;
  line-height: 1.15;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.svc-availability__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 24px 30px;
  background: #230704;
  border-radius: 999px;
  transition: opacity 0.2s ease;
  white-space: nowrap;
  color: #F7EEE5;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-transform: capitalize;
}
.svc-availability__cta:hover { opacity: 0.85; color: #F7EEE5; }
.svc-availability__cta i { font-size: 16px; }
.svc-availability__layout {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 60px;
  align-items: center;
}
.svc-availability--no-media .svc-availability__layout {
  grid-template-columns: 1fr;
}
.svc-availability__media img {
  display: block;
  width: 100%;
  height: auto;
  /* border-radius: 4px; */
}
.svc-availability__items {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.svc-availability__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 30px;
  padding: 40px 70px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 4px;
  color: #230704;
  text-align: center;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-transform: capitalize;
}
.svc-availability__item i,
.svc-availability__icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  object-fit: contain;
  font-size: 38px;
  color: #230704;
}
.svc-availability__body {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media (max-width: 960px) {
  .svc-availability {
    padding: 56px 0;
  }
  .svc-availability__layout { grid-template-columns: 1fr; gap: 32px; }
  .svc-availability__header { flex-direction: column; align-items: flex-start; margin-bottom: 36px; }
  .svc-availability__items { gap: 24px; }
  .svc-availability__item { padding: 30px 28px; gap: 18px; }
}
@media (max-width: 600px) {
  .svc-availability {
    padding: 40px 0;
  }
  .svc-availability__header {
    gap: 18px;
    margin-bottom: 24px;
  }
  .svc-availability__title {
    font-size: 32px;
  }
  .svc-availability__cta {
    width: 100%;
    justify-content: center;
    padding: 12px 16px;
    white-space: normal;
    text-align: center;
    font-size: 15px;
  }
  .svc-availability__layout {
    gap: 24px;
  }
  .svc-availability__items {
    gap: 16px;
  }
  .svc-availability__item {
    padding: 24px 18px;
    gap: 14px;
    font-size: 16px;
  }
  .svc-availability__icon {
    width: 34px;
    height: 34px;
    font-size: 32px;
  }
}

section.service-rows.section-white {
    padding-bottom: 0;
    background: #FFF;
    padding: 0;
}
 .service-rows .sr-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  padding: 140px 0 140px;
  align-items: center;
  margin-bottom: clamp(24px, 5vw, 64px);
}
.sr-content {
     /* padding: 0 100px; */
}
.service-rows .sr-row:last-child{ margin-bottom: 0; }

 section.location-text.section-white {
    padding-bottom: 0;
    padding: 140px 0;
    background: #FFF;
}
.sr-media img{
  width: 100%;
  height: auto;
  display: block;
  /* border-radius: 20px; */
}
.sr-content h2{
  margin: 0 0 20px;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.sr-content p{
  margin: 0 0 30px;
  color: #666;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
  text-transform: none;
}
.sr-content p span {
  font-size: inherit!important;
  font-weight: inherit!important;
  font-style: inherit!important;
}
.sr-content a{text-decoration: underline;color: #666;font-family: "Open Sans";font-size: 18px;font-style: normal;font-weight: 400;line-height: normal;text-decoration-line: underline;text-decoration-style: solid;text-decoration-skip-ink: auto;text-decoration-thickness: auto;text-underline-offset: auto;text-underline-position: from-font;text-transform: capitalize;}
.service-rows--second .sr-row {
  padding: 130px 0;
  grid-template-columns: 0.8fr 1.3fr;
}
.service-rows--second .sr-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  padding: 18px 26px;
  border-radius: 999px;
  background: #230704;
  color: #F7EEE5;
  font-family: Poppins;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  text-transform: none;
}
.service-rows--second .sr-button:hover {
  color: #F7EEE5;
  opacity: 0.85;
}
.service-rows--second .sr-button i {
  font-size: 14px;
}

 .service-rows .sr-row:nth-child(even){
  grid-template-columns: 1fr 1fr;
}
.service-rows .sr-row:nth-child(even) .sr-media{ order: 2; }
.service-rows .sr-row:nth-child(even) .sr-content{ order: 1; }

/* responsivo */
@media (max-width: 960px){
  .service-rows .sr-row{
    gap: 20px;
    padding: 40px 0;
    grid-template-columns: 1fr;
  }
  .service-rows .sr-row:nth-child(even){
    grid-template-columns: 1fr;  
  }
  .service-rows .sr-row .sr-media,
  .service-rows .sr-row .sr-content{
    order: unset;  
  }
.sr-content {
     padding: 0 20px;
}
  .sr-content h2 {
    font-size: 36px;
  }
  .service-rows--second .sr-row {
    padding: 40px 0;
    grid-template-columns: 1fr;
  }
  .service-rows--second .sr-button {
    padding: 16px 22px;
  }
}
@media (max-width: 600px){
  .service-rows .sr-row,
  .service-rows--second .sr-row {
    gap: 18px;
    padding: 32px 0;
    margin-bottom: 0;
  }
  .sr-content {
    padding: 0;
  }
  .sr-content p {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .service-rows--second .sr-button {
    width: 100%;
    justify-content: center;
    font-size: 15px;
    padding: 12px 16px;
  }
}
.team-role {
    color: var(--black, #191308);
    text-align: center;
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px; /* 133.333% */
}
/* ==================== TEAM SECTION ==================== */
.team-section {
  padding: 100px 0;
  background: #FFF;
  /* border-top: 2px solid var(--champagne, #EFD9AF); */
}

.team-section .team-title {
  margin-bottom: 60px;
  text-transform: capitalize;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  justify-self: center;
  line-height: normal;
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 50px;
  margin: 0 auto;
}

.team-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  transition: transform .25s ease, box-shadow .25s ease;
}

.team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
}

.team-card img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
}

.team-card .team-info {
  padding: 24px 16px;
}

.team-card .team-name {
  margin-bottom: 4px;
  color: var(--black, #191308);
  text-align: center;
  font-family: "Open Sans";
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 24px; /* 100% */
}

.team-card .team-title {
  font-family: "Open Sans";
  font-size: 14px;
  font-weight: 400;
  color: #666;
}

/* ====== Responsivo ====== */
@media (max-width: 1024px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
.team-section {
  padding: 20px 0 50px;
  background: #FFF;
  /* border-top: 2px solid var(--champagne, #EFD9AF); */
}
 section.location-text.section-white {
    padding-bottom: 0;
    padding: 20px 0;
    background: #FFF;
}
}
@media (max-width: 768px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .team-grid { grid-template-columns: 1fr; }
}


@media (max-width: 960px){
  .parallax-reviews .parallax-clip{
    height:auto !important;
    min-height:unset;
    padding:40px 20px;
  }
}

/* ===== Contact Page ===== */
.contact-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 100px;
  align-items: flex-start;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
  height: 100%;
}
.hp-about__form {
   max-width: 100%;
   padding-top: 0;
}
.info-head {
    color: #230704;
    font-family: "Open Sans";
    font-size: 18px;
    margin-bottom: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-transform: capitalize;
}
.fone-work {display: flex;flex-flow: row;gap: 40px;}
.info-pair span {
    color: var(--leather, #230704);
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 105%; /* 18.9px */
    margin-bottom: 10px;
    text-transform: uppercase;
}

.info-pair a {
    color: var(--leather, #230704);
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    margin-left: 20px;
    line-height: normal;
    text-transform: none;
}

.info-pair {
    margin-bottom: 20px;
}
/* Force consistent value styling on location contact info — overrides inline
   styles pasted into a specific location's content (e.g. the Charleston Working
   Hours / Address rendered lighter + off-font vs the other locations). */
.contact-info .info-body,
.contact-info .info-body *:not(.cnm-icon) {
    color: var(--leather, #230704) !important;
    font-family: "Open Sans" !important;
}
.info-body {
    margin-bottom: 20px;
    color: var(--leather, #230704);
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-transform: capitalize;
}
.info-body a {
    color: var(--leather, #230704);
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-transform: none;
}
.contact-map img {
  width: 100%;
  border-radius: 16px;
  display: block;
}

/* ===== Responsivo ===== */
@media (max-width: 960px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
.fone-work {display: flex;flex-flow: column;gap: 20px;}
figure.contact-map.map-side {
    width: 100%;
}
}


/* === Locations: Info + Mapa lado a lado === */
.locations-info-grid{
  display: grid;
  grid-template-columns: 0.9fr 1fr; /* info | mapa */
  gap: 40px;
  align-items: start;
}
.locations-info-grid .map-side img{
  width: 100%;
  border-radius: 0!important;
  display: block;
}

/* quebra para mobile */
@media (max-width: 960px){
  .locations-info-grid{
    display: flex;
    flex-flow: column;
    gap: 24px;
  }
.info-pair {
    display: flex;
    margin-bottom: 20px;
    flex-flow: column;
}
.info-pair a {
 margin-left:0;
}
}

/* === Locations: Texto + Imagem === */
.location-text .lt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
  margin-bottom: 60px;
}
.lt-media img {
  width: 100%;
  /* border-radius: 20px; */
  display: block;
}
.lt-content .lt-title {
  margin-bottom: 20px;
  color: #230704;
  font-family: Poppins;
  font-size: 50px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.lt-content p {
  margin-bottom: 16px;
  color: #666;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
}
@media (max-width: 960px) {
  .location-text .lt-grid {
    grid-template-columns: 1fr;
    gap: 30px;
    display: flex;
    flex-flow: column-reverse;
  }
}
section.section-white.scroll.single h1,section.section-white.scroll.single h2 {
    font-family: "Open Sans";
    color: black;
    margin-bottom:20px
}

/* ===== Modal (compatÃ­vel com leadership) ===== */
.leader-modal-overlay{
  position:fixed; inset:0; display:none;
  align-items:center; justify-content:center;
  background:rgba(0,0,0,.55);
  padding:24px; z-index:1000;
  opacity:0;
  transition:opacity .2s ease;
}
.leader-modal-overlay.is-open,
.leader-modal-overlay[aria-hidden="false"]{
  display:flex; opacity:1;
}

.leader-modal{
  background:#fff; color:var(--dark-blue,#172232);
  width:min(1120px, 96vw);
  border-radius:18px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  position:relative; overflow:hidden;
  transform:scale(.98);
  transition:transform .2s ease;
}
.leader-modal-overlay.is-open .leader-modal,
.leader-modal-overlay[aria-hidden="false"] .leader-modal{
  transform:scale(1);
}
.leader-modal-content .about-h2{
  font-family:"Open Sans";
  color:#230704;
}
.leader-close{
  position:absolute; right:10px; top:6px;
  width:40px; height:40px; border:0; background:transparent;
  font-size:28px; line-height:40px; cursor:pointer; color:#5b6b85;
}
.leader-modal-grid{
  display:grid; grid-template-columns:.95fr 1.05fr;
  gap:36px; padding:36px;
}
.leader-modal-photo img{
  display:block; width:100%; height:auto; border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.leader-modal-role{
  font-family: "Open Sans";
  font-size:15px;
  color: #230704;
  margin:4px 0 14px;
}
.leader-modal-bio p{ margin:0 0 12px; }

div#leaderModalBio p {
    margin: 0 0 12px;
    color: #666;
    font-family: "Open Sans";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-transform: none;
}
body.modal-open{ overflow:hidden; }

 
@media (max-width:1024px){
  .leader-modal-overlay{ align-items:flex-start; padding:16px 12px; overflow-y:auto; }
  .leader-modal{ width:100%; border-radius:16px; max-height:none; overflow:visible; }
  .leader-modal-grid{ grid-template-columns:1fr; gap:18px; padding:18px; }
  .leader-modal-photo img{ max-height:40dvh; object-fit:contain; }
}
@media (min-width:1025px){
  .leader-modal-overlay{ align-items:center; padding:48px 32px; overflow-y:auto; }
  .leader-modal{ width:min(1120px, 90vw); max-height:calc(100vh - 96px); overflow:auto; margin:0 auto; }
  .leader-modal-grid{ grid-template-columns:.95fr 1.05fr; gap:32px; padding:32px; }
  .leader-modal-photo img{ max-height:none; object-fit:contain; }
}

 .leader-modal-overlay{
  position: fixed; inset: 0;
  display: flex;                     
  align-items: center; justify-content: center;
  background: rgba(0,0,0,.55);
  padding: 24px; z-index: 1000;

   opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition: opacity 1s ease;        
}

 .leader-modal-overlay.is-open,
.leader-modal-overlay[aria-hidden="false"]{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

 
.leader-modal{
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  width: min(1120px, 96vw);
  max-height: calc(100vh - 96px);
  overflow: auto;
  position: relative;

 
  transform: translateY(16px) scale(.98);
  opacity: 0;

  transition: transform 1s ease, opacity 1s ease;   
}

 .leader-modal-overlay.is-open .leader-modal,
.leader-modal-overlay[aria-hidden="false"] .leader-modal{
  transform: translateY(0) scale(1);
  opacity: 1;
}

 body.modal-open{ overflow: hidden; }

/* ====================================================================
   ============== CUSTOM ADDITIONS — Linodes/Live overrides ============
   ==================================================================== */

/* About Team — flat squarer cards (override LOCAL rounded/shadow defaults) */
.about-team .team-grid { gap: 30px; }
.about-team .team-card {
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
}
.about-team .team-card:hover {
  transform: translateY(-4px);
  box-shadow: none;
}
.about-team .team-card img { border-radius: 0; }
.about-team .team-card .team-info {
  padding: 65px 4px 0;
  text-align: left;
}
.about-team .team-card .team-info-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.about-team .team-card .team-name {
  margin-bottom: 0;
  text-align: left;
  color: #000;
  font-family: Poppins;
  font-size: 40px;
  font-style: normal;
  font-weight: 500;
  line-height: 53px; /* 132.5% */
}
.about-team .team-card .team-role {
  text-align: left;
  color: #230704;
  font-family: Poppins;
  font-size: 17px;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
  text-transform: capitalize;
}
.about-team .team-linkedin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #CACACA;
  font-size: 36px;
  line-height: 1;
  text-decoration: none;
  transition: opacity .2s ease, transform .2s ease;
}
.about-team .team-linkedin:hover {
  opacity: .75;
  transform: translateY(-1px);
}

/* Leader modal — LinkedIn icon at corner of bio */
.leader-modal-content { position: relative; }
.leader-modal-linkedin {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #230704;
  font-size: 26px;
  line-height: 1;
  text-decoration: none;
  transition: opacity .2s ease, transform .2s ease;
}
.leader-modal-linkedin:hover { opacity: .75; transform: translateY(-1px); }
.leader-modal-linkedin[hidden] { display: none; }

@media (max-width: 640px) {
  .leader-modal-linkedin {
    position: static;
    display: flex;
    margin: 18px 0 0 auto;
  }
}

/* ===== CONTACT v2 (Figma) ===== */
.contact-section{padding: 80px 0;background: #FFF;}
.contact-section .contact-grid{ grid-template-columns: 1fr 1fr; gap: 60px; }

.contact-section .contact-info{
  display: flex;
  flex-direction: column;
  gap: 28px; /* task 86aj2cjug: halved from 56px to align inter-location gap with divider padding-top */
  height: auto;
}
.contact-info__top{
  display: flex;
  flex-direction: row;
  gap: 80px;
  width: 100%;
  align-items: start;
  justify-content: space-between;
}
.contact-info__top > .info-group,
.contact-info__side{
  flex: 1 1 0;
  min-width: 0;
}
.contact-info__side{
  display: flex;
  flex-direction: column;
  gap: 34px;
}
.contact-info .info-group{margin-bottom: 0;align-self: flex-start;}
.contact-info .info-title{
  margin-bottom: 0;
  color: var(--leather, #230704);
  font-family: Poppins;
  font-size: 28px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.contact-info .info-head{ margin-bottom: 22px; }
.contact-info .info-body{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--leather, #230704);
  font-family: "Open Sans";
  font-size: 18px;
  font-weight: 400;
  line-height: 1.35;
  margin-bottom: 12px;
  text-transform: none;
}
.contact-info .info-body a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--leather, #230704);
  text-decoration: none;
}
.contact-info .info-body .cnm-icon{ font-size: 18px; color: #230704; }

/* task 86ahwmng7: phone/email render as plain text on desktop, tappable links on mobile only */
.contact-info .info-body a[href^="tel:"],
.contact-info .info-body a[href^="mailto:"]{
  pointer-events: none;
  cursor: text;
}
@media (max-width: 960px){
  .contact-info .info-body a[href^="tel:"],
  .contact-info .info-body a[href^="mailto:"]{
    pointer-events: auto;
    cursor: pointer;
  }
}

.contact-info .info-body--emails{ display: flex; flex-direction: column; align-items: flex-start; gap: 30px; }
.contact-info .info-body--emails .info-pair{
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 0;
}
.info-pair__label{
  color: var(--leather, #230704);
  font-family: "Open Sans";
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: uppercase;
  margin: 0;
}
.contact-info .info-body--emails .info-pair a{
  margin-left: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
}
.contact-info .info-group--location{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0; /* task 86aj10fwm: no spacing between name/address/phone/emails — single tight block per client */
  width: 100%;
}
.contact-info .info-group--location + .info-group--location{
  border-top: 1px solid rgba(35, 7, 4, .18);
  margin-top: 12px; /* task 86aj10fwm: tightened from 18px */
  padding-top: 28px; /* task 86aj10fwm: tightened from 46px */
}
.contact-info .info-group--location > .info-head{
  margin-bottom: 0;
}
.contact-info .info-group--location > .info-head .info-title{
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.contact-info .info-group--location > .info-head .cnm-icon{
  flex: 0 0 auto;
  color: #230704;
  font-size: 24px;
}
.contact-info .info-group--location .info-body{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-bottom: 0; /* task 86aj10fwm: uniform spacing via parent gap */
}
.contact-info .info-group--location .info-body a{
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
}
.contact-info .info-group--location .info-body--emails{
  width: auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 0; /* task 86aj10fwm: emails stacked tight, no gap */
  margin-bottom: 0;
}
.contact-info .info-group--location .info-body--emails .info-pair{
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 0;
}
.contact-info .info-group--location .info-body p{
  margin: 0;
}
.contact-info .info-group--location .info-group--addresses .info-body{
  align-items: flex-start;
}
.info-group--hours .info-body{
  display: flex;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.info-group--hours .info-body + .info-body{
  text-transform: uppercase;
}
.info-group--addresses .info-head{
  margin-bottom: 28px;
}
.info-group--addresses .info-body{
  display: flex;
  align-items: flex-start;
  margin-bottom: 34px;
  max-width: 940px;
}
.info-group--addresses .info-body:last-child{
  margin-bottom: 0;
}

/* 2-up maps */
.contact-maps{padding: 0 0 140px;background: #FFF;}
.contact-maps-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 74px;
}
.contact-maps-grid .contact-map{ margin: 0; }
.contact-maps-grid .map-wrap{
  /* border-radius: 16px; */
  overflow: hidden;
  aspect-ratio: 4/3;
  background: #f2f2f2;
}
.contact-maps-grid iframe{
  width: 100%; height: 100%; border: 0; display: block;
}

@media (max-width: 960px){
  .contact-section{ padding: 50px 0; }
  .contact-section .contact-grid{ grid-template-columns: 1fr; gap: 40px; }
  .contact-section .contact-info{ gap: 44px; }
  .contact-info__top{ flex-direction: column; gap: 36px; }
  .contact-info__side{ gap: 30px; }
  .contact-maps-grid{ grid-template-columns: 1fr; }
  .contact-maps{ padding: 0 0 50px; }
}

/* ===== Single Location v2 (Figma) ===== */
.location-info-section{
  background: #F9F9F9;
  padding: 90px 0;
}
.location-info-section .contact-info .info-title{
  margin-bottom: 0;
  color: var(--leather, #230704);
  font-family: Poppins;
  font-size: 28px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.location-info-section .contact-info .info-head{ margin-bottom: 14px; }
.location-info-section .contact-info .info-body{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  color: var(--leather, #230704);
  font-family: "Open Sans";
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: 137%; /* 18.9px */
  text-transform: uppercase;
}
.location-info-section .contact-info .info-body a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #230704;
  font-family: Poppins;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.location-info-section .contact-info .info-body .cnm-icon{ font-size: 18px; color: #230704; }
.location-info-section .contact-map .map-wrap{
  /* border-radius: 16px; */
  overflow: hidden;
  aspect-ratio: 4/3;
  background: #f2f2f2;
}
.location-info-section .contact-map iframe{
  width: 100%; height: 100%; border: 0; display: block;
}
.lt-cta{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
}
.lt-cta .cnm-icon{ font-size: 16px; }

@media (max-width: 960px){
  .location-info-section{ padding: 50px 0; }
}
