:root{
  --bg:#f9f6f1; --surface:#fff; --ink:#1e1b16; --muted:#6e6a62;
  --accent:#6e8a72; --accent-2:#d9e3d7; --ring:#e8e2d8; --radius:16px;
  --maxw:1000px;
}
*{box-sizing:border-box}
html,/* bg cleared */
h1,h2,h3{font-family:"Cormorant Garamond","Times New Roman",serif;margin:.25rem 0 1rem}
a{color:var(--accent)} a:hover{color:#000}
.container{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.section{padding:2.5rem 0;border-top:0} .section:first-of-type{border-top:0}
.card{border:0;border-radius:16px;padding:1.25rem;background:#fff;box-shadow:none}
.center{text-align:center} .muted{color:var(--muted)}
/* background trees */
/* bg before cleared */
/* nav */
.site-header{position:sticky;top:0;z-index:10;background:rgba(249,246,241,.85);
  backdrop-filter:blur(10px);border-bottom:0}
.nav{display:flex;justify-content:center;gap:.9rem;flex-wrap:wrap;align-items:center;height:68px}
.nav a{display:inline-block;padding:.68rem 1.05rem;border-radius:999px;text-decoration:none;color:inherit;font-size:1.18rem}
.nav a[aria-current="page"],.nav a:hover{background:var(--accent-2)}
/* hero */
.hero{position:relative;border-bottom:0;overflow:hidden}
.hero img{width:100%;height:44vh;object-fit:cover;object-position:center}
.hero .title{position:absolute;left:0;right:0;bottom:12%;text-align:center;
  font-family:"Cormorant Garamond","Times New Roman",serif;font-size:clamp(2rem,3.5vw,2.9rem);font-weight:600;text-shadow:0 1px 0 rgba(255,255,255,.7)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.2rem;border-radius:999px;
  border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600}
.btn:hover{background:#1e1b16;border-color:#1e1b16}
/* registry */
.registry-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:820px){.registry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.registry-item .actions{display:flex;gap:.5rem;flex-wrap:wrap}
.registry-item.purchased{opacity:.55}
.status{font-weight:600;color:var(--accent)}
/* photo strip — big but sane */
.photo-strip{max-width:92%;margin:0 auto}
@media(min-width:900px){.photo-strip{max-width:940px}}
.photo-strip img{border-radius:14px;width:100%;height:auto;max-height:70vh;object-fit:cover}
/* badges */
.badge{display:inline-block;background:#f3d6c7;color:#5b463f;padding:.4rem .75rem;border-radius:999px;font-weight:600}
/* forms */
.form{display:grid;gap:1rem}
.form label{display:block;font-weight:600}
.form input,.form textarea{width:100%;padding:.85rem;border:1px solid var(--ring);border-radius:12px;background:#fff}
@media(min-width:820px){
  .form--grid{grid-template-columns:1fr 1fr}
  .form--grid .full{grid-column:1/-1}
}
/* Rules page – icon cards */
.rules-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:900px){.rules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rule-card{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;border:1px solid var(--ring);
  border-radius:16px;padding:1rem;background:#fff}
.rule-card .icon{font-size:1.5rem;line-height:1}

/* === Overrides: remove bottom RSVP buttons site-wide === */
.rsvp-now, .footer-rsvp, .cta-rsvp, .home .cta .btn[href*="rsvp"], .btn-cta-rsvp {
  display: none !important;
}

/* === Mobile layout improvements === */
@media (max-width: 768px) {
  .hero img {
    object-fit: cover;
    width: 100%;
    height: 38vh; /* reduce giant top image */
  }
  .hero { max-height: 38vh; overflow: hidden; }
  .site-header .nav, header .nav, nav { gap: 16px; }
  .container, main, section { padding-left: 16px; padding-right: 16px; }
  .grid, .form--grid {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .card, .panel, .note, .box { margin: 12px 0; border-radius: 14px; }
}
/* Tweak overall max width and line lengths */
main .container, .container {
  max-width: 960px;
  margin: 0 auto;
}

/* === Remove border/container from strip photo on home === */
.strip, .photo-strip, .gallery-strip {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* === Details page flow & subtle background === */
body.details {
  background-image: url('images/tree.png'), linear-gradient(#f8f5ef,#f8f5ef);
  background-repeat: repeat, no-repeat;
  background-size: 360px auto, auto;
  background-attachment: fixed, scroll;
}
.details main section {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0.5rem 0 !important;
  margin: 0.5rem 0 !important;
  border: 0 !important;
}
.details .card, .details .panel, .details .box {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
}
.details h2, .details h3 { margin-top: 1.25rem; }

/* === Convert plain rules list to cards === */
.rules ul { list-style: none; padding: 0; }
.rules ul li {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 14px 16px;
  margin: 10px 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.rules ul li::before {
  content: '•';
  display: inline-block;
  font-size: 18px;
  line-height: 1;
}

/* ===== Hard overrides (v3) ===== */

/* Remove "RSVP now" CTAs anywhere outside the navbar */
.rsvp-now, .footer-rsvp, .cta-rsvp,
a[href="rsvp.html"].btn, a.btn[href*="rsvp.html"]:not(.nav a) {
  display: none !important;
}

/* Mobile improvements */
@media (max-width: 768px) {
  .hero { max-height: 36vh !important; overflow: hidden !important; }
  .hero img { width: 100% !important; height: 36vh !important; object-fit: cover !important; }
  .container, main, section { padding-left: 16px !important; padding-right: 16px !important; }
  .form--grid, .grid { grid-template-columns: 1fr !important; gap: 12px !important; }
}

/* Strip/gallery cleanup */
.strip, .photo-strip, .gallery-strip, .strip .frame, .photo-strip .frame {
  border: none !important; box-shadow: none !important; background: transparent !important;
}

/* Details page flow + tree bg */
body.details {
  background-image: url('images/Tree.png');
  background-repeat: repeat;
  background-size: 360px auto;
  background-attachment: fixed;
}
.details main section, .details .section {
  background: transparent !important; box-shadow: none !important;
  padding: 8px 0 !important; margin: 8px 0 !important; border: 0 !important;
}
.details .card, .details .panel, .details .box { background: #fff; border: 1px solid rgba(0,0,0,0.06); }

/* Rules as cards */
.rules ul { list-style: none; padding: 0; }
.rules ul li {
  background: #fff; border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px; padding: 14px 16px; margin: 10px 0;
  display: flex; align-items: center; gap: 12px;
}

/* ===== v4 styling pass ===== */

/* Palette accents */
:root {
  --green: #2f6d46;
}

/* Shorter hero on desktop + mobile */
.hero { max-height: 30vh !important; overflow: hidden !important; position: relative; }
.hero img { height: 30vh !important; width: 100% !important; object-fit: cover !important; }
@media (max-width: 768px) {
  .hero { max-height: 25vh !important; }
  .hero img { height: 25vh !important; }
}

/* Larger page titles */
.hero .title, .page-title, h1.site-title {
  font-size: clamp(2rem, 3.2vw + 1rem, 2.8rem) !important;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 2px rgba(0,0,0,0.35);
}

/* Remove heavy separators / lines in details */
.details hr, .details .section-sep, .details .divider {
  display: none !important;
}
.details main section, .details .section {
  margin: 14px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* More green accents */
.badge, .chip, .tag { background: #e7f2eb !important; color: var(--green) !important; }
a.btn, .btn { background: var(--green) !important; color: #fff !important; border: none; }
a.btn:hover, .btn:hover { filter: brightness(0.95); }
.nav a:hover, nav a:hover { color: var(--green) !important; }

/* Headings with subtle green underline */
.details h2, .details h3, .rules h2, .rules h3 {
  position: relative;
  padding-bottom: 6px;
}
.details h2::after, .details h3::after,
.rules h2::after, .rules h3::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 42px; height: 3px;
  background: var(--green);
  border-radius: 3px;
}

/* FAQ: make tappable with caret and hover */
details summary {
  list-style: none;
  cursor: pointer;
  font-weight: 600;
  padding: 12px 14px;
  border-radius: 12px;
  background: #faf7f0;
  border: 1px solid rgba(0,0,0,0.08);
  position: relative;
}
details[open] summary {
  background: #f0f8f3;
  border-left: 3px solid var(--green);
}
details summary::marker { display: none; }
details summary::after {
  content: "▸";
  position: absolute;
  right: 12px; top: 50%; transform: translateY(-50%);
  color: var(--green);
  transition: transform 0.2s ease;
}
details[open] summary::after { transform: translateY(-50%) rotate(90deg); }

details .answer, details > *:not(summary) {
  padding: 10px 14px 14px 16px;
}

/* Home strip photo: ensure no container look */
.strip, .photo-strip, .gallery-strip, .strip .frame, .photo-strip .frame {
  border: none !important; box-shadow: none !important; background: transparent !important;
}

/* Mobile tightening */
@media (max-width: 768px) {
  .container, main, section { padding-left: 14px !important; padding-right: 14px !important; }
  .grid, .form--grid { grid-template-columns: 1fr !important; gap: 10px !important; }
}

/* ===== v5 mobile/nav/details tweaks ===== */

/* Mobile nav: tighter spacing, wrap & center */
@media (max-width: 768px) {
  .site-header nav, header nav, .nav {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 12px !important;
    padding: 8px 12px !important;
  }
  .site-header nav a, header nav a, nav a {
    font-size: 0.95rem !important;
    padding: 6px 4px !important;
    line-height: 1.1 !important;
    flex: 1 1 auto;
    text-align: center;
  }
}

/* Even tighter hero on phones + stronger title readability */
@media (max-width: 768px) {
  .hero { max-height: 22vh !important; }
  .hero img { height: 22vh !important; }
}
.hero {
  position: relative;
}
.hero::after {
  /* dark-to-transparent gradient to lift title legibility */
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 70%, rgba(0,0,0,0.45) 100%);
  pointer-events: none;
}
.hero .title {
  position: absolute;
  left: 50%; bottom: 10%;
  transform: translateX(-50%);
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.6);
  font-size: clamp(2rem, 4.2vw + 0.6rem, 3.1rem) !important;
  z-index: 1;
}

/* Details page: remove separating lines and big gaps */
.details hr,
.details .divider,
.details .section-sep,
.details .container > .line,
.details .container > .rule { display: none !important; }

.details main section,
.details .section,
.details .block {
  margin: 10px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.details .card, .details .panel {
  border: 1px solid rgba(0,0,0,0.08);
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
}

/* FAQ tap affordance stronger on mobile */
@media (max-width: 768px) {
  details summary { padding: 14px 16px !important; font-size: 1rem !important; }
}

/* Registry placeholder */
.registry .coming-soon {
  text-align: center;
  padding: 56px 16px;
  color: #222;
  background: #f4faf6;
  border: 1px dashed rgba(47,109,70,0.35);
  border-radius: 16px;
  max-width: 760px; margin: 40px auto;
}
.registry .coming-soon h1 { margin: 0 0 10px; font-size: 1.6rem; color: var(--green); }
.registry .coming-soon p { margin: 0; }

/* ===== v6 kill-detail-separators hard ===== */
.details hr,
.details .divider,
.details .section-sep,
.details .rule,
.details .line { display: none !important; }

/* Many themes draw lines via borders on containers/sections */
.details main,
.details .container,
.details section,
.details .section,
.details .row,
.details .block {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Some draw separators using ::before/::after hairlines */
.details main::before,
.details main::after,
.details .container::before,
.details .container::after,
.details section::before,
.details section::after,
.details .section::before,
.details .section::after { content: none !important; display: none !important; box-shadow: none !important; height: 0 !important; }

/* Also remove top/bottom borders added to immediate children */
.details main > *,
.details .container > * {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* Tighten vertical rhythm a touch after removing lines */
.details main > * { margin-top: 12px !important; margin-bottom: 12px !important; }

/* ===== v7 fixes ===== */

/* Single big tree background on all pages */
/* bg cleared */

/* Details: absolutely no separators */
body.details hr,
body.details .divider,
body.details .section-sep,
body.details .rule,
body.details .line { display: none !important; }
body.details main,
body.details .container,
body.details section,
body.details .section,
body.details .row,
body.details .block {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
body.details main::before,
body.details main::after,
body.details .container::before,
body.details .container::after,
body.details section::before,
body.details section::after,
body.details .section::before,
body.details .section::after { content: none !important; display: none !important; }
body.details main > *,
body.details .container > * { border: 0 !important; }
body.details main > * { margin-top: 10px !important; margin-bottom: 10px !important; }

/* Even tighter hero on phones + stronger title */
@media (max-width: 768px) {
  .hero { max-height: 20vh !important; }
  .hero img { height: 20vh !important; }
  .hero .title { font-size: clamp(1.9rem, 6vw, 2.4rem) !important; }
}

/* Rules: card style for notes list */
.rules .notes-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap: 14px;
  margin-top: 14px;
}
.rules .rule-card {
  display: flex; gap: 12px; align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 14px 16px;
}
.rule-card .icon { font-size: 20px; line-height: 1; }
.rule-card .text strong { display: block; margin-bottom: 4px; }

/* ===== v8 hard kill lines & correct tree ===== */

/* Use correct tree image (Tree.png) with high transparency */
/* bg cleared */
/* bg before cleared */

/* Hardest nuke of detail separators */
body.details hr,
body.details .divider,
body.details .section-sep,
body.details .rule,
body.details .line,
body.details main > hr,
body.details main > div[style*="border"],
body.details main > section[style*="border"],
body.details main [style*="border-bottom"],
body.details main [style*="border-top"] {
  display: none !important;
  border: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.details main,
body.details .container,
body.details section,
body.details .section,
body.details .row,
body.details .block {
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
body.details main::before,
body.details main::after,
body.details .container::before,
body.details .container::after,
body.details section::before,
body.details section::after,
body.details .section::before,
body.details .section::after {
  content: none !important;
  display: none !important;
}

/* ===== v9 fixes ===== */

/* Tree background more transparent */
/* bg before cleared */

/* Rules: unify into single card list, no duplicates */
.rules .notes-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
}
.rules .rule-card {
  display: flex; gap: 12px; align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 14px 16px;
}
.rule-card .icon { font-size: 20px; line-height: 1; }
.rule-card .text strong { display: block; margin-bottom: 4px; }

/* ===== v10 definitive rules+bg+lines ===== */

/* Single faint tree across pages */
body { position: relative; }
body::before { content:''; position:fixed; inset:0; background:url('images/Tree.png') no-repeat center top; background-size:900px auto; opacity:.05; pointer-events:none; z-index:0; }

/* Brutal remove of separators on Details */
body.details hr,
body.details [class*="divider"],
body.details [class*="line"],
body.details [style*="border-bottom"],
body.details [style*="border-top"] { display:none !important; border:0 !important; }
body.details main, body.details section, body.details .container, body.details .section {
  border:0 !important; box-shadow:none !important; background-image:none !important;
}
body.details *::before, body.details *::after {
  border:0 !important; background:none !important;
}

/* Rules unified cards (single container) */
.rules .notes-cards { display:flex; flex-direction:column; gap:12px; margin-top:14px; }
.rules .rule-card { display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid rgba(0,0,0,0.08); border-radius:16px; padding:14px 16px; }
.rule-card .icon { font-size:20px; line-height:1; }
.rule-card .text strong { display:block; margin-bottom:4px; }

/* ===== v11: hard remove lines, improve spacing, rules cleanup ===== */

/* Kill ALL hr/separator lines anywhere */
hr, .divider, .section-sep, .line {
  display: none !important;
  border: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Details: no borders/shadows on section wrappers; tighter rhythm */
body.details main,
body.details section,
body.details .container,
body.details .section,
body.details .row,
body.details .block {
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
  margin-top: 12px !important;
  margin-bottom: 12px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Rules: single container card list (no outer big box) */
.rules .notes-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin: 0 0 16px 0;
  padding: 0;
}
.rules .rule-card {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 16px 18px;
  font-size: 1rem;
  line-height: 1.35;
}
.rules .rule-card .icon { font-size: 20px; line-height: 1; }
.rules .rule-card .text strong { display: block; margin-bottom: 4px; }

/* Remove any large outer box around the rules list */
.rules .notes-wrapper,
.rules .notes,
.rules .panel,
.rules .card {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Move cards up closer to heading area */
.rules h2, .rules h3 { margin-bottom: 10px !important; }

/* ===== v12: remove phantom borders + improve typography site-wide ===== */

/* Kill hairline borders & shadows that create page-wide frames */
.site-header, header, nav, .nav, .hero, .hero img,
main, .container, section, .content, .wrapper, .page, .panel, .card {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Remove any top/bottom lines from headers/nav areas */
.site-header::before, .site-header::after,
header::before, header::after,
nav::before, nav::after,
.hero::before, .hero::after {
  content: none !important;
  display: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Typography: larger, more readable across the site */

@media (min-width: 900px) {  }

body { color: #1a1a1a; line-height: 1.6; }

p, li { font-size: 1.06rem; }
.small, small { font-size: 0.92rem; }

h1 { font-size: clamp(2rem, 3.6vw + 0.5rem, 3.2rem); line-height: 1.2; }
h2 { font-size: clamp(1.6rem, 2.2vw + 0.4rem, 2.2rem); line-height: 1.25; }
h3 { font-size: clamp(1.3rem, 1.6vw + 0.3rem, 1.6rem); line-height: 1.3; }

/* Nav links slightly larger & better tap targets */
.site-header nav a, header nav a, nav a {
  font-size: 1rem !important;
  padding: 10px 12px !important;
}

/* Hero title stronger & readable */
.hero { position: relative; }
.hero .title {
  position: absolute; left: 50%; bottom: 10%; transform: translateX(-50%);
  color: #fff !important; text-shadow: 0 2px 6px rgba(0,0,0,0.55);
  font-size: clamp(2.2rem, 4.2vw + 0.4rem, 3.2rem) !important;
  z-index: 1;
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.28) 70%, rgba(0,0,0,0.38) 100%);
  pointer-events: none;
}

/* Mobile hero even tighter */
@media (max-width: 768px) {
  .hero { max-height: 20vh !important; }
  .hero img { height: 20vh !important; object-fit: cover !important; }
}

/* Rules list: remove any outer container border visible in screenshot */
.rules .notes-cards { margin-top: 6px; }
.rules .notes-cards, .rules .notes-outside, .rules .notes-box, .rules .list-wrap {
  border: 0 !important; box-shadow: none !important; background: transparent !important;
}

/* ===== v13: remove page-wide frame/borders under header and around content ===== */

/* Likely sources: header/nav bottom borders, wrapper/container borders, pseudo hairlines */
.site-header, header, nav, .nav {
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
.site-header::before, .site-header::after,
header::before, header::after,
nav::before, nav::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Remove any page frame on main wrappers without touching cards */
.page, .page-wrap, .page-wrapper, .wrapper, .wrap, .content, .content-wrap, main, .container {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Some templates draw a hairline using background gradients on wrappers */
.page, .page-wrap, .content, main {
  background-image: none !important;
}

/* Ensure hero image and sections don't have top/bottom borders */
.hero, .hero img, section, .section {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* Keep cards clean but keep their internal borders intact */
.card, .panel, .rule-card {
  /* do not change */
}

/* Increase contrast of text slightly after removing lines */
body { color: #171717; }

/* ===== v14: readable type scale ===== */
               /* base */
@media (min-width: 900px) {  }  /* larger on desktop */

body { color: #161616; line-height: 1.65; }

p, li { font-size: 1.12rem; }           /* bump paragraph/list size */
small, .small { font-size: 0.96rem; }

h1 { font-size: clamp(2.2rem, 3.8vw + 0.5rem, 3.4rem); line-height: 1.2; }
h2 { font-size: clamp(1.7rem, 2.4vw + 0.4rem, 2.3rem); line-height: 1.25; }
h3 { font-size: clamp(1.35rem, 1.8vw + 0.3rem, 1.7rem); line-height: 1.3; }

/* nav links and buttons a touch bigger */
nav a, .nav a { font-size: 1.02rem !important; }
.btn, a.btn, button { font-size: 1.02rem; }

/* Defense: remove page frame lines */
header, .site-header, nav, .nav, main, .container, .content, .page, .wrapper {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ===== v15 global fixes ===== */

/* Readable type scale (enforced) */
body {  line-height: 1.65 !important; color:#161616; }
@media (min-width: 900px) { body {  } }
p, li { font-size: 1.12rem !important; }
h1 { font-size: clamp(2.4rem, 4vw + 0.5rem, 3.6rem) !important; line-height: 1.2 !important; }
h2 { font-size: clamp(1.8rem, 2.6vw + 0.4rem, 2.4rem) !important; line-height: 1.25 !important; }
h3 { font-size: clamp(1.4rem, 1.9vw + 0.3rem, 1.75rem) !important; line-height: 1.3 !important; }
nav a, .nav a { font-size: 1.05rem !important; padding: 10px 12px !important; }

/* Kill cream spacer/strip under nav across pages */
.site-header + *, header + *, nav + * {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
  background: transparent !important;
}
/* And remove any "spacer" divs commonly used */
.spacer, .spacer--nav, .spacer-top, .section--spacer { display: none !important; height: 0 !important; }

/* Ensure wrappers don't draw frames */
.wrapper, .wrap, .page, .page-wrap, .content, .container, main, section {
  border: 0 !important; box-shadow: none !important; background-image: none !important;
}

/* Hero readability */
.hero { position: relative; }
.hero .title { font-size: clamp(2.4rem, 4.2vw + 0.4rem, 3.6rem) !important; }
@media (max-width: 768px) {
  .hero { max-height: 20vh !important; }
  .hero img { height: 20vh !important; object-fit: cover !important; }
}

/* Tree watermark faint */
body::before { content:''; position:fixed; inset:0; background:url('images/Tree.png') no-repeat center top; background-size:900px auto; opacity:.05; pointer-events:none; z-index:0; }

/* ===== v16: absolutely remove page frame & increase type ===== */

/* 1) Kill ANY border/outline/box-shadow/background-line used as frame */
html, body, #page, #wrapper, #content, .site, .site-content,
.page, .page-wrap, .wrap, .wrapper, .container, main, header, nav, footer, section {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  border-image: none !important;
  background-image: none !important;
}

/* Also nuke pseudo-element hairlines */
html::before, html::after, body::before, body::after,
#page::before, #page::after, header::before, header::after,
nav::before, nav::after, main::before, main::after,
.container::before, .container::after, section::before, section::after {
  content: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
}

/* 2) Remove any leftover top/bottom borders on header/nav */
header, .site-header, nav, .nav {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* 3) Truly zero the spacer strip under header/nav */
header + *, .site-header + *, nav + * {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
  background: transparent !important;
}

/* 4) Increase readable base sizes */
body {  line-height: 1.7 !important; color:#151515; }
@media (min-width: 1100px) { body {  } }
p, li { font-size: 1.12rem !important; }

h1 { font-size: clamp(2.6rem, 4.4vw + 0.5rem, 3.8rem) !important; line-height: 1.18 !important; }
h2 { font-size: clamp(1.9rem, 2.7vw + 0.4rem, 2.5rem) !important; line-height: 1.24 !important; }
h3 { font-size: clamp(1.45rem, 2vw + 0.3rem, 1.8rem) !important; line-height: 1.28 !important; }

/* Nav/link size */
nav a, .nav a { font-size: 1.06rem !important; padding: 10px 12px !important; }

/* Keep cards' soft borders (do not remove them) */
.card, .panel, .rule-card { border: 1px solid rgba(0,0,0,0.1) !important; box-shadow: none !important; }

/* ===== v17 ground-up fixes ===== */

/* 1) Readable base type (use rem across site) */
html { font-size: 18px !important; }                 /* mobile/tablet */
@media (min-width: 1200px) { html { font-size: 19px !important; } } /* desktop */
body { line-height: 1.7 !important; color: #161616; }
p, li { font-size: 1.12rem !important; }
h1 { font-size: clamp(2.4rem, 4vw + 0.6rem, 3.6rem) !important; line-height: 1.18; }
h2 { font-size: clamp(1.8rem, 2.6vw + 0.5rem, 2.4rem) !important; }
h3 { font-size: clamp(1.45rem, 2vw + 0.3rem, 1.8rem) !important; }
nav a { font-size: 1.06rem !important; }

/* 2) Kill the frame/strip under nav + any wrapper borders */
header, .site-header, nav, .nav, .hero { border: 0 !important; box-shadow: none !important; }
header + *, .site-header + *, nav + *, .hero + * { margin-top: 0 !important; border-top: 0 !important; background: transparent !important; }
.page, .page-wrap, .wrapper, .wrap, .container, .content, main, section { border: 0 !important; box-shadow: none !important; background-image: none !important; }
.page::before, .page::after, .container::before, .container::after, main::before, main::after { content: none !important; }

/* 3) Rules page: remove outer container; only single card per item */
.rules .notes-wrapper, .rules .notes, .rules .panel, .rules .outer, .rules .box {
  border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important;
}
.notes-cards { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.rule-card { background: #fff; border: 1px solid rgba(0,0,0,0.1); border-radius: 14px; padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start; }
.rule-card .icon { font-size: 20px; line-height: 1; }
.rule-card .text strong { display:block; margin-bottom: 4px; }

/* 4) Hero readability still intact; keep compact mobile height */
.hero { position: relative; border-bottom: 0 !important; }
.hero img { width: 100%; height: 36vh; object-fit: cover; }
@media (max-width: 768px){ .hero img { height: 22vh; } }

/* === v18 nuclear fixes === */

/* 1) Remove outer wrapper around rules list */
.rules :is(.panel,.card,.box,.container,.wrap,.notes,.list,.outer):has(> .notes-cards) {
  border: 0 !important; box-shadow: none !important; background: transparent !important;
  padding: 0 !important; margin: 0 !important;
}
.rules :is(.panel,.card,.box,.container,.wrap,.notes,.list,.outer):has(> .notes-cards)::before,
.rules :is(.panel,.card,.box,.container,.wrap,.notes,.list,.outer):has(> .notes-cards)::after {
  content: none !important;
}
.rules .notes-cards { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.rules .rule-card { display: flex; gap: 12px; align-items: flex-start;
  background: #fff; border: 1px solid rgba(0,0,0,0.1); border-radius: 14px; padding: 16px 18px; }

/* 2) Bigger text site-wide */
html { font-size: 18px !important; }
@media (min-width: 1200px) { html { font-size: 20px !important; } }
body { line-height: 1.7 !important; color: #151515 !important; }
p, li { font-size: 1.125rem !important; }
h1 { font-size: clamp(2.4rem, 4vw + 0.5rem, 3.8rem) !important; line-height: 1.18 !important; }
h2 { font-size: clamp(1.8rem, 2.6vw + 0.4rem, 2.5rem) !important; }
h3 { font-size: clamp(1.45rem, 2vw + 0.3rem, 1.8rem) !important; }
nav a { font-size: 1.06rem !important; }

/* 3) Remove strip/frame under header/hero */
header, .site-header, .hero { border: 0 !important; box-shadow: none !important; }
header + *, .site-header + *, .hero + * { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; background: transparent !important; }

/* === PATCH: readability + remove frames === */
html { font-size: 18px; }
@media (min-width: 1200px){ html { font-size: 20px; } }
body { line-height: 1.7; color: #151515; }

p, li { font-size: 1.125rem; }
h1 { font-size: clamp(2.4rem, 4vw + 0.6rem, 3.8rem); line-height: 1.18; }
h2 { font-size: clamp(1.8rem, 2.6vw + 0.5rem, 2.5rem); }
h3 { font-size: clamp(1.45rem, 2vw + 0.3rem, 1.8rem); }
.nav a { font-size: 1.06rem; }

/* Remove outer wrapper on rules list */
.rules .card { border: 0; box-shadow: none; background: transparent; padding: 0; }

/* === FINAL OVERRIDES v21 === */
html { font-size: 18px !important; }
@media (min-width: 1200px){ html { font-size: 20px !important; } }
body { line-height: 1.7 !important; color: #151515 !important; }
p, li { font-size: 1.125rem !important; }
h1 { font-size: clamp(2.4rem, 4vw + 0.6rem, 3.8rem) !important; line-height: 1.18 !important; }
h2 { font-size: clamp(1.8rem, 2.6vw + 0.5rem, 2.5rem) !important; }
h3 { font-size: clamp(1.45rem, 2vw + 0.3rem, 1.8rem) !important; }
.nav a { font-size: 1.06rem !important; }

.site-header, .hero { border-bottom: 0 !important; box-shadow: none !important; }

/* lift content above tree watermark */
header, .hero, main, footer { position: relative; z-index: 1; }

/* Rules: prevent wrapper box */
.section .container > .card:has(.rule-card) { border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; }
.rules-list { border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 !important; }

/* v22: remove all generic card borders; keep rule-card styling only */
.card{border:0!important;box-shadow:none!important}
.section .container>.card{border:0!important;box-shadow:none!important;background:#fff}
.form{border:0!important;box-shadow:none!important}


/* ===== v24: spacing, readable type, tree watermark ===== */

/* 0) Zero frame */
html, body { margin:0 !important; padding:0 !important; }

/* 1) Readable type scale */
html { font-size: 19px !important; }
@media (min-width: 1200px){ html { font-size: 21px !important; } }
body { line-height: 1.7 !important; color:#151515 !important; }
p, li { font-size: 1.15rem !important; }

h1 { font-size: clamp(2.6rem, 4.4vw + 0.6rem, 3.9rem) !important; line-height: 1.16 !important; }
h2 { font-size: clamp(1.9rem, 2.7vw + 0.5rem, 2.6rem) !important; line-height: 1.2 !important; }
h3 { font-size: clamp(1.5rem, 2.1vw + 0.35rem, 1.9rem) !important; line-height: 1.25 !important; }
nav a { font-size: 1.08rem !important; }

/* 2) Tighten sections & inner spacing */
.section { padding: 1.5rem 0 !important; }
@media (min-width: 900px){ .section { padding: 2rem 0 !important; } }

.section :where(h2,h3,h4){ margin: 0.25rem 0 0.6rem 0 !important; }
.section :where(p,ul,ol){ margin: 0.35rem 0 0.7rem 0 !important; }
.section .card { padding: 1rem 1.25rem !important; }  /* keep soft but compact */
.details .grid, .details .stack { gap: 0.75rem !important; } /* generic tightening */

/* 3) Remove any top separators still lingering */
.site-header, .hero { border-bottom: 0 !important; box-shadow:none !important; }
.section { border-top: 0 !important; }
hr { display:none !important; }

/* 4) Tree watermark (subtle, one big tree) */
body::before {
  content:''; position:fixed; inset:0;
  background: url('images/Tree.png') no-repeat top center;
  background-size: 1100px auto;
  opacity: .055; pointer-events:none; z-index: 0;
}
header, .hero, main, footer { position: relative; z-index: 1; }



/* ===== v25 tree watermark (forced) ===== */
html { background: var(--paper, #faf7f1); }
html::before {
  content: '';
  position: fixed;
  inset: 0;
  background: url('images/Tree.png') no-repeat top center;
  background-size: 1100px auto;
  opacity: .07;
  pointer-events: none;
  z-index: 0;
}
/* lift page content above the tree */
header, .hero, main, footer, .section, .container { position: relative; z-index: 1; background: transparent !important; }
@media (max-width: 768px){
  html::before { background-size: 820px auto; opacity: .08; }
}



/* === vSavePoint TREE + details polish === */
html, body { margin:0 !important; padding:0 !important; }
body{
  background:
    url('images/Tree.png') no-repeat top center,
    var(--bg, #f9f6f1);
  background-size: 1100px auto, auto;
}
@media (max-width: 768px){
  body{ background-size: 820px auto, auto; }
}
/* Subhead style for Dress Code */
.subhead{ font-weight:600; letter-spacing:.01em; color:#2e3a32; margin:.25rem 0 .5rem; }



/* === v26: Details readability & card consolidation === */
.details h2{font-size:clamp(2.1rem,3vw + .5rem,2.8rem);margin:0 0 .6rem 0}
.details .subhead{font-weight:600;letter-spacing:.01em;margin:.1rem 0 .6rem;color:#2e3a32}
.details p, .details li{font-size:1.18rem;line-height:1.75}
.details .dress-card{padding:1.25rem 1.4rem;border-radius:14px}
.details .dress-card p{margin:.5rem 0}


/* === v31: color restore + phone nav fit + keep soft tree === */

/* 1) Text color restore (explicit, scoped) */
body, main, .section, .details { color: #1f1a14 !important; }            /* body copy back to near-black */
.details .subhead + p { color: #1f1a14 !important; }                     /* “Think soft colours…” line */
.badge + h1 + p.muted { color: var(--accent, #6e8a72) !important; }      /* date/location line green */
h1, h2, h3, h4 { color: #1b1b1b !important; }                            /* headings solid */

/* 2) Keep the tree faint (we already set the background on body in v29) */
body{
  background-image:
    linear-gradient(rgba(249,246,241,.92), rgba(249,246,241,.92)),
    url('images/Tree.png'),
    url('images/tree.png') !important;
  background-repeat: no-repeat, no-repeat, no-repeat !important;
  background-position: top center, top center, top center !important;
  background-size: 100% 100%,
    clamp(780px,70vw,1200px) auto,
    clamp(780px,70vw,1200px) auto !important;
}

/* 3) Phone nav: keep all items on one line */
@media (max-width: 480px){
  nav ul, nav .menu, .nav ul { display:flex; flex-wrap: nowrap; gap: 10px; }
  nav a, .nav a { font-size: 0.95rem !important; padding: 0.35rem 0 !important; }
  nav, .nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}


/* === v39: Mobile nav — wrap into two balanced rows (no dropdown) === */
@media (max-width: 640px){
  .nav{
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 10px 14px !important;
    padding: 8px 10px !important;
    height: auto !important;
    overflow: visible !important;
  }
  .nav a{
    flex: 0 1 calc(33.333% - 14px) !important; /* first row: Home, Details, Registry */
    text-align: center !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }
  /* second row: RSVP, Rules */
  .nav a:nth-last-child(-n+2){
    flex-basis: calc(50% - 14px) !important;
  }
}


/* v17: navbar pastel green full-width (minimal change) */
.site-header { background: var(--accent-2) !important; }

/* v18: firm up mobile nav text without touching desktop */
@media (max-width: 680px){
  .site-header .nav a,
  header .nav a,
  nav.nav a,
  .nav a{
    font-weight: 600 !important;       /* thicker on mobile */
    letter-spacing: 0 !important;      /* remove airy tracking */
    color: var(--ink) !important;      /* solid ink color */
    text-shadow: 0 0 1px rgba(0,0,0,.04); /* tiny hint to reduce 'shaved' look */
  }
}

/* v19: make the strip photo larger on mobile */
@media (max-width: 768px){
  .photo-strip img{
    height: auto !important;
    max-height: none !important;
    width: 100% !important;
    object-fit: cover !important;
  }
  .photo-strip{
    max-height: none !important;
  }
}

/* v19: make home photo strip big on phones (full-bleed), desktop unchanged */
@media (max-width: 680px){
  .card.photo-strip{ padding: 0 !important; border-radius: 0 !important; }
  .photo-strip{
    max-width: 100vw !important;
    margin: 0 calc(50% - 50vw) 1rem !important; /* edge-to-edge */
  }
  .photo-strip img{
    display: block !important;
    width: 100vw !important;
    height: auto !important;
    max-height: none !important;
    border-radius: 0 !important;
  }
}

/* v20: phone-only nav height & spacing fix */
@media (max-width: 680px){
  .site-header .nav, header .nav, nav.nav, .nav{
    height: auto !important;                  /* remove fixed 68px */
    padding: 8px 12px !important;             /* compact padding */
    gap: 8px 24px !important;                 /* smaller row/col gaps */
    justify-content: space-between !important;
    align-items: center !important;
    align-content: center !important;
  }
  .nav a{
    padding: 8px 10px !important;
    line-height: 1.1 !important;              /* reduce vertical space */
    white-space: nowrap !important;
    flex: 0 1 calc(33.333% - 16px) !important;/* top row: 3 items */
    text-align: center !important;
  }
  /* second row: 2 items */
  .nav a:nth-last-child(-n+2){
    flex-basis: calc(50% - 16px) !important;
  }
}

/* Current page highlight (nav) */
.site-header .nav a[aria-current="page"] {
  background: var(--accent-2);   /* same family as your hover, subtle green */
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}

/* (optional) make it a touch stronger than hover — remove if you don't want */
.site-header .nav a[aria-current="page"] {
  filter: brightness(0.96);
  font-weight: 600;
}

/* --- Registry Card Cleanup --- */
.registry-item {
  word-wrap: break-word;
  overflow-wrap: anywhere;
  text-align: left;
}

/* Prevent links from stretching cards */
.registry-item a {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: break-word;
  text-decoration: underline;
  color: #154734; /* same as your theme green */
}

/* Title readability fix */
.registry-item h3 {
  line-height: 1.2;
  font-size: 1.3rem;
  margin-bottom: 0.4rem;
  word-break: break-word;
}

/* Keep cards aligned in grid layout */
.registry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.2rem;
  justify-content: center;
  align-items: start;
}
/* Keep price, link, and Details on one line (desktop), tidy spacing */
#registry-app .meta { display:flex; align-items:center; gap:16px; }
#registry-app .meta .price { margin-right:auto; font-weight:700; font-size:1.05rem; }
#registry-app .meta .actions { display:flex; align-items:center; gap:16px; }

/* Don't let the link wrap into a vertical stack */
#registry-app .meta .actions .link-text {
  white-space: nowrap;          /* keep it on one line */
  display: inline;              /* plain text look */
}

/* Give cards a bit more breathing room on desktop so they don't get too narrow */
@media (min-width: 1024px) {
  #registry-app .grid { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
}

/* ===== Registry desktop spacing fixes ===== */
#registry-app .meta{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:nowrap;           /* keep price/link/Details on one line */
}

#registry-app .meta .price{
  flex:1 1 auto;              /* price takes the left space */
  margin-right:12px;
  font-weight:700;
  font-size:1.05rem;
}

#registry-app .meta .actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;                /* allow children to shrink if needed */
}

#registry-app .meta .actions .link-text{
  white-space:nowrap;         /* don't stack words */
  overflow:hidden;
  text-overflow:ellipsis;     /* truncate if tight */
  max-width:180px;            /* room for the Details pill */
}

#registry-app .meta .actions .btn{
  flex:0 0 auto;
  padding:9px 18px;           /* slightly tighter so it fits nicely */
}

/* Give desktop cards a bit more width so the row breathes */
@media (min-width:1024px){
  #registry-app .grid{
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  }
}

/* Default: mobile shows full text */
.link-text .link-full { display: inline; }
.link-text .link-short { display: none; }

/* Desktop: show short label only */
@media (min-width: 1024px) {
  .link-text .link-full { display: none; }
  .link-text .link-short { display: inline; }
}

/* === MOBILE TIGHTENING FOR REGISTRY & NAV (phones) === */
@media (max-width: 480px){

  /* Nav: smaller targets, less vertical space */
  .site-header .nav{
    padding: 8px 10px !important;
    gap: 8px 12px !important;
    height: auto !important;
  }
  .site-header .nav a{
    font-size: .98rem !important;
    padding: 6px 8px !important;
    line-height: 1.1 !important;
  }

  /* Section spacing + heading/body rhythm */
  .section{ padding: 14px 0 !important; }
  .section h2{ margin: 4px 0 10px !important; }
  .section p{  margin: 8px 0 12px !important; }

  /* Toolbar (search/filter/refresh) */
  #registry-app .toolbar{
    margin: 10px 0 14px !important;
    gap: 10px !important;
  }
  #registry-app .search input{
    padding: 10px 12px !important;
    font-size: 16px;              /* no zoom on iOS */
  }

  /* Cards compact */
  #registry-app .card{
    padding: 12px !important;
    border-radius: 12px !important;
  }
  #registry-app h3.title{
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
    margin: 0 0 6px !important;
  }

  /* Status badge smaller */
  #registry-app .badge{
    padding: 3px 9px !important;
    font-size: .9rem !important;
  }

  /* Price / link / Details row stays tidy */
  #registry-app .meta{ gap: 10px !important; }
  #registry-app .meta .actions{ gap: 10px !important; }

  /* Use short link label on phones to avoid wrapping */
  .link-text .link-full{ display: none !important; }
  .link-text .link-short{ display: inline !important; }

  /* Buttons a touch smaller */
  #registry-app .btn{ padding: 10px 14px !important; }
}
