/* Homepage refinements: non-overlapping hero, approved brand artwork, location map. */
.hero { min-height: 0; }
.hero .hero-stage {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  gap: clamp(28px, 4.1vw, 60px);
  align-items: center;
  padding-top: 80px;
  padding-bottom: 58px;
  flex: 1 1 auto;
}
.hero .hero-content { position: relative; z-index: 2; flex: none; width: 100%; padding: 0; min-width: 0; }
.hero .hero-content h1 { max-width: 100%; font-size: clamp(42px, 4.15vw, 58px); line-height: 1.17; letter-spacing: -.065em; }
.hero .hero-content > p { max-width: 520px; }
.hero .hero-image {
  position: relative;
  inset: auto;
  height: auto;
  width: 100%;
  opacity: 1;
  align-self: center;
  overflow: hidden;
  border-radius: 21px;
  background: #0c2a24 none;
  border: 1px solid #325b45;
  box-shadow: 0 27px 62px #123c2b2b;
}
.hero .hero-image img { display: block; width: 100%; height: auto; aspect-ratio: 1672 / 941; object-fit: contain; }
.hero .hero-overlay { display: none; }
.hero .hero-bottom { margin-top: 0; }

.why .why-v-art {
  width: min(77%, 405px);
  height: auto;
  max-height: none;
  padding: 13px;
  border-radius: 18px;
  background: #fffdfa;
  box-shadow: 0 28px 65px #00170f7a;
  filter: none;
  object-fit: contain;
}

