/* Ceremony preset - Rumah Kaca Rengganis (demo-sites).
   Wedding-invitation calm: centred axis, Italiana display (only at 2rem and up) over Manrope text,
   ivory ground, sage and champagne, 1px ivory keylines inside photographs, hamburger on every width.
   Every selector is scoped to the style attribute (contract: docs/demo-sectors-plan.md section 3.3).
   Authored from scratchpad/d-rg/ceremony.src.css ([data-theme-style=ceremony] = the scope attribute selector).
   Look keywords implemented: day (timeline), index (features), full (gallery, split), quiet, wide.
   Never used: gradients (except a scrim), glow, blur, backdrop-filter. */

/* 1. Tokens */
:root[data-theme-style=ceremony] {
  --bg: #FBF8F2; --bg-2: #F3EEE2; --tint: #F6F1E6; --paper: #FFFDF9;
  --ink: #2B2A26; --ink-d: #2B2A26; --ink-2: #5A5850; --ink-3: #6B685F;
  --line: #E4DCC9; --line-2: #A8A18F;
  --sage: #56664B; --sage-deep: #2E3329; --champ: #E7DCC6; --ivory: #FBF8F2;
  --accent-strong: var(--primary);
  --tone-dark: #2E3329; --tone-dark-ink: #FBF8F2;
  --serif: var(--font-heading, "Italiana", "Didot", Georgia, serif);
  --max: 1200px; --gutter: clamp(20px, 5vw, 56px); --space: clamp(72px, 10vw, 148px);
  --radius: 2px; --r-lg: 2px; --sticky-top: 80px;
  --diamond: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 16' fill='none' stroke='%2356664B'%3E%3Cpath d='M0 8h108M132 8h108M120 3l5 5-5 5-5-5z'/%3E%3C/svg%3E");
  --mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%2356664B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 24 24 8l19 16M10 21v19M38 21v19M5 40h38M18 40V30a6 6 0 0 1 12 0v10M10 31h8M30 31h8M24 8v4'/%3E%3C/svg%3E");
}
:root[data-theme-style=ceremony] { scroll-padding-top: 96px; }

/* 2. Global type */
[data-theme-style=ceremony] body { font-weight: 400; font-size: 1.0625rem; line-height: 1.8; color: var(--ink); background: var(--bg); }
[data-theme-style=ceremony] :is(h1, h2, h3, h4) { color: var(--ink); text-wrap: balance; }
[data-theme-style=ceremony] :is(h1, .h1, h2) { font-family: var(--serif); font-weight: 400; letter-spacing: .02em; line-height: 1.08; }
[data-theme-style=ceremony] h1, [data-theme-style=ceremony] .h1 { font-size: clamp(3rem, 1.2rem + 7vw, 7rem); line-height: 1; }
[data-theme-style=ceremony] h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.2rem); }
[data-theme-style=ceremony] :is(h3, h4) { font-family: var(--font); font-weight: 600; font-size: 1.05rem; letter-spacing: .01em; line-height: 1.35; }
[data-theme-style=ceremony] strong, [data-theme-style=ceremony] b { font-weight: 600; }
[data-theme-style=ceremony] .lede { font-size: 1.125rem; line-height: 1.75; color: var(--ink-2); }
[data-theme-style=ceremony] .eyebrow { font-size: .72rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--sage); margin-bottom: 1.3em; }
[data-theme-style=ceremony] .hl { color: var(--sage); }
[data-theme-style=ceremony] a { text-underline-offset: 5px; }
[data-theme-style=ceremony] a:hover { color: var(--sage-deep); }
[data-theme-style=ceremony] ::selection { background: var(--champ); color: var(--ink); }
[data-theme-style=ceremony] :focus-visible { outline: 2px solid var(--sage-deep); outline-offset: 3px; }
[data-theme-style=ceremony] :is(.skip:focus) { outline-color: #fff; }
[data-theme-style=ceremony] .section-wrap > section { padding-block: var(--space); }
[data-theme-style=ceremony] .section-wrap + .section-wrap > section { border-top: 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=quiet] > section { padding-top: 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=wide] > section > .container { max-width: 1400px; }

/* Section heads: centred, with a short sage rule */
[data-theme-style=ceremony] .section-head { max-width: 680px; margin-inline: auto; text-align: center; margin-bottom: clamp(40px, 6vw, 80px); }
[data-theme-style=ceremony] .section-head h2::after { content: ""; display: block; width: 56px; height: 1px; margin: 26px auto 0; background: var(--sage); }
[data-theme-style=ceremony] .section-head .lede { margin: 26px auto 0; max-width: 54ch; }
[data-theme-style=ceremony] .section-foot { margin-top: 48px; text-align: center; }
[data-theme-style=ceremony] .prose { font-size: 1.0625rem; }
[data-theme-style=ceremony] .prose h2 { font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.4rem); margin-top: 1.8em; text-align: center; }
[data-theme-style=ceremony] .prose h2::after { content: ""; display: block; width: 40px; height: 1px; margin: 18px auto 0; background: var(--sage); }
[data-theme-style=ceremony] .prose h3 { margin-top: 1.8em; text-transform: uppercase; letter-spacing: .14em; font-size: .86rem; }
[data-theme-style=ceremony] .prose blockquote { margin: 2em 0; padding: 0 0 0 24px; border-left: 1px solid var(--sage); font-family: var(--serif); font-size: 1.5rem; line-height: 1.4; color: var(--ink); }
[data-theme-style=ceremony] .prose blockquote p { margin: 0; }
[data-theme-style=ceremony] .prose ul { list-style: none; }
[data-theme-style=ceremony] .prose ul li { position: relative; padding-left: 22px; }
[data-theme-style=ceremony] .prose ul li::before { content: ""; position: absolute; left: 2px; top: .8em; width: 6px; height: 6px; background: var(--sage); transform: rotate(45deg); }
[data-theme-style=ceremony] .prose table { display: block; overflow-x: auto; border-collapse: collapse; }
[data-theme-style=ceremony] .prose th { text-align: left; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; background: transparent; border-bottom: 1px solid var(--ink); }
[data-theme-style=ceremony] .prose th, [data-theme-style=ceremony] .prose td { padding: 12px 16px 12px 0; border-bottom: 1px solid var(--line); }
[data-theme-style=ceremony] .prose img { border-radius: 0; }
[data-theme-style=ceremony] .prose hr { border: 0; height: 16px; background: var(--diamond) center / 160px 16px no-repeat; margin: 3em 0; }

