/*
 * Palette + type derived from a short design review of real UK/international
 * wedding sites (Rock My Wedding, Junebug Weddings, Love My Dress, Hitched,
 * Bridebook): warm ivory backgrounds (not stark white), a single restrained
 * warm accent rather than competing brights, serif display headings over a
 * clean sans body, and sharp-ish (not pill-rounded) corners on cards/imagery
 * for an editorial rather than "app" feel.
 *
 * Base is a light dusty-rose/blush tone (not a dark nav) with gold as the
 * accent — chosen after forest-green and bronze/brown bases were both
 * rejected as too harsh/earthy.
 */
:root {
  --sw-ivory: #fbf6ef;
  --sw-ivory-deep: #f3e9dd;
  --sw-charcoal: #2a2420;
  --sw-blush: #f0d9d3;
  --sw-blush-deep: #d9a89e;
  --sw-gold: #b98a2c;
  --sw-gold-soft: #d8b569;
  --sw-radius: .25rem;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--sw-ivory);
  color: var(--sw-charcoal);
}

main.flex-grow-1 { background: var(--sw-ivory); }

h1, h2, h3, .display-5 {
  font-family: 'Cormorant Garamond', Georgia, serif;
}

a { color: #9c6b28; }
a:hover { color: var(--sw-gold); }

.sw-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 2000;
  background: #fff; color: #000; padding: .5rem 1rem; border-radius: 0 0 .25rem 0;
}
.sw-skip-link:focus { left: 0; }

.sw-strapline { color: var(--sw-charcoal); opacity: .75; white-space: nowrap; }

.sw-navbar { background: var(--sw-blush) !important; border-bottom: 1px solid var(--sw-blush-deep); }
.sw-navbar .nav-link { color: var(--sw-charcoal); opacity: .8; }
.sw-navbar .nav-link:hover, .sw-navbar .nav-link.active { color: #9c6b28; opacity: 1; }
.sw-navbar .dropdown-menu { border-color: var(--sw-blush-deep); }
.sw-navbar .dropdown-item:hover, .sw-navbar .dropdown-item:focus { background: var(--sw-ivory-deep); color: #9c6b28; }
.sw-logo-mark { color: var(--sw-charcoal); }
.sw-logo-img { height: 100px; width: auto; max-width: none; }
.sw-logo-img-footer { height: 88px; }
@media (max-width: 767.98px) {
  .sw-logo-img { height: 68px; }
}
@media (max-width: 575.98px) {
  .sw-logo-img { height: 56px; }
}

.btn-warning {
  background: var(--sw-gold); border-color: var(--sw-gold); color: #241c0e;
  border-radius: var(--sw-radius);
}
.btn-warning:hover, .btn-warning:focus { background: var(--sw-gold-soft); border-color: var(--sw-gold-soft); color: #241c0e; }
.btn-outline-light { border-radius: var(--sw-radius); border-color: var(--sw-charcoal); color: var(--sw-charcoal); }
.btn-outline-light:hover { background: var(--sw-charcoal); border-color: var(--sw-charcoal); color: var(--sw-blush); }
.text-warning { color: #9c6b28 !important; }

.sw-hero {
  background: linear-gradient(135deg, var(--sw-blush), var(--sw-blush-deep));
  color: var(--sw-charcoal);
  border-radius: var(--sw-radius);
  position: relative;
  overflow: hidden;
}
.sw-hero .lead { color: #5a4a42; }
.sw-hero-motif { color: #9c6b28; opacity: .8; }
.sw-hero-motif svg { width: 100%; height: auto; max-width: 170px; }

.sw-tile {
  display: block; text-decoration: none; color: inherit;
  background: #fff; border: 1px solid #e9e0d2; border-radius: var(--sw-radius);
  transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
  position: relative;
}
.sw-tile:hover { box-shadow: 0 .5rem 1.25rem rgba(31,51,39,.1); transform: translateY(-2px); border-color: var(--sw-gold-soft); }
.sw-tile-icon { font-size: 1.75rem; color: var(--sw-gold); }

.sw-card {
  text-decoration: none; color: inherit;
  background: #fff; border: 1px solid #e9e0d2; border-radius: var(--sw-radius);
  overflow: hidden;
  transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.sw-card:hover { box-shadow: 0 .5rem 1.25rem rgba(31,51,39,.1); transform: translateY(-2px); border-color: var(--sw-gold-soft); }

.bg-light { background: var(--sw-ivory-deep) !important; }

.sw-sidebar-sticky { position: sticky; top: 5rem; }

.legacy-content { font-size: 1.05rem; line-height: 1.7; }
.legacy-content h1, .legacy-content h2, .legacy-content h3 { margin-top: 1.75rem; font-family: 'Cormorant Garamond', serif; font-weight: 700; }
.legacy-content p { margin-bottom: 1rem; }
.legacy-content img { max-width: 100%; height: auto; border-radius: var(--sw-radius); }
.legacy-content .boxgrid { display: inline-block; width: 220px; margin: 0 .75rem 1.25rem 0; vertical-align: top; }
.legacy-content .boxgrid img { display: block; }
.legacy-content .boxgrid h2 { font-size: 1.1rem; margin-top: .5rem; }

/* AdSense placeholder slots collapse cleanly when unfilled (no real slot ID set yet) */
.sw-ad { min-height: 0; }
.sw-ad-placeholder {
  min-height: 0;
  overflow: hidden;
}
.sw-ad-placeholder ins.adsbygoogle:empty { display: none !important; }

.navbar-brand { font-size: 1.4rem; }

.breadcrumb-item + .breadcrumb-item::before { color: #a89a86; }

footer.sw-footer { background: var(--sw-blush) !important; color: var(--sw-charcoal); }
footer.sw-footer a.link-light { color: var(--sw-charcoal) !important; }
footer.sw-footer a.link-light:hover { color: #9c6b28 !important; }
footer.sw-footer .text-secondary { color: #6b5d54 !important; }
footer.sw-footer hr.border-secondary { border-color: var(--sw-blush-deep) !important; }

/* Photo gallery + modal lightbox (venue/supplier detail pages) */
.sw-gallery img { cursor: pointer; }
.sw-lightbox {
  position: fixed; inset: 0; z-index: 2000; background: rgba(20,15,12,.92);
  display: none; align-items: center; justify-content: center; padding: 2rem;
}
.sw-lightbox.show { display: flex; }
.sw-lightbox img { max-width: 90vw; max-height: 80vh; object-fit: contain; border-radius: .25rem; }
.sw-lightbox figcaption { color: #f0d9d3; text-align: center; margin-top: .75rem; font-size: .875rem; }
.sw-lightbox-close, .sw-lightbox-prev, .sw-lightbox-next {
  position: absolute; background: rgba(255,255,255,.12); color: #fff; border: none; border-radius: 50%;
  width: 44px; height: 44px; font-size: 1.25rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.sw-lightbox-close:hover, .sw-lightbox-prev:hover, .sw-lightbox-next:hover { background: rgba(255,255,255,.25); }
.sw-lightbox-close { top: 1.5rem; right: 1.5rem; }
.sw-lightbox-prev { left: 1.5rem; top: 50%; transform: translateY(-50%); }
.sw-lightbox-next { right: 1.5rem; top: 50%; transform: translateY(-50%); }
