/* Brand mark */
.logo-link {
  display: flex;
  align-items: center;
  height: 100%;
}

.header-logo {
  display: block;
  width: 68px;
  height: 66px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.footer-logo {
  width: 118px;
  height: auto;
  object-fit: contain;
  mix-blend-mode: multiply;
}

/* Floating social links */
.social-widget {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 18;
  display: grid;
  grid-template-columns: auto auto;
  gap: 8px;
  padding: 10px;
  background: rgba(255, 253, 249, 0.95);
  border: 1px solid rgba(24, 52, 46, 0.12);
  border-radius: 18px;
  box-shadow: 0 14px 40px rgba(24, 52, 46, 0.18);
  backdrop-filter: blur(12px);
}

.social-label {
  grid-column: 1 / -1;
  padding: 1px 8px 2px;
  color: #60716b;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.social-widget a {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 11px;
  color: var(--ink);
  background: var(--cream);
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.social-widget a:hover {
  color: #fff;
  background: var(--green);
  transform: translateY(-2px);
}

.social-widget svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1.7;
}

.social-widget svg rect,
.social-widget svg circle:not(.social-dot) { fill: none; }
.social-widget .social-dot { stroke: none; }

.nearby-grid article {
  min-height: 340px;
  background-image: linear-gradient(180deg, rgba(14, 33, 29, 0.14) 10%, rgba(14, 33, 29, 0.88) 100%), var(--nearby-image);
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nearby-grid article:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 35px rgba(24, 52, 46, 0.2);
}

.nearby-grid span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(21, 49, 43, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  backdrop-filter: blur(7px);
  font-size: 11px;
}

.nearby-grid h3 {
  font-size: 31px;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}

.nearby-grid p {
  margin-bottom: 0;
  color: #fff;
  line-height: 1.55;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}

/* Search-friendly location and FAQ content */
.search-section {
  background: var(--cream);
  border-top: 1px solid var(--line);
}

.search-intro {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 7vw;
  align-items: end;
}

.search-intro .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.search-intro h2,
.faq-block h2 {
  margin: 0;
  font: 600 clamp(42px, 5vw, 67px)/1.05 "Playfair Display", serif;
}

.search-intro > p:last-child {
  margin: 0;
  color: #53665f;
  font-size: 17px;
  line-height: 1.75;
}

.location-links {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  margin-top: 58px;
  background: rgba(24, 52, 46, 0.15);
  border: 1px solid var(--line);
}

.location-links article {
  min-height: 220px;
  padding: 28px 23px;
  background: var(--cream);
  display: flex;
  flex-direction: column;
}

.location-links span {
  color: #6b8278;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.location-links h3 {
  margin: auto 0 10px;
  font: 600 24px/1.15 "Playfair Display", serif;
}

.location-links p {
  margin: 0;
  color: #53665f;
  font-size: 13px;
  line-height: 1.55;
}

.faq-block {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 7vw;
  margin-top: 100px;
  padding-top: 80px;
  border-top: 1px solid var(--line);
}

.faq-list details { border-top: 1px solid rgba(24, 52, 46, 0.18); }
.faq-list details:last-child { border-bottom: 1px solid rgba(24, 52, 46, 0.18); }
.faq-list summary {
  position: relative;
  padding: 22px 38px 22px 0;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 17px;
  color: var(--pink);
  font: 500 26px/1 "Playfair Display", serif;
}
.faq-list details[open] summary::after { content: "–"; }
.faq-list details p {
  margin: -5px 35px 22px 0;
  color: #53665f;
  font-size: 14px;
  line-height: 1.7;
}

@media (max-width: 1000px) {
  .location-links { grid-template-columns: repeat(2, 1fr); }
  .location-links article:last-child { grid-column: 1 / -1; min-height: 160px; }
}

@media (max-width: 600px) {
  .header-logo { width: 58px; height: 56px; }
  .footer-logo { width: 105px; }
  .social-widget {
    right: 12px;
    bottom: 12px;
    grid-template-columns: auto auto;
    padding: 7px;
    border-radius: 15px;
  }
  .social-label { display: none; }
  .social-widget a { padding: 10px; }
  .social-widget a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .search-intro,
  .faq-block { grid-template-columns: 1fr; }
  .search-intro { gap: 22px; }
  .location-links { grid-template-columns: 1fr; margin-top: 38px; }
  .location-links article,
  .location-links article:last-child { grid-column: auto; min-height: 175px; }
  .faq-block { gap: 35px; margin-top: 75px; padding-top: 60px; }
  .nearby-grid article { min-height: 300px; }
}