/* Photographs: a 1px ivory keyline 10px inside the frame */
[data-theme-style=ceremony] :is(.rail-media, .split-media, .gallery-grid figure, .product-thumb, .product-hero, .tl-photo, .post-cover, .post-thumb, .card-photo, .hero-media) img { outline: 1px solid rgba(251, 248, 242, .72); outline-offset: -10px; }
[data-theme-style=ceremony] :is(.rail-media, .tl-photo, .product-thumb, .post-thumb) { border-radius: 0; background: var(--bg-2); }

/* 3. Buttons and links: quiet rectangles, tracked capitals */
[data-theme-style=ceremony] .btn { min-height: 48px; padding: 13px 30px; justify-content: center; border: 1px solid transparent; border-radius: 0; font-weight: 600; font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; transition: background .35s, color .35s, border-color .35s; }
[data-theme-style=ceremony][data-motion=on] .btn:hover, [data-theme-style=ceremony][data-motion=on] .btn:active { transform: none; box-shadow: none; }
[data-theme-style=ceremony] .btn-primary { background: var(--primary); color: #fff; }
[data-theme-style=ceremony] .btn-primary:hover { background: var(--sage-deep); color: #fff; }
[data-theme-style=ceremony] .btn-secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
[data-theme-style=ceremony] .btn-secondary:hover { background: var(--ink); color: var(--ivory); }
[data-theme-style=ceremony] .btn-light { background: var(--champ); color: var(--ink-d); }
[data-theme-style=ceremony] .btn-light:hover { background: var(--ivory); color: var(--ink-d); }
[data-theme-style=ceremony] .btn-ghost { background: transparent; color: var(--ivory); border-color: rgba(251, 248, 242, .7); }
[data-theme-style=ceremony] .btn-ghost:hover { background: var(--ivory); color: var(--ink-d); border-color: var(--ivory); }
[data-theme-style=ceremony] .link-arrow { font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ink); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 1px; text-underline-offset: 8px; }
[data-theme-style=ceremony] .link-arrow:hover { color: var(--sage); }
[data-theme-style=ceremony] .link-arrow::after { content: "\2192"; margin-left: 10px; }
[data-theme-style=ceremony] .actions { gap: 14px; margin-top: 36px; }

/* 4. Notice, header, hamburger menu on every width */
[data-theme-style=ceremony] .topbar { background: var(--sage-deep); color: var(--ivory); border-bottom: 0; font-size: .8rem; }
[data-theme-style=ceremony] .topbar a { color: var(--champ); }
[data-theme-style=ceremony] .topbar :focus-visible { outline-color: var(--ivory); }
[data-theme-style=ceremony] .topbar-close:hover { background: rgba(251, 248, 242, .16); }
[data-theme-style=ceremony] .site-header { background: var(--bg); border-bottom: 1px solid var(--line); }
[data-theme-style=ceremony] .site-header.scrolled { border-color: var(--line); }
[data-theme-style=ceremony] .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 16px; min-height: 84px; }
[data-theme-style=ceremony] .brand { grid-column: 2; position: relative; z-index: 3; justify-self: center; min-height: 44px; text-align: center; color: var(--ink); }
[data-theme-style=ceremony] .wordmark { display: inline-flex; align-items: center; gap: 14px; font-family: var(--serif); font-weight: 400; font-size: clamp(1.3rem, 1rem + 1vw, 1.6rem); letter-spacing: .14em; text-transform: uppercase; line-height: 1.1; white-space: nowrap; }
[data-theme-style=ceremony] .wordmark::before { content: ""; flex: none; width: 30px; height: 30px; border-radius: 0; box-shadow: none; background: var(--mark) center / contain no-repeat; }
[data-theme-style=ceremony] .nav-toggle { grid-column: 1; grid-row: 1; position: relative; z-index: 3; justify-self: start; display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 0 4px 0 0; color: var(--ink); font: inherit; }
[data-theme-style=ceremony] .nav-toggle .visually-hidden { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; font-size: .74rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
[data-theme-style=ceremony] .bars, [data-theme-style=ceremony] .bars::before, [data-theme-style=ceremony] .bars::after { width: 26px; height: 1px; background: var(--ink); }
[data-theme-style=ceremony] .bars::before { top: -6px; } [data-theme-style=ceremony] .bars::after { top: 6px; }
[data-theme-style=ceremony] .nav-open .bars { background: transparent; }
[data-theme-style=ceremony] .nav-open .bars::before { transform: translateY(6px) rotate(45deg); }
[data-theme-style=ceremony] .nav-open .bars::after { transform: translateY(-6px) rotate(-45deg); }
[data-theme-style=ceremony] .site-nav { display: contents !important; }
[data-theme-style=ceremony] .site-nav .nav-cta { grid-column: 3; grid-row: 1; position: relative; z-index: 3; justify-self: end; min-height: 44px; padding: 8px 0 6px; display: inline-flex; align-items: center; border: 0; border-bottom: 1px solid var(--sage); background: none; color: var(--ink) !important; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; margin: 0; }
[data-theme-style=ceremony] .site-nav .nav-cta:hover { background: none; color: var(--sage) !important; border-color: var(--ink); }
/* The overlay: a full-screen sage panel */
[data-theme-style=ceremony] .site-nav > ul { position: absolute; top: 100%; left: 0; right: 0; min-height: calc(100vh - 72px); min-height: calc(100dvh - 72px); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: clamp(2px, 1vh, 10px); padding: 44px var(--gutter) 96px; background: var(--primary); visibility: hidden; opacity: 0; transition: opacity .5s ease, visibility 0s linear .5s; overflow-y: auto; }
[data-theme-style=ceremony] .site-nav > ul > li:first-child { margin-top: auto; }
[data-theme-style=ceremony] .nav-open .site-nav > ul { visibility: visible; opacity: 1; transition: opacity .5s ease, visibility 0s; }
[data-theme-style=ceremony] .nav-open { overflow: hidden; }
[data-theme-style=ceremony] .site-nav > ul > li { text-align: center; }
[data-theme-style=ceremony] .site-nav > ul > li > a { display: inline-block; padding: 4px 0; border: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(1.6rem, min(5.4vw + .4rem, 6.4vh), 2.8rem); line-height: 1.25; letter-spacing: .04em; color: var(--ivory); text-decoration: none; }
[data-theme-style=ceremony] .site-nav > ul > li > a:hover { color: var(--champ); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 10px; }
[data-theme-style=ceremony] .site-nav > ul > li > a[aria-current=page] { box-shadow: none; color: var(--champ); }
[data-theme-style=ceremony] .site-nav > ul::after { content: "Jl. Pinus Rengganis No. 2, Lembang \00B7\20 halo@rengganis.zonaku.com \00B7\20 (022) 0000 9180"; margin: clamp(28px, 6vh, 60px) 0 auto; max-width: 46em; text-align: center; font-size: .78rem; letter-spacing: .06em; line-height: 1.7; color: var(--champ); }
[data-theme-style=ceremony] .nav-open .brand, [data-theme-style=ceremony] .nav-open .nav-toggle { color: var(--ivory); }
[data-theme-style=ceremony] .nav-open .wordmark::before { filter: brightness(0) invert(1); }
[data-theme-style=ceremony] .nav-open .bars::before, [data-theme-style=ceremony] .nav-open .bars::after { background: var(--ivory); }
[data-theme-style=ceremony] .nav-open .site-nav .nav-cta { color: var(--ivory) !important; border-color: var(--champ); }
[data-theme-style=ceremony] .nav-open .site-header { border-color: transparent; background: var(--primary); }
[data-theme-style=ceremony] .nav-open :focus-visible { outline-color: var(--ivory); }
[data-theme-style=ceremony] .submenu { display: none; }

/* 5. Hero: full-bleed photograph, centred Italiana headline, enquiry bar overlapping its lower edge */
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover { min-height: clamp(600px, 88vh, 860px); align-items: center; justify-content: center; background: var(--sage-deep); }
[data-theme-style=ceremony] .section-wrap:not(:first-child) > .hero.hero-cover { min-height: clamp(460px, 64vh, 640px); }
[data-theme-style=ceremony] .hero-cover .hero-grid { display: flex; justify-content: center; }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text { margin: 0; padding: clamp(40px, 8vw, 104px) 0 clamp(120px, 14vw, 180px); max-width: 920px; text-align: center; background: none; border: 0; box-shadow: none; }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text :is(h1, .h1) { font-size: clamp(3rem, 1rem + 7.4vw, 7rem); max-width: none; line-height: 1; color: var(--ivory); }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text .hl { color: var(--champ); box-shadow: none; }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text .lede { max-width: 52ch; margin: 28px auto 0; font-size: 1.125rem; color: var(--ivory); }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text .eyebrow { color: var(--champ); }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .actions { justify-content: center; margin-top: 40px; }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .btn-primary { background: var(--champ); color: var(--ink-d); border-color: var(--champ); box-shadow: none; }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .btn-primary:hover { background: var(--ivory); border-color: var(--ivory); color: var(--ink-d); }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .btn-secondary { background: transparent; color: var(--ivory); border-color: rgba(251, 248, 242, .75); }
[data-theme-style=ceremony] .section-wrap > .hero.hero-cover .btn-secondary:hover { background: var(--ivory); color: var(--ink-d); }
@media (min-width: 721px) { [data-theme-style=ceremony] .overlay-scrim .hero-bg::after { background: rgba(30, 34, 26, .46); } }
@media (max-width: 720px) {
  [data-theme-style=ceremony] .section-wrap > .hero.hero-cover, [data-theme-style=ceremony] .section-wrap:not(:first-child) > .hero.hero-cover { display: flex; min-height: 560px; background: var(--sage-deep); }
  [data-theme-style=ceremony] .hero-cover .hero-bg { position: absolute; aspect-ratio: auto; }
  [data-theme-style=ceremony] .hero-cover .hero-bg::after { content: ""; position: absolute; inset: 0; background: rgba(30, 34, 26, .5); }
  [data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text { position: relative; padding: 72px 0 120px; }
  [data-theme-style=ceremony] .section-wrap > .hero.hero-cover .hero-text :is(h1, h2, .h1) { color: var(--ivory); }
}
[data-theme-style=ceremony] .hero-video-toggle { background: var(--ivory); border: 1px solid var(--ivory); border-radius: 0; box-shadow: none; top: 24px; bottom: auto; color: var(--ink); }
[data-theme-style=ceremony] .hero-video-toggle:focus-visible { outline: 2px solid var(--ivory); outline-offset: 3px; box-shadow: none; }
/* Plain heroes without a photograph (inner pages) */
[data-theme-style=ceremony] .hero:not(.hero-cover) { background: var(--bg); text-align: center; }
[data-theme-style=ceremony] .hero:not(.hero-cover)::before { content: none; }
[data-theme-style=ceremony] .hero:not(.hero-cover) .hero-text { margin-inline: auto; max-width: 760px; }
[data-theme-style=ceremony] .hero:not(.hero-cover) .actions, [data-theme-style=ceremony] .hero:not(.hero-cover) .hero-points { justify-content: center; }
[data-theme-style=ceremony] .hero:not(.hero-cover) .hero-media { max-width: 560px; margin: 48px auto 0; }
[data-theme-style=ceremony] .hero:not(.hero-cover) .hero-media img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; }

/* 6. Sections */
/* Enquiry: the date-check bar overlaps the hero; the card version is a plain framed form */
[data-theme-style=ceremony] .section-wrap[data-type=enquiry] > .enquiry.layout-bar { position: relative; z-index: 4; padding: 0 !important; background: transparent; margin-top: clamp(-76px, -6vw, -48px); }
[data-theme-style=ceremony] .enquiry.layout-bar > .container > .enquiry-form { padding: clamp(20px, 3vw, 30px); background: var(--paper); border: 1px solid var(--champ); border-radius: 0; box-shadow: 0 18px 24px -16px rgba(43, 42, 38, .28); }
[data-theme-style=ceremony] .enquiry.layout-bar .section-head { margin: 0 auto 18px; }
[data-theme-style=ceremony] .section-wrap[data-type=enquiry], [data-theme-style=ceremony] .section-wrap[data-type=enquiry] > .enquiry { background: transparent !important; }
[data-theme-style=ceremony] .section-wrap[data-type=enquiry]:not(:first-child) + .section-wrap > section { padding-top: clamp(72px, 9vw, 120px); }
[data-theme-style=ceremony] .enquiry-form { gap: 18px 22px; }
[data-theme-style=ceremony] .enq-field { gap: 8px; font-size: .66rem; font-weight: 600; letter-spacing: .16em; white-space: nowrap; text-transform: uppercase; color: var(--ink-2); }
[data-theme-style=ceremony] .enq-field :where(input, select) { min-height: 48px; padding: 8px 2px; border: 0; border-bottom: 1px solid var(--line-2); border-radius: 0; background: transparent; font-family: var(--font); font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--ink); }
[data-theme-style=ceremony] .enq-field :is(input, select):focus-visible { outline: 0; border-bottom-color: var(--sage-deep); box-shadow: 0 1px 0 var(--sage-deep); }
[data-theme-style=ceremony] .enquiry-form .btn { align-self: end; }
[data-theme-style=ceremony] .enquiry-note { text-align: center; }
[data-theme-style=ceremony] .enquiry.layout-card .container { max-width: 820px; }
[data-theme-style=ceremony] .enquiry.layout-card .enquiry-form { padding: clamp(24px, 4vw, 48px); background: var(--paper); border: 1px solid var(--champ); border-radius: 0; }
[data-theme-style=ceremony] .enquiry.layout-card .enquiry-form::before { content: ""; grid-column: 1 / -1; height: 16px; background: var(--diamond) center / 160px 16px no-repeat; }
@media (min-width: 960px) {
  [data-theme-style=ceremony] .enquiry.layout-bar .enquiry-form { grid-template-columns: 1.15fr 1fr 1fr 1fr auto; gap: 0; align-items: end; }
  [data-theme-style=ceremony] .enquiry.layout-bar .enq-field { padding: 0 24px; border-left: 1px solid var(--line); }
  [data-theme-style=ceremony] .enquiry.layout-bar .enq-field:first-of-type { padding-left: 4px; border-left: 0; }
  [data-theme-style=ceremony] .enquiry.layout-bar .btn { margin-left: 24px; }
}

