/* Shared functional visit information. Campaign artwork and attribution stay local. */
.visit-story { display: grid; gap: 20px; margin: 8px 0 24px; }
.visit-card { min-width: 0; padding: 24px; border: 1px solid #dbe4ec; border-radius: 16px; background: #fff; color: #061b38; box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
.visit-kicker { margin: 0 0 7px; color: #426076; font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.visit-card h2 { margin: 0; color: #061b38; font-size: 25px; line-height: 1.45; letter-spacing: .01em; }
.visit-intro { margin: 12px 0 20px; color: #455c70; font-size: 15px; line-height: 1.8; }
.store-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.store-gallery figure { min-width: 0; margin: 0; overflow: hidden; border-radius: 10px; background: #f1f5f8; }
.store-gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #eaf0f5; }
.store-gallery figcaption { padding: 10px 12px; color: #354f64; font-size: 13px; font-weight: 700; }
.visit-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.visit-facts li { min-width: 0; padding-top: 14px; border-top: 2px solid #d9e7ee; }
.visit-facts strong { display: block; color: #061b38; font-size: 17px; line-height: 1.5; }
.visit-facts span { display: block; margin-top: 5px; color: #526779; font-size: 12px; line-height: 1.7; }
.visit-address { margin: 14px 0 18px; color: #455c70; font-style: normal; font-size: 14px; line-height: 1.8; }
.visit-map-frame { min-width: 0; margin: 18px 0; overflow: hidden; border: 1px solid #e0e7ed; border-radius: 10px; background: #f1f5f8; }
.visit-map-frame iframe { display: block; width: 100%; height: 320px; border: 0; }
.visit-card .visit-map-link { min-height: 48px; border-color: #c9d8e3; background: #f6f9fb; font-size: 16px; }
.social-tablist { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 20px 0 18px; padding: 5px; border-radius: 10px; background: #eef3f7; }
.social-tab { min-width: 0; min-height: 44px; padding: 9px 8px; border: 0; border-radius: 7px; background: transparent; color: #526779; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.social-tab[aria-selected="true"] { background: #061b38; color: #fff; box-shadow: 0 2px 6px rgba(6, 27, 56, .13); }
.social-tab:focus-visible { outline: 3px solid #087d32; outline-offset: 2px; }
.social-panel { min-width: 0; }
.social-embed-frame { min-width: 0; margin: auto; border: 1px solid #e1e7ed; border-radius: 10px; background: #f7f9fb; }
.social-embed-frame iframe { display: block; width: 100%; border: 0; border-radius: 10px; background: #fff; }
.social-instagram { width: 100%; max-width: 500px; }
.social-instagram iframe { height: 780px; }
.social-facebook { width: 100%; max-width: 340px; }
.social-facebook iframe { height: 520px; }
.social-profile-link { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; padding: 10px 6px; color: #163e5b; text-align: center; font-size: 15px; font-weight: 700; text-underline-offset: 4px; }
.social-noscript-links { margin: 12px 0 0; }
.social-noscript-links a { display: inline-block; padding: 12px 8px; }
.bw-cross-channel .line-save-section { margin-top: 24px; padding: 24px; border-color: #b4d8bc; border-radius: 16px; box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
.line-save-section ol { margin: 18px 0 22px; padding-left: 25px; }
.line-save-section li { padding-left: 4px; }
.line-save-section .line-secondary-link { display: inline-flex; min-height: 44px; align-items: center; margin-top: 10px; color: #274b60; font-weight: 700; text-underline-offset: 4px; }
.bw-cross-channel .store-details { margin-top: 20px; padding: 10px 20px; border-color: #dbe4ec; border-radius: 12px; }
@media (max-width: 540px) {
  .visit-card { padding: 20px 16px; }
  .visit-card h2 { font-size: 23px; }
  .store-gallery { gap: 9px; }
  .store-gallery figcaption { padding: 9px 8px; font-size: 12px; }
  .visit-facts { gap: 8px; }
  .visit-facts strong { font-size: 15px; }
  .visit-facts span { font-size: 11px; }
  .visit-map-frame iframe { height: 290px; }
  .social-instagram iframe { height: calc(100vw + 300px); min-height: 610px; max-height: 780px; }
  .bw-cross-channel .line-save-section { padding: 20px 16px; }
}
@media (max-width: 360px) {
  .visit-card { padding: 18px 12px; }
  .visit-card h2 { font-size: 21px; }
  .store-gallery { grid-template-columns: 1fr; }
  .visit-facts { grid-template-columns: 1fr; gap: 12px; }
  .visit-facts li { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 11px; }
  .visit-facts span { margin-top: 0; text-align: right; font-size: 12px; }
  .social-instagram iframe { min-height: 610px; }
}
@media print { .visit-story { display: none; } }

/* Scope shared layout and normalize only these cards across all LP shells. */
.woody-visit { width: 100%; max-width: 664px; margin: 28px auto; font-family: -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; line-height: 1.65; text-align: left; }
.woody-visit,.woody-visit * { box-sizing: border-box; }
.woody-visit [hidden] { display: none !important; }
.woody-visit .visit-card { padding: 24px; background: #fff; color: #061b38; }
.woody-visit .visit-card h2 { color: #061b38; }
.woody-visit img { max-width: 100%; }
.woody-visit .visit-map-link { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 14px; border: 1px solid #c9d8e3; border-radius: 9px; background: #f6f9fb; color: #061b38; font-size: 16px; font-weight: 800; line-height: 1.5; text-align: center; text-decoration: none; }
.woody-visit a:focus-visible { outline: 3px solid #087d32; outline-offset: 3px; }
@media(max-width:540px) { .woody-visit .visit-card { padding: 20px 16px; } }
@media(max-width:360px) { .woody-visit .visit-card { padding: 18px 12px; } }
/* The homepage has a wider section shell than individual campaign pages. */
body[data-lp-version^="conversion-"] .woody-visit { width: min(664px,calc(100% - 32px)); }
