/*
  Site-wide shape polish. Linked last in every page's <head> so it layers on
  top of each page's inline <style> without touching them.
  Goal: soften the hard 90° edges and hairline grids so the site reads as
  custom-built instead of a boxy template.
*/
:root {
  --r-pill: 999px;
  --r-card: 20px;
  --r-photo: 22px;
  --surface: rgba(245,245,240,0.035);
  --surface-line: rgba(245,245,240,0.08);
}

/* ---------- Buttons, tags, nav CTA → pills ---------- */
.nav-cta, .hero-cta, .section-cta, .movement-cta,
.btn-primary, .btn-secondary, .btn-teal, .btn-shop-placeholder,
.ticket-cta, .tier-cta, .notify-btn,
.in-progress-tag, .placeholder-tag, .coming-tag, .event-tag,
.product-tag, .retreats-tag, .tier-badge {
  border-radius: var(--r-pill);
}

/* Email capture: input + button read as one rounded control */
.notify-form { border-radius: var(--r-pill); overflow: hidden; }
.notify-success { border-radius: var(--r-pill); }
@media (max-width: 768px) {
  .notify-form, .notify-success { border-radius: 16px; }
}

/* ---------- Hairline grids → spaced, rounded cards ---------- */
.vehicles-grid, .follow-grid, .pillars {
  gap: 14px;
  background: transparent;
}
.vehicle-tile, .follow-tile, .pillar {
  background: var(--surface);
  border: 1px solid var(--surface-line);
  border-radius: var(--r-card);
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
}
.vehicle-tile:hover, .follow-tile:hover {
  background: rgba(245,245,240,0.07);
  border-color: rgba(245,245,240,0.18);
  transform: translateY(-2px);
}

.tier-card, .event-card, .countdown-card {
  border-radius: var(--r-card);
}

.live-strip {
  gap: 14px;
  background: transparent;
  border: none;
  padding: 14px;
}
.live-strip-tile { border-radius: var(--r-photo); }

/* ---------- Contained photos → rounded ---------- */
.origin-photo, .vision-photo,
.philosophy-photo, .philosophy-photo-accent,
.faq-photo-main, .faq-photo-accent,
.what-photo-main, .what-photo-accent, .what-photo-wide,
.product-photo, .cant-buy-photo {
  border-radius: var(--r-photo);
  overflow: hidden;
}
.philosophy-photo img, .faq-photo-main img, .what-photo-main img,
.what-photo-wide img, .product-photo img, .cant-buy-photo img {
  border-radius: inherit;
}

/* Movement page mosaic: inset with gutters instead of edge-to-edge hairlines */
.mosaic {
  gap: 14px;
  padding: 14px;
  grid-template-rows: calc(50vh - 21px) calc(50vh - 21px);
}
.mosaic-main, .mosaic-top, .mosaic-bottom {
  border: none;
  border-radius: var(--r-photo);
}
@media (max-width: 768px) {
  .mosaic { grid-template-rows: auto; }
}

/* Meet EB photo strip: same treatment */
.photo-grid { gap: 14px; padding: 14px; }
.photo-cell { border: none; border-radius: var(--r-photo); }
@media (max-width: 768px) {
  .photo-cell { border-bottom: none; }
}