/* Statement (intro): invitation text in Italiana */
[data-theme-style=ceremony] .statement { background: var(--bg); }
[data-theme-style=ceremony] .statement-inner { max-width: 840px; margin-inline: auto; padding: 0; border: 0; text-align: center; }
[data-theme-style=ceremony] .statement-inner::before { content: ""; display: block; height: 16px; margin: 0 auto 36px; background: var(--diamond) center / 160px 16px no-repeat; }
[data-theme-style=ceremony] .statement .eyebrow { margin-bottom: 1.6em; }
[data-theme-style=ceremony] .statement-text { font-family: var(--serif); font-size: clamp(1.9rem, 1.2rem + 2vw, 2.7rem); line-height: 1.3; letter-spacing: .01em; color: var(--ink); }
[data-theme-style=ceremony] .statement-text :is(strong, em) { font-weight: 400; font-style: normal; color: var(--sage); }
[data-theme-style=ceremony] .statement-text p { margin: 0; }

/* Rail: the three spaces as tall invitation cards */
[data-theme-style=ceremony] .rail.card-portrait { --rail-w: min(76vw, 340px); }
[data-theme-style=ceremony] .rail-head { justify-content: center; }
[data-theme-style=ceremony] .rail-nav { display: none !important; }
[data-theme-style=ceremony] .rail-track { gap: clamp(16px, 2.4vw, 32px); }
[data-theme-style=ceremony] .rail-media { aspect-ratio: 2 / 3; }
[data-theme-style=ceremony] .rail.card-landscape .rail-media { aspect-ratio: 3 / 2; }
[data-theme-style=ceremony] .rail-body { padding-top: 22px; text-align: center; }
[data-theme-style=ceremony] .rail-body h3 { margin: 0 0 .5em; font-size: .86rem; letter-spacing: .22em; text-transform: uppercase; }
[data-theme-style=ceremony] .rail-body h3 a { color: var(--ink); }
[data-theme-style=ceremony] .rail-body h3 a:hover { text-decoration: none; color: var(--sage); }
[data-theme-style=ceremony] .rail-meta { font-size: .95rem; color: var(--ink-2); }
[data-theme-style=ceremony] .rail-price { margin-top: 10px; font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--sage); }
@media (min-width: 961px) {
  [data-theme-style=ceremony] .rail.card-portrait .rail-track { --rail-w: calc((min(var(--max), 100vw) - 2 * var(--gutter) - 2 * clamp(16px, 2.4vw, 32px)) / 3); overflow-x: visible; scroll-snap-type: none; padding-bottom: 0; }
}
[data-theme-style=ceremony] .rail-track:focus-visible, [data-theme-style=ceremony] .rail-card a:focus-visible { outline-color: var(--sage-deep); }

