/* ===========================
   Library Page (updated)
   =========================== */

/* Base + shared */
body {
  margin: 0;
  font-family: Arial, sans-serif;
  background: #fff;
  color: #000;
}
.container-narrow {
  margin: 0 auto;
  padding: 1rem 3rem;
}

.lib-header { display: flex; align-items: center; }
.lib-title {
  padding: 1rem 2rem;
  font-size: 1.8rem;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0;
}
.blue-dot {
  width: 1.5rem; height: 1.5rem;
  background: #006699; border-radius: 50%;
  display: inline-block; margin-left: .5rem;
}

.section-rule { border: none; border-top: 1px solid black; margin: 0; }

/* Full-bleed hero */
.full-bleed { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; }
.full-width-hero { width: 100%; height: auto; display: block; }

.section-spaced { padding: 1rem 5rem; }

/* Two-column split */
.grid-2 { display: grid; grid-template-columns: 1.25fr 1fr; gap: 2rem; }
.split-text p { color: #333; line-height: 1.65; margin: .6rem 0; }
.section-heading { margin: 0 0 .75rem; font-weight: 800; text-transform: uppercase; font-size: 1rem; }

.split-media { margin: 0; }
.split-media img { width: 100%; height: auto; display: block; object-fit: cover; }

/* Reverse split (image on right) */
.split--rev { grid-template-columns: 1fr 1.1fr; }
.split--rev .split-media { order: 2; }
.split--rev .split-text  { order: 1; }

/* Media grid (two tall thumbs) */
.media-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-content: start; }
.media-grid figure { margin: 0; }
.media-grid img { width: 100%; height: auto; display: block; object-fit: cover; border: 1px solid #e5e5e5; }

/* ---------------------------
   CTA stack (full-width bar)
   --------------------------- */
.cta-stack--full {
  grid-column: 1 / -1;       /* span both columns */
  width: 100%;
  margin-top: .75rem;
}
.cta-stack { display: flex; flex-direction: column; gap: .6rem; }
.cta {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  width: 100%;
  padding: .75rem .9rem;
  border: 2px solid #1b1b1b;
  text-decoration: none; color: #111; font-weight: 700; text-transform: uppercase; letter-spacing: .01em;
}
.cta img { width: 18px; height: auto; display: block; }
.cta-plus { font-size: 1.1rem; line-height: 1; display: inline-block; transform: translateY(-1px); }

.cta--light { background: #fff; }
.cta--teal  { background: #11A9B3; color: #001a1c; }
.cta--red   { background: #C14E42; color: #111; }

/* Optional embedded form */
.form-embed iframe { border: 1px solid #e5e5e5; background: #fff; }

/* ---------------------------
   Location section tweaks
   --------------------------- */

/* Align both column bottoms (big image & small image) */
.split--location { align-items: end; }               /* grid item baseline */
.split--location .split-text {
  display: flex; flex-direction: column; min-height: 100%;
}
.split--location .split-media { align-self: self-start; }

/* Small left image sits at the bottom of the text column */
.mini-figure { margin: 1rem 0 0; }
.mini-figure img { width: 60%; height: auto; display: block; border: 1px solid #e5e5e5; }

/* Inline “Get directions” link under paragraph */
.get-directions { margin: .6rem 0 0; }
.get-directions a {
  display: inline-flex; align-items: center; gap: .35rem;
  font-weight: 700; color: inherit; text-decoration: none;
  border-bottom: 2px solid #1b1b1b; padding-bottom: 2px;
}
.get-directions a .arrow img {
  width: 16px; height: auto; display: inline-block; transform: translateY(1px);
}

/* Small caption option (if used elsewhere) */
.mini-caption { font-size: .9rem; color: #333; margin-top: .35rem; }
.mini-caption a { color: inherit; }

/* ---------------------------
   Responsive
   --------------------------- */
@media (max-width: 980px) {
  .grid-2 { grid-template-columns: 1fr; }      /* stack columns */
  .split--rev { grid-template-columns: 1fr; }
  .split--rev .split-media { order: initial; }
  .split--location { align-items: start; }      /* natural flow on mobile */
  .split--location .split-media { align-self: start; }
  .mini-figure { margin-top: .75rem; }
}

@media (max-width: 640px) {
  .container-narrow { padding: 0 1.25rem; }
  .media-grid { grid-template-columns: 1fr; }
}

/* Directions link */
.get-directions a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-weight: 700;
  color: inherit;
  text-decoration: none;
  border-bottom: 2px solid #1b1b1b;
  padding-bottom: 2px;
}

.get-directions a .arrow img {
  width: 16px;
  height: auto;
  display: inline-block;
  transform: translateY(1px);
}

.get-directions a .map-icon img {
  width: 20px;        /* slightly bigger for visibility */
  height: auto;
  display: inline-block;
  transform: translateY(2px); /* aligns visually with text */
}