.visit-map { background: #f8f6ed; border-top: 1px solid #e7e9db; }
.visit-map-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: clamp(30px,6vw,85px); align-items: center; padding-top: 70px; padding-bottom: 70px; }
.visit-map-copy .eyebrow { color: #a77b3e; margin-bottom: 17px; }
.visit-map-copy h2 { color: #0c3b2c; font-size: clamp(34px,3.7vw,49px); line-height: 1.2; margin: 0 0 18px; }
.visit-map-copy h2 span { color: #a77b3e; }
.visit-map-copy p { color: #5e7666; font-size: 14px; line-height: 1.78; max-width: 520px; margin: 0 0 22px; }
.visit-map-copy address { font-style: normal; font-size: 13px; font-weight: 700; line-height: 1.85; color: #244b38; border-left: 3px solid #d2ab66; padding-left: 16px; margin-bottom: 24px; }
.visit-map-directions { display: inline-flex; gap: 15px; align-items: center; justify-content: center; background: #0b4333; color: #fff; padding: 13px 19px; border-radius: 9px; font: 800 12px Manrope,sans-serif; transition: background .2s; }
.visit-map-directions:hover { background: #166747; }
.visit-map-directions .icon { width: 16px; height: 16px; color: #e4c188; }
.visit-map-directions:focus-visible { outline: 3px solid #d6a957; outline-offset: 3px; }
.visit-map-frame { border-radius: 19px; overflow: hidden; border: 1px solid #d9e0d6; background: #e5ece5; min-height: 350px; box-shadow: 0 18px 48px #153b2917; }
.visit-map-frame iframe { display: block; width: 100%; height: 350px; border: 0; }
.google-profile-strip { display: grid; grid-template-columns: 240px minmax(0,1fr) auto; align-items: center; gap: clamp(20px,3.8vw,52px); margin-bottom: 66px; padding: 20px 32px 20px 20px; background: #fffefa; border: 1px solid #e4e9dd; border-radius: 20px; box-shadow: 0 17px 40px #153b2912; }
.google-profile-strip > img { display: block; width: 100%; max-width: 240px; height: auto; aspect-ratio: 1; object-fit: contain; border: 1px solid #e8eae4; border-radius: 15px; background: #fff; }
.google-profile-copy span { display: block; color: #ad7c3e; font: 800 10px/1.5 Manrope,sans-serif; letter-spacing: .13em; }
.google-profile-copy h3 { color: #0c3f2e; font: 800 clamp(22px,2.5vw,31px)/1.2 Manrope,sans-serif; letter-spacing: -.04em; margin: 9px 0 11px; }
.google-profile-copy p { color: #65796c; font: 500 13px/1.75 'DM Sans',sans-serif; margin: 0; max-width: 490px; }
.google-profile-open { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 18px; border-radius: 9px; background: #e7eee4; color: #0c5037; font: 800 11px/1.5 Manrope,sans-serif; text-decoration: none; white-space: nowrap; }
.google-profile-open:hover { background: #d9e6d8; color: #0a432f; }
.google-profile-open:focus-visible { outline: 3px solid #d6a957; outline-offset: 3px; }
.google-profile-open .icon { width: 15px; height: 15px; }

/* Stage 9: clear answers and keyboard-friendly paths to an enquiry. */
.partner-all-brands {
  padding: clamp(27px, 3.8vw, 47px);
  border-radius: 20px;
  background: linear-gradient(135deg, #123f31 0%, #0b3027 74%);
  box-shadow: 0 22px 48px #0a382a24;
  border: 1px solid #315f4c;
}
.partner-all-brands > span {
  display: block;
  color: #e0bf81;
  font: 800 10px/1.5 Manrope,sans-serif;
  letter-spacing: .15em;
  margin-bottom: 17px;
}
.partner-all-brands > strong {
  display: block;
  color: #fffdf7;
  font: 800 clamp(24px,2.8vw,36px)/1.25 Manrope,sans-serif;
  letter-spacing: -.045em;
  max-width: 530px;
}
.partner-all-brands > p {
  color: #d4e0d7;
  margin: 17px 0 0;
  font: 500 13px/1.85 'DM Sans',sans-serif;
  max-width: 490px;
}
#faq { scroll-margin-top: 110px; }
.site-skip-link { position: fixed; z-index: 2000; left: 14px; top: -70px; padding: 12px 17px; border-radius: 9px; background: #fff; color: #06432e; font: 800 13px Manrope,sans-serif; box-shadow: 0 8px 25px #06341f33; }
.site-skip-link:focus { top: 12px; }
.customer-faq { background: #f5f7f0; border-top: 1px solid #e2e9de; border-bottom: 1px solid #e2e9de; }
.customer-faq-heading { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(230px,.7fr); gap: 30px; align-items: end; margin-bottom: 34px; }
.customer-faq-heading .eyebrow { color: #a47a3b; }
.customer-faq-heading h2 { color: #103e2d; font-size: clamp(32px,3.7vw,48px); line-height: 1.16; letter-spacing: -.045em; margin: 17px 0 0; }
.customer-faq-heading h2 span { color: #a17c46; }
.customer-faq-heading > p { color: #607767; font: 500 14px/1.8 'DM Sans',sans-serif; margin: 0 0 4px; }
.customer-faq-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; align-items: start; }
.customer-faq-grid details { min-width: 0; border: 1px solid #dce5d7; border-radius: 12px; background: #fffefa; padding: 0 20px; box-shadow: 0 10px 25px #123c2310; }
.customer-faq-grid summary { list-style: none; position: relative; cursor: pointer; padding: 22px 32px 22px 0; color: #194933; font: 800 14px/1.55 Manrope,sans-serif; }
.customer-faq-grid summary::-webkit-details-marker { display: none; }
.customer-faq-grid summary::after { content: '+'; position: absolute; right: 2px; top: 17px; display: grid; place-items: center; width: 26px; height: 26px; background: #e8f0e6; border-radius: 8px; color: #1d6546; font-size: 20px; }
.customer-faq-grid details[open] summary::after { content: '−'; }
.customer-faq-grid summary:focus-visible,.customer-faq-grid a:focus-visible { outline: 3px solid #d8a657; outline-offset: 3px; border-radius: 4px; }
.customer-faq-grid details p { margin: 0; padding: 0 0 21px; color: #597061; font: 500 13px/1.8 'DM Sans',sans-serif; }
.customer-faq-grid details a { color: #0c7350; text-decoration: underline; text-underline-offset: 2px; font-weight: 700; }
.customer-faq-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px 22px; margin-top: 27px; }
.customer-faq-actions span { color: #667e6a; font: 500 12px/1.7 'DM Sans',sans-serif; }
.customer-faq-actions .icon { width: 15px; height: 15px; }

@media (max-width: 950px) {
  .customer-faq-heading { grid-template-columns: 1fr; gap: 13px; }
  .hero .hero-stage { grid-template-columns: 1fr; gap: 34px; padding-top: 62px; padding-bottom: 34px; }
  .hero .hero-content h1 { font-size: clamp(42px,6vw,62px); max-width: 700px; }
  .hero .hero-image { max-width: 720px; justify-self: center; }
  .hero .hero-content > p { max-width: 620px; }
  .visit-map-grid { grid-template-columns: 1fr; gap: 30px; padding-top: 58px; padding-bottom: 58px; }
  .visit-map-copy { max-width: 680px; }
  .google-profile-strip { grid-template-columns: 200px 1fr; padding: 20px; gap: 24px; }
  .google-profile-strip > img { max-width: 200px; grid-row: span 2; }
  .google-profile-open { justify-self: start; }
}
@media (max-width: 600px) {
  .customer-faq-grid { grid-template-columns: 1fr; }
  .customer-faq-grid details { padding: 0 16px; }
  .customer-faq-grid summary { font-size: 13px; padding-top: 19px; padding-bottom: 19px; }
  .customer-faq-actions .btn { width: 100%; justify-content: center; }
  .hero .hero-stage { padding-top: 48px; padding-bottom: 24px; gap: 27px; }
  .hero .hero-content h1 { font-size: clamp(37px,9.1vw,50px); }
  .hero .hero-image { margin: 0; width: 100%; height: auto; border-radius: 15px; }
  .hero .hero-image img { width: 100%; height: auto; }
  .hero .hero-bottom { padding-bottom: 23px; }
  .why .why-v-art { width: min(80%,330px); padding: 9px; border-radius: 12px; }
  .visit-map-grid { padding-top: 50px; padding-bottom: 50px; }
  .visit-map-frame,.visit-map-frame iframe { min-height: 280px; height: 280px; }
  .google-profile-strip { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 16px; padding: 25px 22px; margin-bottom: 48px; }
  .google-profile-strip > img { max-width: min(255px,100%); grid-row: auto; }
  .google-profile-open { justify-self: center; white-space: normal; }
}