/* Split: a photograph edge to edge on one half, centred text on the other */
[data-theme-style=ceremony] .split-grid { gap: clamp(36px, 6vw, 96px); }
[data-theme-style=ceremony] .split-text { text-align: center; }
[data-theme-style=ceremony] .split-text .eyebrow { margin-bottom: 1.3em; }
[data-theme-style=ceremony] .split-text h2::after { content: ""; display: block; width: 56px; height: 1px; margin: 26px auto 0; background: var(--sage); }
[data-theme-style=ceremony] .split-text .prose { margin-top: 26px; }
[data-theme-style=ceremony] .split-text .prose p { font-size: 1.0625rem; }
[data-theme-style=ceremony] .split-text .actions { justify-content: center; }
[data-theme-style=ceremony] .split-bleed .split-media { background: var(--sage-deep); overflow: hidden; }
[data-theme-style=ceremony] .split-bleed .split-media img { outline-offset: -14px; }
[data-theme-style=ceremony] .split-bleed.image-right .split-text, [data-theme-style=ceremony] .split-bleed.image-left .split-text { padding: clamp(56px, 7vw, 112px) clamp(28px, 6vw, 96px); }
[data-theme-style=ceremony] .split-bleed .split-text > * { max-width: 460px; margin-inline: auto; }
[data-theme-style=ceremony] .split-text .prose :is(blockquote, table) { text-align: left; }

/* Day timeline: time and text on the left, one sticky photograph on the right (stacked, crossfading) */
[data-theme-style=ceremony] .timeline .section-head { margin-bottom: clamp(40px, 6vw, 72px); }
[data-theme-style=ceremony] .timeline-list { max-width: 1160px; margin: 0 auto; border: 0; }
[data-theme-style=ceremony] .timeline-list.has-photos { max-width: 1160px; }
[data-theme-style=ceremony] .timeline-list li { display: block; padding: 0 0 56px; text-align: center; }
[data-theme-style=ceremony] .timeline-list li::before { content: none; }
[data-theme-style=ceremony] .timeline-list li + li { padding-top: 56px; border-top: 1px solid var(--line); }
[data-theme-style=ceremony] .timeline-list time { display: block; margin-bottom: 14px; font-family: var(--font); font-weight: 400; font-size: clamp(2.2rem, 1.5rem + 2.6vw, 3.4rem); line-height: 1; letter-spacing: -.01em; color: var(--sage); font-variant-numeric: tabular-nums; }
[data-theme-style=ceremony] .timeline-list h3 { margin-bottom: .6em; font-size: .88rem; letter-spacing: .22em; text-transform: uppercase; }
[data-theme-style=ceremony] .timeline-list p { max-width: 46ch; margin-inline: auto; font-size: 1.0625rem; color: var(--ink-2); }
[data-theme-style=ceremony] .timeline-list.has-photos .tl-photo { max-width: 560px; margin: 32px auto 0; aspect-ratio: 3 / 2; }
@media (min-width: 960px) {
  /* Sticky split: all photographs share the right cell; the scroll-driven block below fades them. */
  [data-theme-style=ceremony] .timeline-list.has-photos li { text-align: left; }
}

/* Plans: three open columns; the highlighted one is a sage-deep card */
[data-theme-style=ceremony] .plan-grid { gap: clamp(20px, 3vw, 40px); }
[data-theme-style=ceremony] .plan { padding: clamp(28px, 3vw, 44px) clamp(24px, 2.4vw, 36px) clamp(32px, 3vw, 44px); border: 0; border-top: 1px solid var(--ink); border-radius: 0; background: transparent; text-align: center; align-items: center; box-shadow: none; }
[data-theme-style=ceremony] .plan.is-highlight { background: var(--sage-deep); color: var(--ivory); border-color: var(--sage-deep); box-shadow: none; --ink: var(--ivory); --ink-2: #D9D3C2; --ink-3: #D9D3C2; --line: #5A624F; }
[data-theme-style=ceremony] .plan.is-highlight :is(h3, .plan-price) { color: var(--ivory); }
[data-theme-style=ceremony] .plan-badge { position: static; align-self: center; margin: 0 0 18px; padding: 5px 14px; border-radius: 0; background: var(--champ); color: var(--ink-d); font-size: .66rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
[data-theme-style=ceremony] .plan h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.9rem, 1.3rem + 1.3vw, 2.3rem); letter-spacing: .01em; line-height: 1.1; margin-bottom: .45em; }
[data-theme-style=ceremony] .plan-desc { font-size: .98rem; max-width: 30ch; }
[data-theme-style=ceremony] .plan-price { margin: 14px 0 22px; font-family: var(--font); font-size: 1.2rem; font-weight: 600; letter-spacing: .01em; }
[data-theme-style=ceremony] .plan-price span { margin-top: 4px; font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }
[data-theme-style=ceremony] .plan-features { width: 100%; margin: 6px 0 30px; padding-top: 20px; border-top: 1px solid var(--line); text-align: left; font-size: .95rem; }
[data-theme-style=ceremony] .plan-features .icon { color: var(--sage); }
[data-theme-style=ceremony] .plan.is-highlight .plan-features .icon { color: var(--champ); }
[data-theme-style=ceremony] .plan-cta { width: 100%; }
[data-theme-style=ceremony] .plan.is-highlight .plan-cta { background: var(--champ); color: var(--ink-d); border-color: var(--champ); }
[data-theme-style=ceremony] .plan.is-highlight .plan-cta:hover { background: var(--ivory); }
[data-theme-style=ceremony] .plan-foot { text-align: center; margin-top: 36px; }

/* Gallery: a 6-image block repeated (big, tall, tall / tall, big, tall) */
[data-theme-style=ceremony] .gallery-grid { gap: clamp(8px, 1.2vw, 14px); }
[data-theme-style=ceremony] .gallery-grid.layout-mosaic { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(110px, 13vw, 190px); }
[data-theme-style=ceremony] .gallery-grid.layout-mosaic li { grid-column: auto; grid-row: span 2; }
[data-theme-style=ceremony] .gallery-grid.layout-mosaic li:nth-child(6n+1), [data-theme-style=ceremony] .gallery-grid.layout-mosaic li:nth-child(6n+5) { grid-column: span 2; }
[data-theme-style=ceremony] .gallery-grid img { border-radius: 0; }
[data-theme-style=ceremony] .gallery-grid figcaption { left: 0; bottom: 0; max-width: 100%; padding: 8px 16px; border-radius: 0; background: var(--ivory); font-size: .66rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ink); }
[data-theme-style=ceremony] .section-wrap[data-look~=full] .gallery > .container { max-width: none; padding-inline: 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=full] .gallery-grid { gap: 4px; }

/* Features: open columns; the "index" look makes numbered rows (vendor categories) */
[data-theme-style=ceremony] .feature-grid { gap: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 64px); }
[data-theme-style=ceremony] .feature-grid li, [data-theme-style=ceremony] .feature-grid.cols-3 li:nth-child(3n+2), [data-theme-style=ceremony] .feature-grid.cols-4 li:nth-child(even), [data-theme-style=ceremony] .feature-grid.cols-2 li:nth-child(even) { padding-top: 28px; border-top: 1px solid var(--line-2); text-align: center; }
[data-theme-style=ceremony] .feature-index { font-family: var(--font); font-size: .8rem; font-weight: 600; letter-spacing: .3em; opacity: 1; color: var(--sage); margin-bottom: 16px; }
[data-theme-style=ceremony] .icon-tile { width: 56px; height: 56px; border-radius: 0; background: transparent; border: 1px solid var(--sage); color: var(--sage); margin-bottom: 20px; }
[data-theme-style=ceremony] .feature-grid h3 { font-size: .86rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .8em; }
[data-theme-style=ceremony] .feature-grid p { font-size: 1rem; max-width: 36ch; margin-inline: auto; }
[data-theme-style=ceremony] .feature-grid.has-photos li.has-photo { border: 0; border-top: 0; padding: 0; background: transparent; }
[data-theme-style=ceremony] .feature-grid.has-photos .card-photo { aspect-ratio: 3 / 2; }
[data-theme-style=ceremony] .feature-grid.has-photos li.has-photo .card-body { padding: 22px 0 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid { display: block; border-bottom: 1px solid var(--ink); counter-reset: ix; max-width: 960px; margin-inline: auto; }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid li { display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(0, 1.4fr); gap: 8px 28px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--line-2); text-align: left; counter-increment: ix; }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid li:first-child { border-top-color: var(--ink); }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-index { margin: 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid h3 { margin: 0; }
[data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid p { max-width: none; margin: 0; }
@media (max-width: 720px) {
  [data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid li { grid-template-columns: 48px minmax(0, 1fr); }
  [data-theme-style=ceremony] .section-wrap[data-look~=index] .feature-grid li > p { grid-column: 2; }
}

/* FAQ */
[data-theme-style=ceremony] .faq .section-head { margin-bottom: 40px; }
[data-theme-style=ceremony] .faq-list details { border-top: 1px solid var(--line-2); }
[data-theme-style=ceremony] .faq-list details:last-child { border-bottom: 1px solid var(--line-2); }
[data-theme-style=ceremony] .faq-list summary { padding: 22px 0; align-items: center; font-size: 1rem; font-weight: 600; color: var(--ink); }
[data-theme-style=ceremony] .faq-list summary::after { content: "+"; flex: none; width: 24px; text-align: center; font-size: 1.4rem; font-weight: 400; color: var(--sage); }
[data-theme-style=ceremony] .faq-list details[open] summary::after { content: "\2212"; }
[data-theme-style=ceremony] .faq-list .prose { padding-bottom: 24px; font-size: 1rem; }

/* Menu / add-on price list */
[data-theme-style=ceremony] .menu .container { max-width: 820px; }
[data-theme-style=ceremony] .menu-groups { gap: clamp(44px, 6vw, 72px); }
[data-theme-style=ceremony] .menu-group-head { justify-content: center; text-align: center; padding-bottom: 18px; margin-bottom: 8px; border-bottom: 1px solid var(--ink); }
[data-theme-style=ceremony] .menu-group-head h3 { font-size: .86rem; letter-spacing: .24em; text-transform: uppercase; }
[data-theme-style=ceremony] .menu-item { padding: 18px 0; border-bottom: 1px solid var(--line); }
[data-theme-style=ceremony] .menu-name { font-size: 1.02rem; font-weight: 600; }
[data-theme-style=ceremony] .menu-tag { padding: 2px 10px; border: 0; background: var(--champ); color: var(--ink); font-size: .62rem; letter-spacing: .18em; }
[data-theme-style=ceremony] .menu-leader { border-bottom-color: var(--ink-3); opacity: .55; }
[data-theme-style=ceremony] .menu-prices { font-size: 1rem; font-weight: 600; }
[data-theme-style=ceremony] .menu-desc { font-size: .95rem; }
[data-theme-style=ceremony] .menu-foot { text-align: center; }
[data-theme-style=ceremony] .menu .menu-jump ul { justify-content: center; }

/* CTA band: sage-deep block, centred */
[data-theme-style=ceremony] .cta-band { background: var(--sage-deep); }
[data-theme-style=ceremony] .cta-band::before { content: none; }
[data-theme-style=ceremony] .cta-band { padding-block: clamp(72px, 10vw, 132px) !important; text-align: center; }
[data-theme-style=ceremony] .cta-grid { flex-direction: column; justify-content: center; text-align: center; gap: 36px; }
[data-theme-style=ceremony] .cta-band h2 { font-size: clamp(2.2rem, 1.2rem + 3.4vw, 4rem); color: var(--ivory); }
[data-theme-style=ceremony] .cta-band h2::after { content: ""; display: block; width: 56px; height: 1px; margin: 26px auto 0; background: var(--champ); }
[data-theme-style=ceremony] .cta-band p { margin: 22px auto 0; color: #E4DECE; }
[data-theme-style=ceremony] .cta-actions { justify-content: center; }
[data-theme-style=ceremony] .cta-note a { color: var(--champ); }
[data-theme-style=ceremony] .cta-band .btn-light { background: var(--champ); color: var(--ink-d); }
[data-theme-style=ceremony] .cta-band .btn-light:hover { background: var(--ivory); }

/* Stats, team, logos, quotes (not used on the home page; calm defaults) */
[data-theme-style=ceremony] .stats { background: var(--sage); }
[data-theme-style=ceremony] .stat-row dd { font-family: var(--font); font-weight: 500; font-size: clamp(2.4rem, 1.9rem + 2vw, 3.4rem); }
[data-theme-style=ceremony] .team-grid img, [data-theme-style=ceremony] .avatar-placeholder { border-radius: 0; aspect-ratio: 4 / 5; }
[data-theme-style=ceremony] .quote-grid blockquote { border-left: 0; text-align: center; padding: 0; }
[data-theme-style=ceremony] .quote-grid p { font-family: var(--serif); font-size: 1.6rem; }
[data-theme-style=ceremony] .logos { background: var(--bg-2); }

/* 7. Products (spaces) index and detail, posts */
[data-theme-style=ceremony] .products-index { padding-top: clamp(24px, 4vw, 48px); }
[data-theme-style=ceremony] .product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(32px, 4vw, 56px) clamp(16px, 2.4vw, 32px); justify-content: normal; }
[data-theme-style=ceremony] .product-grid > li { max-width: none; flex: none; min-width: 0; }
[data-theme-style=ceremony] .product-thumb { aspect-ratio: 2 / 3; margin-bottom: 22px; border-radius: 0; }
[data-theme-style=ceremony] .product-card { text-align: center; }
[data-theme-style=ceremony] .product-card .eyebrow { margin-bottom: .8em; }
[data-theme-style=ceremony] .product-card h3 { font-family: var(--serif); font-weight: 400; font-size: 2rem; letter-spacing: .03em; margin-bottom: .3em; }
[data-theme-style=ceremony] .product-card h3 a { color: var(--ink); text-decoration: none; }
[data-theme-style=ceremony] .product-card h3 a:hover { color: var(--sage); }
[data-theme-style=ceremony] .product-tagline { color: var(--ink-2); }
[data-theme-style=ceremony] .product-summary { font-size: .98rem; }
[data-theme-style=ceremony] .group-title { font-family: var(--serif); font-weight: 400; font-size: 2rem; letter-spacing: .03em; text-align: center; text-transform: none; color: var(--sage); border-bottom: 0; }
[data-theme-style=ceremony] .chips { justify-content: center; }
[data-theme-style=ceremony] .chip { min-height: 44px; padding: 0 22px; border: 1px solid var(--line-2); border-radius: 0; background: transparent; color: var(--ink); font-family: var(--font); font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
[data-theme-style=ceremony] .chip:hover { border-color: var(--ink); }
[data-theme-style=ceremony] .chip:is([aria-pressed=true], [aria-current=page], [aria-current=true]) { background: var(--sage); border-color: var(--sage); color: #fff; }
[data-theme-style=ceremony] .product-layout { gap: clamp(36px, 6vw, 88px); }
[data-theme-style=ceremony] .product-hero img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
[data-theme-style=ceremony] .product-side h2 { font-family: var(--font); font-size: .72rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--sage); margin-bottom: 16px; }
[data-theme-style=ceremony] .product-side h2::after { content: none; }
[data-theme-style=ceremony] .product-side .feature-list li { padding: 14px 0; border-bottom: 1px solid var(--line); }
[data-theme-style=ceremony] .product-side .feature-list strong { display: block; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }
[data-theme-style=ceremony] .product-side .feature-list span { font-family: var(--font); font-size: 1.05rem; }
[data-theme-style=ceremony] .post-list { max-width: 760px; margin-inline: auto; gap: 0; }
[data-theme-style=ceremony] .post-list li + li { padding-top: 56px; margin-top: 56px; border-top: 1px solid var(--line); }
[data-theme-style=ceremony] .post-card { text-align: center; }
[data-theme-style=ceremony] .post-card h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.3rem); letter-spacing: .02em; }
[data-theme-style=ceremony] .post-card h3 a:hover { color: var(--sage); }
[data-theme-style=ceremony] .post-meta { justify-content: center; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2); }
[data-theme-style=ceremony] .post-cat { color: var(--sage); }
[data-theme-style=ceremony] .post-thumb { aspect-ratio: 3 / 2; }
[data-theme-style=ceremony] .post-grid { gap: 48px 32px; }
[data-theme-style=ceremony] .post-detail .post-meta { margin-bottom: 28px; }
[data-theme-style=ceremony] .pagination { margin-inline: auto; }

/* Page header: centred, with the diamond rule */
[data-theme-style=ceremony] .page-header { padding: clamp(56px, 9vw, 120px) 0 clamp(32px, 5vw, 56px); border-bottom: 0; text-align: center; }
[data-theme-style=ceremony] .page-header h1 { max-width: 16ch; margin-inline: auto; font-size: clamp(2.8rem, 1.4rem + 5.4vw, 5.4rem); }
[data-theme-style=ceremony] .page-header .lede { margin: 26px auto 0; }
[data-theme-style=ceremony] .page-header .container::after { content: ""; display: block; height: 16px; margin: 40px auto 0; background: var(--diamond) center / 160px 16px no-repeat; }
[data-theme-style=ceremony] .breadcrumb ol { justify-content: center; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; }
[data-theme-style=ceremony] .breadcrumb li + li::before { color: var(--sage); }
[data-theme-style=ceremony] .post-detail .page-header h1 { max-width: 22ch; font-size: clamp(2.3rem, 1.3rem + 3.6vw, 4rem); line-height: 1.08; }
[data-theme-style=ceremony] .not-found { text-align: center; padding-block: var(--space); }

/* 8. Contact and forms */
[data-theme-style=ceremony] .contact-grid { gap: clamp(36px, 6vw, 88px); }
[data-theme-style=ceremony] .contact-form label { font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-2); }
[data-theme-style=ceremony] .contact-form input, [data-theme-style=ceremony] .contact-form textarea { padding: 10px 2px; border: 0; border-bottom: 1px solid var(--line-2); border-radius: 0; background: transparent; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--ink); }
[data-theme-style=ceremony] .contact-form textarea { border: 1px solid var(--line-2); padding: 12px 14px; background: var(--paper); }
[data-theme-style=ceremony] .contact-form :is(input, textarea):focus { outline: 0; border-color: var(--sage-deep); box-shadow: 0 1px 0 var(--sage-deep); }
[data-theme-style=ceremony] .contact-form :is(input, textarea)::placeholder { color: var(--ink-2); }
[data-theme-style=ceremony] .form-notice { border-radius: 0; }
[data-theme-style=ceremony] .contact-details dt { font-size: .68rem; letter-spacing: .22em; color: var(--ink-2); }
[data-theme-style=ceremony] .contact-details a { color: var(--ink); }
[data-theme-style=ceremony] .map { border-radius: 0; }

/* Floating chat button */
[data-theme-style=ceremony] .float-cta { background: var(--champ); color: var(--ink-d); border: 1px solid var(--sage-deep); border-radius: 0; box-shadow: none; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; height: 52px; }
[data-theme-style=ceremony] .float-cta:hover { background: var(--sage-deep); color: var(--ivory); }
[data-theme-style=ceremony] .float-cta:focus-visible { outline: 2px solid var(--sage-deep); outline-offset: 3px; box-shadow: 0 0 0 5px var(--ivory); }

/* 9. Footer: sage, centred */
[data-theme-style=ceremony] .site-footer { background: var(--primary); color: var(--ivory); border-top: 0; text-align: center; padding-top: clamp(64px, 9vw, 112px); }
[data-theme-style=ceremony] .site-footer a { color: var(--ivory); }
[data-theme-style=ceremony] .footer-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 48px clamp(40px, 7vw, 112px); padding-bottom: 56px; }
[data-theme-style=ceremony] .footer-about { flex: 1 1 100%; display: flex; flex-direction: column; align-items: center; }
[data-theme-style=ceremony] .footer-about p { max-width: 54ch; margin: 22px auto 0; font-size: .98rem; color: #E9E4D6; }
[data-theme-style=ceremony] .footer-about .brand { color: var(--ivory); }
[data-theme-style=ceremony] .footer-about .wordmark { flex-direction: column; gap: 18px; font-size: clamp(1.9rem, 1.2rem + 3vw, 3rem); letter-spacing: .16em; white-space: normal; }
[data-theme-style=ceremony] .footer-about .wordmark::before { width: 44px; height: 44px; filter: brightness(0) invert(1); }
[data-theme-style=ceremony] .footer-col { min-width: 150px; }
[data-theme-style=ceremony] .footer-col h2 { font-family: var(--font); font-weight: 600; font-size: .7rem; letter-spacing: .26em; color: var(--champ); margin-bottom: 18px; }
[data-theme-style=ceremony] .footer-col a, [data-theme-style=ceremony] .footer-contact a, [data-theme-style=ceremony] .social a { color: var(--ivory); text-decoration: none; }
[data-theme-style=ceremony] .footer-col a:hover, [data-theme-style=ceremony] .footer-contact a:hover { color: var(--champ); text-decoration: underline; }
[data-theme-style=ceremony] .footer-contact p { color: #E9E4D6; }
[data-theme-style=ceremony] .footer-bottom { justify-content: center; flex-direction: column; align-items: center; gap: 14px; border-top: 1px solid rgba(231, 220, 198, .35); font-size: .8rem; color: #E9E4D6; }
[data-theme-style=ceremony] .footer-bottom ul { flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
[data-theme-style=ceremony] .footer-bottom a { color: var(--ivory); text-decoration: underline; text-underline-offset: 4px; }
[data-theme-style=ceremony] .footer-bottom a:hover { color: var(--champ); }
[data-theme-style=ceremony] .site-footer :focus-visible { outline-color: var(--ivory); }

/* 10. Responsive */
@media (max-width: 1100px) {
  [data-theme-style=ceremony] .section-wrap[data-type=enquiry] > .enquiry.layout-bar { margin-top: -56px; }
}
@media (max-width: 960px) {
  [data-theme-style=ceremony] .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-theme-style=ceremony] .plan-grid { grid-template-columns: minmax(0, 520px); justify-content: center; }
  [data-theme-style=ceremony] .footer-grid { gap: 40px; }
  [data-theme-style=ceremony] .rail.card-portrait .rail-track { --rail-w: min(62vw, 320px); }
}
@media (max-width: 720px) {
  [data-theme-style=ceremony] .header-inner { min-height: 72px; gap: 8px; }
  [data-theme-style=ceremony] .wordmark { display: block; max-width: 8.4em; font-size: 1.12rem; letter-spacing: .12em; white-space: normal; }
  [data-theme-style=ceremony] .wordmark::before { content: none; }
  [data-theme-style=ceremony] .site-nav > ul { padding: 32px var(--gutter) 88px; }
  [data-theme-style=ceremony] .gallery-grid.layout-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 46vw, 260px); }
  [data-theme-style=ceremony] .gallery-grid.layout-mosaic li, [data-theme-style=ceremony] .gallery-grid.layout-mosaic li:nth-child(n) { grid-column: auto; grid-row: auto; }
  [data-theme-style=ceremony] .gallery-grid.layout-mosaic li:nth-child(3n+1) { grid-column: span 2; }
  [data-theme-style=ceremony] .product-grid { grid-template-columns: 1fr; max-width: 440px; margin-inline: auto; }
  [data-theme-style=ceremony] .enquiry.layout-bar .enquiry-form { grid-template-columns: 1fr 1fr; }
  [data-theme-style=ceremony] .enquiry.layout-bar .enquiry-form .btn { grid-column: 1 / -1; }
  [data-theme-style=ceremony] .split-bleed .split-media { aspect-ratio: 3 / 2; }
  [data-theme-style=ceremony] .timeline-list li + li { padding-top: 44px; }
}
@media (max-width: 520px) {
  [data-theme-style=ceremony] .nav-toggle .visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  [data-theme-style=ceremony] .site-nav .nav-cta { font-size: .64rem; letter-spacing: .14em; }
  [data-theme-style=ceremony] .enquiry.layout-bar .enquiry-form { grid-template-columns: 1fr; }
  [data-theme-style=ceremony] .section-wrap > .hero.hero-cover .actions .btn { width: 100%; }
}
@media (max-width: 360px) {
  [data-theme-style=ceremony] .wordmark { font-size: 1rem; letter-spacing: .08em; }
  [data-theme-style=ceremony] .site-nav .nav-cta { font-size: .6rem; letter-spacing: .1em; }
}

/* 11. Motion: slow fades, view transitions, scroll-driven photographs (all guarded) */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .site-header { view-transition-name: site-header; }
  ::view-transition-group(root) { animation-duration: .6s; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .reveal { transition: opacity 1s ease, transform 1s ease; }
  /* A section taller than ~8 viewports never reaches the 12% reveal threshold at the top of a page (the Hari H timeline), so it must not start hidden. */
  :root[data-theme-style=ceremony]:not([data-motion=off]) .section-wrap > section.reveal:has(.timeline-list) { opacity: 1; transform: none; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .hero-cover .hero-bg-img { animation: cm-settle 2.4s cubic-bezier(.2, .6, .2, 1) both; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .hero-cover .hero-text > * { animation: cm-rise 1.1s ease both; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .hero-cover .hero-text > :nth-child(2) { animation-delay: .15s; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .hero-cover .hero-text > :nth-child(3) { animation-delay: .3s; }
  :root[data-theme-style=ceremony]:not([data-motion=off]) .hero-cover .hero-text > :nth-child(4) { animation-delay: .45s; }
  @keyframes cm-settle { from { transform: scale(1.07); } to { transform: none; } }
  @keyframes cm-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
  :root[data-theme-style=ceremony]:not([data-motion=off]) :is(.btn, .link-arrow, .chip, .float-cta) { transition-duration: .35s; }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    /* Two photographs drift slowly against the scroll: the half-bleed split image and the first gallery image */
    :root[data-theme-style=ceremony]:not([data-motion=off]) :is(.split-bleed .split-media, .gallery-grid.layout-mosaic li:first-child figure) { overflow: hidden; position: relative; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) :is(.split-bleed .split-media img, .gallery-grid.layout-mosaic li:first-child img) { position: absolute; left: 0; top: -24px; width: 100%; height: calc(100% + 48px); animation: cm-drift linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
    @keyframes cm-drift { from { transform: translateY(-24px); } to { transform: translateY(24px); } }
  }
  @media (prefers-reduced-motion: no-preference) and (min-width: 960px) {
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: clamp(56px, 8vw, 128px); timeline-scope: --d1, --d2, --d3, --d4, --d5, --d6, --d7, --d8, --d9; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li { display: contents; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li + li { border: 0; padding: 0; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li > time { grid-column: 1; align-self: end; padding-top: 14vh; margin: 0 0 10px; text-align: left; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li > div { grid-column: 1; padding-bottom: 14vh; text-align: left; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li > div p { margin-inline: 0; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li > div h3 { display: flex; align-items: center; gap: 16px; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li > div h3::before { content: ""; width: 36px; height: 1px; background: var(--sage); }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos .tl-photo { grid-column: 2; grid-row: 1 / span 24; position: sticky; top: 112px; align-self: start; width: 100%; max-width: none; height: min(74vh, 660px); margin: 0; aspect-ratio: auto; opacity: 0; animation: cm-fade linear both; animation-range: cover 0% cover 100%; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos .tl-photo img { width: 100%; height: 100%; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(1) > div { view-timeline: --d1 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(2) > div { view-timeline: --d2 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(3) > div { view-timeline: --d3 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(4) > div { view-timeline: --d4 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(5) > div { view-timeline: --d5 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(6) > div { view-timeline: --d6 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(7) > div { view-timeline: --d7 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(8) > div { view-timeline: --d8 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(9) > div { view-timeline: --d9 block; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(1) .tl-photo { animation-timeline: --d1; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(2) .tl-photo { animation-timeline: --d2; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(3) .tl-photo { animation-timeline: --d3; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(4) .tl-photo { animation-timeline: --d4; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(5) .tl-photo { animation-timeline: --d5; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(6) .tl-photo { animation-timeline: --d6; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(7) .tl-photo { animation-timeline: --d7; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(8) .tl-photo { animation-timeline: --d8; }
    :root[data-theme-style=ceremony]:not([data-motion=off]) .timeline-list.has-photos li:nth-child(9) .tl-photo { animation-timeline: --d9; }
    @keyframes cm-fade { 0% { opacity: 0; } 22% { opacity: 1; } 78% { opacity: 1; } 100% { opacity: 0; } }
  }
}

/* 12. Print */
@media print {
  [data-theme-style=ceremony] .topbar, [data-theme-style=ceremony] .site-header, [data-theme-style=ceremony] .site-footer, [data-theme-style=ceremony] .float-cta, [data-theme-style=ceremony] .hero-video-toggle { display: none !important; }
  [data-theme-style=ceremony] body { background: #fff; }
  [data-theme-style=ceremony] .section-wrap > section { padding-block: 24px; }
}
