*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.inline {
  display: inline;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.outline {
  outline-style: solid;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}


:root {
    --canvas: #f4eee5;
    --canvas-deep: #e7ddd0;
    --surface: rgba(255, 250, 244, 0.84);
    --surface-strong: rgba(255, 250, 244, 0.94);
    --surface-deep: #1f1c19;
    --surface-deep-2: #292521;
    --ink: #241f1b;
    --ink-soft: rgba(36, 31, 27, 0.76);
    --ink-muted: rgba(36, 31, 27, 0.58);
    --cream: #fbf6f0;
    --sage: #71806b;
    --sage-deep: #4d5d47;
    --clay: #9d755e;
    --line: rgba(36, 31, 27, 0.12);
    --line-strong: rgba(36, 31, 27, 0.2);
    --shadow: 0 22px 70px rgba(36, 31, 27, 0.08);
    --shell: min(1200px, calc(100vw - 3rem));
    --header-height: 86px;
    --safe-header-gap: clamp(2.5rem, 5vw, 5.75rem);
    --safe-anchor-offset: calc(var(--header-height) + clamp(2rem, 4vw, 4.5rem));
    --radius: 30px;
    --page-glow-clay: rgba(157, 117, 94, 0.12);
    --page-glow-sage: rgba(113, 128, 107, 0.12);
    --page-bg-start: #f7f2eb;
    --page-bg-mid: #f1e7dc;
    --page-bg-end: #efe4d8;
    --header-bg: rgba(244, 238, 229, 0.78);
    --header-bg-strong: rgba(251, 246, 240, 0.93);
    --header-border: rgba(36, 31, 27, 0.08);
    --panel-border: rgba(255, 255, 255, 0.55);
    --panel-border-soft: rgba(255, 255, 255, 0.5);
    --mobile-nav-bg: rgba(255, 250, 244, 0.94);
    --soft-section: rgba(255, 250, 244, 0.46);
    --button-secondary-bg: rgba(255, 250, 244, 0.65);
    --badge-bg: rgba(255, 250, 244, 0.84);
    --control-bg: rgba(255, 255, 255, 0.82);
    --control-bg-strong: rgba(255, 255, 255, 0.94);
    --control-border: rgba(36, 31, 27, 0.14);
    --control-border-strong: rgba(113, 128, 107, 0.42);
    --control-shadow: 0 18px 40px rgba(36, 31, 27, 0.08);
    --focus-ring: rgba(113, 128, 107, 0.18);
    --scroll-track: rgba(36, 31, 27, 0.06);
    --scroll-thumb: rgba(113, 128, 107, 0.48);
    --scroll-thumb-hover: rgba(77, 93, 71, 0.7);
    --callout-bg: rgba(157, 117, 94, 0.09);
    --callout-border: #9d755e;
    --selection-bg: rgba(113, 128, 107, 0.24);
    color-scheme: light;
}

:root[data-theme="dark"] {
    --canvas: #121513;
    --canvas-deep: #1a1e1b;
    --surface: rgba(24, 28, 26, 0.84);
    --surface-strong: rgba(24, 28, 26, 0.94);
    --surface-deep: #f3ede5;
    --surface-deep-2: #ddd4c9;
    --ink: #f4efe8;
    --ink-soft: rgba(244, 239, 232, 0.76);
    --ink-muted: rgba(244, 239, 232, 0.56);
    --cream: #f4efe8;
    --sage: #93a18d;
    --sage-deep: #c4d0bd;
    --clay: #c79e88;
    --line: rgba(244, 239, 232, 0.12);
    --line-strong: rgba(244, 239, 232, 0.2);
    --shadow: 0 28px 80px rgba(0, 0, 0, 0.28);
    --page-glow-clay: rgba(199, 158, 136, 0.12);
    --page-glow-sage: rgba(147, 161, 141, 0.12);
    --page-bg-start: #0f1211;
    --page-bg-mid: #141917;
    --page-bg-end: #1a1f1d;
    --header-bg: rgba(15, 18, 17, 0.8);
    --header-bg-strong: rgba(20, 24, 22, 0.94);
    --header-border: rgba(244, 239, 232, 0.08);
    --panel-border: rgba(244, 239, 232, 0.08);
    --panel-border-soft: rgba(244, 239, 232, 0.12);
    --mobile-nav-bg: rgba(24, 28, 26, 0.98);
    --soft-section: rgba(255, 250, 244, 0.46);
    --button-secondary-bg: rgba(255, 250, 244, 0.65);
    --badge-bg: rgba(255, 250, 244, 0.84);
    --control-bg: rgba(255, 255, 255, 0.82);
    --control-bg-strong: rgba(255, 255, 255, 0.94);
    --control-border: rgba(244, 239, 232, 0.14);
    --control-border-strong: rgba(196, 208, 189, 0.48);
    --control-shadow: 0 24px 54px rgba(0, 0, 0, 0.26);
    --focus-ring: rgba(196, 208, 189, 0.16);
    --scroll-track: rgba(255, 255, 255, 0.04);
    --scroll-thumb: rgba(196, 208, 189, 0.38);
    --scroll-thumb-hover: rgba(196, 208, 189, 0.58);
    --callout-bg: rgba(199, 158, 136, 0.12);
    --callout-border: #c79e88;
    --selection-bg: rgba(196, 208, 189, 0.22);
    color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --canvas: #121513;
        --canvas-deep: #1a1e1b;
        --surface: rgba(24, 28, 26, 0.84);
        --surface-strong: rgba(24, 28, 26, 0.94);
        --surface-deep: #f3ede5;
        --surface-deep-2: #ddd4c9;
        --ink: #f4efe8;
        --ink-soft: rgba(244, 239, 232, 0.76);
        --ink-muted: rgba(244, 239, 232, 0.56);
        --cream: #f4efe8;
        --sage: #93a18d;
        --sage-deep: #c4d0bd;
        --clay: #c79e88;
        --line: rgba(244, 239, 232, 0.12);
        --line-strong: rgba(244, 239, 232, 0.2);
        --shadow: 0 28px 80px rgba(0, 0, 0, 0.28);
        --page-glow-clay: rgba(199, 158, 136, 0.12);
        --page-glow-sage: rgba(147, 161, 141, 0.12);
        --page-bg-start: #0f1211;
        --page-bg-mid: #141917;
        --page-bg-end: #1a1f1d;
        --header-bg: rgba(15, 18, 17, 0.8);
        --header-bg-strong: rgba(20, 24, 22, 0.94);
        --header-border: rgba(244, 239, 232, 0.08);
        --panel-border: rgba(244, 239, 232, 0.08);
        --panel-border-soft: rgba(244, 239, 232, 0.12);
        --mobile-nav-bg: rgba(24, 28, 26, 0.98);
        --soft-section: rgba(255, 250, 244, 0.46);
        --button-secondary-bg: rgba(255, 250, 244, 0.65);
        --badge-bg: rgba(255, 250, 244, 0.84);
        --control-bg: rgba(255, 255, 255, 0.82);
        --control-bg-strong: rgba(255, 255, 255, 0.94);
        --control-border: rgba(244, 239, 232, 0.14);
        --control-border-strong: rgba(196, 208, 189, 0.48);
        --control-shadow: 0 24px 54px rgba(0, 0, 0, 0.26);
        --focus-ring: rgba(196, 208, 189, 0.16);
        --scroll-track: rgba(255, 255, 255, 0.04);
        --scroll-thumb: rgba(196, 208, 189, 0.38);
        --scroll-thumb-hover: rgba(196, 208, 189, 0.58);
        --callout-bg: rgba(199, 158, 136, 0.12);
        --callout-border: #c79e88;
        --selection-bg: rgba(196, 208, 189, 0.22);
        color-scheme: dark;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--safe-anchor-offset);
    -webkit-text-size-adjust: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

@supports (scrollbar-color: auto) {
    html {
        scrollbar-width: thin;
        scrollbar-color: var(--scroll-thumb) var(--scroll-track);
    }
}

body {
    margin: 0;
    padding-top: var(--header-height);
    min-height: 100vh;
    max-width: 100%;
    overflow-x: hidden;
    font-family: "Manrope", sans-serif;
    color: var(--ink);
    background:
        radial-gradient(circle at top left, var(--page-glow-clay), transparent 34%),
        radial-gradient(circle at top right, var(--page-glow-sage), transparent 26%),
        linear-gradient(180deg, var(--page-bg-start) 0%, var(--page-bg-mid) 45%, var(--page-bg-end) 100%);
}

main {
    --theme-bg-start: var(--page-bg-start);
    --theme-bg-mid: var(--page-bg-mid);
    --theme-bg-end: var(--page-bg-end);
    --theme-glow-one: var(--page-glow-clay);
    --theme-glow-two: var(--page-glow-sage);
    --theme-accent: var(--sage);
    --theme-accent-strong: var(--sage-deep);
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 8%, var(--theme-glow-one), transparent 32rem),
        radial-gradient(circle at 88% 24%, var(--theme-glow-two), transparent 28rem),
        linear-gradient(180deg, var(--theme-bg-start) 0%, var(--theme-bg-mid) 42%, var(--theme-bg-end) 100%);
    transition: background 420ms ease, color 260ms ease;
}

section,
[id] {
    scroll-margin-top: var(--safe-anchor-offset);
}

.theme-home {
    --theme-bg-start: #efe6dc;
    --theme-bg-mid: #f4eee5;
    --theme-bg-end: #e8ddcf;
    --theme-glow-one: rgba(188, 143, 105, 0.14);
    --theme-glow-two: rgba(58, 124, 116, 0.1);
}

.theme-wedding {
    --theme-bg-start: #fff4ec;
    --theme-bg-mid: #f7e7dc;
    --theme-bg-end: #e8d3c4;
    --theme-glow-one: rgba(215, 144, 116, 0.2);
    --theme-glow-two: rgba(226, 185, 130, 0.18);
    --theme-accent: #bd7b66;
    --theme-accent-strong: #8d4f42;
}

.theme-funeral {
    --theme-bg-start: #232521;
    --theme-bg-mid: #46473f;
    --theme-bg-end: #d7d0c4;
    --theme-glow-one: rgba(125, 135, 128, 0.22);
    --theme-glow-two: rgba(43, 48, 45, 0.42);
    --theme-accent: #7d8a7f;
    --theme-accent-strong: #536158;
}

.theme-services,
.theme-about {
    --theme-bg-start: #f1e8dd;
    --theme-bg-mid: #eee4d8;
    --theme-bg-end: #e5d8ca;
    --theme-glow-one: rgba(157, 117, 94, 0.12);
    --theme-glow-two: rgba(98, 126, 108, 0.12);
}

.theme-contact,
.theme-privacy {
    --theme-bg-start: #e8e1d8;
    --theme-bg-mid: #ded8cf;
    --theme-bg-end: #d2ccc3;
    --theme-glow-one: rgba(64, 70, 64, 0.1);
    --theme-glow-two: rgba(157, 117, 94, 0.11);
}

.theme-trust,
.theme-journal {
    --theme-bg-start: #ebe3d9;
    --theme-bg-mid: #e1dad0;
    --theme-bg-end: #d8d2c8;
    --theme-glow-one: rgba(113, 128, 107, 0.13);
    --theme-glow-two: rgba(157, 117, 94, 0.1);
}

*::-moz-selection {
    background: var(--selection-bg);
    color: var(--ink);
}

*::selection {
    background: var(--selection-bg);
    color: var(--ink);
}

* {
    scrollbar-width: thin;
    scrollbar-color:
        color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 58%, transparent)
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 72%, transparent);
}

*::-webkit-scrollbar {
    width: 0.72rem;
    height: 0.72rem;
}

*::-webkit-scrollbar-track {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--theme-bg-start, var(--page-bg-start)) 72%, transparent),
            color-mix(in srgb, var(--theme-bg-end, var(--page-bg-end)) 72%, transparent));
}

*::-webkit-scrollbar-thumb {
    border: 0.18rem solid transparent;
    border-radius: 999px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 72%, var(--ink)),
            color-mix(in srgb, var(--theme-accent, var(--sage)) 64%, var(--clay)))
        padding-box;
}

*::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--ink) 78%, var(--theme-accent-strong, var(--sage-deep))),
            color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 70%, var(--clay)))
        padding-box;
}

img {
    display: block;
    max-width: 100%;
    -webkit-touch-callout: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    -moz-user-select: none;
         user-select: none;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

h1,
h2,
h3 {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.06;
    color: var(--ink);
}

h1 {
    font-size: clamp(3rem, 6.2vw, 5.1rem);
}

h2 {
    font-size: clamp(2.4rem, 5.4vw, 4rem);
}

h3 {
    font-size: clamp(1.55rem, 3.6vw, 2.3rem);
}

p {
    margin: 0 0 1rem;
    line-height: 1.8;
    color: var(--ink-soft);
}

blockquote {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    line-height: 1.05;
    color: var(--ink);
}

.shell {
    width: var(--shell);
    margin: 0 auto;
}

.eyebrow {
    margin: 0 0 0.85rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--sage-deep);
}

.lead {
    font-size: 1.1rem;
    line-height: 1.9;
    color: var(--ink-soft);
}

.section {
    position: relative;
    padding: 6rem 0;
    background-color: transparent;
    box-shadow:
        inset 0 5rem 5rem -5.2rem color-mix(in srgb, var(--theme-bg-start, var(--page-bg-start)) 78%, transparent),
        inset 0 -5rem 5rem -5.2rem color-mix(in srgb, var(--theme-bg-end, var(--page-bg-end)) 78%, transparent);
}

.section + .section {
    margin-top: -1px;
}

.section-soft {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 58%, transparent) 0%,
            var(--soft-section) 18%,
            var(--soft-section) 82%,
            color-mix(in srgb, var(--theme-bg-end, var(--page-bg-end)) 62%, transparent) 100%);
}

.section-deep {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 54%, #2d2723) 0%,
            rgba(45, 39, 35, 0) 18%,
            rgba(30, 26, 23, 0) 78%,
            color-mix(in srgb, var(--theme-bg-end, var(--page-bg-end)) 48%, #1e1a17) 100%),
        radial-gradient(circle at top left, rgba(157, 117, 94, 0.18), transparent 24%),
        linear-gradient(180deg, #2d2723 0%, #1e1a17 100%);
}

.section-deep .eyebrow,
.section-deep h2,
.section-deep h3,
.section-deep p,
.section-deep li {
    color: rgba(251, 246, 240, 0.92);
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 30;
    background: var(--header-bg);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--header-border);
    transform: translateY(0);
    transition:
        background 180ms ease,
        box-shadow 180ms ease,
        transform 260ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.site-header.is-scrolled {
    background: var(--header-bg-strong);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.site-header.is-scroll-up {
    transform: translateY(0);
    background: var(--header-bg-strong);
}

.site-header.is-scroll-up .header-inner {
    width: var(--shell);
    justify-content: space-between;
}

.site-header.is-scroll-up .site-nav,
.site-header.is-scroll-up .header-actions {
    max-width: 48rem;
    opacity: 1;
    transform: none;
    overflow: visible;
    pointer-events: auto;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--header-height);
    gap: clamp(1rem, 2vw, 1.8rem);
    padding-block: 0.55rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: clamp(0.95rem, 1.6vw, 1.1rem);
    min-width: 0;
    flex: 0 1 25rem;
    max-width: min(25rem, 44vw);
}

.brand-lockup {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(4.55rem, 6.2vw, 5.7rem);
    aspect-ratio: 1;
    flex: 0 0 auto;
    overflow: visible;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.brand-mark {
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(231, 221, 208, 0.9)),
        rgba(255, 250, 244, 0.85);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    font-family: "Cormorant Garamond", serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--sage-deep);
}

.brand-mark-image {
    width: clamp(3.9rem, 5.5vw, 4.7rem);
    height: clamp(3.9rem, 5.5vw, 4.7rem);
    padding: 0.28rem;
    overflow: hidden;
    border-radius: 1.35rem;
    box-shadow:
        0 16px 36px rgba(36, 31, 27, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.brand-logo {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    border-radius: 16px;
}

.logo-composite {
    --logo-wreath-size: 120;
    --logo-clc-size: 88;
    --logo-wreath-scale: 1.2;
    position: relative;
    display: inline-grid;
    place-items: center;
    aspect-ratio: 1;
    filter:
        drop-shadow(0 15px 30px rgba(0, 0, 0, 0.22))
        drop-shadow(0 0 16px rgba(214, 199, 145, 0.08));
}

.logo-layer,
.logo-composite img,
.peacock-badge-logo img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    -webkit-user-drag: none;
}

.logo-layer {
    grid-area: 1 / 1;
}

.logo-clc {
    position: relative;
    z-index: 3;
    width: calc(var(--logo-clc-size) / var(--logo-wreath-size) * 100%);
    height: calc(var(--logo-clc-size) / var(--logo-wreath-size) * 100%);
    transform: translateY(1%) scale(1);
    transform-origin: center;
    filter:
        drop-shadow(0 2px 8px rgba(0, 0, 0, 0.22))
        drop-shadow(0 0 10px rgba(214, 199, 145, 0.08));
    transition:
        transform 520ms cubic-bezier(0.22, 1, 0.36, 1),
        filter 520ms ease;
}

.clc-lettermark {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    justify-items: center;
    width: 66.666667%;
    height: 66.666667%;
    margin: auto;
    color: var(--ink);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.15rem, 2.7vw, 2.2rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
}

.clc-letter {
    display: inline-block;
}

.clc-letter-one {
    transform: translate(0.16em, -0.12em);
}

.clc-letter-two {
    transform: translate(0, 0.34em);
}

.clc-letter-three {
    transform: translate(-0.16em, 0.08em) scaleX(-1);
}

.logo-wreath {
    position: absolute;
    inset: 0;
    align-self: center;
    justify-self: center;
    z-index: 4;
    width: 100%;
    height: 100%;
    margin: auto;
    transform: rotate(0deg) scale(var(--logo-wreath-scale));
    transform-origin: center;
    filter:
        drop-shadow(0 0 10px rgba(214, 199, 145, 0.14))
        drop-shadow(0 10px 20px rgba(0, 0, 0, 0.22));
    transition:
        transform 1280ms cubic-bezier(0.18, 0.86, 0.24, 1),
        filter 520ms ease;
    will-change: transform;
}

.brand .logo-wreath {
    transform: rotate(0deg) scale(var(--logo-wreath-scale));
}

.brand-logo-composite {
    width: 100%;
    overflow: visible;
}

.brand:hover .logo-wreath,
.brand:focus-visible .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.brand:hover .logo-clc,
.brand:focus-visible .logo-clc {
    transform: translateY(1%) scale(1.035);
    filter:
        drop-shadow(0 3px 10px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.14));
}

.footer-brand:hover .footer-logo-composite .logo-wreath,
.brand-stage:hover .logo-wreath,
.symbolism-mark:hover .logo-wreath,
.service-path-card:hover .peacock-badge-logo .logo-wreath,
.service-path-card:focus-within .peacock-badge-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.brand-wording {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.brand-name {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.28rem, 2vw, 1.62rem);
    line-height: 1;
    color: var(--ink);
    white-space: nowrap;
}

.brand-tagline {
    max-width: 28rem;
    font-size: clamp(0.66rem, 0.9vw, 0.78rem);
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.45;
    text-transform: uppercase;
    color: var(--clay);
    text-wrap: balance;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-left: auto;
}

.site-nav a {
    position: relative;
    padding-bottom: 0.25rem;
    font-size: 0.96rem;
    color: var(--ink-soft);
}

.site-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.1rem;
    height: 2px;
    border-radius: 999px;
    background: transparent;
    opacity: 0;
    transform: translateY(0.18rem) scaleX(0.35);
    transform-origin: center;
    background-size: 200% 100%;
    background-position: 0% 50%;
    transition:
        transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
        opacity 220ms ease,
        background 180ms ease,
        background-position 420ms ease;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a.is-active {
    color: var(--ink);
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a.is-active::after {
    opacity: 1;
    transform: translateY(0) scaleX(1);
    background-position: 100% 50%;
    background: currentColor;
}

.nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 3rem;
    padding: 0 1rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--surface-strong);
    color: var(--ink);
}

.hamburger {
    position: relative;
    width: 1.15rem;
    height: 0.84rem;
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
}

.hamburger-bar {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform-origin: center;
    transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle[aria-expanded="true"] .hamburger-bar:nth-child(1) {
    transform: translateY(0.41rem) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .hamburger-bar:nth-child(2) {
    opacity: 0;
}

.nav-toggle[aria-expanded="true"] .hamburger-bar:nth-child(3) {
    transform: translateY(-0.41rem) rotate(-45deg);
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 3rem;
    padding: 0.4rem 0.9rem 0.4rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--surface-strong);
    color: var(--ink);
    box-shadow: var(--shadow);
}

.theme-toggle-track {
    position: relative;
    width: 2.8rem;
    height: 1.65rem;
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(36, 31, 27, 0.08)),
        rgba(113, 128, 107, 0.18);
    border: 1px solid var(--line);
    overflow: hidden;
}

.theme-toggle-thumb {
    position: absolute;
    top: 50%;
    left: 0.18rem;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 999px;
    background: var(--ink);
    transform: translateY(-50%);
    transition: transform 180ms ease, background 180ms ease;
}

.theme-toggle-label {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--ink-soft);
}

:root[data-theme="dark"] .theme-toggle-thumb {
    transform: translate(1.05rem, -50%);
    background: var(--cream);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .theme-toggle-thumb {
        transform: translate(1.05rem, -50%);
        background: var(--cream);
    }
}

.header-cta {
    position: relative;
    flex-shrink: 0;
    min-width: 15.3rem;
    min-height: 3.25rem;
    padding: 0.72rem 1.45rem;
    overflow: visible;
    flex-direction: column;
    gap: 0.08rem;
    border-color: rgba(183, 192, 204, 0.32);
    background:
        linear-gradient(145deg, rgba(34, 39, 48, 0.98), rgba(9, 11, 14, 0.98));
    color: #f7f8fa;
    box-shadow:
        0 18px 38px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: none;
    transform-origin: top center;
    transition:
        background 260ms ease,
        border-color 260ms ease,
        box-shadow 260ms ease;
}

.header-cta-label,
.header-cta-sub {
    position: relative;
    z-index: 1;
    display: block;
    line-height: 1.1;
}

.header-cta-label {
    color: #ffffff;
}

.header-cta-sub {
    position: absolute;
    top: calc(100% + 0.42rem);
    left: 0.55rem;
    right: 0.55rem;
    max-height: none;
    padding: 0.62rem 0.9rem;
    border: 1px solid rgba(214, 199, 145, 0.18);
    border-radius: 0 0 16px 16px;
    opacity: 0;
    transform: translateY(-0.5rem) scaleY(0.88);
    transform-origin: top center;
    color: rgba(243, 244, 246, 0.82);
    background:
        linear-gradient(145deg, rgba(34, 39, 48, 0.98), rgba(10, 12, 16, 0.98));
    box-shadow:
        0 18px 34px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    white-space: nowrap;
    pointer-events: none;
    transition:
        opacity 220ms ease,
        transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 220ms ease,
        background 220ms ease;
}

.header-cta.button-peacock::before {
    position: absolute;
    left: 1.45rem;
    right: 1.45rem;
    bottom: 0.58rem;
    z-index: 0;
    inline-size: auto;
    block-size: 2px;
    border-radius: 999px;
    opacity: 0;
    background:
        linear-gradient(90deg,
            transparent,
            color-mix(in srgb, var(--peacock-sage) 60%, var(--peacock-gold)),
            transparent);
    transform: translateY(0.4rem) scaleX(0.28);
    transform-origin: center;
    transition:
        opacity 240ms ease,
        transform 340ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.header-cta:hover,
.header-cta:focus-visible {
    transform: none;
    border-color: rgba(200, 167, 109, 0.38);
    background:
        linear-gradient(145deg, rgba(46, 53, 64, 0.98), rgba(12, 15, 19, 0.98));
    box-shadow:
        0 22px 48px rgba(0, 0, 0, 0.48),
        0 0 0 4px rgba(183, 192, 204, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.header-cta:hover .header-cta-sub,
.header-cta:focus-visible .header-cta-sub {
    opacity: 1;
    transform: translateY(0) scaleY(1);
}

.header-cta.button-peacock:hover::before,
.header-cta.button-peacock:focus-visible::before {
    inline-size: auto;
    opacity: 1;
    transform: translateY(0) scaleX(1);
}

.header-cta .feather {
    display: none;
}

.hero,
.page-hero {
    position: relative;
    overflow: hidden;
}

.hero {
    padding: 3.35rem 0 2.6rem;
    min-height: clamp(41rem, 82svh, 52rem);
    display: flex;
    align-items: center;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 12% 20%, rgba(255, 255, 255, 0.75), transparent 22%),
        radial-gradient(circle at 88% 18%, rgba(113, 128, 107, 0.18), transparent 20%),
        linear-gradient(140deg, rgba(236, 224, 208, 0.9), rgba(247, 242, 235, 0.72) 55%, rgba(220, 203, 189, 0.8));
    z-index: 0;
}

.hero-grid,
.page-hero-grid,
.split-layout,
.contact-grid,
.process-layout,
.faq-grid {
    display: grid;
    gap: 1.2rem;
}

.hero-grid {
    position: relative;
    z-index: 1;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    align-items: center;
}

.hero-copy {
    max-width: 40rem;
}

.hero-copy .lead {
    max-width: 38rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 2rem 0 1.6rem;
}

.button,
.button-secondary,
.text-link {
    transition:
        transform 180ms ease,
        opacity 180ms ease,
        background 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.2rem;
    padding: 0 2rem;
    border-radius: 16px;
    border: 1px solid transparent;
    background: var(--ink);
    color: var(--cream);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(36, 31, 27, 0.1);
}

.button:not(.header-cta)::before,
.button-secondary::before,
.button-light::before {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background:
        linear-gradient(115deg,
            transparent 0 35%,
            rgba(255, 255, 255, 0.18) 48%,
            transparent 62% 100%);
    opacity: 0;
    transform: translateX(-42%);
    transition:
        opacity 260ms ease,
        transform 420ms cubic-bezier(0.18, 0.86, 0.24, 1);
    pointer-events: none;
}

.button:hover,
.button:focus-visible,
.button-secondary:hover,
.button-secondary:focus-visible,
.text-link:hover,
.text-link:focus-visible {
    transform: translateY(-1px);
}

.button:not(.header-cta):hover::before,
.button:not(.header-cta):focus-visible::before,
.button-secondary:hover::before,
.button-secondary:focus-visible::before,
.button-light:hover::before,
.button-light:focus-visible::before {
    opacity: 1;
    transform: translateX(42%);
}

.button:not(.header-cta):active,
.button-secondary:active,
.button-light:active {
    transform: translateY(1px) scale(0.985);
}

.button-secondary {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.2rem;
    padding: 0 2rem;
    border-radius: 16px;
    border: 1px solid var(--line-strong);
    background: var(--button-secondary-bg);
    color: var(--ink);
    font-weight: 700;
    font-size: 1rem;
    overflow: hidden;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--sage-deep);
    font-weight: 700;
}

.trust-list,
.contact-list,
.footer-list,
.package-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.trust-list {
    display: grid;
    gap: 0.85rem;
}

.trust-list li {
    position: relative;
    padding-left: 1.3rem;
    color: var(--ink-soft);
}

.trust-list li::before {
    content: "";
    position: absolute;
    top: 0.68rem;
    left: 0;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--sage);
}

.visual-stage,
.path-panel,
.detail-card,
.quote-card,
.package-card,
.contact-panel,
.contact-form,
.cta-panel {
    border-radius: var(--radius);
    border: 1px solid var(--panel-border);
    background: var(--surface);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}

.visual-stage {
    position: relative;
    min-height: 31rem;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
}

.media-stage {
    padding: 0;
    justify-content: flex-end;
}

.visual-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(36, 31, 27, 0.22)),
        linear-gradient(135deg, rgba(255, 255, 255, 0.22), transparent 40%),
        linear-gradient(135deg, #d7c3b1 0%, #efe7dd 45%, #b7c0b1 100%);
}

.media-stage::before {
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(19, 17, 15, 0.02) 0%, rgba(19, 17, 15, 0.16) 48%, rgba(19, 17, 15, 0.62) 100%);
}

.visual-stage-home::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(36, 31, 27, 0.24)),
        radial-gradient(circle at 24% 20%, rgba(255, 255, 255, 0.65), transparent 18%),
        linear-gradient(135deg, #dbc8b4 0%, #f2ebe2 46%, #b5bca9 100%);
}

.visual-stage-weddings::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(36, 31, 27, 0.24)),
        linear-gradient(135deg, #dcc7b5 0%, #f4ece3 45%, #b6c0ac 100%);
}

.visual-stage-funerals::before,
.visual-stage-portrait::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(36, 31, 27, 0.24)),
        linear-gradient(135deg, #d8c2af 0%, #eee6db 45%, #c6cfbf 100%);
}

.media-stage-home::before,
.media-stage-weddings::before {
    background:
        linear-gradient(180deg, rgba(18, 16, 14, 0.02) 0%, rgba(18, 16, 14, 0.12) 45%, rgba(18, 16, 14, 0.58) 100%);
}

.media-stage img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.visual-badge,
.visual-caption,
.visual-note {
    position: relative;
    z-index: 1;
}

.media-stage-overlay {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding: 2rem;
}

.media-stage-kicker {
    margin-bottom: 0.6rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(251, 246, 240, 0.78);
}

.visual-badge {
    width: 7rem;
    height: 7rem;
    margin-bottom: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--badge-bg);
    border: 1px solid var(--panel-border-soft);
    font-family: "Cormorant Garamond", serif;
    font-size: 1.6rem;
    letter-spacing: 0.12em;
    color: var(--sage-deep);
}

.visual-caption,
.visual-note {
    max-width: 20rem;
    color: rgba(251, 246, 240, 0.88);
}

.brand-stage {
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 2.5rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0)),
        rgba(255, 250, 244, 0.88);
}

.brand-stage::before {
    background:
        radial-gradient(circle at top left, rgba(113, 128, 107, 0.12), transparent 24%),
        radial-gradient(circle at bottom right, rgba(157, 117, 94, 0.12), transparent 24%);
}

.brand-stage-logo {
    position: relative;
    z-index: 1;
    width: min(100%, 22rem);
    border-radius: 0;
    box-shadow: none;
}

.brand-preview-layout {
    align-items: stretch;
}

.brand-concept-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
}

.brand-concept-card {
    position: relative;
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 26px;
    border: 1px solid var(--panel-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0)),
        var(--surface);
    box-shadow: var(--shadow);
}

.brand-concept-card-primary {
    grid-column: 1 / -1;
}

.brand-concept-art {
    width: 100%;
    min-height: 11rem;
    border-radius: 18px;
    border: 1px solid rgba(113, 128, 107, 0.12);
    background: rgba(255, 255, 255, 0.32);
}

.brand-concept-meta {
    display: grid;
    gap: 0.3rem;
}

.brand-concept-label {
    margin: 0;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--sage-deep);
}

.brand-concept-meta h3 {
    margin-bottom: 0.2rem;
}

.palette-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.6rem;
}

.palette-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.8rem;
    padding: 0 1rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.palette-chip-sand {
    background: #dccbb8;
    color: #3d342d;
}

.palette-chip-cream {
    background: #fbf6f0;
    color: #54463c;
}

.palette-chip-sage {
    background: #71806b;
    color: #f7f1e8;
}

.palette-chip-gold {
    background: #c6a76a;
    color: #3d342d;
}

.palette-chip-charcoal {
    background: #2d2a27;
    color: #f7f1e8;
}

.section-heading {
    display: grid;
    gap: 1rem;
    max-width: 48rem;
    margin-bottom: 3rem;
}

.section-heading.compact {
    margin-bottom: 0;
}

.section-heading.light h2,
.section-heading.light p,
.section-heading.light .eyebrow {
    color: rgba(251, 246, 240, 0.94);
}

.path-grid,
.detail-grid,
.quote-grid,
.package-grid {
    display: grid;
    gap: 1.5rem;
}

.path-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.path-panel,
.detail-card,
.quote-card,
.package-card {
    position: relative;
    padding: 2rem;
}

.path-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0.85;
}

.path-panel-wedding::before {
    background: linear-gradient(135deg, rgba(219, 200, 180, 0.6), rgba(255, 255, 255, 0) 60%);
}

.path-panel-funeral::before {
    background: linear-gradient(135deg, rgba(181, 192, 169, 0.45), rgba(255, 255, 255, 0) 60%);
}

.path-panel > *,
.detail-card > *,
.quote-card > *,
.package-card > * {
    position: relative;
    z-index: 1;
}

.path-panel h3,
.detail-card h3,
.quote-card h3,
.package-card h3,
.faq-list h3 {
    margin-bottom: 0.75rem;
}

.detail-card-logo {
    --logo-wreath-scale: 1.2;
    justify-self: center;
    width: clamp(2.6rem, 3.2vw, 3.2rem);
    height: clamp(2.6rem, 3.2vw, 3.2rem);
    margin-bottom: 1rem;
    overflow: visible;
}

.detail-card .detail-card-logo .logo-clc {
    width: 73%;
    height: 73%;
}

.detail-card .detail-card-logo .logo-wreath {
    width: 100%;
    height: 100%;
}

.detail-card:has(.detail-card-logo) {
    display: grid;
    justify-items: center;
    text-align: center;
}

.detail-card:hover .detail-card-logo .logo-wreath,
.detail-card:focus-within .detail-card-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.detail-card:hover .detail-card-logo .logo-clc,
.detail-card:focus-within .detail-card-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.path-index,
.package-tag,
.quote-label {
    margin-bottom: 1rem;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--sage-deep);
}

.split-layout {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
}

.split-layout-visual {
    align-items: stretch;
}

.media-stage-detail::before {
    background:
        linear-gradient(180deg, rgba(18, 16, 14, 0.02) 0%, rgba(18, 16, 14, 0.14) 45%, rgba(18, 16, 14, 0.58) 100%);
}

.story-copy {
    display: grid;
    gap: 1rem;
}

.detail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.detail-grid > .detail-card:last-child:nth-child(3n + 1) {
    grid-column: 2;
}

.process-layout {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
}

.process-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 1.4rem;
}

.process-list li {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: 1rem;
    padding-bottom: 1.4rem;
    border-bottom: 1px solid rgba(251, 246, 240, 0.18);
}

.process-list span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    background: rgba(251, 246, 240, 0.14);
    font-weight: 800;
}

.process-list-light li {
    border-bottom: 1px solid var(--line);
}

.process-list-light span {
    background: rgba(113, 128, 107, 0.12);
    color: var(--sage-deep);
}

.quote-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quote-card {
    min-height: 17rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.cta-panel {
    padding: 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.page-hero {
    padding: 6rem 0 1.5rem;
}

.page-hero-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    align-items: end;
}

.narrow-copy {
    max-width: 42rem;
}

.contact-grid {
    grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
    align-items: start;
}

.contact-panel,
.contact-form {
    padding: 2rem;
}

.contact-steps {
    margin-top: 1.6rem;
}

.contact-list {
    display: grid;
    gap: 1rem;
    margin: 1.4rem 0 1.8rem;
}

.contact-list span,
.footer-heading {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--sage-deep);
}

.footer-heading {
    display: grid;
    grid-template-columns: auto minmax(2.5rem, 1fr);
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    margin: 0 0 1rem;
    padding-bottom: 0.7rem;
    color: var(--peacock-gold);
}

.footer-heading::after {
    content: "";
    display: block;
    height: 1px;
    min-width: 0;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        rgba(214, 199, 145, 0.92),
        rgba(0, 137, 123, 0.58),
        transparent
    );
}

.field-row {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.field-group {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.field-group label,
.field-label {
    margin: 0;
    color: var(--ink);
    font-weight: 700;
}

.field-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.field-optional,
.field-hint {
    color: var(--ink-muted);
}

.field-optional {
    font-size: 0.85rem;
    font-weight: 600;
}

.field-hint {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.65;
}

.field-control {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 3.8rem;
    border-radius: 22px;
    border: 1px solid var(--control-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0)),
        var(--control-bg);
    box-shadow: var(--control-shadow);
    transition:
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease,
        background 180ms ease;
    overflow: hidden;
}

.field-control::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.14), transparent 40%);
    pointer-events: none;
}

.field-control:focus-within {
    border-color: var(--control-border-strong);
    box-shadow: 0 0 0 4px var(--focus-ring), var(--control-shadow);
    transform: translateY(-1px);
}

.field-control:hover,
.field-control-button:hover {
    border-color: color-mix(in srgb, var(--control-border-strong) 62%, var(--control-border));
    box-shadow: 0 18px 48px rgba(36, 31, 27, 0.1);
}

.field-control.is-invalid {
    border-color: rgba(153, 45, 31, 0.45);
    box-shadow: 0 0 0 4px rgba(153, 45, 31, 0.12);
}

.field-control input,
.field-control select,
.field-control textarea {
    position: relative;
    z-index: 1;
    width: 100%;
    min-width: 0;
    padding: 1rem 1.1rem;
    border: 0;
    background: transparent;
    color: var(--ink);
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}

.form-choice {
    position: relative;
}

.phone-field {
    position: relative;
}

.form-choice.is-open {
    z-index: 18;
}

.phone-field.is-open {
    z-index: 18;
}

.form-choice.is-invalid .field-control-button {
    border-color: rgba(153, 45, 31, 0.45);
    box-shadow: 0 0 0 4px rgba(153, 45, 31, 0.12);
}

.field-control-button {
    width: 100%;
    padding: 1rem 3.7rem 1rem 1.1rem;
    justify-content: flex-start;
    text-align: left;
    cursor: pointer;
}

.field-control-button:focus-visible,
.form-choice.is-open .field-control-button,
.phone-field.is-open .field-control-phone {
    border-color: var(--control-border-strong);
    box-shadow: 0 0 0 4px var(--focus-ring), var(--control-shadow);
    transform: translateY(-1px);
}

.field-control-text {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    min-width: 0;
    color: var(--ink);
}

.field-control-button.is-placeholder .field-control-text {
    color: var(--ink-muted);
}

.field-control input::-moz-placeholder, .field-control textarea::-moz-placeholder {
    color: var(--ink-muted);
}

.field-control input::placeholder,
.field-control textarea::placeholder {
    color: var(--ink-muted);
}

.field-control select {
    cursor: pointer;
}

.field-control select option {
    color: var(--ink);
    background: var(--canvas-deep);
}

.field-popup {
    position: absolute;
    top: calc(100% + 0.65rem);
    left: 0;
    right: 0;
    z-index: 20;
    max-height: var(--field-popup-max-height, min(22rem, calc(100vh - 8rem)));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-0.45rem) scale(0.98);
    transform-origin: top center;
    transition:
        opacity 170ms ease,
        visibility 170ms ease,
        transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.field-popup.is-above {
    top: auto;
    bottom: calc(100% + 0.65rem);
    transform: translateY(0.45rem) scale(0.98);
    transform-origin: bottom center;
}

.form-choice.is-open .field-popup,
.phone-field.is-open .field-popup {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.field-popup[hidden] {
    display: none;
}

.field-popup-select,
.field-popup-phone,
.date-picker-shell {
    border-radius: 24px;
    border: 1px solid color-mix(in srgb, var(--control-border-strong) 38%, var(--control-border));
    background-color: #fbf8f3;
    background-image:
        linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0)),
        radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--theme-accent, var(--sage)) 9%, transparent), transparent 14rem);
    box-shadow:
        0 28px 72px rgba(36, 31, 27, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(24px) saturate(1.1);
    overflow: hidden;
}

.field-option-placeholder {
    padding: 0.65rem 1rem 0.4rem;
    color: var(--ink-muted);
    font-size: 0.86rem;
    font-weight: 700;
}

.field-option-list {
    display: grid;
    gap: 0.35rem;
    max-height: min(18rem, calc(var(--field-popup-max-height, 22rem) - 1rem));
    margin: 0;
    padding: 0.6rem;
    list-style: none;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 58%, transparent) transparent;
}

.field-option-list::-webkit-scrollbar {
    width: 0.65rem;
}

.field-option-list::-webkit-scrollbar-track {
    background: transparent;
}

.field-option-list::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background:
        color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 62%, transparent)
        padding-box;
}

.field-option {
    position: relative;
    width: 100%;
    padding: 0.95rem 1rem;
    border: 0;
    border-radius: 16px;
    background: transparent;
    color: var(--ink);
    text-align: left;
    transition:
        background 160ms ease,
        color 160ms ease,
        transform 160ms ease,
        box-shadow 160ms ease;
}

.field-option:hover,
.field-option:focus-visible {
    background: color-mix(in srgb, var(--theme-accent, var(--sage)) 15%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 16%, transparent);
    transform: translateX(0.18rem);
}

.field-option.is-selected {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 42%),
        rgba(36, 31, 27, 0.92);
    color: var(--cream);
    box-shadow: 0 12px 24px rgba(36, 31, 27, 0.16);
}

.field-option.is-selected::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1rem;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
    transform: translateY(-50%);
}

.field-popup-date {
    right: auto;
    width: min(100%, 20rem);
}

.date-picker-shell {
    padding: 0.85rem;
    max-height: var(--field-popup-max-height, min(24rem, calc(100vh - 8rem)));
    overflow: auto;
    scrollbar-width: thin;
}

.date-picker-header,
.date-picker-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.date-picker-header {
    margin-bottom: 0.75rem;
}

.date-picker-month {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ink);
}

.date-picker-nav,
.date-picker-action {
    min-height: 2.5rem;
    padding: 0 0.85rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: color-mix(in srgb, var(--control-bg-strong) 82%, white);
    color: var(--ink);
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.date-picker-nav:hover,
.date-picker-nav:focus-visible,
.date-picker-action:hover,
.date-picker-action:focus-visible {
    border-color: var(--control-border-strong);
    background: color-mix(in srgb, var(--control-bg-strong) 70%, white);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.1);
    transform: translateY(-1px);
}

.date-picker-weekdays,
.date-picker-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.date-picker-weekdays {
    gap: 0.25rem;
    margin-bottom: 0.35rem;
}

.date-picker-weekdays span {
    padding: 0.2rem 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
    text-transform: uppercase;
    color: var(--sage-deep);
}

.date-picker-grid {
    gap: 0.25rem;
}

.calendar-day {
    min-height: 2.5rem;
    border: 0;
    border-radius: 14px;
    background: transparent;
    color: var(--ink);
    font-weight: 600;
    transition: background 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.calendar-day:hover,
.calendar-day:focus-visible {
    background: color-mix(in srgb, var(--theme-accent, var(--sage)) 15%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 14%, transparent);
    transform: translateY(-1px);
}

.calendar-day.is-outside-month {
    color: var(--ink-muted);
}

.calendar-day.is-today {
    box-shadow: inset 0 0 0 1px rgba(113, 128, 107, 0.45);
}

.calendar-day.is-selected {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 45%),
        var(--ink);
    color: var(--cream);
    box-shadow: 0 10px 22px rgba(36, 31, 27, 0.16);
}

.date-picker-actions {
    margin-top: 0.75rem;
}

.field-control-select select,
.field-control-date input {
    padding-right: 3.7rem;
}

.field-control-textarea {
    min-height: 13rem;
}

.field-control textarea {
    min-height: 13rem;
    resize: vertical;
}

.field-control input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    inset: 0;
    width: auto;
    opacity: 0;
    cursor: pointer;
}

.field-icon {
    position: absolute;
    right: 1.05rem;
    top: 50%;
    z-index: 1;
    font-size: 1.1rem;
    color: var(--sage-deep);
    transform: translateY(-50%);
    pointer-events: none;
}

.field-control-phone {
    align-items: center;
    overflow: hidden;
    padding: 0;
}

.phone-code-btn {
    position: relative;
    z-index: 1;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.38rem;
    min-width: 6.15rem;
    padding: 0 0.8rem;
    border: 0;
    border-right: 1px solid var(--control-border);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
        color-mix(in srgb, var(--control-bg-strong) 72%, transparent);
    color: var(--ink);
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1;
    transition: background 180ms ease, color 180ms ease;
}

.field-control-phone .phone-code-btn {
    border-radius: inherit;
    border-start-end-radius: 0;
    border-end-end-radius: 0;
    overflow: hidden;
}

.phone-region,
.phone-option-region {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.82rem;
    height: 1.42rem;
    border: 1px solid rgba(83, 97, 88, 0.28);
    border-radius: 0.42rem 0.62rem 0.62rem 0.42rem;
    clip-path: polygon(0.3rem 0, 100% 0, 100% 100%, 0.3rem 100%, 0 50%);
    background: color-mix(in srgb, var(--theme-accent, var(--sage)) 12%, var(--control-bg-strong));
    color: var(--theme-accent-strong, var(--sage-deep));
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.phone-code-btn:hover,
.phone-code-btn:focus-visible {
    background: color-mix(in srgb, var(--theme-accent, var(--sage)) 14%, var(--control-bg-strong));
    color: var(--theme-accent-strong, var(--sage-deep));
}

.phone-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 0.92rem;
    height: 0.92rem;
    margin-left: 0.16rem;
    border-radius: 999px;
    border: 1px solid rgba(83, 97, 88, 0.34);
    background: color-mix(in srgb, var(--theme-accent, var(--sage)) 12%, transparent);
    color: var(--theme-accent-strong, var(--sage-deep));
    transition: border-color 180ms ease, background 180ms ease;
}

.phone-chevron::before {
    content: "";
    width: 0.36rem;
    height: 0.36rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-0.02rem);
    transition: transform 180ms ease;
}

.phone-field.is-open .phone-chevron::before {
    transform: rotate(225deg) translate(-0.03rem, 0.03rem);
}

.phone-divider {
    display: none;
}

.phone-number-input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1rem 1.1rem;
    border: 0;
    background: transparent;
    letter-spacing: 0;
}

.field-popup-phone {
    min-width: min(22rem, calc(100vw - 2rem));
}

.phone-option-list {
    gap: 0.42rem;
    padding-right: 0.38rem;
}

.phone-option-list::-webkit-scrollbar {
    width: 0.72rem;
}

.phone-option-list::-webkit-scrollbar-track {
    margin-block: 0.2rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--control-bg) 72%, transparent);
}

.phone-option-list::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--theme-accent, var(--sage)) 72%, white),
            color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 58%, transparent))
        padding-box;
}

.phone-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    min-height: 3.35rem;
    padding: 0.72rem 0.9rem;
    font-size: 0.98rem;
    line-height: 1.25;
}

.phone-option-name {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.phone-option-code {
    color: var(--ink-muted);
    font-size: 0.9rem;
    font-weight: 800;
    white-space: nowrap;
}

.phone-option.is-selected .phone-option-region {
    background: rgba(255, 255, 255, 0.16);
    color: currentColor;
}

.phone-option.is-selected .phone-option-code {
    color: currentColor;
}

.phone-option.is-selected::after {
    display: none;
}

@media (max-width: 720px) {
    .field-popup-phone {
        width: min(100%, calc(100vw - 2rem));
        min-width: 0;
    }

    .phone-code-btn {
        min-width: 5.7rem;
        padding-inline: 0.65rem;
    }

    .phone-option {
        gap: 0.65rem;
        font-size: 0.94rem;
    }
}

.checkbox-row {
    display: grid;
    margin-bottom: 1rem;
}

.checkbox-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.checkbox-label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.9rem;
    align-items: start;
    padding: 1rem 1.1rem;
    border-radius: 22px;
    border: 1px solid var(--control-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0)),
        var(--control-bg);
    box-shadow: var(--control-shadow);
    color: var(--ink);
    cursor: pointer;
    font-weight: 700;
    transition:
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease,
        background 180ms ease;
}

.checkbox-box {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    height: 1.45rem;
    margin-top: 0.18rem;
    border-radius: 0.5rem;
    border: 2px solid var(--control-border-strong);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)),
        rgba(8, 10, 14, 0.76);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 0 0 4px rgba(183, 192, 204, 0.08);
    transition:
        background 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.checkbox-box::after {
    content: "";
    width: 0.7rem;
    height: 0.4rem;
    border-left: 2px solid #11141a;
    border-bottom: 2px solid #11141a;
    transform: rotate(-45deg) translateY(-1px) scale(0.72);
    opacity: 0;
    transition:
        opacity 160ms ease,
        transform 180ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.checkbox-input:checked ~ .checkbox-label .checkbox-box,
.checkbox-row.is-checked .checkbox-box {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.34), transparent 46%),
        var(--peacock-gold, #c8a76d);
    border-color: rgba(247, 248, 250, 0.92);
    box-shadow:
        0 0 0 5px rgba(214, 199, 145, 0.16),
        0 8px 20px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.checkbox-input:checked ~ .checkbox-label .checkbox-box::after,
.checkbox-row.is-checked .checkbox-box::after {
    opacity: 1;
    transform: rotate(-45deg) translateY(-1px) scale(1);
}

.checkbox-input:focus-visible ~ .checkbox-label {
    border-color: var(--control-border-strong);
    box-shadow: 0 0 0 4px var(--focus-ring), var(--control-shadow);
    transform: translateY(-1px);
}

.checkbox-row.is-invalid .checkbox-label {
    border-color: rgba(153, 45, 31, 0.45);
    box-shadow: 0 0 0 4px rgba(153, 45, 31, 0.12);
}

.file-dropzone {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    min-height: 8.4rem;
    padding: 1.35rem;
    border-radius: 26px;
    border: 1px dashed var(--control-border-strong);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0)),
        var(--control-bg);
    box-shadow: var(--control-shadow);
    cursor: pointer;
    overflow: hidden;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.file-dropzone::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 45%);
    pointer-events: none;
}

.file-dropzone::after {
    content: "Drop files to upload";
    position: absolute;
    inset: 0.55rem;
    z-index: 2;
    display: grid;
    place-items: center;
    border-radius: 20px;
    border: 1px solid rgba(214, 199, 145, 0.42);
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.18), transparent 8rem),
        rgba(10, 12, 15, 0.82);
    color: rgba(247, 247, 244, 0.92);
    font-weight: 800;
    opacity: 0;
    transform: scale(0.985);
    pointer-events: none;
    transition:
        opacity 180ms ease,
        transform 180ms ease;
    backdrop-filter: blur(10px);
}

.file-dropzone:hover,
.file-dropzone:focus-within,
.file-dropzone.has-files,
.file-dropzone.is-drag-over {
    border-color: var(--sage);
    box-shadow: 0 0 0 4px var(--focus-ring), var(--control-shadow);
    transform: translateY(-1px);
}

.file-dropzone.is-drag-over::after {
    opacity: 1;
    transform: scale(1);
}

.file-input {
    position: absolute;
    inset: 0;
    z-index: 3;
    opacity: 0;
    cursor: pointer;
}

.file-dropzone-copy,
.file-dropzone-action {
    position: relative;
    z-index: 1;
    pointer-events: none;
}

.file-dropzone-copy {
    display: grid;
    gap: 0.35rem;
}

.file-dropzone-title {
    font-weight: 700;
    color: var(--ink);
}

.file-dropzone-note {
    font-size: 0.94rem;
    color: var(--ink-muted);
}

.file-dropzone-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.9rem;
    padding: 0 1rem;
    border-radius: 999px;
    background: var(--ink);
    color: var(--cream);
    font-weight: 700;
    white-space: nowrap;
}

.file-list {
    list-style: none;
    padding: 0;
    margin: 0.85rem 0 0;
    display: grid;
    gap: 0.6rem;
}

.file-list li {
    min-width: 0;
    padding: 0.65rem;
    border-radius: 18px;
    border: 1px solid var(--line);
    background: var(--surface-strong);
    color: var(--ink-soft);
}

.file-list-item {
    display: grid;
    grid-template-columns: 3.35rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
}

.file-preview-image,
.file-preview-icon {
    width: 3.35rem;
    height: 3.35rem;
    border-radius: 13px;
    border: 1px solid rgba(243, 244, 246, 0.12);
    background: rgba(15, 17, 22, 0.72);
}

.file-preview-image {
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
}

.file-preview-icon {
    display: grid;
    place-items: center;
    color: var(--peacock-gold);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.file-preview-meta {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.file-preview-name {
    overflow: hidden;
    color: var(--ink);
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-preview-size {
    color: var(--ink-muted);
    font-size: 0.88rem;
}

.field-error {
    margin: 0;
    color: #992d1f;
    font-size: 0.92rem;
}

.callout {
    padding: 1rem 1.2rem;
    border-left: 3px solid var(--callout-border);
    background: var(--callout-bg);
    color: var(--ink);
}

.memorial-stage {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0)),
        rgba(255, 250, 244, 0.9);
    border-color: rgba(113, 128, 107, 0.2);
}

.memorial-stage::before {
    background:
        radial-gradient(circle at top left, rgba(113, 128, 107, 0.12), transparent 24%),
        radial-gradient(circle at bottom right, rgba(157, 117, 94, 0.12), transparent 24%);
}

.memorial-stage h3 {
    position: relative;
    z-index: 1;
    max-width: 22rem;
    margin-bottom: 1rem;
}

.memorial-stage .eyebrow,
.memorial-stage .visual-note {
    position: relative;
    z-index: 1;
}

.memorial-stage .visual-note {
    color: var(--ink-soft);
}

.package-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.package-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.package-card.featured {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0)),
        rgba(255, 250, 244, 0.96);
    border-color: rgba(113, 128, 107, 0.22);
}

.package-price {
    margin-bottom: 1.1rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink);
}

.package-list {
    display: grid;
    gap: 0.75rem;
}

.package-list li {
    position: relative;
    padding-left: 1.3rem;
    color: var(--ink-soft);
}

.package-list li::before {
    content: "";
    position: absolute;
    top: 0.7rem;
    left: 0;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: var(--sage);
}

.faq-grid {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
}

.faq-list {
    display: grid;
    gap: 1rem;
}

.faq-list article {
    padding: 1.4rem 0;
    border-bottom: 1px solid var(--line);
}

.wedding-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: dense;
    gap: 1.5rem;
}

.gallery-card {
    overflow: hidden;
    min-height: 20rem;
    border-radius: var(--radius);
    border: 1px solid var(--panel-border);
    box-shadow: var(--shadow);
    background: var(--surface);
}

.gallery-card img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.gallery-card-tall {
    grid-row: span 2;
    min-height: 34rem;
}

.gallery-card-wide {
    grid-column: span 2;
}

.prose-copy {
    display: grid;
    gap: 1rem;
    max-width: 52rem;
}

.prose-copy h2 {
    margin-top: 1rem;
}

.site-footer {
    padding: 1rem 0 4rem;
}

.footer-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1.12fr) minmax(9rem, 0.58fr) minmax(13rem, 0.76fr) minmax(9rem, 0.54fr);
    align-items: start;
    padding: 2rem 0 0;
    border-top: 1px solid var(--line);
}

.footer-grid > div:has(.footer-heading) {
    min-width: 0;
    padding-top: 0.15rem;
}

.footer-brand h2 {
    margin-bottom: 1rem;
    font-size: clamp(2rem, 4vw, 3rem);
}

.footer-logo {
    display: block;
    width: min(100%, 24rem);
    border-radius: 18px;
    margin-bottom: 1.25rem;
    box-shadow: 0 16px 42px rgba(36, 31, 27, 0.08);
}

.footer-logo-composite {
    width: min(100%, 13rem);
    margin-bottom: 1.25rem;
    filter: drop-shadow(0 18px 36px rgba(0, 0, 0, 0.18));
}

.footer-note {
    max-width: 28rem;
    margin-top: 1rem;
    color: var(--ink-muted);
}

.footer-list {
    display: grid;
    gap: 0.85rem;
}

.footer-accreditation {
    display: grid;
    justify-items: center;
    align-self: start;
    padding: 0.25rem 0 0;
}

.professional-accreditations {
    --accreditation-logo-size: clamp(7.25rem, 11vw, 9.75rem);
}

.accreditation-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: clamp(0.8rem, 2vw, 1.15rem);
}

.accreditation-logo,
.accreditation-logo-link {
    display: block;
    width: var(--accreditation-logo-size);
    aspect-ratio: 1;
    border-radius: 999px;
}

.accreditation-logo {
    -o-object-fit: contain;
       object-fit: contain;
    background: rgba(255, 255, 255, 0.96);
    border-radius: 999px;
    filter:
        drop-shadow(0 18px 34px rgba(0, 0, 0, 0.22))
        drop-shadow(0 0 18px rgba(201, 154, 51, 0.08));
}

.accreditation-logo-link {
    text-decoration: none;
    transition:
        transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1),
        filter 220ms ease;
}

.accreditation-logo-link:hover,
.accreditation-logo-link:focus-visible {
    transform: translateY(-0.16rem);
}

.accreditation-logo-link:focus-visible {
    outline: 2px solid rgba(214, 199, 145, 0.52);
    outline-offset: 0.38rem;
}

.accreditation-logo-link-hitched {
    width: clamp(10.5rem, 16vw, 12.75rem);
    aspect-ratio: auto;
    border-radius: 1rem;
}

.accreditation-logo-hitched {
    width: 100%;
    aspect-ratio: auto;
    border-radius: 1rem;
    padding: 0.35rem 0.45rem;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

[data-site-nav].is-open {
    display: flex;
}

.field-group input:focus,
.field-group select:focus,
.field-group textarea:focus,
.button:focus-visible,
.button-secondary:focus-visible,
.text-link:focus-visible,
.site-nav a:focus-visible,
.nav-toggle:focus-visible,
.theme-toggle:focus-visible {
    outline: 2px solid rgba(113, 128, 107, 0.34);
    outline-offset: 3px;
}

@media (max-width: 1040px) {
    :root {
        --shell: min(1200px, calc(100vw - 2rem));
    }

    .hero-grid,
    .page-hero-grid,
    .split-layout,
    .contact-grid,
    .process-layout,
    .faq-grid,
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 2.35rem;
    }

    .footer-grid > div:has(.footer-heading) {
        padding-top: 1.15rem;
        border-top: 1px solid color-mix(in srgb, var(--peacock-sage) 22%, transparent);
    }

    .footer-accreditation {
        justify-items: start;
    }

    .footer-accreditation .accreditation-logos {
        justify-content: flex-start;
    }

    .path-grid,
    .detail-grid,
    .quote-grid,
    .package-grid,
    .package-grid-two,
    .brand-concept-grid,
    .wedding-gallery,
    .field-row {
        grid-template-columns: 1fr;
    }

    .site-nav {
        position: absolute;
        top: calc(100% + 0.75rem);
        left: 1rem;
        right: 1rem;
        z-index: 60;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        max-height: calc(100dvh - var(--header-height) - 1.5rem);
        overflow: auto;
        padding: 1rem;
        border-radius: 24px;
        background: var(--mobile-nav-bg);
        border: 1px solid var(--panel-border);
        box-shadow: var(--shadow);
    }

    .header-inner {
        position: relative;
    }

    .brand {
        flex-basis: auto;
        max-width: calc(100% - 4.5rem);
    }

    .brand-lockup {
        width: clamp(4rem, 12vw, 4.8rem);
    }

    .brand-name {
        font-size: clamp(1.22rem, 3.8vw, 1.5rem);
    }

    .brand-tagline {
        max-width: min(27rem, calc(100vw - 8rem));
        font-size: clamp(0.62rem, 1.7vw, 0.72rem);
        letter-spacing: 0.18em;
    }

    .nav-toggle {
        display: inline-flex;
    }

    .header-cta {
        display: none;
    }
}

@media (max-width: 720px) {
    .hero {
        padding-top: 3rem;
    }

    .section {
        padding: 4rem 0;
    }

    .brand {
        max-width: calc(100% - 3.8rem);
    }

    .brand-lockup {
        width: clamp(3.7rem, 15vw, 4.3rem);
        border-radius: 14px;
    }

    .brand-mark {
        width: 3rem;
        height: 3rem;
    }

    .brand-mark-image {
        width: 3.55rem;
        height: 3.55rem;
        border-radius: 1.05rem;
    }

    .brand-name {
        font-size: clamp(1.08rem, 5vw, 1.28rem);
    }

    .brand-tagline {
        max-width: calc(100vw - 7.6rem);
        font-size: clamp(0.56rem, 2.4vw, 0.66rem);
        letter-spacing: 0.14em;
        line-height: 1.38;
    }

    .theme-toggle-label {
        display: none;
    }

    .theme-toggle {
        padding-right: 0.55rem;
    }

    .cta-panel,
    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .button,
    .button-secondary,
    .button-light {
        max-width: 100%;
        min-height: 3.15rem;
        padding-inline: 1.15rem;
        white-space: normal;
    }

    .visual-stage {
        min-height: 24rem;
    }

    .gallery-card-tall {
        grid-row: auto;
        min-height: 24rem;
    }

    .gallery-card-wide {
        grid-column: auto;
    }

    .file-dropzone {
        grid-template-columns: 1fr;
    }

    .file-dropzone-action {
        justify-self: start;
    }
}

@media (max-width: 430px) {
    :root {
        --header-height: 74px;
    }

    .header-inner {
        gap: 0.7rem;
        padding-block: 0.45rem;
    }

    .brand {
        max-width: calc(100% - 3.35rem);
    }

    .brand-lockup {
        width: clamp(3.35rem, 14vw, 3.9rem);
    }

    .brand-mark-image {
        width: 3.1rem;
        height: 3.1rem;
        padding: 0.22rem;
    }

    .brand-name {
        font-size: 1.03rem;
    }

    .brand-tagline {
        max-width: calc(100vw - 6.9rem);
        font-size: 0.52rem;
        letter-spacing: 0.1em;
    }

    .nav-toggle {
        min-height: 2.7rem;
        padding-inline: 0.82rem;
    }
}

/* Visual system upgrade */

main {
    position: relative;
    isolation: isolate;
}

main::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 10% 12%, rgba(255, 255, 255, 0.2), transparent 18%),
        radial-gradient(circle at 82% 8%, rgba(113, 128, 107, 0.08), transparent 16%),
        radial-gradient(circle at 76% 62%, rgba(157, 117, 94, 0.08), transparent 18%),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.05) 0, rgba(255, 255, 255, 0.05) 1px, transparent 1px, transparent 80px);
    opacity: 0.85;
    z-index: 0;
}

.hero,
.page-hero,
.section-reveal-zone {
    position: relative;
    overflow: clip;
    isolation: isolate;
}

.hero::before,
.page-hero::before,
.section-reveal-zone::before,
.section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    pointer-events: none;
    z-index: 0;
}

.hero::before,
.page-hero::before,
.section-reveal-zone::before {
    top: 0;
    height: clamp(3rem, 7vw, 5.5rem);
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--theme-bg-start, var(--page-bg-start)) 42%, transparent) 0%,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 18%, transparent) 46%,
        transparent 100%);
    opacity: 0.34;
}

.section::after {
    bottom: 0;
    height: clamp(3.5rem, 8vw, 6rem);
    background: linear-gradient(180deg,
        transparent 0%,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 16%, transparent) 54%,
        color-mix(in srgb, var(--theme-bg-end, var(--page-bg-end)) 34%, transparent) 100%);
    opacity: 0.28;
}

.hero > .shell,
.page-hero > .shell,
.section-reveal-zone > .shell {
    position: relative;
    z-index: 1;
}

.page-hero-editorial::after,
.section-atmosphere-clay::before,
.section-atmosphere-sage::before,
.section-atmosphere-mist::before,
.section-atmosphere-portrait::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.page-hero-editorial::after {
    inset: 1.5rem 2rem auto auto;
    width: min(32rem, 44vw);
    height: min(32rem, 44vw);
    border-radius: 50%;
    border: 1px solid color-mix(in srgb, var(--theme-accent, var(--sage)) 24%, transparent);
    box-shadow:
        0 0 0 2.5rem color-mix(in srgb, var(--theme-accent, var(--sage)) 8%, transparent),
        0 0 0 6rem color-mix(in srgb, var(--clay) 7%, transparent);
    opacity: 0.85;
}

.section-atmosphere-clay::before {
    background:
        radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--theme-accent, var(--clay)) 17%, transparent), transparent 24%),
        radial-gradient(circle at 86% 74%, rgba(255, 255, 255, 0.28), transparent 18%);
}

.section-atmosphere-sage::before {
    background:
        radial-gradient(circle at 84% 20%, color-mix(in srgb, var(--theme-accent, var(--sage)) 19%, transparent), transparent 24%),
        radial-gradient(circle at 16% 82%, rgba(255, 255, 255, 0.26), transparent 20%);
}

.section-atmosphere-mist::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 55%),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.2), transparent 24%);
}

.section-atmosphere-portrait::before {
    background:
        radial-gradient(circle at 8% 78%, color-mix(in srgb, var(--clay) 13%, transparent), transparent 22%),
        radial-gradient(circle at 92% 16%, color-mix(in srgb, var(--theme-accent, var(--sage)) 13%, transparent), transparent 20%);
}

.section-atmosphere-sage::after,
.section-atmosphere-portrait::after {
    content: "";
    position: absolute;
    right: clamp(-5rem, -4vw, -2rem);
    top: 50%;
    width: clamp(8rem, 16vw, 14rem);
    aspect-ratio: 0.45;
    background: url("/images/objects/feather-vertical.png") center / contain no-repeat;
    opacity: 0.14;
    transform: translateY(-50%) rotate(7deg);
    pointer-events: none;
    z-index: 0;
    filter: drop-shadow(0 18px 30px rgba(32, 76, 90, 0.1));
}

.theme-funeral .section-atmosphere-sage::after,
.theme-funeral .section-atmosphere-portrait::after {
    opacity: 0.08;
    filter: grayscale(0.25) drop-shadow(0 18px 30px rgba(0, 0, 0, 0.14));
}

.theme-wedding .page-hero {
    background:
        linear-gradient(180deg, rgba(255, 250, 244, 0.1), transparent 54%),
        radial-gradient(circle at 12% 16%, rgba(233, 165, 132, 0.18), transparent 26rem);
}

.theme-wedding .section-soft,
.theme-wedding .contact-note-card,
.theme-wedding .cta-panel {
    background: rgba(255, 248, 241, 0.58);
}

.theme-wedding .detail-card,
.theme-wedding .package-card,
.theme-wedding .resource-card {
    border-color: rgba(189, 123, 102, 0.16);
}

.theme-funeral .page-hero {
    background:
        radial-gradient(circle at 18% 0%, rgba(170, 181, 170, 0.14), transparent 24rem),
        linear-gradient(180deg, rgba(19, 21, 19, 0.86), rgba(40, 42, 38, 0.58) 72%, transparent);
}

.theme-funeral .page-hero h1,
.theme-funeral .page-hero h2,
.theme-funeral .page-hero p,
.theme-funeral .page-hero .eyebrow {
    color: rgba(251, 246, 240, 0.94);
}

.theme-funeral .page-hero .lead {
    color: rgba(251, 246, 240, 0.78);
}

.theme-funeral .visual-stage,
.theme-funeral .detail-card,
.theme-funeral .package-card,
.theme-funeral .cta-panel {
    border-color: rgba(79, 91, 82, 0.22);
}

.theme-funeral .section-soft {
    background: rgba(229, 222, 211, 0.28);
}

.theme-funeral .section-atmosphere-clay::before,
.theme-funeral .section-atmosphere-sage::before,
.theme-funeral .section-atmosphere-mist::before,
.theme-funeral .section-atmosphere-portrait::before {
    background:
        radial-gradient(circle at 16% 18%, rgba(83, 97, 88, 0.18), transparent 24%),
        radial-gradient(circle at 84% 78%, rgba(255, 255, 255, 0.13), transparent 18%);
}

.theme-services .page-hero,
.theme-about .page-hero,
.theme-contact .page-hero,
.theme-privacy .page-hero,
.theme-trust .page-hero,
.theme-journal .page-hero {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 62%),
        radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--theme-accent, var(--sage)) 14%, transparent), transparent 24rem);
}

.section-divider > .shell::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -3.4rem;
    width: min(18rem, 46vw);
    height: clamp(1.45rem, 4vw, 2.45rem);
    background: url("/images/objects/feather-horizontal.png") center / contain no-repeat;
    filter: drop-shadow(0 8px 14px rgba(32, 76, 90, 0.12));
    opacity: 0.46;
    transform: translateX(-50%);
}

.section-divider > .shell::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -3.08rem;
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 999px;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.28) 46%, transparent 70%),
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 80%, white);
    border: 1px solid color-mix(in srgb, var(--theme-accent, var(--sage)) 22%, transparent);
    transform: translateX(-50%);
    box-shadow:
        0 0 0 0.55rem color-mix(in srgb, var(--theme-accent, var(--sage)) 7%, transparent),
        0 0 2rem color-mix(in srgb, var(--theme-accent, var(--sage)) 16%, transparent);
    opacity: 0.82;
}

.section-heading,
.hero-copy,
.story-copy,
.contact-panel,
.contact-form,
.cta-panel {
    position: relative;
}

.section-heading::after,
.hero-copy::after,
.story-copy::before,
.contact-panel::before,
.contact-form::before {
    content: "";
    position: relative;
    display: block;
}

.section-heading::after,
.hero-copy::after {
    width: clamp(7rem, 18vw, 13rem);
    height: 1px;
    margin-top: 1.5rem;
    background: linear-gradient(90deg, var(--sage-deep), rgba(157, 117, 94, 0.14) 72%, transparent);
}

.story-copy::before,
.contact-panel::before,
.contact-form::before {
    width: 4.2rem;
    height: 4px;
    margin-bottom: 1.35rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--sage-deep), var(--clay));
    box-shadow: 0 0 0 0.55rem rgba(113, 128, 107, 0.08);
}

.contact-form::before {
    content: none;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.eyebrow::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 0.35rem rgba(113, 128, 107, 0.1);
}

.hero-copy h1,
.page-hero h1,
.section-heading h2,
.story-copy h2,
.cta-panel h2 {
    overflow-wrap: anywhere;
}

.hero-copy,
.story-copy,
.contact-panel,
.contact-form,
.section-heading,
.page-hero-grid > * {
    max-width: 100%;
}

.path-panel,
.detail-card,
.quote-card,
.package-card,
.contact-panel,
.contact-form,
.cta-panel,
.visual-stage,
.gallery-card,
.faq-list article {
    transition:
        transform 420ms cubic-bezier(0.2, 0.75, 0.25, 1),
        box-shadow 320ms ease,
        border-color 320ms ease,
        background 320ms ease;
}

.path-panel:hover,
.path-panel:focus-visible,
.detail-card:hover,
.quote-card:hover,
.package-card:hover,
.contact-panel:hover,
.contact-form:hover,
.cta-panel:hover,
.gallery-card:hover,
.faq-list article:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 80px rgba(36, 31, 27, 0.13);
    border-color: rgba(113, 128, 107, 0.28);
}

.visual-stage:hover,
.visual-stage:focus-within {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 30px 80px rgba(36, 31, 27, 0.14);
}

.visual-stage img,
.gallery-card img {
    transition: transform 900ms cubic-bezier(0.2, 0.75, 0.25, 1), filter 700ms ease;
}

.visual-stage:hover img,
.gallery-card:hover img {
    transform: scale(1.04);
    filter: saturate(1.04) contrast(1.02);
}

.path-panel .text-link,
.cta-panel .button,
.button,
.button-secondary,
.theme-toggle,
.site-nav a {
    transition:
        transform 220ms ease,
        opacity 220ms ease,
        background 220ms ease,
        border-color 220ms ease,
        color 220ms ease;
}

.path-panel:hover .text-link,
.path-panel:focus-visible .text-link {
    transform: translateX(0.35rem);
}

.hero-actions .button:hover,
.hero-actions .button-secondary:hover,
.cta-panel .button:hover {
    transform: translateY(-2px) scale(1.015);
    box-shadow: 0 18px 36px rgba(36, 31, 27, 0.16);
}

.header-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(36, 31, 27, 0.16);
}

.detail-grid,
.path-grid,
.quote-grid,
.package-grid,
.wedding-gallery,
.process-layout,
.split-layout,
.contact-grid,
.faq-grid {
    gap: clamp(1.6rem, 2.8vw, 2.4rem);
}

.quote-card,
.detail-card,
.package-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0)),
        var(--surface);
}

.faq-list article {
    padding: 1.5rem 1.35rem;
    border-radius: 22px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.08);
}

.faq-list article + article {
    margin-top: 0.2rem;
}

.site-header,
.header-inner,
.brand,
.brand-lockup,
.brand-mark-image,
.brand-name,
.brand-tagline,
.site-nav,
.header-actions {
    transition:
        width 320ms ease,
        max-width 320ms ease,
        min-height 320ms ease,
        opacity 220ms ease,
        transform 320ms cubic-bezier(0.2, 0.75, 0.25, 1),
        gap 320ms ease,
        padding 320ms ease,
        font-size 320ms ease;
}

.site-nav,
.header-actions {
    min-width: 0;
}

.site-nav {
    max-width: 48rem;
    white-space: nowrap;
}

.header-actions {
    max-width: 24rem;
}

.brand {
    transform-origin: left center;
}

.hero-copy-tight {
    max-width: 36rem;
}

.brand-ornament {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.4rem;
    padding: 0.72rem 1.2rem 0.72rem 0.72rem;
    border: 1px solid color-mix(in srgb, var(--theme-accent, var(--sage)) 22%, rgba(255, 255, 255, 0.32));
    border-radius: 1.6rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04)),
        color-mix(in srgb, var(--surface-strong) 64%, transparent);
    color: var(--text-soft);
    font-size: 0.92rem;
    box-shadow:
        0 22px 56px rgba(36, 31, 27, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.32);
    overflow: hidden;
}

.brand-ornament img {
    width: clamp(4.9rem, 8vw, 6.6rem);
    aspect-ratio: 1;
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 1.05rem;
    flex: 0 0 auto;
    box-shadow:
        0 12px 30px rgba(0, 0, 0, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.12);
}

.brand-ornament span {
    position: relative;
    max-width: 13rem;
    font-weight: 750;
    letter-spacing: 0;
    line-height: 1.45;
}

.quote-feature,
.contact-note-card {
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: var(--radius);
    border: 1px solid var(--panel-border);
    background: var(--surface);
    box-shadow: var(--shadow);
}

.quote-feature {
    text-align: center;
}

.quote-feature blockquote {
    margin: 1rem auto 0;
    max-width: 18ch;
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.08;
    color: var(--ink);
}

.quote-feature-light {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)),
        var(--surface);
}

.values-grid,
.service-steps-grid,
.testimonial-placeholder-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: clamp(1.2rem, 2.6vw, 1.8rem);
}

.service-steps-grid {
    align-items: stretch;
}

.accreditation-card {
    display: grid;
    align-items: stretch;
}

.accreditation-placeholder,
.resource-card,
.testimonial-placeholder-card {
    padding: 1.75rem;
    border-radius: var(--radius);
    border: 1px solid var(--panel-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0)),
        var(--surface);
    box-shadow: var(--shadow);
}

.accreditation-placeholder {
    min-height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    gap: 0.5rem;
    border-style: dashed;
}

.accreditation-placeholder span,
.resource-label,
.testimonial-placeholder-label,
.footer-tagline {
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.72rem;
}

.accreditation-placeholder strong {
    font-family: var(--font-display);
    font-size: 1.45rem;
    color: var(--text-strong);
}

.service-hero-stage {
    min-height: 24rem;
    padding: clamp(1.8rem, 4vw, 2.6rem);
    display: grid;
    align-content: center;
    justify-items: center;
    text-align: center;
    gap: 1rem;
}

.resource-grid {
    display: grid;
    gap: 1.1rem;
}

.resource-label,
.testimonial-placeholder-label,
.footer-tagline {
    color: var(--sage-deep);
    font-weight: 600;
}

.resource-card h3,
.testimonial-placeholder-card h3 {
    margin-top: 0.5rem;
}

.contact-note-card {
    max-width: 58rem;
    margin-inline: auto;
}

.visual-stage-note {
    color: var(--text-soft);
}

.footer-tagline {
    margin: 0.2rem 0 1rem;
}

.symbolism-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 4.5rem);
}

.symbolism-copy {
    max-width: 48rem;
}

.symbolism-copy p {
    max-width: 43rem;
}

.symbolism-mark {
    display: grid;
    gap: 1.35rem;
    justify-items: center;
}

.symbolism-brand-panel {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 25rem);
    min-height: clamp(22rem, 34vw, 30rem);
    overflow: hidden;
    border: 1px solid rgba(244, 239, 232, 0.12);
    border-radius: 24px;
    background:
        radial-gradient(circle at 54% 44%, rgba(200, 167, 109, 0.16), transparent 30%),
        linear-gradient(145deg, rgba(22, 25, 31, 0.98), rgba(6, 8, 10, 0.96));
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.26);
}

.symbolism-brand-art {
    position: relative;
    z-index: 1;
    width: min(92%, 22rem);
    max-height: clamp(19rem, 31vw, 27rem);
    -o-object-fit: contain;
       object-fit: contain;
    filter:
        drop-shadow(0 24px 42px rgba(0, 0, 0, 0.44))
        drop-shadow(0 0 24px rgba(200, 167, 109, 0.14));
}

.symbolism-feather {
    position: absolute;
    inset: auto;
    width: min(82%, 15.5rem);
    max-height: 92%;
    -o-object-fit: contain;
       object-fit: contain;
    opacity: 0.9;
    filter:
        drop-shadow(0 22px 36px rgba(0, 0, 0, 0.36))
        drop-shadow(0 0 24px rgba(200, 167, 109, 0.16));
}

.symbolism-brand-panel .symbolism-logo-composite {
    width: min(52%, 9.8rem);
    margin-top: auto;
    margin-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
    align-self: end;
    border-radius: 999px;
    background: rgba(7, 9, 11, 0.28);
    filter: drop-shadow(0 20px 36px rgba(0, 0, 0, 0.32));
}

.symbolism-brand-panel .clc-lettermark {
    color: rgba(251, 246, 240, 0.95);
    font-size: clamp(1.25rem, 2.4vw, 2.1rem);
    text-shadow:
        0 1px 10px rgba(0, 0, 0, 0.4),
        0 0 18px rgba(200, 167, 109, 0.18);
}

.symbolism-couple-card {
    width: min(100%, 25rem);
    overflow: hidden;
    border: 1px solid rgba(244, 239, 232, 0.12);
    border-radius: 20px;
    box-shadow: 0 20px 52px rgba(0, 0, 0, 0.28);
}

.symbolism-couple-card img {
    width: 100%;
    aspect-ratio: 1.65;
    -o-object-fit: cover;
       object-fit: cover;
    filter: saturate(0.92) contrast(1.04);
}

.symbolism-mark > img {
    width: min(100%, 25rem);
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
}

.symbolism-logo-composite {
    width: min(100%, 18rem);
    filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.24));
}

.symbolism-points {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.symbolism-points span {
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(244, 239, 232, 0.16);
    border-radius: 999px;
    color: rgba(251, 246, 240, 0.82);
    background: rgba(255, 255, 255, 0.05);
    font-size: 0.86rem;
    font-weight: 700;
}

.button:hover,
.button:focus-visible {
    background: color-mix(in srgb, var(--ink) 88%, var(--theme-accent-strong, var(--sage-deep)));
    box-shadow: 0 18px 42px rgba(36, 31, 27, 0.18);
}

.button-secondary:hover,
.button-secondary:focus-visible {
    border-color: color-mix(in srgb, var(--theme-accent-strong, var(--sage-deep)) 55%, var(--line-strong));
    background: color-mix(in srgb, var(--button-secondary-bg) 78%, white);
}

.text-link:hover,
.text-link:focus-visible {
    color: var(--theme-accent-strong, var(--sage-deep));
}

@media (min-width: 1041px) {
    .site-header.is-condensed .header-inner {
        width: min(31rem, calc(100vw - 2rem));
        min-height: 4.55rem;
        gap: 0.6rem;
        justify-content: flex-start;
    }

    .site-header.is-condensed .brand {
        flex: 1 1 auto;
    }

    .site-header.is-condensed .brand-lockup {
        width: 4.4rem;
    }

    .site-header.is-condensed .brand-mark-image {
        width: 4.2rem;
        height: 4.2rem;
        padding: 0.28rem;
    }

    .site-header.is-condensed .brand-name {
        font-size: 1.28rem;
    }

    .site-header.is-condensed .brand-tagline {
        font-size: 0.78rem;
    }

    .site-header.is-condensed .site-nav,
    .site-header.is-condensed .header-actions {
        max-width: 0;
        opacity: 0;
        transform: translateX(1rem) scale(0.96);
        overflow: hidden;
        pointer-events: none;
        gap: 0;
        margin: 0;
        padding: 0;
    }
}

.reveal-ready {
    opacity: 0;
    transform: translate3d(0, 1.15rem, 0) scale(0.992);
    filter: blur(3px);
    transition:
        opacity 860ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 860ms cubic-bezier(0.22, 1, 0.36, 1),
        filter 860ms cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: 40ms;
    will-change: opacity, transform, filter;
}

.reveal-ready.is-visible {
    opacity: 1;
    transform: none;
    filter: none;
}

.reveal-delay-1 {
    transition-delay: 70ms;
}

.reveal-delay-2 {
    transition-delay: 100ms;
}

.reveal-delay-3 {
    transition-delay: 130ms;
}

@media (prefers-reduced-motion: reduce) {
    .reveal-ready,
    .path-panel,
    .detail-card,
    .quote-card,
    .package-card,
    .contact-panel,
    .contact-form,
    .cta-panel,
    .visual-stage,
    .gallery-card,
    .gallery-card img,
    .visual-stage img,
    .site-header,
    .header-inner,
    .brand,
    .brand-lockup,
    .logo-wreath,
    .site-nav,
    .header-actions {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        filter: none !important;
        opacity: 1 !important;
    }
}

@media (max-width: 1040px) {
    .symbolism-layout {
        grid-template-columns: 1fr;
    }

    .page-hero-editorial::after {
        width: 18rem;
        height: 18rem;
        inset: auto -2rem 1rem auto;
    }

    .section-divider > .shell::after,
    .section-divider > .shell::before {
        bottom: -2rem;
    }
}

@media (max-width: 720px) {
    .symbolism-brand-panel {
        min-height: 21rem;
        border-radius: 20px;
    }

    .symbolism-feather {
        width: min(78%, 13rem);
    }

    .symbolism-mark > img {
        width: min(100%, 20rem);
        border-radius: 18px;
    }

    .symbolism-logo-composite {
        width: min(100%, 14rem);
    }

    .symbolism-points {
        justify-content: flex-start;
    }

    .symbolism-points span {
        width: 100%;
        border-radius: 16px;
        text-align: center;
    }

    .brand-ornament {
        width: 100%;
        justify-content: center;
        text-align: center;
        border-radius: 1.2rem;
    }

    .quote-feature blockquote {
        max-width: none;
    }

    .page-hero-editorial::after {
        width: 14rem;
        height: 14rem;
        inset: auto -3rem 2rem auto;
    }

    .section-heading::after,
    .hero-copy::after {
        width: 7rem;
        margin-top: 1.1rem;
    }

    .story-copy::before,
    .contact-panel::before,
    .contact-form::before {
        width: 3.2rem;
    }

    .path-panel:hover,
    .detail-card:hover,
    .quote-card:hover,
    .package-card:hover,
    .contact-panel:hover,
    .contact-form:hover,
    .cta-panel:hover,
    .gallery-card:hover,
    .faq-list article:hover,
    .visual-stage:hover {
        transform: none;
    }
}

/* ───────────────────────────────────────────
   Full-bleed cinematic hero (home page)
─────────────────────────────────────────── */

.hero-fullbleed {
    position: relative;
    min-height: clamp(56rem, 92svh, 72rem);
    display: flex;
    align-items: flex-end;
    padding-top: 6rem;
    padding-bottom: 5.5rem;
    overflow: hidden;
}

.hero-fullbleed::before {
    display: none;
}

.hero-media {
    position: absolute;
    inset: 0;
    margin: 0;
    z-index: 0;
}

.hero-media img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center 25%;
       object-position: center 25%;
    display: block;
    transition: transform 8000ms ease;
}

.hero-fullbleed:hover .hero-media img {
    transform: scale(1.025);
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            180deg,
            transparent 0%,
            transparent 74%,
            color-mix(in srgb, var(--theme-bg-start, var(--page-bg-start)) 18%, rgba(0, 0, 0, 0.52)) 90%,
            var(--theme-bg-start, var(--page-bg-start)) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.08) 0%,
            rgba(0, 0, 0, 0.22) 35%,
            rgba(0, 0, 0, 0.56) 65%,
            rgba(0, 0, 0, 0.72) 100%
        ),
        linear-gradient(
            90deg,
            rgba(36, 31, 27, 0.25) 0%,
            transparent 65%
        );
    pointer-events: none;
}

.hero-fullbleed .shell {
    position: relative;
    z-index: 2;
}

.hero-fullbleed-copy {
    max-width: 44rem;
}

.hero-fullbleed-copy h1 {
    color: #fbf6f0;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.28);
}

.hero-fullbleed-copy .lead {
    color: rgba(251, 246, 240, 0.88);
    max-width: 38rem;
}

.hero-fullbleed-copy .eyebrow {
    color: rgba(251, 246, 240, 0.72);
}

.hero-fullbleed-copy .hero-actions {
    margin-top: 2.4rem;
    margin-bottom: 2rem;
}

.button-light {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.2rem;
    padding: 0 2rem;
    border-radius: 16px;
    border: 1px solid rgba(251, 246, 240, 0.5);
    background: rgba(251, 246, 240, 0.12);
    color: #fbf6f0;
    font-weight: 700;
    font-size: 1rem;
    white-space: nowrap;
    overflow: hidden;
    backdrop-filter: blur(8px);
    transition: transform 220ms ease, background 220ms ease, border-color 220ms ease;
}

.button-light:hover,
.button-light:focus-visible {
    transform: translateY(-2px) scale(1.018);
    background: rgba(251, 246, 240, 0.2);
    border-color: rgba(251, 246, 240, 0.7);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.28);
}

.hero-fullbleed .brand-ornament {
    background:
        linear-gradient(135deg, rgba(251, 246, 240, 0.16), rgba(251, 246, 240, 0.05)),
        rgba(31, 29, 26, 0.5);
    border-color: rgba(251, 246, 240, 0.22);
    color: rgba(251, 246, 240, 0.82);
    backdrop-filter: blur(18px) saturate(1.05);
}

.hero-fullbleed .brand-ornament::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(218, 188, 112, 0.16), transparent 28%),
        linear-gradient(90deg, rgba(0, 0, 0, 0.08), transparent 68%);
    pointer-events: none;
}

.hero-fullbleed .hero-copy::after {
    background: linear-gradient(90deg, rgba(251, 246, 240, 0.55), transparent);
}

@media (max-width: 720px) {
    .hero-fullbleed {
        min-height: clamp(42rem, 88svh, 58rem);
        align-items: flex-end;
        padding-bottom: 4rem;
    }

    .hero-fullbleed-copy {
        max-width: min(100%, 21rem);
    }

    .hero-fullbleed-copy h1 {
        font-size: clamp(2.35rem, 9.5vw, 2.85rem);
        line-height: 1.02;
    }

    .hero-fullbleed-copy .lead {
        font-size: 1rem;
        line-height: 1.65;
    }

    .hero-fullbleed-copy .eyebrow {
        gap: 0.55rem;
        font-size: 0.68rem;
        letter-spacing: 0.16em;
    }
}

/* ───────────────────────────────────────────
   Funeral page theme
─────────────────────────────────────────── */

.theme-funeral .section {
    padding: 7rem 0;
}

.theme-funeral .page-hero {
    padding-top: 6rem;
    padding-bottom: 2rem;
}

.theme-funeral h1,
.theme-funeral h2,
.theme-funeral h3 {
    letter-spacing: 0;
}

.theme-funeral h2 {
    font-size: clamp(2.1rem, 4.4vw, 3.4rem);
}

.theme-funeral .detail-card,
.theme-funeral .package-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)),
        rgba(255, 250, 244, 0.44);
    border-color: rgba(113, 128, 107, 0.12);
    box-shadow: 0 12px 36px rgba(36, 31, 27, 0.05);
}

.theme-funeral .detail-card:hover,
.theme-funeral .package-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 52px rgba(36, 31, 27, 0.08);
    border-color: rgba(113, 128, 107, 0.22);
}

.theme-funeral .cta-panel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0)),
        rgba(255, 250, 244, 0.52);
    border-color: rgba(113, 128, 107, 0.14);
    box-shadow: 0 14px 42px rgba(36, 31, 27, 0.06);
}

.theme-funeral .section-heading h2 {
    font-size: clamp(1.9rem, 4vw, 3.1rem);
}

.theme-funeral .section-divider > .shell::after {
    opacity: 0.7;
}

@media (max-width: 720px) {
    .theme-funeral .section {
        padding: 5rem 0;
    }
}

/* ───────────────────────────────────────────
   Mobile nav slide-in animation
─────────────────────────────────────────── */

@media (max-width: 1040px) {
    [data-site-nav].is-open {
        animation: nav-enter 260ms cubic-bezier(0.2, 0.75, 0.25, 1) both;
    }

    @keyframes nav-enter {
        from {
            opacity: 0;
            transform: translateY(-0.8rem) scale(0.98);
        }
        to {
            opacity: 1;
            transform: translateY(0) scale(1);
        }
    }
}

/* ───────────────────────────────────────────
   Footer copyright bar
─────────────────────────────────────────── */

.footer-copyright {
    grid-column: 1 / -1;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.86rem;
    color: var(--ink-muted);
}

.footer-copyright a {
    color: var(--sage-deep);
    transition: color 180ms ease;
}

.footer-copyright a:hover {
    color: var(--ink);
}

/* Premium peacock design system */

:root {
    --peacock-deep: #204c5a;
    --peacock-sage: #6e8c7a;
    --peacock-gold: #c8a76d;
    --peacock-line: color-mix(in srgb, var(--peacock-sage) 48%, transparent);
}

.peacock-divider-top {
    position: relative;
}

.peacock-divider-top::before {
    content: "";
    position: absolute;
    top: 0;
    left: clamp(1rem, 2vw, 2rem);
    right: clamp(1rem, 2vw, 2rem);
    height: 2px;
    background:
        linear-gradient(90deg,
            transparent 0%,
            color-mix(in srgb, var(--peacock-gold) 40%, transparent) 14%,
            color-mix(in srgb, var(--peacock-sage) 74%, transparent) 49%,
            color-mix(in srgb, var(--peacock-gold) 42%, transparent) 84%,
            transparent 100%);
}

.peacock-badge {
    inline-size: 3.2rem;
    block-size: 3.2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-block-end: 0.85rem;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    font-weight: 800;
    color: var(--cream);
    background:
        radial-gradient(circle at 30% 30%, var(--peacock-gold), color-mix(in srgb, var(--peacock-gold) 42%, var(--peacock-deep)) 40%, var(--peacock-deep) 100%);
    box-shadow: 0 12px 26px color-mix(in srgb, var(--peacock-deep) 34%, transparent);
}

.peacock-badge-logo {
    position: relative;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    filter: drop-shadow(0 10px 20px rgba(32, 76, 90, 0.2));
}

.peacock-badge-logo .logo-clc,
.peacock-badge-logo .clc-lettermark {
    position: relative;
    z-index: 3;
}

.peacock-badge-logo .clc-lettermark {
    width: 66.666667%;
    height: 66.666667%;
    font-size: 1.05rem;
}

.peacock-badge-logo .logo-wreath {
    position: absolute;
    inset: 0;
    z-index: 4;
    width: 100%;
    height: 100%;
    margin: auto;
    transform: rotate(0deg) scale(var(--logo-wreath-scale, 1.2));
    transform-origin: center;
    transition:
        transform 980ms cubic-bezier(0.25, 0.78, 0.22, 1),
        filter 520ms ease;
    will-change: transform;
}

.service-path-card {
    position: relative;
    display: grid;
    justify-items: center;
    text-align: center;
    overflow: hidden;
}

.service-path-card .peacock-badge-logo {
    margin-inline: auto;
}

.service-path-card .eyebrow {
    justify-content: center;
    margin-inline: auto;
}

.service-path-card .eyebrow::before {
    content: none;
}

.service-path-card::after {
    content: "";
    position: absolute;
    inset-inline: 1rem;
    bottom: 0.8rem;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--peacock-line), transparent);
}

.feather-list {
    list-style: none;
    padding-inline-start: 0;
}

.feather-list li {
    position: relative;
    padding-inline-start: 1.4rem;
}

.feather-list li::before {
    content: "◉";
    position: absolute;
    left: 0;
    top: 0.12rem;
    font-size: 0.7rem;
    color: color-mix(in srgb, var(--peacock-gold) 70%, var(--peacock-deep));
}

.feather-image-border {
    border: 1px solid color-mix(in srgb, var(--peacock-sage) 45%, rgba(255, 255, 255, 0.28));
    box-shadow:
        0 0 0 0.4rem color-mix(in srgb, var(--peacock-deep) 8%, transparent),
        0 18px 35px rgba(0, 0, 0, 0.24);
}

/* Carousel and showcase */

.hero-carousel {
    position: relative;
}

.hero-carousel-track {
    position: absolute;
    inset: 0;
    overflow: hidden;
    perspective: 1800px;
    transform-style: preserve-3d;
}

.hero-carousel .hero-media {
    opacity: 0;
    transform: translateX(0) scale(1);
    transform-origin: 50% 50%;
    backface-visibility: hidden;
    clip-path: inset(0);
    transition:
        opacity 120ms linear;
    will-change: opacity, transform, clip-path, filter;
}

.hero-carousel .hero-media.is-active {
    opacity: 1;
    transform: translateX(0) scale(1);
    z-index: 2;
}

.hero-carousel .hero-media.is-entering,
.hero-carousel .hero-media.is-leaving {
    opacity: 1;
    pointer-events: none;
}

.hero-carousel .hero-media.is-entering {
    z-index: 3;
}

.hero-carousel .hero-media.is-leaving {
    z-index: 2;
    transform: translateX(0) scale(1);
    clip-path: inset(0);
    animation: none;
}

.hero-carousel[data-carousel-direction="next"] .hero-media.is-entering {
    animation: hero-page-cover-next 960ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.hero-carousel[data-carousel-direction="previous"] .hero-media.is-entering {
    animation: hero-page-cover-previous 960ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.hero-carousel .hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.1) 42%, rgba(255, 255, 255, 0.42) 49%, rgba(0, 0, 0, 0.28) 52%, transparent 60%);
    mix-blend-mode: screen;
    transform: translateX(-20%);
}

.hero-carousel .hero-media.is-entering::after {
    animation: hero-page-edge-sheen 940ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.carousel-controls {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    margin-top: 1.1rem;
}

.carousel-arrow {
    position: relative;
    display: inline-grid;
    place-items: center;
    inline-size: 3.15rem;
    block-size: 3.15rem;
    border-radius: 999px;
    border: 1px solid rgba(214, 199, 145, 0.32);
    background:
        radial-gradient(circle at 50% 50%, rgba(214, 199, 145, 0.24), transparent 42%),
        linear-gradient(145deg, rgba(47, 52, 61, 0.88), rgba(10, 12, 16, 0.94));
    color: rgba(247, 248, 250, 0.94);
    cursor: pointer;
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1;
    box-shadow:
        0 16px 36px rgba(0, 0, 0, 0.34),
        0 0 0 0.42rem rgba(214, 199, 145, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        inset 0 -1.25rem 1.6rem rgba(0, 0, 0, 0.18);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
    isolation: isolate;
    transition:
        color 240ms ease,
        transform 260ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 240ms ease,
        background 240ms ease,
        box-shadow 240ms ease;
}

.carousel-arrow::before {
    content: "";
    position: absolute;
    inset: -0.5rem;
    border-radius: inherit;
    background: url("/images/brand/logo-clare-no-background-wreath-only.png") center / contain no-repeat;
    opacity: 0.82;
    filter:
        saturate(1.08)
        drop-shadow(0 0 12px rgba(214, 199, 145, 0.14))
        drop-shadow(0 9px 16px rgba(0, 0, 0, 0.26));
    transform: rotate(0deg) scale(1.02);
    transform-origin: center;
    transition:
        opacity 240ms ease,
        transform 580ms cubic-bezier(0.18, 0.86, 0.24, 1),
        filter 240ms ease;
    pointer-events: none;
    z-index: -1;
}

.carousel-arrow::after {
    content: "";
    position: absolute;
    inset: 0.48rem;
    border-radius: inherit;
    border: 1px solid rgba(247, 248, 250, 0.16);
    background:
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12), transparent 34%),
        radial-gradient(circle, rgba(8, 10, 14, 0.28), transparent 62%);
    pointer-events: none;
    z-index: -1;
}

.carousel-arrow:hover,
.carousel-arrow:focus-visible {
    color: #ffffff;
    border-color: rgba(214, 199, 145, 0.68);
    background:
        radial-gradient(circle at 50% 50%, rgba(214, 199, 145, 0.34), transparent 44%),
        linear-gradient(145deg, rgba(61, 68, 78, 0.92), rgba(14, 17, 22, 0.96));
    box-shadow:
        0 22px 48px rgba(0, 0, 0, 0.44),
        0 0 0 0.5rem rgba(214, 199, 145, 0.1),
        0 0 28px rgba(0, 137, 123, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -1.35rem 1.7rem rgba(0, 0, 0, 0.16);
}

.carousel-arrow:hover::before,
.carousel-arrow:focus-visible::before {
    opacity: 1;
    filter:
        saturate(1.18)
        drop-shadow(0 0 18px rgba(214, 199, 145, 0.24))
        drop-shadow(0 11px 20px rgba(0, 0, 0, 0.34));
}

.carousel-arrow[data-carousel-prev]:hover,
.carousel-arrow[data-carousel-prev]:focus-visible {
    transform: translateX(-2px) translateY(-2px);
}

.carousel-arrow[data-carousel-next]:hover,
.carousel-arrow[data-carousel-next]:focus-visible {
    transform: translateX(2px) translateY(-2px);
}

.carousel-arrow[data-carousel-prev]:hover::before,
.carousel-arrow[data-carousel-prev]:focus-visible::before {
    transform: rotate(-22deg) scale(1.1);
}

.carousel-arrow[data-carousel-next]:hover::before,
.carousel-arrow[data-carousel-next]:focus-visible::before {
    transform: rotate(22deg) scale(1.1);
}

.carousel-arrow[data-carousel-prev]:active {
    transform: translateX(-3px) translateY(0) scale(0.96);
}

.carousel-arrow[data-carousel-next]:active {
    transform: translateX(3px) translateY(0) scale(0.96);
}

.carousel-arrow[data-carousel-prev]:active::before {
    transform: rotate(-54deg) scale(1.02);
}

.carousel-arrow[data-carousel-next]:active::before {
    transform: rotate(54deg) scale(1.02);
}

.carousel-dots {
    display: flex;
    align-items: center;
    gap: 0.46rem;
    min-block-size: 2.35rem;
    padding-inline: 0.18rem;
}

.carousel-dot {
    position: relative;
    inline-size: 0.58rem;
    block-size: 0.58rem;
    border-radius: 999px;
    border: none;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition:
        inline-size 320ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 220ms ease,
        background 220ms ease,
        box-shadow 220ms ease;
}

.carousel-dot.is-active {
    inline-size: 1.65rem;
    background: linear-gradient(90deg, var(--peacock-gold), rgba(255, 255, 255, 0.78));
    box-shadow:
        0 0 0 4px rgba(214, 199, 145, 0.12),
        0 0 22px rgba(214, 199, 145, 0.32);
}

.carousel-dot:hover,
.carousel-dot:focus-visible {
    transform: scale(1.18);
    background: rgba(255, 255, 255, 0.78);
}

.hero-fullbleed .carousel-controls {
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
    padding: 0.5rem 0.62rem;
    border: 1px solid rgba(214, 199, 145, 0.12);
    border-radius: 999px;
    background:
        radial-gradient(circle at 16% 50%, rgba(214, 199, 145, 0.08), transparent 7rem),
        linear-gradient(145deg, rgba(28, 31, 38, 0.82), rgba(9, 10, 13, 0.72));
    box-shadow:
        0 20px 48px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(16px);
}

.hero-fullbleed .carousel-dots {
    min-inline-size: 3.4rem;
    justify-content: center;
    padding-inline: 0.15rem;
}

@keyframes hero-page-cover-next {
    from {
        opacity: 1;
        transform: translateX(10%) scale(1.012);
        clip-path: inset(0 0 0 100%);
        filter: brightness(0.88);
    }
    58% {
        opacity: 1;
        filter: brightness(0.96);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
        clip-path: inset(0 0 0 0);
        filter: brightness(1);
    }
}

@keyframes hero-page-cover-previous {
    from {
        opacity: 1;
        transform: translateX(-10%) scale(1.012);
        clip-path: inset(0 100% 0 0);
        filter: brightness(0.88);
    }
    58% {
        opacity: 1;
        filter: brightness(0.96);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
        clip-path: inset(0 0 0 0);
        filter: brightness(1);
    }
}

@keyframes hero-page-edge-sheen {
    0% {
        opacity: 0;
        transform: translateX(-54%);
    }
    44% {
        opacity: 0.68;
    }
    100% {
        opacity: 0;
        transform: translateX(54%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-carousel .hero-media,
    .hero-carousel .hero-media.is-entering,
    .hero-carousel .hero-media.is-leaving {
        animation: none;
        transition: opacity 220ms ease;
        transform: none;
        clip-path: inset(0);
    }

    .hero-carousel .hero-media::after {
        display: none;
    }
}

.wedding-showcase {
    position: relative;
    min-height: clamp(280px, 46vw, 520px);
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--peacock-sage) 35%, transparent);
}

.showcase-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 700ms ease;
}

.showcase-slide.is-active {
    opacity: 1;
}

.showcase-slide img {
    inline-size: 100%;
    block-size: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.review-carousel {
    position: relative;
    --review-card-width: clamp(19rem, 44vw, 38rem);
    --review-card-gap: clamp(1rem, 2vw, 1.45rem);
    overflow: hidden;
    padding-block: clamp(0.8rem, 2vw, 1.35rem) 0.4rem;
    cursor: grab;
}

.review-carousel-fade {
    position: absolute;
    top: 0;
    bottom: 4.8rem;
    width: clamp(4rem, 13vw, 11rem);
    pointer-events: none;
    z-index: 3;
}

.review-carousel-fade-left {
    left: 0;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 88%, transparent) 0%,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 54%, transparent) 46%,
        transparent 100%);
}

.review-carousel-fade-right {
    right: 0;
    background: linear-gradient(270deg,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 88%, transparent) 0%,
        color-mix(in srgb, var(--theme-bg-mid, var(--page-bg-mid)) 54%, transparent) 46%,
        transparent 100%);
}

.review-carousel-track {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: stretch;
    gap: var(--review-card-gap);
    min-height: clamp(17rem, 25vw, 19.5rem);
    transform:
        translateX(calc((100% - var(--review-card-width)) / 2 - (var(--carousel-index, 0) * (var(--review-card-width) + var(--review-card-gap)))));
    transition: transform 720ms cubic-bezier(0.18, 0.86, 0.24, 1);
    will-change: transform;
}

.review-card {
    position: relative;
    flex: 0 0 var(--review-card-width);
    min-height: clamp(14rem, 20vw, 16.5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    opacity: 0.42;
    pointer-events: auto;
    padding: clamp(1.35rem, 2vw, 1.85rem);
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--peacock-sage) 30%, transparent);
    background:
        radial-gradient(circle at 88% 8%, rgba(214, 199, 145, 0.09), transparent 13rem),
        linear-gradient(145deg, rgba(38, 43, 52, 0.94), rgba(15, 17, 22, 0.9));
    box-shadow:
        0 22px 54px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: scale(0.9);
    filter: blur(0.4px) saturate(0.86);
    transition:
        opacity 520ms ease,
        transform 720ms cubic-bezier(0.18, 0.86, 0.24, 1),
        filter 520ms ease,
        border-color 420ms ease,
        box-shadow 420ms ease;
}

.review-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(110deg,
            transparent 0 36%,
            rgba(255, 255, 255, 0.08) 46%,
            transparent 58% 100%);
    opacity: 0;
    transform: translateX(-38%);
    pointer-events: none;
}

.review-card.is-entering::before {
    animation: review-card-sheen 700ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.review-card.is-active {
    opacity: 1;
    z-index: 2;
    border-color: rgba(214, 199, 145, 0.36);
    box-shadow:
        0 28px 72px rgba(0, 0, 0, 0.44),
        0 0 0 1px rgba(214, 199, 145, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: scale(1);
    filter: none;
}

.review-card.is-adjacent {
    opacity: 0.64;
    transform: scale(0.94);
    filter: saturate(0.92);
}

.review-card.is-clone {
    opacity: 0.64;
    transform: scale(0.94);
    filter: saturate(0.92);
}

.review-carousel.is-dragging {
    cursor: grabbing;
}

.review-carousel.is-dragging .review-carousel-track {
    transition-duration: 220ms;
}

.review-stars {
    letter-spacing: 0.24em;
    color: var(--peacock-gold);
    margin-bottom: 0.6rem;
}

.review-card h3 {
    max-width: 18ch;
    margin-bottom: 0.45rem;
}

.review-card > p:not(.review-stars):not(.review-meta) {
    color: rgba(243, 244, 246, 0.78);
}

.review-meta {
    margin-top: auto;
    padding-top: 1rem;
    font-size: 0.9rem;
}

.review-carousel .carousel-controls {
    position: relative;
    z-index: 4;
    justify-content: center;
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
    margin-inline: auto;
    padding: 0.42rem;
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 999px;
    background:
        linear-gradient(145deg, rgba(29, 33, 40, 0.82), rgba(7, 8, 11, 0.72));
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(16px);
}

.review-carousel .carousel-dots {
    min-inline-size: 4rem;
    justify-content: center;
}

@media (max-width: 720px) {
    .review-carousel-fade {
        width: clamp(1.8rem, 11vw, 4rem);
        bottom: 4.4rem;
    }
}

@keyframes review-card-sheen {
    from {
        opacity: 0;
        transform: translateX(-46%);
    }
    45% {
        opacity: 1;
    }
    to {
        opacity: 0;
        transform: translateX(46%);
    }
}

/* Reviews page */

.review-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.review-gallery-card {
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--theme-accent, var(--sage)) 24%, transparent);
    background: color-mix(in srgb, var(--surface) 88%, white);
    padding: 1.2rem;
}

.review-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.review-photo-grid img {
    border-radius: 10px;
    inline-size: 100%;
    aspect-ratio: 1 / 1;
    -o-object-fit: cover;
       object-fit: cover;
    border: 1px solid color-mix(in srgb, var(--peacock-sage) 34%, transparent);
}

/* Footer interaction buttons */

.footer-list a,
.footer-list button {
    position: relative;
    display: inline-flex;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    min-height: 1.65rem;
    border: none;
    background: transparent;
    color: inherit;
    padding: 0;
    text-align: left;
    cursor: pointer;
    font: inherit;
    text-decoration: none;
    transition:
        color 200ms ease,
        transform 200ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.footer-list a::after,
.footer-list button::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.16rem;
    height: 1px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(214, 199, 145, 0.92), rgba(0, 137, 123, 0.62));
    opacity: 0;
    transform: scaleX(0.35);
    transform-origin: left;
    transition:
        opacity 200ms ease,
        transform 240ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.footer-list a:hover,
.footer-list a:focus-visible,
.footer-list button:hover,
.footer-list button:focus-visible {
    color: var(--peacock-gold);
    transform: translateX(0.18rem);
}

.footer-list a:hover::after,
.footer-list a:focus-visible::after,
.footer-list button:hover::after,
.footer-list button:focus-visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.footer-list a:focus-visible,
.footer-list button:focus-visible {
    outline: 2px solid rgba(214, 199, 145, 0.42);
    outline-offset: 0.35rem;
    border-radius: 6px;
}

/* Light button peacock hover */

.button-light-accent {
    position: relative;
    overflow: hidden;
}

.button-light-accent::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg,
        transparent,
        color-mix(in srgb, var(--peacock-gold) 36%, transparent),
        transparent);
    transform: translateX(-120%);
    transition: transform 360ms ease;
}

.button-light-accent:hover::after,
.button-light-accent:focus-visible::after {
    transform: translateX(120%);
}

.button-peacock {
    position: relative;
    overflow: hidden;
    gap: 0.7rem;
}

.button-peacock::before {
    content: "";
    inline-size: 0;
    block-size: 1.05rem;
    flex: 0 0 auto;
    border-radius: 999px 999px 999px 0;
    opacity: 0;
    background:
        radial-gradient(circle at 58% 52%, var(--peacock-gold) 0 17%, transparent 18%),
        radial-gradient(circle at 55% 54%, var(--peacock-deep) 0 38%, transparent 39%),
        radial-gradient(circle at 50% 50%, var(--peacock-sage) 0 62%, transparent 64%);
    transform: rotate(-38deg) scale(0.72);
    transition:
        inline-size 220ms ease,
        opacity 220ms ease,
        transform 260ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.button-peacock:hover::before,
.button-peacock:focus-visible::before {
    inline-size: 1.05rem;
    opacity: 1;
    transform: rotate(-38deg) scale(1);
}

.button-light.button-peacock::before {
    filter: drop-shadow(0 0 10px rgba(200, 167, 109, 0.42));
}

/* Casual copy protection only for key visual text and gallery assets */

.protected-image,
.hero-media img,
.showcase-slide img,
.media-stage img,
.gallery-card img,
.review-photo-grid img {
    -webkit-user-select: none;
    -moz-user-select: none;
         user-select: none;
    -webkit-user-drag: none;
    user-drag: none;
    touch-action: manipulation;
}

.protected-heading,
.hero-copy h1,
.media-stage-overlay,
.visual-caption {
    -webkit-user-select: none;
    -moz-user-select: none;
         user-select: none;
}

.theme-about .page-hero {
    background:
        radial-gradient(circle at 88% 16%, color-mix(in srgb, var(--peacock-gold) 18%, transparent), transparent 18rem),
        linear-gradient(135deg, rgba(32, 76, 90, 0.16), transparent 40%),
        color-mix(in srgb, var(--theme-bg-start) 84%, var(--sage));
}

.theme-about .page-hero .visual-stage {
    min-height: clamp(28rem, 48vw, 42rem);
    border-color: color-mix(in srgb, var(--peacock-sage) 38%, var(--panel-border));
}

.theme-about {
    background:
        radial-gradient(circle at 86% 12%, rgba(64, 77, 79, 0.34), transparent 28rem),
        radial-gradient(circle at 10% 34%, rgba(11, 13, 15, 0.72), transparent 30rem),
        linear-gradient(145deg, #111315 0%, #191b1d 42%, #0d0e10 100%);
}

.theme-about .about-hero {
    min-height: calc(100svh - var(--header-height));
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 82% 18%, rgba(66, 76, 79, 0.42), transparent 25rem),
        radial-gradient(circle at 24% 84%, rgba(5, 6, 8, 0.74), transparent 28rem),
        linear-gradient(132deg, #151719 0%, #202326 48%, #0d0e10 100%);
}

.theme-about .about-hero::before {
    opacity: 0.26;
    background:
        linear-gradient(118deg, transparent 0 50%, rgba(255, 255, 255, 0.08) 50% 50.12%, transparent 50.12% 100%),
        radial-gradient(circle at 88% 44%, rgba(217, 194, 121, 0.18), transparent 21rem);
}

.about-hero-grid {
    align-items: center;
    gap: clamp(2rem, 6vw, 6.5rem);
}

.theme-about .about-hero .story-copy {
    max-width: 46rem;
}

.about-hero-name {
    display: inline-block;
    white-space: nowrap;
}

.no-wrap {
    white-space: nowrap;
}

.theme-about .about-hero .story-copy p:not(.eyebrow),
.theme-about .about-more-section .story-copy p:not(.eyebrow),
.about-note-grid p {
    color: rgba(238, 240, 238, 0.76);
}

.theme-about .about-hero .story-copy .lead {
    color: rgba(247, 247, 244, 0.88);
}

.about-image-carousel {
    isolation: isolate;
    justify-self: center;
    width: min(100%, clamp(21rem, 29vw, 30rem));
    height: clamp(31rem, 48vw, 40rem);
    padding: 0;
    overflow: hidden;
    cursor: grab;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.08), transparent 20rem),
        linear-gradient(155deg, rgba(44, 48, 52, 0.96), rgba(12, 13, 15, 0.98));
    border-color: rgba(213, 201, 154, 0.22);
    box-shadow:
        0 34px 78px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.about-image-slide,
.about-story-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    opacity: 0;
    transform: translateX(4%) scale(1.015);
    transition:
        opacity 700ms ease,
        transform 920ms cubic-bezier(0.18, 0.86, 0.24, 1),
        filter 920ms ease;
    will-change: opacity, transform, filter;
}

.about-image-slide.is-active,
.about-story-slide.is-active {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: none;
    z-index: 2;
}

.about-image-slide.is-entering,
.about-story-slide.is-entering {
    opacity: 1;
    z-index: 3;
}

.about-image-slide.is-leaving,
.about-story-slide.is-leaving {
    opacity: 1;
    z-index: 2;
}

.about-image-carousel[data-carousel-direction="next"] .about-image-slide.is-entering,
.about-story-carousel[data-carousel-direction="next"] .about-story-slide.is-entering {
    animation: about-slide-in-next 920ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.about-image-carousel[data-carousel-direction="previous"] .about-image-slide.is-entering,
.about-story-carousel[data-carousel-direction="previous"] .about-story-slide.is-entering {
    animation: about-slide-in-previous 920ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.about-image-slide::before,
.about-story-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, transparent 0%, rgba(10, 11, 13, 0.08) 42%, rgba(10, 11, 13, 0.78) 100%),
        linear-gradient(90deg, rgba(7, 8, 10, 0.32), transparent 45%, rgba(7, 8, 10, 0.2));
    pointer-events: none;
}

.about-image-slide img,
.about-story-slide img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    filter: saturate(0.92) contrast(0.98);
    transition: transform 7s ease, filter 700ms ease;
}

.about-image-slide.is-active img,
.about-story-slide.is-active img {
    transform: scale(1.035);
}

.about-image-slide .about-image-cover {
    -o-object-fit: cover;
       object-fit: cover;
}

.about-image-slide .about-image-contain {
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center center;
       object-position: center center;
    padding: clamp(0.75rem, 1.2vw, 1.15rem);
    background:
        radial-gradient(circle at 50% 32%, rgba(255, 255, 255, 0.06), transparent 18rem),
        linear-gradient(145deg, rgba(23, 25, 27, 0.98), rgba(8, 9, 10, 0.98));
}

.about-image-clare-folder-detail {
    -o-object-position: 48% 26%;
       object-position: 48% 26%;
}

.about-image-clare-confetti {
    -o-object-position: 50% 20%;
       object-position: 50% 20%;
}

.about-image-carousel .media-stage-overlay,
.about-story-slide figcaption {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: clamp(1.35rem, 3vw, 2.2rem);
}

.about-carousel-controls {
    position: absolute;
    left: 50%;
    bottom: clamp(0.95rem, 2vw, 1.35rem);
    z-index: 4;
    justify-content: center;
    margin-top: 0;
    padding: 0.35rem;
    border-radius: 999px;
    background: rgba(10, 12, 14, 0.58);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(14px);
    transform: translateX(-50%);
}

.about-image-carousel .media-stage-overlay {
    padding-bottom: clamp(4.8rem, 8vw, 5.8rem);
}

.about-more-section {
    padding-top: clamp(6rem, 9vw, 8.5rem);
    padding-bottom: clamp(6rem, 9vw, 8.5rem);
    background:
        radial-gradient(circle at 16% 18%, rgba(70, 86, 87, 0.28), transparent 28rem),
        radial-gradient(circle at 92% 74%, rgba(3, 4, 6, 0.82), transparent 30rem),
        linear-gradient(156deg, #1f2225 0%, #151719 50%, #090a0c 100%);
}

.about-more-grid {
    align-items: center;
    gap: clamp(2rem, 5vw, 5.5rem);
}

.about-note-grid {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.8rem;
}

.about-note-grid p {
    margin: 0;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.025));
}

.about-certificate {
    --accreditation-logo-size: clamp(6.4rem, 18vw, 8.5rem);
    display: grid;
    gap: 1rem;
    margin-top: 1.45rem;
    padding: clamp(1rem, 2vw, 1.25rem);
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.028));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.about-certificate .accreditation-logos {
    justify-content: flex-start;
}

.about-certificate p {
    margin: 0;
    max-width: 34rem;
}

.about-story-carousel {
    position: relative;
    min-height: clamp(31rem, 46vw, 40rem);
    overflow: hidden;
    cursor: grab;
    border-radius: var(--radius);
    border: 1px solid rgba(213, 201, 154, 0.2);
    background:
        linear-gradient(145deg, rgba(43, 46, 50, 0.92), rgba(10, 11, 13, 0.96));
    box-shadow:
        0 30px 74px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.about-image-carousel.is-dragging,
.about-story-carousel.is-dragging {
    cursor: grabbing;
}

.about-story-slide img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center 34%;
       object-position: center 34%;
}

.about-story-slide:nth-child(2) img {
    -o-object-position: center 8%;
       object-position: center 8%;
}

.about-story-slide:nth-child(2).is-active img,
.about-story-slide:nth-child(2).is-entering img {
    transform: scale(1.01);
}

.about-story-slide:nth-child(3) img {
    -o-object-position: center 44%;
       object-position: center 44%;
}

.about-story-slide figcaption {
    padding-bottom: clamp(4.5rem, 7vw, 5.5rem);
}

@keyframes about-slide-in-next {
    0% {
        clip-path: inset(0 100% 0 0 round var(--radius));
        transform: translateX(5%) scale(1.025);
    }
    100% {
        clip-path: inset(0 0 0 0 round var(--radius));
        transform: translateX(0) scale(1);
    }
}

@keyframes about-slide-in-previous {
    0% {
        clip-path: inset(0 0 0 100% round var(--radius));
        transform: translateX(-5%) scale(1.025);
    }
    100% {
        clip-path: inset(0 0 0 0 round var(--radius));
        transform: translateX(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .about-image-slide,
    .about-story-slide,
    .about-image-slide.is-entering,
    .about-story-slide.is-entering,
    .about-image-slide.is-leaving,
    .about-story-slide.is-leaving {
        animation: none;
        transition: opacity 220ms ease;
        transform: none;
        clip-path: inset(0);
    }

    .about-image-slide img,
    .about-story-slide img,
    .about-image-slide.is-active img,
    .about-story-slide.is-active img {
        transform: none;
    }
}

.theme-funeral .story-copy p,
.theme-funeral .section-heading .lead,
.theme-funeral .detail-card p,
.theme-funeral .package-card p,
.theme-funeral .package-card li {
    color: color-mix(in srgb, var(--ink) 74%, var(--ink-soft));
}

.theme-services {
    background:
        radial-gradient(circle at 84% 12%, rgba(69, 80, 86, 0.3), transparent 30rem),
        radial-gradient(circle at 14% 42%, rgba(9, 11, 13, 0.72), transparent 31rem),
        linear-gradient(145deg, #101214 0%, #1b1e21 48%, #090a0c 100%);
}

.services-hero {
    position: relative;
    min-height: calc(100svh - var(--header-height));
    overflow: hidden;
    display: flex;
    align-items: stretch;
    background: #0b0c0e;
}

.services-hero-media,
.services-hero-slide,
.services-hero-slide img {
    position: absolute;
    inset: 0;
}

.services-hero-media {
    z-index: 0;
    overflow: hidden;
}

.services-hero-slide {
    opacity: 0;
    transform: scale(1.04);
    transition:
        opacity 900ms ease,
        transform 6400ms ease;
    will-change: opacity, transform;
}

.services-hero-slide.is-active,
.services-hero-slide.is-entering {
    opacity: 1;
    transform: scale(1);
}

.services-hero-slide.is-entering {
    z-index: 2;
    animation: services-image-wipe 880ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.services-hero-slide.is-leaving {
    opacity: 1;
    z-index: 1;
}

.services-hero-slide img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    filter: saturate(1.08) contrast(1.08) brightness(0.74);
}

.services-hero-slide:first-child img {
    filter: saturate(1.1) contrast(1.06) brightness(0.86);
}

.services-hero-slide:nth-child(2) img {
    -o-object-position: center 24%;
       object-position: center 24%;
}

.services-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(circle at 82% 24%, rgba(14, 17, 20, 0), rgba(8, 9, 11, 0.38) 36%, rgba(8, 9, 11, 0.8) 78%),
        linear-gradient(90deg, rgba(8, 9, 11, 0.88) 0%, rgba(10, 12, 15, 0.62) 44%, rgba(10, 12, 15, 0.18) 100%),
        linear-gradient(180deg, rgba(8, 9, 11, 0.08), rgba(8, 9, 11, 0.68));
}

.services-hero-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(20rem, 0.62fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
    padding-top: clamp(3.2rem, 5vw, 5rem);
    padding-bottom: clamp(3rem, 5vw, 4.5rem);
}

.services-hero-copy {
    max-width: 54rem;
}

.services-hero-copy .lead {
    max-width: 44rem;
    color: rgba(247, 247, 244, 0.86);
}

.services-hero-copy p:not(.eyebrow) {
    color: rgba(238, 240, 238, 0.76);
}

.services-hero-copy h1 {
    font-size: clamp(3.5rem, 6.3vw, 6.95rem);
    line-height: 1.02;
    max-width: 13.4ch;
}

.services-hero-rail {
    display: grid;
    gap: 0.85rem;
    align-self: center;
}

.service-rail-item {
    position: relative;
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.25rem 1rem;
    padding: 1.1rem 1.15rem;
    border-radius: 18px;
    border: 1px solid rgba(243, 244, 246, 0.13);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.025));
    color: rgba(247, 247, 244, 0.9);
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    backdrop-filter: blur(18px);
    transition:
        transform 320ms cubic-bezier(0.18, 0.86, 0.24, 1),
        border-color 320ms ease,
        background 320ms ease,
        box-shadow 320ms ease;
}

.service-rail-item::after {
    content: "";
    position: absolute;
    inset: auto 1rem 0.75rem 1rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(214, 199, 145, 0.7), transparent);
    opacity: 0;
    transform: translateY(0.4rem);
    transition: opacity 320ms ease, transform 320ms ease;
}

.service-rail-item:hover,
.service-rail-item:focus-visible {
    transform: translateY(-0.35rem);
    border-color: rgba(214, 199, 145, 0.42);
    background:
        radial-gradient(circle at 84% 16%, rgba(214, 199, 145, 0.16), transparent 10rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.035));
    box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
}

.service-rail-item:hover::after,
.service-rail-item:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

.service-rail-item span {
    grid-row: span 2;
    font-family: var(--font-display);
    font-size: 1.4rem;
    color: var(--peacock-gold);
}

.service-rail-item strong {
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.2vw, 2rem);
    line-height: 1;
}

.service-rail-item small {
    color: rgba(238, 240, 238, 0.68);
    line-height: 1.55;
}

.services-centered-heading {
    max-width: 58rem;
    margin-inline: auto;
    text-align: center;
}

.services-centered-heading h2 {
    max-width: 13ch;
    margin-inline: auto;
    font-size: clamp(3.2rem, 6vw, 6rem);
    line-height: 1.04;
}

.services-centered-heading p:not(.eyebrow) {
    max-width: 44rem;
    margin-inline: auto;
    color: rgba(238, 240, 238, 0.72);
}

.services-signature-section {
    padding-top: clamp(6rem, 10vw, 9rem);
    padding-bottom: clamp(6rem, 10vw, 9rem);
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.08), transparent 26rem),
        linear-gradient(180deg, #171a1d 0%, #101214 100%);
}

.services-pathways {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(1.2rem, 2.2vw, 1.8rem);
    margin-top: clamp(2.5rem, 5vw, 4.25rem);
}

.service-path-panel {
    position: relative;
    min-height: clamp(25rem, 35vw, 33rem);
    display: grid;
    align-content: end;
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(243, 244, 246, 0.12);
    background: #0d0f11;
    box-shadow: 0 34px 82px rgba(0, 0, 0, 0.34);
    isolation: isolate;
}

.service-path-panel-featured {
    grid-row: span 2;
    min-height: clamp(36rem, 62vw, 54rem);
}

.service-path-image,
.service-path-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.service-path-image {
    border: 0;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    background: #0d0f11;
}

.service-path-image img {
    -o-object-fit: cover;
       object-fit: cover;
    filter: saturate(1.08) contrast(1.06) brightness(0.82);
    transform: scale(1.02);
    transition:
        transform 1100ms cubic-bezier(0.18, 0.86, 0.24, 1),
        filter 520ms ease;
}

.service-path-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, transparent 0%, rgba(8, 9, 11, 0.1) 36%, rgba(8, 9, 11, 0.76) 100%),
        linear-gradient(90deg, rgba(8, 9, 11, 0.16), transparent 50%);
    pointer-events: none;
}

.service-path-content {
    position: relative;
    z-index: 2;
    max-width: 42rem;
    padding: clamp(1.35rem, 3vw, 2.4rem);
}

.service-path-content h3 {
    max-width: 12ch;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 4vw, 4.15rem);
    line-height: 1.04;
}

.service-path-content p:not(.eyebrow) {
    max-width: 34rem;
    color: rgba(247, 247, 244, 0.76);
}

.service-path-content .text-link {
    color: rgba(247, 247, 244, 0.9);
}

.service-path-panel:hover .service-path-image img,
.service-path-panel:focus-within .service-path-image img {
    transform: scale(1.075);
    filter: saturate(1.18) contrast(1.08) brightness(0.9);
}

.services-experience-section {
    padding-top: calc(var(--safe-header-gap) + clamp(6rem, 10vw, 9rem));
    padding-bottom: clamp(6rem, 10vw, 9rem);
    background:
        radial-gradient(circle at 12% 18%, rgba(66, 86, 90, 0.24), transparent 26rem),
        radial-gradient(circle at 86% 82%, rgba(2, 3, 5, 0.82), transparent 31rem),
        linear-gradient(150deg, #202326 0%, #111315 52%, #090a0c 100%);
}

.services-experience-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(22rem, 1.14fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.services-experience-copy h2 {
    max-width: 14ch;
    margin-bottom: clamp(2.35rem, 4vw, 3.4rem);
    font-size: clamp(2.9rem, 4.85vw, 5.25rem);
    line-height: 1.12;
}

.services-experience-copy p:not(.eyebrow) {
    max-width: 38rem;
    margin-top: 0;
    color: rgba(238, 240, 238, 0.74);
}

.services-proof-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.6rem;
}

.services-proof-row span {
    padding: 0.75rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(214, 199, 145, 0.2);
    background: rgba(255, 255, 255, 0.055);
    color: rgba(247, 247, 244, 0.78);
    font-weight: 700;
}

.services-showcase {
    position: relative;
    min-height: clamp(32rem, 52vw, 44rem);
    overflow: hidden;
    border-radius: 30px;
    border: 1px solid rgba(214, 199, 145, 0.18);
    background:
        linear-gradient(145deg, rgba(43, 46, 50, 0.92), rgba(10, 11, 13, 0.96));
    box-shadow: 0 34px 82px rgba(0, 0, 0, 0.34);
    cursor: grab;
}

.services-showcase.is-dragging {
    cursor: grabbing;
}

.services-showcase-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    opacity: 0;
    transform: translateX(5%) scale(1.02);
    transition:
        opacity 680ms ease,
        transform 900ms cubic-bezier(0.18, 0.86, 0.24, 1);
    will-change: opacity, transform;
    z-index: 1;
    backface-visibility: hidden;
    transform-origin: center;
    contain: paint;
}

.services-showcase-slide.is-active,
.services-showcase-slide.is-entering {
    opacity: 1;
    transform: translateX(0) scale(1);
}

.services-showcase-slide.is-entering {
    z-index: 3;
}

.services-showcase-slide.is-leaving {
    opacity: 0;
    z-index: 2;
    transform: translateX(-2%) scale(1.01);
}

.services-showcase-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, transparent 0%, rgba(8, 9, 11, 0.06) 42%, rgba(8, 9, 11, 0.66) 100%),
        linear-gradient(90deg, rgba(8, 9, 11, 0.16), transparent 48%);
}

.services-showcase-slide img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    filter: saturate(1.06) contrast(1.06) brightness(0.88);
    transform: scale(1.02);
    transition: transform 7s ease, filter 680ms ease;
    will-change: transform;
    backface-visibility: hidden;
}

.services-showcase-slide.is-active:not(.is-leaving) img,
.services-showcase-slide.is-entering img {
    transform: scale(1.055);
}

.services-showcase-slide.is-leaving img {
    transform: scale(1.035);
}

.services-showcase-slide:first-child img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center 18%;
       object-position: center 18%;
}

.services-showcase-slide figcaption {
    position: relative;
    z-index: 2;
    max-width: 31rem;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    padding-bottom: clamp(5rem, 8vw, 6rem);
    color: rgba(247, 247, 244, 0.84);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 3.1rem);
    line-height: 1.08;
}

.services-carousel-controls {
    position: absolute;
    left: 50%;
    bottom: 1.15rem;
    z-index: 4;
    justify-content: center;
    margin-top: 0;
    padding: 0.35rem;
    border-radius: 999px;
    background: rgba(10, 12, 14, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(14px);
    transform: translateX(-50%);
}

.services-process-section {
    padding-top: clamp(5rem, 9vw, 8rem);
    padding-bottom: clamp(5rem, 9vw, 8rem);
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.08), transparent 24rem),
        linear-gradient(180deg, #121417 0%, #0a0b0d 100%);
}

.services-process {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin-top: clamp(2rem, 5vw, 4rem);
    border-block: 1px solid rgba(243, 244, 246, 0.1);
}

.services-process::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 3rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(214, 199, 145, 0.38), transparent);
}

.services-process article {
    position: relative;
    padding: clamp(1.4rem, 2.4vw, 2rem);
    min-height: 18rem;
    border-right: 1px solid rgba(243, 244, 246, 0.08);
}

.services-process article:last-child {
    border-right: 0;
}

.services-process span {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    width: 3.6rem;
    height: 3.6rem;
    margin-bottom: 2.2rem;
    border-radius: 999px;
    border: 1px solid rgba(214, 199, 145, 0.28);
    background: #111417;
    color: var(--peacock-gold);
    font-family: var(--font-display);
    font-size: 1.45rem;
    box-shadow: 0 0 0 0.65rem rgba(214, 199, 145, 0.04);
}

.services-process h3 {
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 2.6vw, 2.5rem);
    line-height: 1.08;
}

.services-process p {
    color: rgba(238, 240, 238, 0.68);
}

.services-faq-section {
    padding-top: clamp(5rem, 8vw, 7rem);
    padding-bottom: clamp(5rem, 8vw, 7rem);
    background:
        radial-gradient(circle at 16% 18%, rgba(214, 199, 145, 0.09), transparent 24rem),
        radial-gradient(circle at 88% 72%, rgba(0, 157, 171, 0.11), transparent 25rem),
        linear-gradient(150deg, #111418 0%, #1a1d22 54%, #0a0b0e 100%);
}

.services-faq-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: start;
}

.services-faq-heading {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
}

.services-faq-heading h2 {
    max-width: 12ch;
    margin-bottom: clamp(1.35rem, 2.3vw, 2rem);
    font-size: clamp(2.9rem, 5vw, 5.4rem);
    line-height: 1.1;
    letter-spacing: 0;
}

.services-faq-heading p:not(.eyebrow) {
    max-width: 36rem;
    margin-top: 0;
    color: rgba(238, 240, 238, 0.74);
}

.services-faq-list {
    display: grid;
    gap: 1rem;
}

.services-faq-list article {
    padding: clamp(1.2rem, 2.2vw, 1.75rem);
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 8%, rgba(214, 199, 145, 0.1), transparent 12rem),
        linear-gradient(145deg, rgba(39, 43, 51, 0.82), rgba(13, 15, 19, 0.9));
    box-shadow: 0 24px 62px rgba(0, 0, 0, 0.24);
}

.services-faq-list h3 {
    margin-bottom: 0.75rem;
    color: rgba(247, 247, 244, 0.94);
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    line-height: 1.2;
}

.services-faq-list p {
    margin: 0;
    color: rgba(238, 240, 238, 0.7);
}

.services-final-section {
    padding-top: clamp(5rem, 8vw, 7rem);
    padding-bottom: clamp(5rem, 8vw, 7rem);
    background:
        radial-gradient(circle at 82% 20%, rgba(66, 86, 90, 0.24), transparent 25rem),
        linear-gradient(145deg, #1b1e21 0%, #090a0c 100%);
}

.services-final-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 2rem;
    padding-top: clamp(2rem, 5vw, 4rem);
    border-top: 1px solid rgba(243, 244, 246, 0.14);
}

.services-final-panel h2 {
    max-width: 16ch;
    margin-bottom: clamp(1.85rem, 3vw, 2.75rem);
    font-size: clamp(2.9rem, 5.1vw, 5.35rem);
    line-height: 1.12;
}

.services-final-panel .eyebrow {
    margin-bottom: 1rem;
}

.services-final-panel .button {
    align-self: center;
    justify-self: end;
}

.services-final-panel p:not(.eyebrow) {
    max-width: 42rem;
    margin-top: 0;
    color: rgba(238, 240, 238, 0.72);
}

@keyframes services-image-wipe {
    0% {
        clip-path: inset(0 100% 0 0 round 28px);
    }
    100% {
        clip-path: inset(0 0 0 0 round 28px);
    }
}

.theme-funeral .page-hero .story-copy p,
.theme-funeral .page-hero .story-copy .lead,
.theme-funeral .page-hero .eyebrow {
    color: rgba(251, 246, 240, 0.84);
}

.theme-funeral .package-list:not(.feather-list) {
    list-style: none;
    padding-inline-start: 0;
}

.theme-funeral .package-list:not(.feather-list) li {
    position: relative;
    padding-inline-start: 1.4rem;
}

.theme-funeral .package-list:not(.feather-list) li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.64rem;
    inline-size: 0.52rem;
    block-size: 0.52rem;
    border-radius: 999px 999px 999px 0;
    background:
        radial-gradient(circle at 56% 54%, var(--peacock-gold) 0 22%, transparent 23%),
        radial-gradient(circle, var(--peacock-sage) 0 64%, transparent 65%);
    transform: rotate(-38deg);
}

/* Wedding and funeral page redesigns */

.wedding-page,
.funeral-page {
    overflow: hidden;
}

.wedding-hero,
.funeral-hero {
    position: relative;
    min-height: calc(100svh - var(--header-height));
    display: grid;
    align-items: end;
    isolation: isolate;
    overflow: hidden;
    background: #0c0e12;
}

.wedding-hero-media,
.funeral-hero-media,
.wedding-hero-slide,
.funeral-hero-media img {
    position: absolute;
    inset: 0;
}

.wedding-hero-media {
    cursor: grab;
    z-index: 0;
}

.wedding-hero-media.is-dragging {
    cursor: grabbing;
}

.wedding-hero-slide {
    opacity: 0;
    overflow: hidden;
    transform: scale(1.035);
    clip-path: inset(0 0 0 100%);
    transition:
        opacity 260ms ease,
        transform 1200ms cubic-bezier(0.18, 0.86, 0.24, 1),
        clip-path 920ms cubic-bezier(0.18, 0.86, 0.24, 1);
}

.wedding-hero-slide.is-active,
.wedding-hero-slide.is-entering {
    opacity: 1;
    z-index: 2;
    transform: scale(1);
    clip-path: inset(0);
}

.wedding-hero-slide.is-leaving {
    opacity: 1;
    z-index: 1;
    transform: scale(1);
    clip-path: inset(0);
}

.wedding-hero-media[data-carousel-direction="previous"] .wedding-hero-slide:not(.is-active) {
    clip-path: inset(0 100% 0 0);
}

.wedding-hero-slide img,
.funeral-hero-media img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.wedding-hero-slide img {
    filter: saturate(1.04) contrast(1.05) brightness(0.78);
}

.funeral-hero-media img {
    filter: saturate(0.96) contrast(1.02) brightness(0.9);
}

.funeral-hero-media {
    z-index: 0;
}

.wedding-hero-overlay,
.funeral-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.wedding-hero-overlay {
    background:
        radial-gradient(circle at 78% 12%, rgba(235, 199, 116, 0.15), transparent 20rem),
        linear-gradient(90deg, rgba(7, 8, 10, 0.82) 0%, rgba(9, 10, 13, 0.58) 39%, rgba(9, 10, 13, 0.24) 100%),
        linear-gradient(180deg, rgba(7, 8, 10, 0.08) 0%, rgba(7, 8, 10, 0.78) 100%);
}

.funeral-hero-overlay {
    background:
        radial-gradient(circle at 18% 22%, rgba(214, 199, 145, 0.1), transparent 24rem),
        linear-gradient(90deg, rgba(7, 8, 10, 0.78) 0%, rgba(12, 14, 18, 0.42) 38%, rgba(12, 14, 18, 0.1) 72%, rgba(12, 14, 18, 0.04) 100%),
        linear-gradient(180deg, rgba(7, 8, 10, 0.02) 0%, rgba(7, 8, 10, 0.52) 100%);
}

.wedding-hero-inner,
.funeral-hero-inner {
    position: relative;
    z-index: 2;
    display: grid;
    align-items: end;
    grid-template-columns: minmax(0, 0.92fr) minmax(18rem, 0.48fr);
    gap: clamp(2rem, 6vw, 6rem);
    padding-top: clamp(5rem, 9vw, 8rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.wedding-hero-copy,
.funeral-hero-copy {
    max-width: 48rem;
}

.wedding-hero-copy h1,
.funeral-hero-copy h1,
.wedding-intro-copy h2,
.wedding-story-copy h2,
.wedding-gallery-heading h2,
.wedding-packages-heading h2,
.wedding-process h2,
.wedding-legal-copy h2,
.wedding-final-panel h2,
.funeral-intro-copy h2,
.funeral-options-heading h2,
.funeral-memory-copy h2,
.funeral-process-heading h2,
.funeral-final-panel h2 {
    letter-spacing: 0;
}

.wedding-hero-copy h1,
.funeral-hero-copy h1 {
    max-width: 12ch;
    margin-bottom: 1rem;
    font-size: clamp(4.25rem, 8.8vw, 8.6rem);
    line-height: 1.02;
}

.funeral-hero-copy h1 {
    max-width: 13ch;
    font-size: clamp(4rem, 7.6vw, 7.4rem);
}

.wedding-hero-copy .lead,
.funeral-hero-copy .lead {
    max-width: 42rem;
    color: rgba(247, 247, 244, 0.86);
}

.wedding-hero-note {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.25rem 1.45rem;
    align-self: end;
    justify-self: center;
    width: min(100%, 28rem);
    padding: clamp(1.1rem, 2vw, 1.45rem);
    border-block: 1px solid rgba(214, 199, 145, 0.22);
    background:
        linear-gradient(90deg, transparent, rgba(8, 10, 14, 0.34) 18%, rgba(8, 10, 14, 0.34) 82%, transparent);
}

.funeral-hero-quote {
    border: 1px solid rgba(243, 244, 246, 0.14);
    background: linear-gradient(145deg, rgba(26, 29, 36, 0.74), rgba(12, 14, 18, 0.62));
    box-shadow: 0 24px 68px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(18px);
}

.wedding-hero-note span {
    position: relative;
    min-height: 3.35rem;
    display: flex;
    align-items: center;
    padding: 0.82rem 0.3rem 0.82rem 1.55rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(247, 247, 244, 0.86);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.25;
    text-align: left;
    box-shadow: none;
    backdrop-filter: none;
}

.wedding-hero-note span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 0.58rem;
    height: 0.58rem;
    border-radius: 999px;
    background:
        radial-gradient(circle at 56% 54%, var(--peacock-gold) 0 24%, transparent 25%),
        radial-gradient(circle, var(--peacock-sage) 0 64%, transparent 65%);
    box-shadow:
        0 0 0 4px rgba(0, 137, 123, 0.1),
        0 0 18px rgba(214, 199, 145, 0.18);
    transform: translateY(-50%);
}

.wedding-hero-note span::after {
    content: "";
    position: absolute;
    left: 1.55rem;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, rgba(214, 199, 145, 0.28), transparent);
    opacity: 0.72;
}

.funeral-hero-quote {
    margin: 0;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    border-radius: 26px;
    border-left-color: rgba(214, 199, 145, 0.5);
}

.funeral-hero-quote p {
    margin: 0;
    color: rgba(247, 247, 244, 0.82);
    font-size: clamp(1.2rem, 2vw, 1.65rem);
    line-height: 1.55;
}

.wedding-intro-section,
.wedding-gallery-section,
.wedding-final-section {
    background:
        radial-gradient(circle at 80% 8%, rgba(214, 199, 145, 0.12), transparent 25rem),
        radial-gradient(circle at 10% 88%, rgba(130, 136, 146, 0.1), transparent 24rem),
        linear-gradient(150deg, #171a1f 0%, #101216 54%, #090a0d 100%);
}

.wedding-story-section,
.wedding-process-section,
.wedding-legal-section {
    background:
        radial-gradient(circle at 18% 12%, rgba(84, 101, 103, 0.18), transparent 25rem),
        radial-gradient(circle at 92% 86%, rgba(214, 199, 145, 0.08), transparent 24rem),
        linear-gradient(150deg, #0d0f12 0%, #181b20 56%, #0b0c0f 100%);
}

.wedding-process-section,
.wedding-legal-section,
.funeral-memory-section,
.services-final-section {
    padding-top: calc(var(--safe-header-gap) + clamp(6rem, 10vw, 9rem));
}

.funeral-intro-section,
.funeral-memory-section,
.funeral-final-section {
    background:
        radial-gradient(circle at 84% 12%, rgba(118, 128, 141, 0.1), transparent 25rem),
        radial-gradient(circle at 14% 80%, rgba(34, 39, 48, 0.22), transparent 26rem),
        linear-gradient(150deg, #101216 0%, #181b20 56%, #090a0d 100%);
}

.funeral-support-section,
.funeral-options-section,
.funeral-process-section {
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.06), transparent 26rem),
        linear-gradient(180deg, #15181d 0%, #0b0d10 100%);
}

.wedding-intro-grid,
.wedding-story-grid,
.wedding-legal-grid,
.funeral-intro-grid,
.funeral-memory-grid {
    display: grid;
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.wedding-intro-grid,
.wedding-legal-grid,
.funeral-intro-grid,
.funeral-memory-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.wedding-intro-copy,
.wedding-story-copy,
.wedding-legal-copy,
.funeral-intro-copy,
.funeral-memory-copy {
    max-width: 46rem;
}

.wedding-intro-copy h2,
.funeral-intro-copy h2 {
    margin-bottom: clamp(1rem, 1.8vw, 1.35rem);
    line-height: 1.1;
}

.wedding-story-copy {
    max-width: 54rem;
}

.wedding-intro-copy h2,
.wedding-story-copy h2,
.wedding-gallery-heading h2,
.wedding-packages-heading h2,
.wedding-process h2,
.wedding-legal-copy h2,
.wedding-final-panel h2,
.funeral-intro-copy h2,
.funeral-options-heading h2,
.funeral-memory-copy h2,
.funeral-process-heading h2,
.funeral-final-panel h2 {
    max-width: 13ch;
    font-size: clamp(3.1rem, 6vw, 6.1rem);
    line-height: 1.04;
}

.funeral-memory-copy h2 {
    margin-bottom: clamp(1.35rem, 2.3vw, 2.1rem);
    font-size: clamp(3rem, 5.25vw, 5.65rem);
    line-height: 1.08;
}

.funeral-memory-copy p:not(.eyebrow) {
    margin-top: 0;
}

.wedding-intro-copy p:not(.eyebrow),
.wedding-story-copy p,
.wedding-packages-heading p,
.wedding-process p,
.wedding-legal-copy p,
.wedding-final-panel p,
.funeral-intro-copy p,
.funeral-options-heading p,
.funeral-memory-copy p,
.funeral-process p,
.funeral-final-panel p,
.wedding-smallprint p,
.funeral-smallprint p {
    color: rgba(238, 240, 238, 0.76);
}

.wedding-intro-points {
    display: grid;
    gap: 1rem;
}

.wedding-intro-points article,
.funeral-support-grid article,
.wedding-package,
.funeral-option {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(243, 244, 246, 0.12);
    background:
        radial-gradient(circle at 86% 10%, rgba(214, 199, 145, 0.1), transparent 13rem),
        linear-gradient(145deg, rgba(39, 43, 51, 0.94), rgba(15, 17, 22, 0.94));
    box-shadow: 0 28px 72px rgba(0, 0, 0, 0.34);
}

.wedding-intro-points article {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    row-gap: 0.45rem;
    align-items: start;
    min-height: 8.4rem;
    padding: 1.25rem;
    border-radius: 22px;
}

.wedding-intro-points article > span {
    grid-row: 1 / span 2;
}

.wedding-intro-points article > h3,
.wedding-intro-points article > p {
    min-width: 0;
}

.wedding-intro-points span:not(.logo-composite),
.funeral-support-grid span:not(.logo-composite),
.wedding-process-list span,
.funeral-process-list span {
    color: rgba(214, 199, 145, 0.82);
    font-weight: 800;
    letter-spacing: 0.12em;
}

.wedding-intro-logo {
    --logo-wreath-scale: 1.2;
    align-self: start;
    width: clamp(3.4rem, 4.6vw, 4rem);
    overflow: visible;
}

.wedding-intro-points article:hover .wedding-intro-logo .logo-wreath,
.wedding-intro-points article:focus-within .wedding-intro-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.wedding-intro-points article:hover .wedding-intro-logo .logo-clc,
.wedding-intro-points article:focus-within .wedding-intro-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.wedding-intro-points h3,
.funeral-support-grid h3,
.wedding-package h3,
.funeral-option h3 {
    color: rgba(247, 247, 244, 0.93);
}

.wedding-intro-points p,
.funeral-support-grid p,
.wedding-package li,
.funeral-option li {
    color: rgba(238, 240, 238, 0.72);
}

.wedding-intro-points p {
    margin: 0;
    line-height: 1.55;
}

.wedding-story-grid {
    grid-template-columns: minmax(17rem, 0.82fr) minmax(28rem, 1.06fr) minmax(11rem, 0.34fr);
    gap: clamp(2rem, 4.4vw, 5rem);
}

.wedding-story-copy h2 {
    max-width: 15.5ch;
    font-size: clamp(3rem, 4.8vw, 5.25rem);
    line-height: 1.03;
}

.wedding-story-image,
.wedding-legal-image,
.funeral-intro-image,
.funeral-memory-carousel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 30px;
    box-shadow: 0 34px 86px rgba(0, 0, 0, 0.38);
    background: #15181d;
}

.wedding-story-image-main {
    height: clamp(32rem, 50vw, 48rem);
}

.wedding-story-image-small {
    align-self: end;
    height: clamp(16rem, 28vw, 24rem);
}

.wedding-story-image img,
.wedding-legal-image img,
.funeral-intro-image img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.wedding-story-image-main img {
    -o-object-position: center 38%;
       object-position: center 38%;
}

.wedding-gallery-heading,
.wedding-packages-heading,
.funeral-options-heading {
    max-width: 58rem;
    margin-bottom: clamp(1.6rem, 4vw, 3rem);
}

.wedding-editorial-carousel,
.funeral-memory-carousel {
    position: relative;
    min-height: clamp(32rem, 52vw, 48rem);
    cursor: grab;
}

.wedding-editorial-carousel.is-dragging,
.funeral-memory-carousel.is-dragging {
    cursor: grabbing;
}

.wedding-editorial-slide,
.funeral-memory-slide {
    position: absolute;
    inset: 0;
    overflow: hidden;
    opacity: 0;
    clip-path: inset(0 100% 0 0 round 30px);
    transition:
        opacity 260ms ease,
        clip-path 920ms cubic-bezier(0.18, 0.86, 0.24, 1),
        transform 1100ms cubic-bezier(0.18, 0.86, 0.24, 1);
}

.wedding-editorial-slide.is-active,
.wedding-editorial-slide.is-entering,
.funeral-memory-slide.is-active,
.funeral-memory-slide.is-entering {
    opacity: 1;
    z-index: 2;
    clip-path: inset(0 round 30px);
    transform: translateX(0);
}

.wedding-editorial-slide.is-leaving,
.funeral-memory-slide.is-leaving {
    opacity: 1;
    z-index: 1;
    clip-path: inset(0 round 30px);
}

.wedding-editorial-carousel[data-carousel-direction="previous"] .wedding-editorial-slide:not(.is-active),
.funeral-memory-carousel[data-carousel-direction="previous"] .funeral-memory-slide:not(.is-active) {
    clip-path: inset(0 0 0 100% round 30px);
}

.wedding-editorial-slide img,
.funeral-memory-slide img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.wedding-editorial-slide img {
    filter: saturate(1.02) contrast(1.03) brightness(0.82);
}

.funeral-memory-slide img {
    filter: saturate(0.82) contrast(1.06) brightness(0.72);
}

.wedding-editorial-slide figcaption {
    position: absolute;
    left: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    max-width: 30rem;
    display: grid;
    gap: 0.4rem;
    padding: 1.2rem 1.35rem;
    border: 1px solid rgba(243, 244, 246, 0.14);
    border-radius: 20px;
    background: rgba(10, 12, 15, 0.66);
    backdrop-filter: blur(16px);
}

.wedding-editorial-slide figcaption span {
    color: rgba(214, 199, 145, 0.9);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.wedding-editorial-slide figcaption strong {
    color: rgba(247, 247, 244, 0.94);
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.wedding-carousel-controls,
.funeral-carousel-controls {
    position: absolute;
    left: clamp(1rem, 3vw, 2rem);
    right: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    z-index: 5;
    justify-content: flex-end;
}

.wedding-editorial-slide figcaption + .wedding-carousel-controls {
    justify-content: flex-end;
}

.wedding-package-lane,
.funeral-options-grid {
    display: grid;
    gap: clamp(1rem, 2.4vw, 1.6rem);
}

.wedding-package-lane {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.funeral-options-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wedding-package,
.funeral-option {
    min-height: 28rem;
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border-radius: 30px;
    transition:
        transform 280ms cubic-bezier(0.2, 0.75, 0.25, 1),
        border-color 280ms ease,
        box-shadow 280ms ease;
}

.wedding-package-featured,
.funeral-option-featured {
    border-color: rgba(214, 199, 145, 0.38);
    background:
        radial-gradient(circle at 74% 8%, rgba(214, 199, 145, 0.18), transparent 15rem),
        radial-gradient(circle at 8% 92%, rgba(0, 137, 123, 0.08), transparent 12rem),
        linear-gradient(145deg, rgba(48, 52, 58, 0.98), rgba(18, 20, 25, 0.96));
}

.wedding-package-featured {
    transform: translateY(-0.7rem);
}

.wedding-package:hover,
.wedding-package:focus-within,
.funeral-option:hover,
.funeral-option:focus-within {
    transform: translateY(-0.45rem);
    border-color: rgba(214, 199, 145, 0.34);
    box-shadow: 0 34px 86px rgba(0, 0, 0, 0.46);
}

.wedding-package-featured:hover,
.wedding-package-featured:focus-within {
    transform: translateY(-1rem);
}

.wedding-smallprint,
.funeral-smallprint {
    margin-top: 1rem;
}

.wedding-process,
.funeral-process {
    display: grid;
    grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}

.wedding-process > div h2 {
    max-width: 12ch;
    margin-bottom: clamp(1.35rem, 2.3vw, 2.1rem);
    font-size: clamp(3rem, 5.3vw, 5.6rem);
    line-height: 1.08;
}

.wedding-process > div > p:not(.eyebrow) {
    margin-top: 0;
}

.wedding-process-list,
.funeral-process-list {
    list-style: none;
    display: grid;
    gap: 0;
    padding: 0;
    margin: 0;
    border-top: 1px solid rgba(243, 244, 246, 0.12);
}

.wedding-process-list li,
.funeral-process-list li {
    display: grid;
    grid-template-columns: 4.5rem minmax(9rem, 0.35fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: baseline;
    padding: 1.35rem 0;
    border-bottom: 1px solid rgba(243, 244, 246, 0.12);
}

.wedding-process-list strong,
.funeral-process-list strong {
    color: rgba(247, 247, 244, 0.92);
    font-size: 1.08rem;
}

.wedding-process-list p,
.funeral-process-list p {
    margin: 0;
}

.wedding-legal-image {
    height: clamp(28rem, 42vw, 42rem);
}

.wedding-final-panel,
.funeral-final-panel {
    max-width: 76rem;
    margin-inline: auto;
    text-align: center;
    display: grid;
    justify-items: center;
    gap: 1rem;
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 34px;
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.12), transparent 22rem),
        linear-gradient(145deg, rgba(38, 43, 52, 0.84), rgba(14, 16, 20, 0.92));
    box-shadow: 0 34px 88px rgba(0, 0, 0, 0.38);
}

.wedding-final-panel h2,
.funeral-final-panel h2 {
    max-width: 15ch;
}

.funeral-support-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: 30px;
    background: rgba(243, 244, 246, 0.1);
}

.funeral-support-grid article {
    min-height: 20rem;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background:
        radial-gradient(circle at 80% 10%, rgba(183, 192, 204, 0.08), transparent 13rem),
        linear-gradient(145deg, rgba(32, 37, 46, 0.92), rgba(13, 15, 19, 0.96));
}

.funeral-support-logo {
    --logo-wreath-scale: 1.2;
    width: clamp(2.5rem, 3.2vw, 3.1rem);
    height: clamp(2.5rem, 3.2vw, 3.1rem);
    margin-bottom: clamp(1rem, 1.6vw, 1.3rem);
    overflow: visible;
}

.funeral-support-grid .funeral-support-logo .logo-clc {
    width: 73%;
    height: 73%;
}

.funeral-support-grid .funeral-support-logo .logo-wreath {
    width: 100%;
    height: 100%;
}

.funeral-support-grid article:hover .funeral-support-logo .logo-wreath,
.funeral-support-grid article:focus-within .funeral-support-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.funeral-support-grid article:hover .funeral-support-logo .logo-clc,
.funeral-support-grid article:focus-within .funeral-support-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.funeral-intro-image {
    min-height: clamp(31rem, 46vw, 42rem);
}

.funeral-intro-image img {
    -o-object-position: center top;
       object-position: center top;
}

.funeral-intro-image figcaption {
    position: absolute;
    left: 1.4rem;
    right: 1.4rem;
    bottom: 1.4rem;
    padding: 1rem 1.15rem;
    border-radius: 18px;
    background: rgba(10, 12, 15, 0.68);
    color: rgba(247, 247, 244, 0.84);
    backdrop-filter: blur(14px);
}

@media (max-width: 1040px) {
    .wedding-hero-inner,
    .funeral-hero-inner,
    .wedding-intro-grid,
    .wedding-story-grid,
    .wedding-legal-grid,
    .funeral-intro-grid,
    .funeral-memory-grid,
    .wedding-process,
    .funeral-process {
        grid-template-columns: 1fr;
    }

    .wedding-hero-note {
        max-width: 42rem;
    }

    .wedding-package-lane,
    .funeral-options-grid,
    .funeral-support-grid {
        grid-template-columns: 1fr;
    }

    .wedding-package-featured,
    .funeral-option-featured,
    .wedding-package-featured:hover,
    .wedding-package-featured:focus-within,
    .funeral-option-featured:hover,
    .funeral-option-featured:focus-within {
        transform: none;
    }

    .wedding-story-image-small {
        display: none;
    }

    .wedding-story-copy {
        max-width: 52rem;
    }

    .wedding-story-copy h2 {
        max-width: 16ch;
    }
}

@media (max-width: 720px) {
    .wedding-hero,
    .funeral-hero {
        min-height: auto;
    }

    .wedding-hero-inner,
    .funeral-hero-inner {
        padding-top: 6rem;
        padding-bottom: 4rem;
    }

    .wedding-hero-copy h1,
    .funeral-hero-copy h1,
    .wedding-intro-copy h2,
    .wedding-story-copy h2,
    .wedding-gallery-heading h2,
    .wedding-packages-heading h2,
    .wedding-process h2,
    .wedding-legal-copy h2,
    .wedding-final-panel h2,
    .funeral-intro-copy h2,
    .funeral-options-heading h2,
    .funeral-memory-copy h2,
    .funeral-process-heading h2,
    .funeral-final-panel h2 {
        max-width: 100%;
        margin-bottom: 1rem;
        font-size: clamp(2.2rem, 8.8vw, 2.9rem);
        line-height: 1.12;
        overflow-wrap: anywhere;
    }

    .wedding-hero-note {
        grid-template-columns: 1fr;
        width: min(100%, 24rem);
        gap: 0.1rem;
        padding: 0.9rem 0;
    }

    .wedding-story-copy h2 {
        max-width: 100%;
        font-size: clamp(2.45rem, 10.6vw, 3.4rem);
        line-height: 1.06;
        overflow-wrap: normal;
    }

    .wedding-hero-note span {
        min-height: 3rem;
        padding-block: 0.72rem;
    }

    .wedding-intro-points article,
    .wedding-process-list li,
    .funeral-process-list li {
        grid-template-columns: 1fr;
    }

    .wedding-intro-points article > span {
        grid-row: auto;
    }

    .wedding-editorial-carousel,
    .funeral-memory-carousel {
        min-height: 32rem;
    }

    .wedding-editorial-slide figcaption {
        left: 1rem;
        right: 1rem;
        bottom: 4.9rem;
        max-width: none;
        padding: 0.95rem 1rem;
    }

    .wedding-editorial-slide figcaption strong {
        font-size: clamp(1.08rem, 4.4vw, 1.45rem);
        line-height: 1.08;
    }

    .wedding-carousel-controls,
    .funeral-carousel-controls {
        justify-content: center;
    }

    .wedding-carousel-controls {
        bottom: 1rem;
    }

    .wedding-carousel-controls .carousel-arrow {
        inline-size: 2.8rem;
        block-size: 2.8rem;
        font-size: 1.25rem;
    }

    .wedding-carousel-controls .carousel-dots {
        min-block-size: 2rem;
    }
}

.review-gallery-card {
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 46px rgba(36, 31, 27, 0.08);
}

.reviews-page {
    background:
        radial-gradient(circle at 86% 8%, rgba(72, 82, 90, 0.28), transparent 30rem),
        radial-gradient(circle at 12% 34%, rgba(5, 7, 10, 0.82), transparent 32rem),
        linear-gradient(145deg, #101216 0%, #191c22 48%, #090a0d 100%);
}

.reviews-hero {
    position: relative;
    min-height: calc(88svh - var(--header-height));
    display: grid;
    align-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 74% 14%, rgba(0, 157, 171, 0.2), transparent 22rem),
        radial-gradient(circle at 88% 68%, rgba(214, 199, 145, 0.16), transparent 24rem),
        radial-gradient(circle at 18% 78%, rgba(58, 70, 76, 0.28), transparent 27rem),
        linear-gradient(145deg, #15181d 0%, #0d0f13 100%);
}

.reviews-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.72;
    background:
        linear-gradient(115deg, transparent 0 46%, rgba(20, 173, 170, 0.11) 46% 46.12%, transparent 46.12% 100%),
        linear-gradient(145deg, rgba(8, 10, 14, 0.22), transparent 42%),
        radial-gradient(circle at 82% 44%, rgba(214, 199, 145, 0.12), transparent 18rem);
    pointer-events: none;
}

.reviews-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 12rem;
    background: linear-gradient(180deg, transparent, rgba(9, 11, 15, 0.92));
    pointer-events: none;
}

.reviews-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(22rem, 0.76fr);
    gap: clamp(2.2rem, 5vw, 5.5rem);
    align-items: center;
    padding-block: clamp(4rem, 7vw, 7rem);
}

.reviews-hero-copy {
    max-width: 48rem;
}

.reviews-hero-copy h1,
.reviews-section-heading h2,
.reviews-wall-heading h2,
.reviews-submit-copy h2 {
    max-width: 12.5ch;
    font-size: clamp(3.6rem, 7vw, 7.3rem);
    line-height: 1.03;
    letter-spacing: 0;
}

.reviews-hero-copy h1 {
    margin-bottom: clamp(1.35rem, 2.3vw, 2.2rem);
    font-size: clamp(3.45rem, 6.2vw, 6.4rem);
    line-height: 1.08;
}

.reviews-hero-copy .lead,
.reviews-submit-copy p,
.reviews-section-heading p:not(.eyebrow),
.reviews-wall-heading p:not(.eyebrow) {
    color: rgba(238, 240, 238, 0.76);
}

.reviews-hero-copy .lead {
    max-width: 38rem;
    margin-bottom: 1.45rem;
}

.reviews-hero-visual {
    position: relative;
    display: grid;
    gap: clamp(0.9rem, 1.4vw, 1.25rem);
    align-self: stretch;
    min-height: clamp(31rem, 50vw, 43rem);
}

.reviews-hero-visual::before {
    content: "";
    position: absolute;
    inset: -1.2rem -1rem -1rem;
    border-radius: 36px;
    border: 1px solid rgba(20, 173, 170, 0.2);
    background:
        linear-gradient(135deg, rgba(2, 182, 190, 0.16), transparent 34%),
        radial-gradient(circle at 78% 8%, rgba(214, 199, 145, 0.18), transparent 14rem),
        linear-gradient(145deg, rgba(31, 36, 44, 0.7), rgba(7, 9, 13, 0.74));
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.34);
    pointer-events: none;
}

.reviews-hero-photo-stack {
    position: relative;
    z-index: 1;
    min-height: 24rem;
}

.reviews-hero-photo {
    position: absolute;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(244, 236, 188, 0.2);
    background: rgba(12, 15, 20, 0.76);
    box-shadow: 0 24px 58px rgba(0, 0, 0, 0.38);
}

.reviews-hero-photo img {
    width: 100%;
    height: 100%;
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
    filter: saturate(1.08) contrast(1.02) brightness(0.86);
}

.reviews-hero-photo-main {
    inset: 0 0 3.4rem 3.2rem;
    border-radius: 30px 30px 12px 30px;
}

.reviews-hero-photo-secondary {
    left: 0;
    bottom: 0;
    width: min(48%, 17rem);
    aspect-ratio: 1.08;
    border-radius: 20px;
}

.reviews-hero-photo-mark {
    position: absolute;
    right: clamp(1rem, 2.4vw, 1.8rem);
    bottom: 1.2rem;
    z-index: 2;
    display: grid;
    place-items: center;
    width: clamp(5.6rem, 8vw, 7.2rem);
    aspect-ratio: 1;
    border-radius: 999px;
    border: 1px solid rgba(244, 236, 188, 0.28);
    background:
        radial-gradient(circle at 42% 32%, rgba(0, 179, 184, 0.18), transparent 42%),
        rgba(8, 11, 15, 0.62);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
}

.reviews-hero-logo {
    --logo-clc-size: 80;
    --logo-wreath-scale: 1.22;
    width: 82%;
    overflow: visible;
}

.reviews-hero-photo-mark:hover .reviews-hero-logo .logo-wreath,
.reviews-hero-photo-mark:focus-within .reviews-hero-logo .logo-wreath,
.reviews-hero-photo-stack:hover .reviews-hero-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.reviews-hero-photo-mark:hover .reviews-hero-logo .logo-clc,
.reviews-hero-photo-mark:focus-within .reviews-hero-logo .logo-clc,
.reviews-hero-photo-stack:hover .reviews-hero-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.reviews-hero-proof {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(20, 173, 170, 0.32);
    background: linear-gradient(90deg, rgba(8, 113, 121, 0.12), rgba(214, 199, 145, 0.1), rgba(15, 17, 22, 0.04));
}

.reviews-proof-item {
    min-height: 6rem;
    display: grid;
    align-content: center;
    gap: 0.35rem;
    padding: 1rem 1.15rem;
    border-right: 1px solid rgba(244, 236, 188, 0.14);
    background: transparent;
    color: rgba(247, 247, 244, 0.86);
    font-weight: 800;
    box-shadow: none;
    backdrop-filter: none;
}

.reviews-proof-item:last-child {
    border-right: 0;
}

.reviews-proof-kicker {
    color: var(--color-gold);
    font-family: var(--font-serif);
    font-size: 0.92rem;
    line-height: 1;
    letter-spacing: 0;
}

.reviews-proof-text {
    min-width: 0;
    font-size: clamp(0.88rem, 1.2vw, 1rem);
    line-height: 1.2;
}

.reviews-proof-logo {
    --logo-wreath-scale: 1.2;
    width: clamp(3.1rem, 5vw, 3.75rem);
    overflow: visible;
}

.reviews-proof-item:hover .reviews-proof-logo .logo-wreath,
.reviews-proof-item:focus-within .reviews-proof-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.reviews-proof-item:hover .reviews-proof-logo .logo-clc,
.reviews-proof-item:focus-within .reviews-proof-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.reviews-feature-section,
.reviews-submit-section {
    background:
        radial-gradient(circle at 78% 10%, rgba(214, 199, 145, 0.08), transparent 24rem),
        linear-gradient(180deg, #12151a 0%, #0a0c10 100%);
}

.reviews-wall-section {
    background:
        radial-gradient(circle at 16% 12%, rgba(72, 86, 89, 0.22), transparent 26rem),
        radial-gradient(circle at 88% 84%, rgba(4, 6, 9, 0.86), transparent 30rem),
        linear-gradient(150deg, #1b1f25 0%, #0c0e12 100%);
}

.reviews-section-heading,
.reviews-wall-heading {
    max-width: 58rem;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.reviews-feature-carousel {
    --review-card-width: clamp(20rem, 38vw, 35rem);
}

.reviews-feature-card {
    min-height: clamp(22rem, 34vw, 30rem);
    justify-content: flex-start;
}

.reviews-feature-card h3 {
    font-size: clamp(2.1rem, 3.5vw, 3.6rem);
    line-height: 1.06;
}

.reviews-feature-card > p:not(.review-stars):not(.review-meta) {
    font-size: 1.04rem;
    line-height: 1.75;
}

.reviews-marquee {
    position: relative;
    overflow: visible;
}

.reviews-marquee::before,
.reviews-marquee::after {
    content: none;
}

.reviews-marquee::before {
    background: none;
}

.reviews-marquee::after {
    background: none;
}

.reviews-marquee-track {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.5rem);
    overflow: visible;
    padding: 0;
}

.reviews-marquee-track::-webkit-scrollbar {
    display: none;
}

.reviews-marquee-track::-webkit-scrollbar-track {
    background: transparent;
}

.reviews-marquee-track::-webkit-scrollbar-thumb {
    background: transparent;
}

.review-story-card {
    position: relative;
    display: grid;
    flex: 1 1 min(100%, 21rem);
    width: 100%;
    max-width: 24rem;
    min-height: 100%;
    min-width: 0;
    overflow: hidden;
    padding: clamp(1rem, 1.7vw, 1.35rem);
    border-radius: 24px;
    border: 1px solid rgba(243, 244, 246, 0.13);
    background:
        radial-gradient(circle at 86% 8%, rgba(214, 199, 145, 0.08), transparent 12rem),
        linear-gradient(145deg, rgba(39, 44, 52, 0.96), rgba(15, 17, 22, 0.94));
    box-shadow:
        0 26px 68px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    scroll-snap-align: center;
    transition:
        transform 280ms cubic-bezier(0.2, 0.75, 0.25, 1),
        border-color 280ms ease,
        box-shadow 280ms ease;
}

.review-story-card-text-only {
    min-height: 100%;
}

.review-story-card-text-only .review-story-content {
    min-height: 100%;
}

.review-story-card:hover,
.review-story-card:focus-within {
    transform: translateY(-0.35rem);
    border-color: rgba(214, 199, 145, 0.34);
    box-shadow:
        0 32px 82px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.review-story-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 18%),
        radial-gradient(circle at 18% 12%, rgba(214, 199, 145, 0.12), transparent 11rem);
    opacity: 0.68;
}

.review-story-content {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 100%;
    min-width: 0;
    flex-direction: column;
    padding: clamp(1rem, 1.8vw, 1.55rem);
    border-radius: 18px;
    background:
        radial-gradient(circle at 88% 6%, rgba(214, 199, 145, 0.08), transparent 10rem),
        linear-gradient(145deg, rgba(8, 10, 14, 0.36), rgba(8, 10, 14, 0.14));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 0 0 1px rgba(243, 244, 246, 0.06);
}

.review-story-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
    min-width: 0;
}

.review-story-top > span {
    max-width: 55%;
    color: rgba(183, 192, 204, 0.74);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: right;
    overflow-wrap: anywhere;
}

.review-story-card .review-stars {
    margin-bottom: 0;
    font-size: clamp(1.05rem, 1.35vw, 1.28rem);
    letter-spacing: 0.18em;
    line-height: 1;
    text-shadow: 0 0 16px rgba(214, 199, 145, 0.18);
}

.review-story-card h3 {
    max-width: 100%;
    margin-bottom: 0.65rem;
    color: rgba(247, 247, 244, 0.94);
    font-size: clamp(1.35rem, 1.55vw, 1.75rem);
    line-height: 1.14;
    overflow-wrap: anywhere;
}

.review-story-card > p:not(.review-stars):not(.review-meta) {
    color: rgba(238, 240, 238, 0.72);
    line-height: 1.7;
}

.review-story-message {
    display: block;
    max-width: 100%;
    max-height: 12rem;
    overflow: auto;
    color: rgba(238, 240, 238, 0.74);
    line-height: 1.62;
    overflow-wrap: anywhere;
    word-break: break-word;
    scrollbar-width: thin;
}

.review-story-card .review-meta {
    margin-top: auto;
    padding-top: 1rem;
    color: rgba(238, 240, 238, 0.68);
    overflow-wrap: anywhere;
}

.review-photo-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 1rem 0 0.15rem;
    padding: 0.55rem;
    border-radius: 16px;
    border: 1px solid rgba(243, 244, 246, 0.08);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018));
}

.review-photo-grid-single,
.review-photo-grid-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.review-photo-grid-single .review-photo-button {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 11;
    max-height: 15rem;
}

.review-photo-grid-pair .review-photo-button {
    aspect-ratio: 1 / 1;
}

.review-photo-button {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 0.82;
    min-height: 0;
    padding: 0;
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: 12px;
    background: #0c0e12;
    cursor: zoom-in;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.review-photo-button::after {
    content: "View";
    position: absolute;
    left: 0.55rem;
    bottom: 0.55rem;
    padding: 0.28rem 0.48rem;
    border-radius: 999px;
    background: rgba(8, 10, 14, 0.62);
    color: rgba(247, 247, 244, 0.86);
    font-size: 0.7rem;
    font-weight: 800;
    opacity: 0;
    transform: translateY(0.35rem);
    transition: opacity 180ms ease, transform 180ms ease;
}

.review-photo-button:hover::after,
.review-photo-button:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

.review-photo-button img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    transition: transform 420ms cubic-bezier(0.18, 0.86, 0.24, 1), filter 220ms ease;
}

.review-photo-button:hover img,
.review-photo-button:focus-visible img {
    transform: scale(1.065);
    filter: brightness(1.06);
}

.reviews-submit-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.55fr) minmax(0, 0.95fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}

.reviews-submit-copy {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
}

.reviews-submit-copy h2 {
    font-size: clamp(3rem, 5.8vw, 5.8rem);
}

.reviews-submit-panel {
    min-width: 0;
}

.review-submission-form {
    max-width: none;
}

.review-submission-form .field-row {
    align-items: start;
    overflow: visible;
}

.review-submission-form .field-group {
    min-width: 0;
}

.review-submission-form .field-control-button {
    min-height: 3.8rem;
}

.review-submission-form .form-choice.is-open,
.review-submission-form .phone-field.is-open {
    z-index: 8;
}

.review-submission-form .field-popup {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    display: none;
    width: 100%;
    max-height: none;
    margin-top: 0.65rem;
    overflow: visible;
    opacity: 0;
    transform: none;
}

.review-submission-form .field-popup.is-above {
    bottom: auto;
    transform: none;
}

.review-submission-form .form-choice.is-open .field-popup,
.review-submission-form .phone-field.is-open .field-popup {
    display: block;
    opacity: 1;
    transform: none;
}

.review-submission-form .field-popup-date {
    width: min(100%, 22rem);
}

.review-submission-form .date-picker-shell {
    max-height: none;
}

.review-form-banner {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin: 1rem 0 0;
    padding: 0.95rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(200, 184, 137, 0.2);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.review-form-banner[hidden] {
    display: none;
}

.review-form-banner.field-error {
    color: #ffb1a5;
    border-color: rgba(255, 110, 91, 0.3);
    background: linear-gradient(135deg, rgba(153, 45, 31, 0.22), rgba(24, 25, 28, 0.72));
}

.review-form-banner.callout {
    color: var(--ink);
    border-color: rgba(112, 178, 150, 0.32);
    background: linear-gradient(135deg, rgba(47, 108, 92, 0.26), rgba(24, 25, 28, 0.74));
}

.reviews-admin-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 28rem));
    justify-content: start;
    align-items: start;
}

.reviews-admin-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: clamp(1.2rem, 2vw, 1.7rem);
}

.reviews-admin-card {
    width: 100%;
    max-width: 28rem;
    min-width: 0;
}

.reviews-admin-card h3,
.reviews-admin-meta,
.reviews-admin-message {
    max-width: 100%;
    min-width: 0;
}

.reviews-admin-meta {
    color: rgba(229, 231, 235, 0.76);
}

.reviews-admin-message {
    margin: 1.1rem 0 1.35rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02)),
        rgba(6, 8, 11, 0.22);
    color: rgba(245, 245, 242, 0.86);
    line-height: 1.65;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: pre-wrap;
}

.reviews-admin-actions {
    align-items: center;
    gap: 0.7rem;
}

.reviews-admin-actions .button {
    min-width: 6.1rem;
}

.reviews-manage-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: clamp(1rem, 2vw, 1.45rem);
    align-items: start;
}

.reviews-manage-card {
    display: grid;
    min-width: 0;
    overflow: hidden;
    padding: clamp(1rem, 1.8vw, 1.45rem);
    border-radius: 24px;
    border: 1px solid rgba(243, 244, 246, 0.13);
    background:
        radial-gradient(circle at 88% 6%, rgba(214, 199, 145, 0.1), transparent 13rem),
        linear-gradient(145deg, rgba(39, 44, 52, 0.96), rgba(15, 17, 22, 0.94));
    box-shadow:
        0 26px 68px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition:
        transform 280ms cubic-bezier(0.2, 0.75, 0.25, 1),
        border-color 280ms ease,
        box-shadow 280ms ease;
}

.reviews-manage-card:hover,
.reviews-manage-card:focus-within {
    transform: translateY(-0.3rem);
    border-color: rgba(214, 199, 145, 0.34);
    box-shadow:
        0 32px 82px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.reviews-manage-card-main {
    position: relative;
    display: grid;
    min-width: 0;
    padding: clamp(1rem, 1.8vw, 1.45rem);
    border-radius: 18px;
    background:
        linear-gradient(145deg, rgba(8, 10, 14, 0.36), rgba(8, 10, 14, 0.14));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 0 0 1px rgba(243, 244, 246, 0.06);
}

.reviews-manage-card h3 {
    margin: 0 0 0.55rem;
    color: rgba(247, 247, 244, 0.94);
    font-size: clamp(1.45rem, 1.8vw, 1.9rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.reviews-manage-status {
    justify-self: start;
    margin-bottom: 0.9rem;
    padding: 0.38rem 0.65rem;
    border-radius: 999px;
    border: 1px solid rgba(243, 244, 246, 0.12);
    color: rgba(247, 247, 244, 0.82);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.reviews-manage-status.is-enabled {
    border-color: rgba(112, 178, 150, 0.36);
    background: rgba(47, 108, 92, 0.2);
}

.reviews-manage-status.is-disabled {
    border-color: rgba(183, 192, 204, 0.2);
    background: rgba(183, 192, 204, 0.09);
    color: rgba(183, 192, 204, 0.78);
}

.reviews-manage-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.7rem;
    padding-top: 1rem;
}

.reviews-manage-actions .button {
    min-width: 9rem;
}

.review-submission-form button[disabled] {
    cursor: progress;
    opacity: 0.72;
}

.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.image-lightbox[hidden] {
    display: none;
}

.image-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.image-lightbox-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background:
        radial-gradient(circle at 72% 8%, rgba(214, 199, 145, 0.12), transparent 22rem),
        rgba(4, 5, 7, 0.84);
    cursor: zoom-out;
    backdrop-filter: blur(10px);
}

.image-lightbox-dialog {
    position: relative;
    max-width: min(92vw, 78rem);
    max-height: 88vh;
    overflow: hidden;
    border-radius: 26px;
    border: 1px solid rgba(243, 244, 246, 0.16);
    background: #090b0e;
    box-shadow:
        0 38px 110px rgba(0, 0, 0, 0.68),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: translateY(1rem) scale(0.98);
    transition: transform 220ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.image-lightbox.is-open .image-lightbox-dialog {
    transform: translateY(0) scale(1);
}

.image-lightbox-image {
    display: block;
    max-width: 100%;
    max-height: 88vh;
    -o-object-fit: contain;
       object-fit: contain;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    -webkit-user-drag: none;
}

.image-lightbox-close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    border: 1px solid rgba(243, 244, 246, 0.34);
    background: rgba(9, 11, 15, 0.72);
    color: #ffffff;
    font-size: 1.35rem;
    cursor: pointer;
}

@media (max-width: 1040px) {
    .reviews-hero-inner,
    .reviews-submit-grid {
        grid-template-columns: 1fr;
    }

    .reviews-hero-inner {
        align-items: start;
    }

    .reviews-hero-copy {
        max-width: 42rem;
    }

    .reviews-hero-visual {
        min-height: auto;
        max-width: 46rem;
        width: 100%;
        justify-self: center;
    }

    .reviews-hero-photo-stack {
        min-height: clamp(22rem, 58vw, 34rem);
    }

    .reviews-submit-copy {
        position: static;
    }
}

@media (max-width: 720px) {
    .reviews-hero {
        min-height: auto;
    }

    .reviews-hero-inner {
        gap: 2rem;
        padding-block: 3.5rem 4rem;
    }

    .reviews-hero-copy h1,
    .reviews-section-heading h2,
    .reviews-wall-heading h2,
    .reviews-submit-copy h2 {
        max-width: 100%;
        margin-bottom: 1rem;
        font-size: clamp(2.2rem, 8.8vw, 2.9rem);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    .reviews-hero-copy .lead {
        max-width: 100%;
        margin-bottom: 1.2rem;
    }

    .reviews-hero-visual::before {
        inset: -0.75rem;
        border-radius: 24px;
    }

    .reviews-hero-photo-stack {
        min-height: clamp(18rem, 88vw, 25rem);
    }

    .reviews-hero-photo-main {
        inset: 0 0 3.1rem 1.3rem;
        border-radius: 22px 22px 10px 22px;
    }

    .reviews-hero-photo-secondary {
        width: min(46%, 10.5rem);
        border-radius: 16px;
    }

    .reviews-hero-photo-mark {
        right: 0.8rem;
        bottom: 0.95rem;
        width: 5rem;
    }

    .reviews-hero-proof {
        grid-template-columns: 1fr;
        border-top-color: rgba(20, 173, 170, 0.26);
        border-radius: 0 0 18px 18px;
    }

    .reviews-proof-item {
        min-height: 4.35rem;
        grid-template-columns: 2.35rem minmax(0, 1fr);
        align-items: center;
        align-content: center;
        border-right: 0;
        border-bottom: 1px solid rgba(244, 236, 188, 0.13);
        padding: 0.75rem 0.95rem;
    }

    .reviews-proof-item:last-child {
        border-bottom: 0;
    }

    .reviews-feature-carousel {
        --review-card-width: min(86vw, 24rem);
    }

    .review-story-card {
        padding: 0.85rem;
    }

    .review-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.review-gallery-card::before {
    content: "";
    position: absolute;
    inset-inline: 1rem;
    top: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--peacock-line), transparent);
}

.review-submission-form {
    max-width: 960px;
    margin-inline: auto;
}

.review-photo-grid img:hover {
    transform: scale(1.025);
}

.review-photo-grid img {
    transition: transform 220ms ease, border-color 220ms ease;
}

@media (max-width: 1040px) {
    .enquiry-modal-dialog {
        padding: 1rem;
        max-block-size: min(94vh, calc(100dvh - 1.5rem));
    }

    .services-hero-inner,
    .services-experience-grid,
    .services-final-panel {
        grid-template-columns: 1fr;
    }

    .services-hero-inner {
        align-content: end;
        gap: 2rem;
    }

    .services-hero-copy h1 {
        max-width: 13ch;
    }

    .services-hero-rail {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .service-rail-item {
        grid-template-columns: 1fr;
    }

    .service-rail-item span {
        grid-row: auto;
    }

    .services-pathways {
        grid-template-columns: 1fr;
    }

    .service-path-panel-featured {
        grid-row: auto;
        min-height: clamp(31rem, 72vw, 42rem);
    }

    .services-process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-process article:nth-child(2) {
        border-right: 0;
    }

    .theme-about .about-hero {
        min-height: auto;
        padding-top: 4.5rem;
        padding-bottom: 5rem;
    }

    .about-image-carousel,
    .about-story-carousel {
        min-height: clamp(30rem, 82vw, 39rem);
    }

    .wedding-showcase {
        min-height: 290px;
    }

    .review-carousel-track {
        min-height: 280px;
    }
}

/*
   2026 light brand direction.
   Forces the site into a white/grey editorial palette with peacock colour used as trim.
*/

:root,
:root[data-theme="dark"] {
    --canvas: #ffffff;
    --canvas-deep: #f1f2f2;
    --surface: rgba(255, 255, 255, 0.9);
    --surface-strong: rgba(255, 255, 255, 0.98);
    --surface-deep: #191817;
    --surface-deep-2: #2a2927;
    --ink: #181715;
    --ink-soft: rgba(24, 23, 21, 0.74);
    --ink-muted: rgba(24, 23, 21, 0.56);
    --cream: #ffffff;
    --sage: #4f806c;
    --sage-deep: #295f52;
    --clay: #b86d28;
    --line: rgba(24, 23, 21, 0.1);
    --line-strong: rgba(24, 23, 21, 0.18);
    --shadow: 0 24px 70px rgba(24, 23, 21, 0.1);
    --page-glow-clay: rgba(212, 133, 45, 0.11);
    --page-glow-sage: rgba(0, 150, 136, 0.1);
    --page-bg-start: #ffffff;
    --page-bg-mid: #f6f7f7;
    --page-bg-end: #eceeee;
    --header-bg: rgba(255, 255, 255, 0.9);
    --header-bg-strong: rgba(255, 255, 255, 0.98);
    --header-border: rgba(24, 23, 21, 0.09);
    --panel-border: rgba(24, 23, 21, 0.09);
    --panel-border-soft: rgba(24, 23, 21, 0.07);
    --mobile-nav-bg: rgba(255, 250, 244, 0.98);
    --soft-section: rgba(244, 246, 246, 0.88);
    --button-secondary-bg: rgba(255, 250, 244, 0.74);
    --badge-bg: rgba(255, 250, 244, 0.92);
    --control-bg: rgba(255, 255, 255, 0.92);
    --control-bg-strong: #ffffff;
    --control-border: rgba(24, 23, 21, 0.14);
    --control-border-strong: rgba(0, 137, 123, 0.5);
    --control-shadow: 0 18px 42px rgba(24, 23, 21, 0.09);
    --focus-ring: rgba(0, 137, 123, 0.18);
    --scroll-track: rgba(24, 23, 21, 0.05);
    --scroll-thumb: rgba(0, 137, 123, 0.46);
    --scroll-thumb-hover: rgba(184, 109, 40, 0.68);
    --callout-bg: rgba(212, 133, 45, 0.1);
    --callout-border: #d4852d;
    --selection-bg: rgba(0, 137, 123, 0.22);
    --peacock-deep: #075a76;
    --peacock-blue: #0076a8;
    --peacock-sage: #27956f;
    --peacock-gold: #c99a33;
    --peacock-orange: #d77923;
    --peacock-line: rgba(0, 137, 123, 0.48);
    color-scheme: light;
}

body {
    color: var(--ink);
    background:
        radial-gradient(circle at 8% 0%, rgba(0, 137, 123, 0.08), transparent 28rem),
        radial-gradient(circle at 92% 10%, rgba(212, 133, 45, 0.1), transparent 25rem),
        linear-gradient(180deg, #ffffff 0%, #f7f8f8 42%, #eceeee 100%);
}

h1,
h2,
.footer-brand h2,
.quote-feature blockquote {
    color: var(--peacock-gold);
    background:
        linear-gradient(180deg, #fff7cf 0%, #d5aa42 34%, #9f6d16 72%, #e7c66f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: 0 10px 26px rgba(201, 154, 51, 0.12);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    h1,
    h2,
    .footer-brand h2,
    .quote-feature blockquote {
        -webkit-text-fill-color: transparent;
    }
}

h3 {
    color: #1f1e1c;
}

p,
li,
.lead {
    color: var(--ink-soft);
}

.eyebrow {
    color: var(--sage-deep);
}

.site-header,
.site-header.is-scrolled,
.site-header.is-scroll-up {
    background: rgba(255, 255, 255, 0.92);
    border-bottom-color: rgba(24, 23, 21, 0.08);
    box-shadow: 0 12px 34px rgba(24, 23, 21, 0.07);
}

.brand-name {
    color: #171615;
}

.brand-tagline {
    color: var(--clay);
}

.site-nav a {
    color: rgba(24, 23, 21, 0.7);
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a.is-active {
    color: #171615;
}

.site-nav a::after {
    background: transparent;
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a.is-active::after {
    background: linear-gradient(90deg, var(--peacock-sage), var(--peacock-blue), var(--peacock-orange));
}

.brand-lockup {
    width: clamp(4rem, 5.4vw, 5rem);
}

.logo-composite,
.peacock-badge-logo {
    filter: drop-shadow(0 12px 22px rgba(24, 23, 21, 0.12));
}

.button,
.button-secondary,
.button-light {
    border: 1px solid rgba(24, 23, 21, 0.1);
    box-shadow: 0 14px 34px rgba(24, 23, 21, 0.11);
}

.button {
    background: linear-gradient(135deg, #1f1d1a, #393633);
    color: #ffffff;
}

.button:hover,
.button:focus-visible {
    transform: translateY(-2px) scale(1.018);
    box-shadow:
        0 18px 42px rgba(24, 23, 21, 0.16),
        0 0 0 4px rgba(0, 137, 123, 0.1);
}

.button-secondary,
.button-light {
    background: rgba(255, 255, 255, 0.8);
    color: #171615;
}

.button-danger {
    border-color: rgba(214, 84, 74, 0.38);
    background:
        radial-gradient(circle at 88% 12%, rgba(214, 84, 74, 0.18), transparent 8rem),
        rgba(35, 20, 19, 0.78);
    color: #ffe7e2;
}

.button-danger:hover,
.button-danger:focus-visible {
    border-color: rgba(241, 126, 112, 0.58);
    box-shadow:
        0 18px 42px rgba(24, 23, 21, 0.2),
        0 0 0 4px rgba(214, 84, 74, 0.12);
}

.text-link {
    color: var(--sage-deep);
}

.hero-fullbleed {
    min-height: calc(100svh - var(--header-height));
    background: #ffffff;
}

.page-hero,
.theme-wedding .page-hero,
.theme-funeral .page-hero,
.theme-services .page-hero,
.theme-about .page-hero,
.theme-contact .page-hero,
.theme-privacy .page-hero,
.theme-trust .page-hero,
.theme-journal .page-hero {
    background:
        radial-gradient(circle at 86% 12%, rgba(0, 137, 123, 0.08), transparent 22rem),
        radial-gradient(circle at 12% 18%, rgba(212, 133, 45, 0.08), transparent 20rem),
        linear-gradient(180deg, #ffffff 0%, #f6f7f7 72%, #eceeee 100%);
}

.page-hero::before,
.theme-funeral .page-hero::before,
.theme-wedding .page-hero::before {
    opacity: 0.16;
    background:
        linear-gradient(115deg, transparent 0 47%, rgba(0, 137, 123, 0.18) 47% 47.2%, transparent 47.2% 100%),
        radial-gradient(circle at 82% 28%, rgba(201, 154, 51, 0.2), transparent 18rem);
}

.page-hero .lead,
.page-hero p,
.page-hero .eyebrow {
    color: var(--ink-soft);
}

.page-hero .visual-note {
    color: var(--ink-soft);
}

.page-hero .hero-media img {
    opacity: 0.54;
    filter: saturate(0.88) contrast(0.96);
}

.page-hero .hero-overlay {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.84) 38%, rgba(255, 255, 255, 0.36) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(236, 238, 238, 0.88));
}

.hero-carousel .hero-media img {
    opacity: 1;
    filter: none;
}

.hero-carousel .hero-overlay {
    background: transparent;
}

.hero-fullbleed-copy .eyebrow,
.hero-fullbleed-copy .lead,
.hero-fullbleed-copy h1 {
    color: var(--ink);
}

.hero-fullbleed-copy .lead {
    color: rgba(24, 23, 21, 0.78);
}

.section {
    background-color: transparent;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.8),
        inset 0 -1px 0 rgba(24, 23, 21, 0.04);
}

.section-soft,
.section-deep,
.section-atmosphere-sage,
.section-atmosphere-clay,
.section-atmosphere-portrait {
    background:
        radial-gradient(circle at 92% 12%, rgba(0, 137, 123, 0.06), transparent 18rem),
        linear-gradient(180deg, #ffffff 0%, #f7f8f8 52%, #f0f2f2 100%);
}

.section-deep .eyebrow,
.section-deep h2,
.section-deep h3,
.section-deep p,
.section-deep li,
.theme-funeral .page-hero .story-copy p,
.theme-funeral .page-hero .story-copy .lead,
.theme-funeral .page-hero .eyebrow,
.theme-funeral .page-hero h1,
.theme-funeral .page-hero h2,
.theme-funeral .page-hero p {
    color: var(--ink-soft);
}

.section-deep h2,
.section-deep h1,
.theme-funeral .page-hero h1,
.theme-funeral .page-hero h2 {
    color: var(--peacock-gold);
}

.visual-stage,
.path-panel,
.detail-card,
.quote-card,
.package-card,
.contact-panel,
.contact-form,
.cta-panel,
.review-card,
.review-gallery-card,
.gallery-card,
.policy-card {
    border: 1px solid rgba(24, 23, 21, 0.08);
    border-top-color: rgba(0, 137, 123, 0.26);
    border-right-color: rgba(215, 121, 35, 0.22);
    border-bottom-color: rgba(201, 154, 51, 0.2);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 248, 248, 0.9)),
        #ffffff;
    box-shadow: 0 20px 58px rgba(24, 23, 21, 0.09);
}

.detail-card:hover,
.path-panel:hover,
.package-card:hover,
.review-gallery-card:hover,
.gallery-card:hover {
    border-top-color: rgba(0, 137, 123, 0.48);
    border-right-color: rgba(215, 121, 35, 0.42);
    box-shadow: 0 24px 68px rgba(24, 23, 21, 0.12);
}

.brand-stage {
    background:
        radial-gradient(circle at 16% 10%, rgba(0, 137, 123, 0.08), transparent 18rem),
        linear-gradient(180deg, #ffffff, #f3f4f4);
}

.brand-stage::before,
.visual-stage::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0)),
        radial-gradient(circle at top right, rgba(201, 154, 51, 0.1), transparent 26%),
        radial-gradient(circle at bottom left, rgba(0, 137, 123, 0.1), transparent 28%);
}

.media-stage::before,
.media-stage-home::before,
.media-stage-weddings::before {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(24, 23, 21, 0.46));
}

.media-stage-kicker,
.visual-caption,
.media-stage-overlay p {
    color: rgba(255, 255, 255, 0.92);
}

.peacock-badge-logo {
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(0, 137, 123, 0.22);
    border-radius: 999px;
    padding: 0.25rem;
}

.section-divider > .shell::after {
    opacity: 0.68;
    filter: drop-shadow(0 8px 14px rgba(0, 137, 123, 0.12));
}

.section-divider > .shell::before,
.package-list li::before,
.trust-list li::before,
.theme-funeral .package-list:not(.feather-list) li::before {
    background:
        radial-gradient(circle at 56% 54%, var(--peacock-gold) 0 22%, transparent 23%),
        radial-gradient(circle, var(--peacock-sage) 0 64%, transparent 65%);
}

.site-footer {
    background:
        radial-gradient(circle at 12% 8%, rgba(0, 137, 123, 0.08), transparent 20rem),
        linear-gradient(180deg, #f5f6f6, #ffffff);
}

.footer-grid {
    border-top-color: rgba(24, 23, 21, 0.1);
}

.footer-heading {
    color: rgba(24, 23, 21, 0.76);
}

.footer-heading::after {
    background: linear-gradient(
        90deg,
        rgba(201, 154, 51, 0.74),
        rgba(0, 137, 123, 0.42),
        rgba(24, 23, 21, 0.08)
    );
}

.footer-list a,
.footer-list button {
    color: rgba(24, 23, 21, 0.72);
}

.field-group input,
.field-group select,
.field-group textarea {
    background: #ffffff;
    color: var(--ink);
}

@media (max-width: 720px) {
    .services-hero {
        min-height: auto;
    }

    .services-hero-inner {
        padding-top: 4.4rem;
        padding-bottom: 3.6rem;
    }

    .services-hero-copy h1,
    .services-centered-heading h2,
    .services-experience-copy h2,
    .services-final-panel h2 {
        max-width: 100%;
        margin-bottom: 1rem;
        font-size: clamp(2.2rem, 8.8vw, 2.9rem);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    .services-hero-rail {
        grid-template-columns: 1fr;
    }

    .service-rail-item {
        padding: 1rem;
    }

    .service-path-panel,
    .service-path-panel-featured,
    .services-showcase {
        min-height: 32rem;
        border-radius: 24px;
    }

    .service-path-content h3 {
        font-size: clamp(2.2rem, 10vw, 3.25rem);
    }

    .services-process {
        grid-template-columns: 1fr;
    }

    .services-process::before {
        left: 1.8rem;
        right: auto;
        top: 0;
        bottom: 0;
        width: 1px;
        height: auto;
        background: linear-gradient(180deg, transparent, rgba(214, 199, 145, 0.36), transparent);
    }

    .services-process article,
    .services-process article:nth-child(2) {
        min-height: auto;
        padding-left: 4.6rem;
        border-right: 0;
        border-bottom: 1px solid rgba(243, 244, 246, 0.08);
    }

    .services-process article:last-child {
        border-bottom: 0;
    }

    .services-process span {
        position: absolute;
        left: 0;
        top: 1.3rem;
        width: 3.2rem;
        height: 3.2rem;
    }

    .services-faq-grid {
        grid-template-columns: 1fr;
    }

    .services-faq-heading {
        position: static;
    }

    .services-faq-heading h2 {
        max-width: 100%;
        margin-bottom: 1rem;
        font-size: clamp(2.2rem, 8.8vw, 2.9rem);
        line-height: 1.1;
        overflow-wrap: anywhere;
    }

    .services-final-panel {
        align-items: start;
        gap: 1.5rem;
    }

    .services-final-panel .button {
        justify-self: start;
        max-width: 100%;
        white-space: normal;
    }

    .theme-about .about-hero {
        padding-top: 3.4rem;
        padding-bottom: 4.25rem;
    }

    .theme-about .about-hero .story-copy h1 {
        font-size: clamp(2.55rem, 12.5vw, 3rem);
    }

    .about-image-carousel,
    .about-story-carousel {
        min-height: clamp(28rem, 122vw, 36rem);
        border-radius: 24px;
    }

    .about-carousel-controls {
        gap: 0.45rem;
        max-width: calc(100% - 1.5rem);
    }

    .about-carousel-controls .carousel-arrow {
        inline-size: 2.65rem;
        block-size: 2.65rem;
        font-size: 1.28rem;
    }

    .about-note-grid p {
        padding: 0.9rem 1rem;
    }

    .about-certificate {
        --accreditation-logo-size: clamp(5.8rem, 30vw, 7rem);
        gap: 0.9rem;
        padding: 0.95rem;
    }

    .hero-overlay {
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.82) 58%, rgba(236, 238, 238, 0.94) 100%);
    }

    .hero-media img {
        opacity: 0.38;
    }
}

/* Secondary pages */

.secondary-page {
    background:
        radial-gradient(circle at 84% 8%, rgba(183, 192, 204, 0.14), transparent 28rem),
        radial-gradient(circle at 12% 84%, rgba(58, 70, 83, 0.24), transparent 30rem),
        linear-gradient(180deg, #090a0d 0%, #141820 46%, #0d0f14 100%);
}

.secondary-hero {
    position: relative;
    min-height: min(74vh, 48rem);
    display: grid;
    align-items: center;
    padding: clamp(5.2rem, 10vw, 8rem) 0 clamp(3.8rem, 7vw, 6rem);
    overflow: hidden;
}

.secondary-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        url("/images/objects/feather-horizontal.png") right 8vw top 9vh / min(20rem, 34vw) auto no-repeat,
        radial-gradient(circle at 74% 20%, rgba(201, 154, 51, 0.14), transparent 21rem),
        radial-gradient(circle at 15% 82%, rgba(0, 118, 168, 0.16), transparent 25rem);
    opacity: 0.9;
}

.secondary-hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.secondary-hero-copy {
    max-width: 52rem;
}

.secondary-hero-copy h1 {
    max-width: 11ch;
    margin: 0;
    font-size: clamp(3.3rem, 8vw, 7rem);
    line-height: 0.95;
    letter-spacing: 0;
}

.secondary-hero-copy .lead {
    max-width: 42rem;
    margin-top: 1.25rem;
    font-size: clamp(1.08rem, 1.8vw, 1.35rem);
    color: rgba(243, 244, 246, 0.78);
}

.secondary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 2rem;
}

.secondary-brand-panel,
.secondary-login-form,
.secondary-step,
.secondary-empty-state,
.admin-toolbar-panel,
.admin-analytics-panel,
.admin-analytics-card,
.admin-review-row {
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-top-color: rgba(201, 154, 51, 0.3);
    background:
        radial-gradient(circle at 86% 8%, rgba(201, 154, 51, 0.12), transparent 13rem),
        linear-gradient(145deg, rgba(37, 43, 52, 0.95), rgba(13, 16, 21, 0.94));
    box-shadow:
        0 26px 76px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.secondary-brand-panel {
    display: grid;
    justify-items: start;
    gap: 0.85rem;
    min-height: 24rem;
    padding: clamp(1.35rem, 3vw, 2rem);
    border-radius: 26px;
}

.secondary-brand-panel img {
    width: clamp(5.4rem, 11vw, 8rem);
    height: auto;
    padding: 0.35rem;
    border-radius: 999px;
    background: rgba(246, 241, 231, 0.95);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
}

.secondary-status,
.policy-number {
    margin: auto 0 0;
    color: #c99a33;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.secondary-brand-panel span {
    max-width: 18rem;
    color: rgba(243, 244, 246, 0.72);
    line-height: 1.6;
}

.admin-count-panel strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4.5rem, 10vw, 7rem);
    line-height: 0.9;
}

.secondary-flow-section,
.privacy-overview-section,
.admin-workspace-section {
    background:
        radial-gradient(circle at 8% 8%, rgba(0, 118, 168, 0.12), transparent 24rem),
        linear-gradient(180deg, rgba(16, 19, 24, 0.98), rgba(9, 11, 15, 0.98));
}

.secondary-step-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.4rem);
}

.secondary-step {
    min-height: 18rem;
    padding: clamp(1.25rem, 2.5vw, 1.8rem);
    border-radius: 24px;
}

.secondary-step span {
    display: inline-grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.7rem;
    border-radius: 999px;
    background: rgba(201, 154, 51, 0.14);
    color: #f3d992;
    font-weight: 800;
}

.secondary-step h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(1.45rem, 2.3vw, 2rem);
}

.secondary-contact-band,
.privacy-body-section {
    background:
        radial-gradient(circle at 86% 18%, rgba(201, 154, 51, 0.09), transparent 24rem),
        linear-gradient(180deg, rgba(17, 20, 26, 0.98), rgba(13, 15, 20, 0.98));
}

.secondary-split {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(1.4rem, 4vw, 3.5rem);
    align-items: center;
}

.secondary-split h2 {
    margin: 0;
    font-size: clamp(2rem, 4.5vw, 4.4rem);
    line-height: 1;
}

.secondary-split > p {
    max-width: 42rem;
    font-size: 1.08rem;
    line-height: 1.75;
}

.secondary-contact-list {
    display: grid;
    gap: 0.85rem;
}

.secondary-contact-list a {
    min-width: 0;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 16px;
    background: rgba(243, 244, 246, 0.055);
    color: var(--ink);
    font-weight: 800;
    overflow-wrap: anywhere;
}

.secondary-policy-layout {
    grid-template-columns: minmax(15rem, 0.32fr) minmax(0, 1fr);
    align-items: start;
}

.secondary-policy-index {
    position: sticky;
    top: calc(var(--header-height) + 1rem);
    padding: 1.2rem;
    border-radius: 22px;
    border: 1px solid rgba(243, 244, 246, 0.12);
    background: rgba(15, 18, 23, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.secondary-policy-index .footer-list {
    display: grid;
    gap: 0.7rem;
}

.secondary-policy-index a {
    color: rgba(243, 244, 246, 0.76);
}

.secondary-policy-sections {
    gap: 1rem;
}

.secondary-policy-sections .policy-card {
    position: relative;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(39, 44, 52, 0.94), rgba(14, 17, 22, 0.94));
}

.secondary-policy-sections .policy-card h2 {
    margin-top: 0.6rem;
}

.secondary-login-form {
    display: grid;
    gap: 1rem;
    padding: clamp(1.25rem, 3vw, 1.85rem);
    border-radius: 26px;
}

.secondary-login-form .button {
    justify-self: start;
}

.admin-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 2rem;
}

.admin-hero-actions .button {
    min-width: 12rem;
}

.admin-workspace {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
}

.admin-count-panel {
    position: relative;
    overflow: hidden;
    transition:
        transform 240ms ease,
        border-color 240ms ease,
        box-shadow 240ms ease;
}

.admin-count-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 82% 18%, rgba(0, 118, 168, 0.2), transparent 16rem),
        radial-gradient(circle at 20% 78%, rgba(201, 154, 51, 0.14), transparent 14rem);
    opacity: 0.74;
}

.admin-count-panel:hover {
    border-color: rgba(201, 154, 51, 0.42);
    box-shadow:
        0 32px 90px rgba(0, 0, 0, 0.46),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transform: translateY(-4px);
}

.admin-count-panel > * {
    position: relative;
}

.admin-count-panel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}

.admin-count-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.62rem;
    border: 1px solid rgba(243, 244, 246, 0.14);
    border-radius: 999px;
    color: rgba(243, 244, 246, 0.74);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.admin-count-status::before {
    content: "";
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 0.24rem rgba(243, 244, 246, 0.08);
}

.admin-count-status.is-clear {
    color: #94e6bd;
}

.admin-count-status.is-active {
    color: #f2d58d;
}

.admin-count-meter {
    width: 100%;
    height: 0.48rem;
    margin-top: auto;
    border-radius: 999px;
    background: rgba(243, 244, 246, 0.08);
    overflow: hidden;
}

.admin-count-meter span {
    display: block;
    width: var(--meter-width);
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #94e6bd, #c99a33, #0076a8);
    box-shadow: 0 0 28px rgba(201, 154, 51, 0.28);
    animation: admin-meter-in 680ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
}

.admin-toolbar-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    justify-content: space-between;
    gap: clamp(1rem, 2vw, 1.5rem);
    padding: clamp(1rem, 2vw, 1.35rem);
    border-radius: 24px;
    transition:
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.admin-toolbar-panel:hover {
    border-color: rgba(201, 154, 51, 0.32);
    box-shadow:
        0 26px 72px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.09);
}

.admin-toolbar-copy h2 {
    margin: 0.2rem 0 0.45rem;
    color: #f7ead0;
    font-size: clamp(1.45rem, 2.7vw, 2.2rem);
}

.admin-toolbar-copy p:not(.eyebrow):not(.callout) {
    max-width: 42rem;
    margin: 0;
    color: rgba(243, 244, 246, 0.68);
    line-height: 1.6;
}

.admin-toolbar-panel .callout {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0.85rem 0 0;
}

.admin-analytics-panel {
    position: relative;
    display: grid;
    gap: clamp(1rem, 2vw, 1.35rem);
    padding: clamp(1.15rem, 2.5vw, 1.7rem);
    border-radius: 28px;
    overflow: hidden;
    isolation: isolate;
    transition:
        border-color 240ms ease,
        box-shadow 240ms ease,
        transform 240ms ease;
}

.admin-analytics-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 82% 14%, rgba(0, 118, 168, 0.22), transparent 18rem),
        radial-gradient(circle at 12% 78%, rgba(201, 154, 51, 0.13), transparent 18rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.06), transparent 34%);
    opacity: 0.85;
}

.admin-analytics-panel:hover {
    border-color: rgba(201, 154, 51, 0.42);
    box-shadow:
        0 30px 90px rgba(0, 0, 0, 0.48),
        0 0 0 1px rgba(201, 154, 51, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

.admin-analytics-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.34fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: start;
}

.admin-analytics-heading h2 {
    margin: 0.25rem 0 0.7rem;
    color: #f7ead0;
    font-size: clamp(2rem, 4.2vw, 3.8rem);
    line-height: 0.95;
}

.admin-analytics-heading p:last-child {
    max-width: 44rem;
    margin: 0;
    color: rgba(243, 244, 246, 0.72);
    line-height: 1.65;
}

.admin-analytics-lead {
    position: relative;
    min-height: 10rem;
    padding: 1.1rem;
    border: 1px solid rgba(243, 244, 246, 0.14);
    border-radius: 22px;
    background:
        radial-gradient(circle at 86% 14%, rgba(201, 154, 51, 0.18), transparent 9rem),
        linear-gradient(145deg, rgba(50, 56, 65, 0.84), rgba(12, 15, 20, 0.86));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 18px 52px rgba(0, 0, 0, 0.26);
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        background 220ms ease;
}

.admin-analytics-lead:hover {
    border-color: rgba(201, 154, 51, 0.38);
    transform: translateY(-3px);
}

.admin-analytics-lead span,
.admin-analytics-card span,
.admin-insight-pill span {
    display: block;
    color: rgba(243, 244, 246, 0.64);
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.admin-analytics-lead strong {
    display: block;
    margin-top: 0.85rem;
    color: #fbf2dd;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4.2rem, 8vw, 6.2rem);
    line-height: 0.85;
}

.admin-analytics-lead small {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.9rem;
    color: rgba(243, 244, 246, 0.72);
    font-weight: 800;
}

.admin-analytics-lead small::before {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: rgba(243, 244, 246, 0.44);
    box-shadow: 0 0 0 0.25rem rgba(243, 244, 246, 0.08);
}

.admin-analytics-lead small.is-positive {
    color: #94e6bd;
}

.admin-analytics-lead small.is-positive::before {
    background: #7ee0aa;
    box-shadow: 0 0 0 0.25rem rgba(126, 224, 170, 0.13);
}

.admin-analytics-lead small.is-negative {
    color: #f1b49e;
}

.admin-analytics-lead small.is-negative::before {
    background: #eb9c82;
    box-shadow: 0 0 0 0.25rem rgba(235, 156, 130, 0.13);
}

.admin-analytics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.4vw, 1rem);
}

.admin-analytics-card {
    position: relative;
    min-height: 9.3rem;
    padding: 1rem;
    border-radius: 20px;
    background:
        linear-gradient(145deg, rgba(48, 54, 64, 0.82), rgba(17, 20, 26, 0.9));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 16px 42px rgba(0, 0, 0, 0.24);
    overflow: hidden;
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.admin-analytics-card::after {
    content: "";
    position: absolute;
    inset: auto 1rem 0 1rem;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, #c99a33, rgba(0, 118, 168, 0.95));
    opacity: 0.64;
    transform: scaleX(0.72);
    transform-origin: left;
    transition:
        opacity 220ms ease,
        transform 220ms ease;
}

.admin-analytics-card:hover {
    border-color: rgba(201, 154, 51, 0.4);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        0 22px 58px rgba(0, 0, 0, 0.34);
    transform: translateY(-4px);
}

.admin-analytics-card:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

.admin-analytics-card strong {
    display: block;
    margin-top: 1rem;
    color: #f7ead0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 5vw, 4.1rem);
    line-height: 0.9;
}

.admin-analytics-card small,
.admin-insight-pill small {
    display: block;
    margin-top: 0.65rem;
    color: rgba(243, 244, 246, 0.58);
    font-size: 0.88rem;
    line-height: 1.45;
}

.admin-analytics-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.28fr);
    gap: clamp(0.85rem, 1.8vw, 1.1rem);
    align-items: stretch;
}

.admin-analytics-chart,
.admin-analytics-insights {
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 22px;
    background: rgba(9, 11, 15, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.admin-analytics-chart {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: clamp(0.55rem, 1.2vw, 0.9rem);
    min-height: 15.5rem;
    padding: 1.1rem;
}

.admin-chart-bar {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 0.6rem;
    min-width: 0;
    text-align: center;
}

.admin-chart-value {
    color: rgba(243, 244, 246, 0.78);
    font-size: 0.86rem;
    font-weight: 850;
}

.admin-chart-track {
    position: relative;
    display: flex;
    align-items: end;
    min-height: 9.5rem;
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025));
    overflow: hidden;
}

.admin-chart-fill {
    display: block;
    width: 100%;
    min-height: 0.45rem;
    height: var(--bar-height);
    border-radius: 999px 999px 0 0;
    background:
        linear-gradient(180deg, #f2d58d 0%, #c99a33 45%, #0076a8 100%);
    box-shadow:
        0 -12px 26px rgba(201, 154, 51, 0.18),
        0 0 0 1px rgba(255, 255, 255, 0.08) inset;
    transform-origin: bottom;
    animation: admin-bar-rise 720ms cubic-bezier(0.18, 0.86, 0.24, 1) both;
    transition:
        filter 220ms ease,
        transform 220ms ease;
}

.admin-chart-bar:hover .admin-chart-fill {
    filter: saturate(1.15) brightness(1.12);
    transform: scaleY(1.04);
}

.admin-chart-label {
    color: rgba(243, 244, 246, 0.62);
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-analytics-insights {
    display: grid;
    gap: 0.75rem;
    padding: 0.8rem;
}

.admin-insight-pill {
    display: grid;
    align-content: center;
    min-height: 7rem;
    padding: 1rem;
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: 18px;
    background:
        radial-gradient(circle at 86% 8%, rgba(201, 154, 51, 0.11), transparent 8rem),
        rgba(243, 244, 246, 0.045);
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        background 220ms ease;
}

.admin-insight-pill:hover {
    border-color: rgba(0, 118, 168, 0.42);
    background:
        radial-gradient(circle at 86% 8%, rgba(0, 118, 168, 0.16), transparent 8rem),
        rgba(243, 244, 246, 0.06);
    transform: translateY(-3px);
}

.admin-insight-pill strong {
    margin-top: 0.55rem;
    color: #f7ead0;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.1;
}

@keyframes admin-bar-rise {
    from {
        transform: scaleY(0.08);
        opacity: 0.35;
    }
    to {
        transform: scaleY(1);
        opacity: 1;
    }
}

.admin-toolbar-actions,
.admin-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.admin-review-list {
    display: grid;
    gap: 1rem;
}

.admin-review-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(1rem, 2.5vw, 1.6rem);
    align-items: start;
    padding: clamp(1rem, 2vw, 1.45rem);
    border-radius: 24px;
    overflow: hidden;
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.admin-review-row::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 84% 16%, rgba(201, 154, 51, 0.12), transparent 15rem),
        linear-gradient(90deg, rgba(0, 118, 168, 0.1), transparent 42%);
    opacity: 0;
    transition: opacity 220ms ease;
}

.admin-review-row:hover,
.admin-review-row:focus-within {
    border-color: rgba(201, 154, 51, 0.42);
    box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transform: translateY(-3px);
}

.admin-review-row:hover::before,
.admin-review-row:focus-within::before {
    opacity: 1;
}

.admin-review-row > * {
    position: relative;
}

.admin-review-row-managed {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.34fr) auto;
}

.admin-review-main h2 {
    margin: 0.25rem 0 0.65rem;
    font-size: clamp(1.45rem, 2.3vw, 2rem);
}

.admin-review-topline {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 0.65rem;
}

.reviews-manage-status.is-pending {
    border-color: rgba(201, 154, 51, 0.35);
    background: rgba(201, 154, 51, 0.13);
    color: #f2d58d;
}

.admin-review-meta-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin: 0.8rem 0 1rem;
}

.admin-review-meta-grid .reviews-admin-meta {
    display: grid;
    gap: 0.16rem;
    min-width: min(12rem, 100%);
    margin: 0;
    padding: 0.72rem 0.85rem;
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: 16px;
    background: rgba(243, 244, 246, 0.045);
}

.admin-review-meta-grid .reviews-admin-meta span {
    color: rgba(243, 244, 246, 0.5);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.admin-review-meta-grid .reviews-admin-meta strong {
    color: rgba(243, 244, 246, 0.88);
    font-size: 0.95rem;
}

.admin-review-actions {
    justify-content: flex-end;
    padding: 0.3rem;
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: 18px;
    background: rgba(7, 9, 12, 0.28);
}

.admin-review-photos {
    align-self: stretch;
    min-width: 0;
}

.secondary-empty-state {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    justify-items: start;
    gap: clamp(1rem, 2.5vw, 1.5rem);
    max-width: none;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: 28px;
    overflow: hidden;
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.secondary-empty-state::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 8% 28%, rgba(148, 230, 189, 0.13), transparent 16rem),
        radial-gradient(circle at 86% 12%, rgba(201, 154, 51, 0.12), transparent 19rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.055), transparent 36%);
}

.secondary-empty-state:hover {
    border-color: rgba(148, 230, 189, 0.28);
    box-shadow:
        0 28px 84px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transform: translateY(-3px);
}

.secondary-empty-state > * {
    position: relative;
}

.secondary-empty-state > img,
.admin-empty-mark > img {
    width: 5.4rem;
    height: auto;
    padding: 0.25rem;
    border-radius: 999px;
    background: rgba(246, 241, 231, 0.95);
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.28),
        0 0 0 0.55rem rgba(148, 230, 189, 0.06);
}

.admin-empty-mark {
    display: grid;
    place-items: center;
}

.admin-empty-logo {
    --logo-wreath-size: 120;
    --logo-clc-size: 88;
    --logo-wreath-scale: 1.16;
    width: clamp(4.8rem, 8vw, 5.8rem);
    border-radius: 999px;
    background:
        radial-gradient(circle at 50% 46%, rgba(246, 241, 231, 0.95), rgba(246, 241, 231, 0.8) 62%, rgba(246, 241, 231, 0.42) 63%, transparent 70%);
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.28),
        0 0 0 0.55rem rgba(148, 230, 189, 0.06);
}

.admin-empty-logo .logo-wreath {
    z-index: 4;
}

.secondary-empty-state:hover .admin-empty-logo .logo-wreath,
.secondary-empty-state:focus-within .admin-empty-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
    filter:
        drop-shadow(0 0 14px rgba(214, 199, 145, 0.2))
        drop-shadow(0 14px 26px rgba(0, 0, 0, 0.26));
}

.secondary-empty-state:hover .admin-empty-logo .logo-clc,
.secondary-empty-state:focus-within .admin-empty-logo .logo-clc {
    transform: translateY(1%) scale(1.035);
}

.admin-empty-copy h2 {
    max-width: 14ch;
    margin: 0.25rem 0 0.65rem;
    color: #f7ead0;
    font-size: clamp(2rem, 4.8vw, 4.7rem);
    line-height: 0.95;
}

.admin-empty-copy p:not(.eyebrow) {
    max-width: 40rem;
    margin: 0;
    color: rgba(243, 244, 246, 0.68);
    line-height: 1.65;
}

.admin-empty-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    min-width: min(22rem, 100%);
}

@keyframes admin-meter-in {
    from {
        transform: scaleX(0.08);
        opacity: 0.35;
    }
    to {
        transform: scaleX(1);
        opacity: 1;
    }
}

@media (max-width: 900px) {
    .secondary-hero-grid,
    .secondary-step-grid,
    .secondary-split,
    .secondary-policy-layout,
    .admin-analytics-panel,
    .admin-analytics-header,
    .admin-analytics-detail,
    .admin-toolbar-panel,
    .admin-review-row,
    .admin-review-row-managed,
    .secondary-empty-state {
        grid-template-columns: 1fr;
    }

    .secondary-brand-panel {
        min-height: 16rem;
    }

    .secondary-policy-index {
        position: relative;
        top: auto;
    }

    .admin-review-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-toolbar-actions {
        width: 100%;
    }

    .admin-toolbar-actions .button,
    .admin-toolbar-actions form,
    .admin-review-actions .button,
    .admin-review-actions form {
        width: 100%;
    }

    .admin-analytics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-analytics-chart {
        min-height: 14rem;
    }

    .admin-empty-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .secondary-hero {
        min-height: auto;
        padding-top: 4.5rem;
    }

    .secondary-hero-copy h1 {
        max-width: 100%;
        font-size: clamp(2.7rem, 13vw, 4rem);
    }

    .secondary-actions .button,
    .secondary-actions .button-secondary {
        width: 100%;
        white-space: normal;
    }

    .admin-analytics-grid {
        grid-template-columns: 1fr;
    }

    .admin-analytics-chart {
        gap: 0.45rem;
        padding: 0.85rem;
    }

    .admin-chart-track {
        min-height: 8rem;
    }

    .admin-chart-value,
    .admin-chart-label {
        font-size: 0.68rem;
    }

    .admin-hero-actions .button,
    .admin-empty-actions .button,
    .admin-empty-actions {
        width: 100%;
    }

    .admin-review-meta-grid {
        display: grid;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-analytics-panel,
    .admin-analytics-card,
    .admin-analytics-lead,
    .admin-chart-fill,
    .admin-insight-pill,
    .admin-count-panel,
    .admin-count-meter span,
    .admin-toolbar-panel,
    .admin-review-row,
    .secondary-empty-state {
        animation: none;
        transition: none;
    }
}

/* Thank you page */

.thank-you-page {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 12%, rgba(0, 118, 168, 0.16), transparent 31rem),
        radial-gradient(circle at 18% 18%, rgba(201, 154, 51, 0.12), transparent 27rem),
        radial-gradient(circle at 50% 80%, rgba(39, 149, 111, 0.1), transparent 30rem),
        linear-gradient(180deg, #080a0d 0%, #15181d 48%, #090b0f 100%);
    color: var(--ink);
}

.thank-you-page::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        url("/images/objects/feather-horizontal-mirrored.png") left 6vw top 8rem / min(19rem, 32vw) auto no-repeat,
        url("/images/objects/feather-horizontal.png") right 5vw top 9rem / min(21rem, 34vw) auto no-repeat,
        url("/images/objects/feather-vertical.png") right 12vw bottom 11rem / min(15rem, 24vw) auto no-repeat,
        linear-gradient(115deg, transparent 0 46%, rgba(0, 118, 168, 0.1) 46% 46.16%, transparent 46.16% 100%);
    opacity: 0.58;
}

.thank-you-page::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 16rem),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.055), transparent 34rem);
}

.thank-you-hero,
.thank-you-flow,
.thank-you-contact {
    position: relative;
    z-index: 1;
}

.thank-you-hero {
    min-height: min(72svh, 48rem);
    display: grid;
    align-items: center;
    padding: clamp(5rem, 9vw, 7.5rem) 0 clamp(3.5rem, 7vw, 5.5rem);
    background:
        radial-gradient(circle at 74% 34%, rgba(0, 137, 123, 0.11), transparent 22rem),
        linear-gradient(180deg, rgba(8, 10, 13, 0.16), rgba(8, 10, 13, 0));
}

.thank-you-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.72fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
}

.thank-you-copy {
    max-width: 54rem;
}

.thank-you-copy h1 {
    max-width: 11ch;
    margin: 0;
    font-size: clamp(3.3rem, 7.5vw, 7rem);
    line-height: 0.98;
    letter-spacing: 0;
}

.thank-you-copy .lead {
    max-width: 42rem;
    margin: 1.35rem 0 0;
    color: rgba(243, 244, 246, 0.78);
    font-size: clamp(1.1rem, 1.7vw, 1.35rem);
    line-height: 1.72;
}

.thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 2rem;
}

.thank-you-confirmation {
    position: relative;
    display: grid;
    gap: clamp(1rem, 2vw, 1.3rem);
    min-width: 0;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(243, 244, 246, 0.14);
    border-top-color: rgba(201, 154, 51, 0.34);
    border-radius: 28px;
    background:
        url("/images/objects/feather-horizontal.png") right -4.5rem top 1.4rem / min(12rem, 30vw) auto no-repeat,
        radial-gradient(circle at 86% 8%, rgba(201, 154, 51, 0.12), transparent 13rem),
        radial-gradient(circle at 16% 90%, rgba(0, 137, 123, 0.12), transparent 16rem),
        linear-gradient(145deg, rgba(39, 44, 52, 0.94), rgba(12, 15, 20, 0.96));
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(16px);
}

.thank-you-confirmation::after {
    content: "";
    position: absolute;
    inset: auto clamp(1.35rem, 3vw, 2rem) 0;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, var(--peacock-sage), var(--peacock-blue), var(--peacock-orange));
}

.thank-you-mark {
    display: grid;
    place-items: center;
    width: clamp(5.8rem, 9vw, 7.5rem);
    aspect-ratio: 1;
    border-radius: 999px;
    border: 1px solid rgba(201, 154, 51, 0.34);
    background: rgba(246, 241, 231, 0.96);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
}

.thank-you-mark img {
    width: 82%;
    height: auto;
    display: block;
}

.thank-you-status {
    margin: 0 0 0.35rem;
    color: #c99a33;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.thank-you-service {
    margin: 0;
    color: rgba(247, 247, 244, 0.94);
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3.2vw, 2.75rem);
    line-height: 1.08;
}

.thank-you-checklist {
    display: grid;
    gap: 0.7rem;
    margin: 0;
    padding: 1rem 0 0;
    border-top: 1px solid rgba(243, 244, 246, 0.12);
    list-style: none;
}

.thank-you-checklist li {
    position: relative;
    min-width: 0;
    padding-left: 1.65rem;
    color: rgba(243, 244, 246, 0.72);
    font-size: 0.98rem;
    line-height: 1.55;
}

.thank-you-checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.45rem;
    width: 0.68rem;
    height: 0.68rem;
    border-radius: 999px;
    background:
        radial-gradient(circle at 55% 52%, #ffffff 0 25%, transparent 26%),
        var(--peacock-sage);
    box-shadow: 0 0 0 4px rgba(0, 137, 123, 0.1);
}

.thank-you-flow {
    padding: clamp(3rem, 6vw, 5rem) 0;
    background:
        url("/images/objects/feather-horizontal-mirrored.png") left 8vw top 2.5rem / min(17rem, 34vw) auto no-repeat,
        radial-gradient(circle at 15% 15%, rgba(0, 118, 168, 0.09), transparent 22rem),
        linear-gradient(180deg, rgba(17, 20, 26, 0.98), rgba(9, 11, 15, 0.98));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        inset 0 -1px 0 rgba(255, 255, 255, 0.06);
}

.thank-you-step-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.35rem);
}

.thank-you-step {
    min-width: 0;
    padding: clamp(1.1rem, 2vw, 1.45rem) 0;
    border-top: 1px solid rgba(243, 244, 246, 0.12);
}

.thank-you-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    border: 1px solid rgba(201, 154, 51, 0.28);
    background: rgba(201, 154, 51, 0.12);
    color: #f3d992;
    font-weight: 900;
    line-height: 1;
}

.thank-you-step h2 {
    max-width: 14rem;
    margin: 0 0 0.65rem;
    color: rgba(247, 247, 244, 0.92);
    background: none;
    -webkit-text-fill-color: currentColor;
    text-shadow: none;
    font-size: clamp(1.35rem, 2vw, 1.85rem);
    line-height: 1.12;
}

.thank-you-step p {
    max-width: 23rem;
    margin: 0;
    color: rgba(243, 244, 246, 0.68);
    line-height: 1.68;
}

.thank-you-contact {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background:
        radial-gradient(circle at 84% 18%, rgba(201, 154, 51, 0.09), transparent 24rem),
        linear-gradient(180deg, rgba(13, 15, 20, 0.98), rgba(8, 10, 13, 0.98));
}

.thank-you-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1fr);
    gap: clamp(1.4rem, 4vw, 3rem);
    align-items: center;
}

.thank-you-contact-copy h2 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(2.3rem, 5vw, 4.6rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.thank-you-contact-list {
    display: grid;
    gap: 0.85rem;
}

.thank-you-contact-list a {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(243, 244, 246, 0.12);
    border-radius: 16px;
    background:
        radial-gradient(circle at 92% 8%, rgba(201, 154, 51, 0.08), transparent 9rem),
        rgba(243, 244, 246, 0.055);
    color: rgba(247, 247, 244, 0.9);
    font-weight: 850;
    line-height: 1.35;
    overflow-wrap: anywhere;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.24);
}

.thank-you-contact-list a::after {
    content: "";
    flex: 0 0 auto;
    width: 0.58rem;
    height: 0.58rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    opacity: 0.42;
    transform: rotate(45deg);
}

.thank-you-contact-list a:hover,
.thank-you-contact-list a:focus-visible {
    border-color: rgba(201, 154, 51, 0.38);
    color: #fff7cf;
    transform: translateY(-1px);
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.3),
        0 0 0 4px rgba(201, 154, 51, 0.08);
}

@media (max-width: 900px) {
    .thank-you-hero {
        min-height: auto;
    }

    .thank-you-hero-grid,
    .thank-you-step-grid,
    .thank-you-contact-grid {
        grid-template-columns: 1fr;
    }

    .thank-you-copy h1,
    .thank-you-contact-copy h2 {
        max-width: 100%;
    }

    .thank-you-confirmation {
        max-width: 34rem;
    }

    .thank-you-step {
        padding-block: 1.2rem;
    }
}

@media (max-width: 620px) {
    .thank-you-hero {
        padding-top: 4.2rem;
    }

    .thank-you-copy h1 {
        font-size: clamp(2.75rem, 13vw, 4rem);
        line-height: 1.04;
    }

    .thank-you-actions .button,
    .thank-you-actions .button-secondary {
        width: 100%;
        white-space: normal;
    }

    .thank-you-confirmation {
        border-radius: 22px;
    }

    .thank-you-contact-list a {
        align-items: flex-start;
    }
}

/* Force dark visual system across all modes and pages */

:root,
:root[data-theme="dark"] {
    --canvas: #0f1012;
    --canvas-deep: #14161a;
    --surface: rgba(28, 31, 36, 0.84);
    --surface-strong: rgba(30, 34, 40, 0.94);
    --surface-deep: #f3f4f6;
    --surface-deep-2: #d7dbe2;
    --ink: #f3f4f6;
    --ink-soft: rgba(243, 244, 246, 0.82);
    --ink-muted: rgba(243, 244, 246, 0.62);
    --cream: #f3f4f6;
    --sage: #7f8a96;
    --sage-deep: #b7c0cc;
    --clay: #a3adb9;
    --line: rgba(243, 244, 246, 0.12);
    --line-strong: rgba(243, 244, 246, 0.24);
    --shadow: 0 24px 72px rgba(0, 0, 0, 0.4);
    --page-glow-clay: rgba(130, 136, 146, 0.14);
    --page-glow-sage: rgba(73, 79, 89, 0.22);
    --page-bg-start: #0c0d10;
    --page-bg-mid: #16191f;
    --page-bg-end: #20242c;
    --header-bg: rgba(11, 12, 16, 0.86);
    --header-bg-strong: rgba(14, 16, 21, 0.96);
    --header-border: rgba(243, 244, 246, 0.08);
    --panel-border: rgba(243, 244, 246, 0.1);
    --panel-border-soft: rgba(243, 244, 246, 0.14);
    --mobile-nav-bg: rgba(18, 21, 27, 0.98);
    --soft-section: rgba(22, 25, 31, 0.74);
    --button-secondary-bg: rgba(30, 34, 40, 0.82);
    --badge-bg: rgba(30, 34, 40, 0.88);
    --control-bg: rgba(29, 33, 39, 0.86);
    --control-bg-strong: rgba(35, 39, 46, 0.94);
    --control-border: rgba(243, 244, 246, 0.16);
    --control-border-strong: rgba(183, 192, 204, 0.42);
    --control-shadow: 0 20px 52px rgba(0, 0, 0, 0.36);
    --focus-ring: rgba(183, 192, 204, 0.24);
    --scroll-track: rgba(255, 255, 255, 0.06);
    --scroll-thumb: rgba(183, 192, 204, 0.46);
    --scroll-thumb-hover: rgba(183, 192, 204, 0.66);
    --callout-bg: rgba(90, 101, 116, 0.2);
    --callout-border: #b7c0cc;
    --selection-bg: rgba(183, 192, 204, 0.26);
    color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        color-scheme: dark;
    }
}

body {
    color: var(--ink);
    background:
        radial-gradient(circle at top left, var(--page-glow-clay), transparent 34%),
        radial-gradient(circle at top right, var(--page-glow-sage), transparent 26%),
        linear-gradient(180deg, var(--page-bg-start) 0%, var(--page-bg-mid) 45%, var(--page-bg-end) 100%);
}

main,
main[class*="theme-"] {
    --theme-bg-start: #0c0d10;
    --theme-bg-mid: #16191f;
    --theme-bg-end: #20242c;
    --theme-glow-one: rgba(130, 136, 146, 0.14);
    --theme-glow-two: rgba(73, 79, 89, 0.22);
    --theme-accent: #7f8a96;
    --theme-accent-strong: #b7c0cc;
    color: var(--ink);
}

.site-header,
.site-header.is-scrolled,
.site-header.is-scroll-up {
    background: var(--header-bg-strong);
    border-bottom-color: var(--header-border);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.35);
}

.brand-name,
.brand-tagline,
.site-nav a,
.page-hero .lead,
.page-hero p,
.page-hero .eyebrow,
.hero-fullbleed-copy .eyebrow,
.hero-fullbleed-copy .lead,
.hero-fullbleed-copy h1 {
    color: var(--ink);
}

.site-nav a::after {
    background: transparent;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a.is-active {
    color: var(--cream);
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a.is-active::after {
    background: linear-gradient(90deg, #9ca8b8, #6d7480, #bcc7d8);
}

.hero-overlay {
    background:
        linear-gradient(180deg, rgba(5, 6, 8, 0.08) 0%, rgba(8, 10, 14, 0.52) 62%, rgba(10, 12, 16, 0.9) 100%),
        linear-gradient(90deg, rgba(12, 14, 18, 0.35) 0%, transparent 65%);
}

.section,
.section-soft,
.section-deep {
    background-color: transparent;
}

.button,
.button-secondary,
.button-light,
.header-cta {
    color: #f3f4f6;
    border: 1px solid rgba(243, 244, 246, 0.16);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.36);
}

.button,
.header-cta {
    background: linear-gradient(135deg, #1b1f27, #2c333f);
}

.button-secondary,
.button-light {
    background: linear-gradient(135deg, rgba(38, 43, 52, 0.88), rgba(26, 30, 37, 0.86));
}

.button:not(.header-cta),
.button-secondary,
.button-light {
    min-height: 3.15rem;
    border-radius: 18px;
    border-color: rgba(243, 244, 246, 0.15);
    background:
        linear-gradient(135deg, rgba(42, 47, 56, 0.96), rgba(17, 20, 26, 0.94));
    color: #f7f8fa;
    box-shadow:
        0 16px 34px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        background 220ms ease,
        box-shadow 220ms ease,
        color 220ms ease;
}

.button:not(.header-cta):hover,
.button:not(.header-cta):focus-visible,
.button-secondary:hover,
.button-secondary:focus-visible,
.button-light:hover,
.button-light:focus-visible {
    transform: translateY(-2px) scale(1.018);
    border-color: rgba(214, 199, 145, 0.54);
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.12), transparent 62%),
        linear-gradient(135deg, rgba(52, 58, 68, 0.98), rgba(21, 24, 31, 0.96));
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.36),
        0 0 0 5px rgba(214, 199, 145, 0.07),
        0 0 26px rgba(0, 137, 123, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

input,
textarea,
select,
.card,
.panel,
.quote-card,
.detail-card,
.package-card,
.contact-panel,
.contact-form,
.faq-list article {
    background: color-mix(in srgb, var(--control-bg-strong) 86%, black);
    border-color: var(--control-border);
    color: var(--ink);
}

html,
body {
    background-color: #0c0d10;
}

h1,
h2,
h3,
.footer-brand h2,
.quote-feature blockquote {
    color: var(--ink);
    background: none;
    -webkit-text-fill-color: currentColor;
    text-shadow: 0 14px 32px rgba(0, 0, 0, 0.42);
}

p,
li,
.lead,
.visual-note,
.review-meta,
.resource-label,
.footer-list a,
.footer-list button {
    color: var(--ink-soft);
}

.eyebrow,
.text-link,
.brand-tagline {
    color: var(--sage-deep);
}

.page-hero,
.hero-fullbleed,
.theme-home,
.theme-wedding,
.theme-funeral,
.theme-services,
.theme-about,
.theme-contact,
.theme-privacy,
.theme-trust,
.theme-journal,
.theme-wedding .page-hero,
.theme-funeral .page-hero,
.theme-services .page-hero,
.theme-about .page-hero,
.theme-contact .page-hero,
.theme-privacy .page-hero,
.theme-trust .page-hero,
.theme-journal .page-hero {
    background:
        radial-gradient(circle at 12% 4%, rgba(170, 179, 192, 0.12), transparent 24rem),
        radial-gradient(circle at 88% 18%, rgba(67, 74, 86, 0.26), transparent 26rem),
        linear-gradient(180deg, #090a0d 0%, #13161c 52%, #20242c 100%);
}

.page-hero::before,
.theme-funeral .page-hero::before,
.theme-wedding .page-hero::before {
    opacity: 0.3;
    background:
        linear-gradient(115deg, transparent 0 47%, rgba(183, 192, 204, 0.12) 47% 47.2%, transparent 47.2% 100%),
        radial-gradient(circle at 82% 28%, rgba(183, 192, 204, 0.16), transparent 18rem);
}

.page-hero .lead,
.page-hero p,
.page-hero .eyebrow,
.theme-funeral .page-hero .story-copy p,
.theme-funeral .page-hero .story-copy .lead,
.theme-funeral .page-hero .eyebrow,
.theme-funeral .page-hero h1,
.theme-funeral .page-hero h2,
.theme-funeral .page-hero p {
    color: var(--ink-soft);
}

.hero-fullbleed-copy .lead {
    color: var(--ink-soft);
}

.page-hero .hero-overlay,
.hero-overlay {
    background:
        linear-gradient(90deg, rgba(8, 10, 14, 0.94) 0%, rgba(12, 15, 20, 0.72) 42%, rgba(12, 15, 20, 0.28) 100%),
        linear-gradient(180deg, rgba(8, 10, 14, 0.18), rgba(8, 10, 14, 0.9));
}

.hero-carousel .hero-overlay {
    background:
        linear-gradient(180deg, rgba(5, 6, 8, 0.04) 0%, rgba(8, 10, 14, 0.38) 58%, rgba(8, 10, 14, 0.86) 100%);
}

.page-hero .hero-media img {
    opacity: 0.72;
    filter: saturate(0.85) contrast(1.08) brightness(0.74);
}

.hero-carousel .hero-media img {
    opacity: 1;
    filter: saturate(0.92) contrast(1.08) brightness(0.82);
}

.section,
.section-soft,
.section-deep,
.section-atmosphere-sage,
.section-atmosphere-clay,
.section-atmosphere-mist,
.section-atmosphere-portrait,
.theme-wedding .section-soft,
.theme-funeral .section-soft,
.theme-wedding .contact-note-card,
.theme-wedding .cta-panel {
    background:
        radial-gradient(circle at 92% 10%, rgba(130, 136, 146, 0.08), transparent 24rem),
        radial-gradient(circle at 12% 92%, rgba(61, 67, 75, 0.12), transparent 26rem),
        linear-gradient(180deg,
            rgba(15, 17, 21, 0.98) 0%,
            rgba(19, 22, 27, 0.96) 24%,
            rgba(20, 23, 29, 0.96) 72%,
            rgba(14, 16, 20, 0.98) 100%);
    box-shadow:
        inset 0 1px 0 rgba(243, 244, 246, 0.035),
        inset 0 -1px 0 rgba(0, 0, 0, 0.22);
}

.section-reveal-zone::before,
.hero::before,
.page-hero::before {
    height: clamp(2.75rem, 6vw, 5rem);
    background: linear-gradient(180deg,
        rgba(7, 8, 10, 0.24) 0%,
        rgba(18, 21, 26, 0.12) 48%,
        transparent 100%);
    opacity: 0.38;
}

.section::after {
    height: clamp(3rem, 7vw, 5.5rem);
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(17, 20, 25, 0.1) 52%,
        rgba(7, 8, 10, 0.2) 100%);
    opacity: 0.32;
}

.theme-about,
.theme-about .about-hero {
    background:
        radial-gradient(circle at 82% 16%, rgba(72, 82, 86, 0.34), transparent 28rem),
        radial-gradient(circle at 18% 84%, rgba(4, 5, 7, 0.86), transparent 30rem),
        linear-gradient(132deg, #151719 0%, #202326 48%, #0d0e10 100%);
}

.theme-about .about-more-section {
    background:
        radial-gradient(circle at 16% 18%, rgba(70, 86, 87, 0.28), transparent 28rem),
        radial-gradient(circle at 92% 74%, rgba(3, 4, 6, 0.82), transparent 30rem),
        linear-gradient(156deg, #1f2225 0%, #151719 50%, #090a0c 100%);
}

.theme-about .about-hero .story-copy p:not(.eyebrow),
.theme-about .about-more-section .story-copy p:not(.eyebrow),
.theme-about .about-note-grid p {
    color: rgba(238, 240, 238, 0.76);
}

.theme-about .about-hero .story-copy .lead {
    color: rgba(247, 247, 244, 0.88);
}

.visual-stage,
.brand-stage,
.path-panel,
.detail-card,
.quote-card,
.package-card,
.contact-note-card,
.contact-panel,
.contact-form,
.cta-panel,
.review-card,
.review-gallery-card,
.gallery-card,
.policy-card,
.resource-card,
.blog-card,
.post-card,
.error-card,
.thank-you-card,
.field-popup-select,
.field-popup-phone,
.date-picker-shell,
.enquiry-modal-dialog,
.mobile-nav-panel {
    border-color: rgba(243, 244, 246, 0.12);
    border-top-color: rgba(183, 192, 204, 0.28);
    background:
        linear-gradient(145deg, rgba(38, 43, 52, 0.94), rgba(18, 21, 27, 0.92)),
        #14171d;
    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(243, 244, 246, 0.08);
    color: var(--ink);
}

.theme-about .about-image-carousel,
.theme-about .about-story-carousel {
    border-color: rgba(213, 201, 154, 0.2);
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.08), transparent 20rem),
        linear-gradient(155deg, rgba(44, 48, 52, 0.96), rgba(12, 13, 15, 0.98));
    box-shadow:
        0 34px 78px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.theme-about .about-story-carousel {
    background:
        linear-gradient(145deg, rgba(43, 46, 50, 0.92), rgba(10, 11, 13, 0.96));
}

.theme-about .about-image-carousel::before {
    content: none;
}

.theme-services,
.theme-services .services-hero {
    background:
        radial-gradient(circle at 84% 12%, rgba(69, 80, 86, 0.3), transparent 30rem),
        radial-gradient(circle at 14% 42%, rgba(9, 11, 13, 0.72), transparent 31rem),
        linear-gradient(145deg, #101214 0%, #1b1e21 48%, #090a0c 100%);
}

.theme-services .services-signature-section {
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.08), transparent 26rem),
        linear-gradient(180deg, #171a1d 0%, #101214 100%);
}

.theme-services .services-experience-section {
    background:
        radial-gradient(circle at 12% 18%, rgba(66, 86, 90, 0.24), transparent 26rem),
        radial-gradient(circle at 86% 82%, rgba(2, 3, 5, 0.82), transparent 31rem),
        linear-gradient(150deg, #202326 0%, #111315 52%, #090a0c 100%);
}

.theme-services .services-process-section {
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 199, 145, 0.08), transparent 24rem),
        linear-gradient(180deg, #121417 0%, #0a0b0d 100%);
}

.theme-services .services-final-section {
    background:
        radial-gradient(circle at 82% 20%, rgba(66, 86, 90, 0.24), transparent 25rem),
        linear-gradient(145deg, #1b1e21 0%, #090a0c 100%);
}

.review-carousel .review-card {
    border-color: rgba(243, 244, 246, 0.12);
    border-top-color: rgba(183, 192, 204, 0.26);
    background:
        radial-gradient(circle at 88% 8%, rgba(214, 199, 145, 0.09), transparent 13rem),
        linear-gradient(145deg, rgba(38, 43, 52, 0.94), rgba(15, 17, 22, 0.9));
    box-shadow:
        0 22px 54px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.theme-home .review-carousel-fade-left {
    background: linear-gradient(90deg,
        rgba(18, 21, 26, 0.98) 0%,
        rgba(18, 21, 26, 0.68) 48%,
        transparent 100%);
}

.theme-home .review-carousel-fade-right {
    background: linear-gradient(270deg,
        rgba(18, 21, 26, 0.98) 0%,
        rgba(18, 21, 26, 0.68) 48%,
        transparent 100%);
}

.review-carousel .review-card.is-active {
    border-color: rgba(214, 199, 145, 0.36);
    box-shadow:
        0 28px 72px rgba(0, 0, 0, 0.44),
        0 0 0 1px rgba(214, 199, 145, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.theme-wedding .package-card,
.theme-wedding .package-card.featured {
    border-color: rgba(243, 244, 246, 0.12);
    border-top-color: rgba(214, 199, 145, 0.28);
    background:
        radial-gradient(circle at 88% 10%, rgba(214, 199, 145, 0.08), transparent 13rem),
        linear-gradient(145deg, rgba(40, 44, 50, 0.96), rgba(18, 20, 25, 0.94));
    color: rgba(247, 247, 244, 0.92);
    box-shadow:
        0 28px 72px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.theme-wedding .package-card.featured {
    transform: translateY(-0.65rem);
    border-color: rgba(214, 199, 145, 0.38);
    background:
        radial-gradient(circle at 78% 8%, rgba(214, 199, 145, 0.16), transparent 14rem),
        radial-gradient(circle at 8% 92%, rgba(0, 137, 123, 0.08), transparent 12rem),
        linear-gradient(145deg, rgba(48, 52, 58, 0.98), rgba(18, 20, 25, 0.96));
    box-shadow:
        0 34px 84px rgba(0, 0, 0, 0.48),
        0 0 0 1px rgba(214, 199, 145, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.theme-wedding .package-card h3,
.theme-wedding .package-card.featured h3,
.theme-wedding .package-card .package-price,
.theme-wedding .package-card.featured .package-price {
    color: rgba(247, 247, 244, 0.94);
    text-shadow: 0 12px 26px rgba(0, 0, 0, 0.36);
}

.theme-wedding .package-card .package-tag,
.theme-wedding .package-card.featured .package-tag {
    color: rgba(183, 192, 204, 0.78);
}

.theme-wedding .package-card li,
.theme-wedding .package-card.featured li {
    color: rgba(238, 240, 238, 0.72);
}

.detail-card:hover,
.path-panel:hover,
.package-card:hover,
.review-gallery-card:hover,
.gallery-card:hover,
.resource-card:hover,
.blog-card:hover {
    border-color: rgba(183, 192, 204, 0.32);
    box-shadow:
        0 28px 78px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(243, 244, 246, 0.1);
}

.brand-stage::before,
.visual-stage::before {
    background:
        linear-gradient(180deg, rgba(243, 244, 246, 0.08), rgba(243, 244, 246, 0)),
        radial-gradient(circle at top right, rgba(183, 192, 204, 0.1), transparent 26%),
        radial-gradient(circle at bottom left, rgba(85, 94, 108, 0.14), transparent 28%);
}

.peacock-badge-logo,
.field-group input,
.field-group select,
.field-group textarea,
input,
textarea,
select {
    background: rgba(17, 20, 26, 0.92);
    border-color: rgba(243, 244, 246, 0.14);
    color: var(--ink);
}

.field-group input::-moz-placeholder, .field-group textarea::-moz-placeholder, input::-moz-placeholder, textarea::-moz-placeholder {
    color: var(--ink-muted);
}

.field-group input::placeholder,
.field-group textarea::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--ink-muted);
}

.field-option {
    color: var(--ink);
}

.field-option:hover,
.field-option:focus-visible,
.field-option.is-selected {
    background:
        linear-gradient(135deg, rgba(183, 192, 204, 0.16), transparent 42%),
        rgba(31, 36, 44, 0.96);
    color: var(--ink);
}

.button-secondary,
.button-light {
    color: var(--ink);
}

.header-cta,
.header-cta:hover,
.header-cta:focus-visible {
    color: #f7f8fa;
}

.header-cta .header-cta-label {
    color: #ffffff;
}

.header-cta .header-cta-sub {
    color: rgba(243, 244, 246, 0.76);
}

.button.header-cta,
.button.header-cta:hover,
.button.header-cta:focus-visible,
.header-cta.button-peacock,
.header-cta.button-peacock:hover,
.header-cta.button-peacock:focus-visible {
    min-height: 3.25rem;
    padding: 0.72rem 1.45rem;
    transform: none;
    color: #f7f8fa;
    border-color: rgba(183, 192, 204, 0.3);
    background:
        linear-gradient(145deg, rgba(34, 39, 48, 0.98), rgba(8, 10, 14, 0.98));
    box-shadow:
        0 18px 38px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.button.header-cta:hover,
.button.header-cta:focus-visible,
.header-cta.button-peacock:hover,
.header-cta.button-peacock:focus-visible {
    border-color: rgba(214, 199, 145, 0.46);
    background:
        linear-gradient(145deg, rgba(46, 53, 64, 0.98), rgba(12, 15, 19, 0.98));
    box-shadow:
        0 22px 48px rgba(0, 0, 0, 0.48),
        0 0 0 4px rgba(214, 199, 145, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.header-cta .header-cta-label {
    color: #ffffff;
}

.header-cta .header-cta-sub {
    color: rgba(243, 244, 246, 0.82);
    background:
        linear-gradient(145deg, rgba(34, 39, 48, 0.98), rgba(10, 12, 16, 0.98));
}

.hero-fullbleed .carousel-controls {
    border-color: rgba(243, 244, 246, 0.12);
    background:
        linear-gradient(145deg, rgba(29, 33, 40, 0.84), rgba(7, 8, 11, 0.76));
}

.carousel-arrow {
    color: #f7f8fa;
    border-color: rgba(214, 199, 145, 0.32);
    background:
        radial-gradient(circle at 50% 50%, rgba(214, 199, 145, 0.24), transparent 42%),
        linear-gradient(145deg, rgba(47, 52, 61, 0.88), rgba(10, 12, 16, 0.94));
}

.carousel-arrow:hover,
.carousel-arrow:focus-visible {
    color: #ffffff;
    border-color: rgba(214, 199, 145, 0.68);
}

.carousel-dot {
    background: rgba(243, 244, 246, 0.36);
}

.carousel-dot.is-active {
    background: linear-gradient(90deg, var(--peacock-gold), rgba(247, 248, 250, 0.86));
}

.site-footer {
    background:
        radial-gradient(circle at 14% 0%, rgba(130, 136, 146, 0.12), transparent 22rem),
        linear-gradient(180deg, #11141a 0%, #08090b 100%);
}

.footer-grid {
    border-top-color: rgba(243, 244, 246, 0.1);
}

.footer-heading {
    color: rgba(243, 244, 246, 0.82);
}

.footer-heading::after {
    background: linear-gradient(
        90deg,
        rgba(214, 199, 145, 0.88),
        rgba(0, 137, 123, 0.48),
        rgba(243, 244, 246, 0.1)
    );
}

.footer-accreditation img {
    filter:
        drop-shadow(0 20px 38px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 24px rgba(214, 199, 145, 0.1));
}

@media (max-width: 720px) {
    .hero-overlay,
    .page-hero .hero-overlay {
        background:
            linear-gradient(180deg, rgba(8, 10, 14, 0.92) 0%, rgba(8, 10, 14, 0.82) 58%, rgba(8, 10, 14, 0.96) 100%);
    }

    .hero-media img,
    .page-hero .hero-media img {
        opacity: 0.44;
    }
}

/* Modal enquiry experience */

.is-modal-open {
    overflow: hidden;
}

.enquiry-modal {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    inset: 0;
    z-index: 20000;
    display: grid;
    align-items: center;
    justify-items: center;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    padding: clamp(0.75rem, 2vw, 1.5rem);
    overflow: auto;
    overscroll-behavior: contain;
    isolation: isolate;
    box-sizing: border-box;
}

.enquiry-modal[hidden] {
    display: none;
}

.enquiry-modal-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        url("/images/objects/feather-horizontal.png") right 7vw top 7vh / min(19rem, 34vw) auto no-repeat,
        url("/images/objects/feather-horizontal-mirrored.png") left 6vw bottom 8vh / min(18rem, 38vw) auto no-repeat,
        radial-gradient(circle at 72% 8%, rgba(0, 118, 168, 0.24), transparent 24rem),
        radial-gradient(circle at 18% 82%, rgba(201, 154, 51, 0.18), transparent 23rem),
        radial-gradient(circle at 44% 48%, rgba(39, 149, 111, 0.12), transparent 34rem),
        rgba(5, 6, 8, 0.78);
    backdrop-filter: blur(12px) saturate(1.08);
}

.enquiry-modal-dialog {
    --modal-peacock-blue: #0076a8;
    --modal-peacock-deep: #075a76;
    --modal-peacock-sage: #27956f;
    --modal-peacock-gold: #c99a33;
    --modal-peacock-orange: #d77923;
    --modal-scroll-progress: 0;
    position: relative;
    z-index: 1;
    inline-size: min(940px, calc(100vw - 2rem));
    max-block-size: min(88vh, calc(100dvh - 2rem));
    margin: auto;
    overflow: auto;
    scroll-behavior: smooth;
    border-radius: 28px;
    border: 1px solid rgba(201, 154, 51, 0.34);
    background:
        radial-gradient(circle at 84% 12%, rgba(0, 118, 168, 0.24), transparent 20rem),
        radial-gradient(circle at 7% 100%, rgba(39, 149, 111, 0.16), transparent 20rem),
        linear-gradient(150deg, rgba(28, 33, 40, 0.985), rgba(11, 15, 20, 0.99) 52%, rgba(6, 8, 11, 0.995));
    padding: 0;
    box-shadow:
        0 34px 95px rgba(0, 0, 0, 0.58),
        0 0 0 1px rgba(201, 154, 51, 0.08),
        0 0 54px rgba(0, 118, 168, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    color: var(--ink);
    transform: translateY(20px) scale(0.98);
    opacity: 0;
    transition:
        opacity 260ms ease,
        transform 260ms ease,
        border-color 260ms ease,
        box-shadow 260ms ease,
        background 320ms ease;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(201, 154, 51, 0.86) rgba(7, 11, 15, 0.86);
    color-scheme: dark;
}

.enquiry-modal-dialog.is-scrolled {
    border-color: rgba(39, 149, 111, 0.48);
    box-shadow:
        0 36px 100px rgba(0, 0, 0, 0.62),
        0 0 0 1px rgba(0, 118, 168, 0.12),
        0 0 66px rgba(39, 149, 111, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.enquiry-modal-dialog::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    padding: 1px;
    background:
        linear-gradient(145deg,
            rgba(201, 154, 51, 0.88),
            rgba(39, 149, 111, 0.5) 28%,
            rgba(0, 118, 168, 0.52) 62%,
            rgba(201, 154, 51, 0.42));
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.enquiry-modal-dialog::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    border-radius: inherit;
    background:
        radial-gradient(circle at 88% 10%, rgba(201, 154, 51, 0.16), transparent 18rem),
        radial-gradient(circle at 14% 90%, rgba(0, 118, 168, 0.14), transparent 18rem);
    opacity: 0.9;
    pointer-events: none;
}

.enquiry-modal-dialog::-webkit-scrollbar {
    width: 0.82rem;
    height: 0.82rem;
}

.enquiry-modal-dialog::-webkit-scrollbar-button {
    width: 0;
    height: 0;
    display: none;
}

.enquiry-modal-dialog::-webkit-scrollbar-track {
    margin-block: 1.15rem;
    border-radius: 999px;
    border: 3px solid transparent;
    background:
        linear-gradient(180deg, rgba(9, 13, 18, 0.98), rgba(4, 7, 10, 0.98)) padding-box,
        linear-gradient(180deg, rgba(0, 118, 168, 0.28), rgba(201, 154, 51, 0.28), rgba(39, 149, 111, 0.26)) border-box;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.04),
        inset 0 0 14px rgba(0, 118, 168, 0.12);
}

.enquiry-modal-dialog::-webkit-scrollbar-thumb {
    min-height: 4rem;
    border: 3px solid rgba(7, 11, 15, 0.96);
    border-radius: 999px;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 246, 185, 0.95), transparent 1.25rem),
        linear-gradient(180deg,
            rgba(201, 154, 51, 0.96) 0%,
            rgba(0, 118, 168, 0.9) 42%,
            rgba(39, 149, 111, 0.88) 100%)
        padding-box;
    box-shadow:
        0 0 0 1px rgba(201, 154, 51, 0.24),
        0 0 16px rgba(0, 118, 168, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.enquiry-modal-dialog::-webkit-scrollbar-thumb:hover {
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 248, 203, 1), transparent 1.35rem),
        linear-gradient(180deg,
            rgba(215, 121, 35, 0.96) 0%,
            rgba(0, 143, 172, 0.94) 44%,
            rgba(60, 171, 126, 0.92) 100%)
        padding-box;
}

.enquiry-modal-dialog::-webkit-scrollbar-corner {
    background: transparent;
}

.enquiry-modal.is-open .enquiry-modal-dialog {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.enquiry-modal-scroll-meter {
    position: sticky;
    top: 0;
    z-index: 8;
    display: block;
    height: 3px;
    margin: 0 clamp(1.25rem, 2.6vw, 2.15rem);
    border-radius: 999px;
    background:
        linear-gradient(90deg,
            var(--modal-peacock-sage),
            var(--modal-peacock-blue),
            var(--modal-peacock-gold),
            var(--modal-peacock-orange));
    opacity: 0;
    transform: scaleX(var(--modal-scroll-progress));
    transform-origin: left center;
    transition: opacity 220ms ease, transform 120ms linear;
    box-shadow: 0 0 22px rgba(0, 118, 168, 0.32);
    pointer-events: none;
}

.enquiry-modal-dialog.is-scrolled .enquiry-modal-scroll-meter {
    opacity: 0.92;
}

.enquiry-modal-header {
    position: relative;
    min-height: clamp(15rem, 28vw, 19rem);
    margin-block-end: 0;
    padding: clamp(1.6rem, 3.3vw, 3rem) clamp(1.35rem, 3vw, 2.75rem) clamp(1.35rem, 2.8vw, 2.3rem);
    overflow: hidden;
    border-radius: 28px 28px 0 0;
    background:
        linear-gradient(90deg, rgba(7, 10, 14, 0.94) 0%, rgba(9, 18, 25, 0.9) 55%, rgba(7, 10, 14, 0.72) 100%),
        url("/images/objects/feather-vertical.png") right clamp(-3.2rem, -4vw, -1rem) center / min(18rem, 32vw) auto no-repeat,
        radial-gradient(circle at 86% 48%, rgba(0, 118, 168, 0.2), transparent 17rem),
        radial-gradient(circle at 12% 98%, rgba(201, 154, 51, 0.16), transparent 16rem);
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    transition: opacity 240ms ease, transform 240ms ease;
}

.enquiry-modal-header > * {
    position: relative;
    z-index: 1;
    max-width: 44rem;
}

.enquiry-modal-dialog.is-scrolled .enquiry-modal-header {
    opacity: 0.92;
}

.enquiry-modal-header::after {
    content: "";
    position: absolute;
    left: clamp(1.35rem, 3vw, 2.75rem);
    right: clamp(1.35rem, 3vw, 2.75rem);
    bottom: 0;
    height: 1px;
    background:
        linear-gradient(90deg,
            rgba(201, 154, 51, 0.8),
            rgba(39, 149, 111, 0.58),
            rgba(0, 118, 168, 0.58),
            transparent);
    opacity: 0.9;
}

.enquiry-modal-header .eyebrow {
    color: var(--modal-peacock-gold);
}

.enquiry-modal-header h2 {
    max-width: 38rem;
    margin-block-end: 0.6rem;
    font-size: clamp(3rem, 7vw, 5.8rem);
    line-height: 1.08;
    color: #fff7cf;
    background:
        linear-gradient(180deg, #fff7cf 0%, #d5aa42 34%, #60c5b0 72%, #78c7ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: 0 12px 34px rgba(0, 0, 0, 0.38);
}

.enquiry-modal-header p:last-child {
    max-width: 45rem;
    color: rgba(243, 244, 246, 0.8);
}

.enquiry-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 12;
    display: inline-grid;
    place-items: center;
    inline-size: 2.35rem;
    block-size: 2.35rem;
    border-radius: 999px;
    border: 1px solid rgba(201, 154, 51, 0.48);
    background:
        radial-gradient(circle at 62% 36%, rgba(39, 149, 111, 0.22), transparent 60%),
        rgba(17, 20, 26, 0.78);
    color: #ffffff;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition:
        transform 190ms ease,
        border-color 190ms ease,
        background 190ms ease,
        box-shadow 190ms ease;
}

.enquiry-modal-close:hover,
.enquiry-modal-close:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(0, 118, 168, 0.72);
    background: rgba(28, 39, 46, 0.92);
    box-shadow:
        0 0 0 5px rgba(0, 118, 168, 0.12),
        0 0 22px rgba(201, 154, 51, 0.12);
}

.enquiry-modal-form {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin: clamp(1rem, 2.4vw, 1.8rem);
    margin-block-start: clamp(1rem, 2vw, 1.45rem);
    padding: clamp(1.1rem, 2.4vw, 2rem);
    border-radius: 24px;
    border: 1px solid rgba(244, 239, 232, 0.11);
    background:
        radial-gradient(circle at 92% 8%, rgba(0, 118, 168, 0.12), transparent 18rem),
        radial-gradient(circle at 3% 96%, rgba(201, 154, 51, 0.09), transparent 17rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.022)),
        rgba(10, 14, 19, 0.78);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 22px 56px rgba(0, 0, 0, 0.26);
    transition:
        border-color 260ms ease,
        background 320ms ease,
        box-shadow 320ms ease,
        transform 260ms ease;
}

.enquiry-modal-form::before,
.enquiry-modal-form::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    transition: opacity 360ms ease, transform 480ms ease;
}

.enquiry-modal-form::before {
    background:
        url("/images/objects/feather-horizontal-mirrored.png") left -6rem bottom -3.2rem / min(15rem, 28vw) auto no-repeat,
        radial-gradient(circle at 6% 92%, rgba(201, 154, 51, 0.1), transparent 14rem);
    opacity: 0.34;
}

.enquiry-modal-form::after {
    background:
        linear-gradient(180deg, rgba(0, 118, 168, 0.12), transparent 18rem),
        linear-gradient(135deg, rgba(201, 154, 51, 0.1), transparent 42%, rgba(39, 149, 111, 0.12));
    opacity: 0;
}

.enquiry-modal-dialog.is-scrolled .enquiry-modal-form {
    border-color: rgba(39, 149, 111, 0.26);
    background:
        radial-gradient(circle at 86% 10%, rgba(0, 118, 168, 0.13), transparent 16rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.022)),
        rgba(11, 14, 19, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.075),
        0 24px 64px rgba(0, 0, 0, 0.31),
        0 0 34px rgba(0, 118, 168, 0.09);
}

.enquiry-modal-dialog.is-scrolled .enquiry-modal-form::before {
    opacity: 0.44;
    transform: translateY(calc(var(--modal-scroll-progress) * -14px));
}

.enquiry-modal-dialog.is-scrolled .enquiry-modal-form::after {
    opacity: 1;
}

.enquiry-modal-form .field-group {
    margin-bottom: 1.05rem;
}

.enquiry-modal-form .field-group label,
.enquiry-modal-form .field-label,
.enquiry-modal-form .field-option-placeholder,
.enquiry-modal-form .date-picker-weekdays,
.enquiry-modal-form .file-dropzone-copy,
.enquiry-modal-form .field-control-button.is-placeholder .field-control-text {
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.enquiry-modal-form .field-group label {
    color: rgba(243, 244, 246, 0.86);
}

.enquiry-modal-form .field-control,
.enquiry-modal-form .field-control-button,
.enquiry-modal-form .checkbox-label,
.enquiry-modal-form .file-dropzone {
    border: 1px solid rgba(0, 118, 168, 0.24);
    border-radius: 19px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0)),
        rgba(10, 13, 18, 0.9);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.055),
        0 16px 34px rgba(0, 0, 0, 0.2);
    transition:
        border-color 190ms ease,
        background 220ms ease,
        box-shadow 220ms ease,
        transform 190ms ease;
}

.enquiry-modal-form .field-control:hover,
.enquiry-modal-form .field-control-button:hover,
.enquiry-modal-form .file-dropzone:hover {
    transform: translateY(-1px);
    border-color: rgba(39, 149, 111, 0.5);
    box-shadow:
        0 0 0 4px rgba(39, 149, 111, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.075),
        0 18px 38px rgba(0, 0, 0, 0.26);
}

.enquiry-modal-form .field-control:focus-within,
.enquiry-modal-form .field-control-button:focus-visible,
.enquiry-modal-form .form-choice.is-open .field-control-button,
.enquiry-modal-form .phone-field.is-open .field-control-phone {
    transform: translateY(-1px);
    border-color: rgba(201, 154, 51, 0.68);
    box-shadow:
        0 0 0 4px rgba(201, 154, 51, 0.11),
        0 0 26px rgba(0, 118, 168, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.09);
}

.enquiry-modal-form .field-control input::-moz-placeholder, .enquiry-modal-form .field-control textarea::-moz-placeholder {
    color: rgba(243, 244, 246, 0.46);
    -moz-user-select: none;
         user-select: none;
}

.enquiry-modal-form .field-control input::placeholder,
.enquiry-modal-form .field-control textarea::placeholder {
    color: rgba(243, 244, 246, 0.46);
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.enquiry-modal-form .field-control input,
.enquiry-modal-form .field-control textarea,
.enquiry-modal-form .phone-number-input {
    -webkit-user-select: text;
       -moz-user-select: text;
            user-select: text;
}

.enquiry-modal-form .checkbox-label {
    align-items: center;
    border-color: rgba(0, 118, 168, 0.28);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02)),
        rgba(23, 26, 32, 0.92);
}

.enquiry-modal-form .checkbox-label:hover {
    border-color: rgba(201, 154, 51, 0.54);
    box-shadow:
        0 0 0 5px rgba(201, 154, 51, 0.08),
        0 18px 38px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.enquiry-modal-form .checkbox-box {
    flex: 0 0 auto;
    border-color: rgba(201, 154, 51, 0.78);
    background:
        linear-gradient(180deg, rgba(243, 244, 246, 0.12), rgba(243, 244, 246, 0.02)),
        rgba(5, 6, 8, 0.86);
}

.enquiry-modal-form .checkbox-input:checked ~ .checkbox-label {
    border-color: rgba(39, 149, 111, 0.58);
    background:
        linear-gradient(135deg, rgba(201, 154, 51, 0.14), rgba(0, 118, 168, 0.08) 44%),
        rgba(24, 28, 35, 0.94);
}

.enquiry-modal-form .field-control-textarea,
.enquiry-modal-form .field-control textarea {
    min-height: clamp(10rem, 22vh, 13rem);
}

.enquiry-modal-form .field-popup {
    z-index: 60;
    max-width: 100%;
}

.enquiry-modal-form .field-popup-select,
.enquiry-modal-form .field-popup-phone,
.enquiry-modal-form .date-picker-shell {
    border-color: rgba(0, 118, 168, 0.34);
    border-top-color: rgba(201, 154, 51, 0.46);
    background:
        radial-gradient(circle at 96% 0%, rgba(201, 154, 51, 0.14), transparent 10rem),
        radial-gradient(circle at 4% 100%, rgba(39, 149, 111, 0.12), transparent 11rem),
        linear-gradient(155deg, rgba(34, 38, 46, 0.98), rgba(13, 15, 20, 0.98));
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.enquiry-modal-form .field-option {
    color: var(--ink);
}

.enquiry-modal-form .field-option-list {
    max-height: min(17rem, calc(var(--field-popup-max-height, 22rem) - 1rem));
}

.enquiry-modal-form .field-option:hover,
.enquiry-modal-form .field-option:focus-visible {
    background:
        linear-gradient(90deg, rgba(0, 118, 168, 0.18), rgba(39, 149, 111, 0.1));
}

.enquiry-modal-form .field-option.is-selected,
.enquiry-modal-form .calendar-day.is-selected {
    background:
        linear-gradient(135deg, rgba(201, 154, 51, 0.28), rgba(0, 118, 168, 0.16), rgba(39, 149, 111, 0.14)),
        rgba(43, 48, 58, 0.96);
    color: #ffffff;
}

.enquiry-modal-form .date-picker-nav,
.enquiry-modal-form .date-picker-action {
    border-color: rgba(0, 118, 168, 0.28);
    background:
        linear-gradient(135deg, rgba(31, 48, 58, 0.9), rgba(14, 18, 24, 0.9));
    color: var(--ink);
}

.enquiry-modal-form .file-dropzone {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 5.4rem;
    border-style: solid;
    cursor: pointer;
}

.enquiry-modal-form .file-dropzone-title {
    color: var(--ink);
}

.enquiry-modal-form .file-dropzone-note {
    color: var(--ink-muted);
}

.enquiry-modal-form .file-dropzone-action {
    min-height: 2.75rem;
    padding-inline: 1.05rem;
    border: 1px solid rgba(201, 154, 51, 0.38);
    background:
        linear-gradient(135deg, rgba(7, 90, 118, 0.98), rgba(18, 21, 27, 0.94));
    color: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.enquiry-modal-form .file-list li {
    border-color: rgba(0, 118, 168, 0.24);
    background: rgba(16, 18, 23, 0.9);
}

.enquiry-modal-form > .button {
    margin-top: 0.15rem;
    border-color: rgba(201, 154, 51, 0.58);
    background:
        radial-gradient(circle at 14% 16%, rgba(201, 154, 51, 0.28), transparent 42%),
        linear-gradient(135deg, rgba(7, 90, 118, 0.98), rgba(10, 14, 18, 0.98) 52%, rgba(39, 149, 111, 0.88));
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.36),
        0 0 0 1px rgba(201, 154, 51, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.enquiry-modal-form > .button:hover,
.enquiry-modal-form > .button:focus-visible {
    border-color: rgba(215, 121, 35, 0.76);
    background:
        radial-gradient(circle at 14% 16%, rgba(201, 154, 51, 0.34), transparent 42%),
        linear-gradient(135deg, rgba(0, 118, 168, 0.98), rgba(12, 16, 20, 0.98) 50%, rgba(39, 149, 111, 0.96));
    box-shadow:
        0 22px 52px rgba(0, 0, 0, 0.42),
        0 0 0 5px rgba(201, 154, 51, 0.09),
        0 0 28px rgba(0, 118, 168, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

@media (max-width: 720px) {
    .enquiry-modal {
        padding: max(0.75rem, env(safe-area-inset-top)) 0.65rem max(0.75rem, env(safe-area-inset-bottom));
    }

    .enquiry-modal-dialog {
        inline-size: min(100%, calc(100vw - 1.3rem));
        max-block-size: calc(100dvh - 1.5rem);
        border-radius: 20px;
        scrollbar-width: thin;
    }

    .enquiry-modal-dialog::-webkit-scrollbar {
        width: 0.62rem;
    }

    .enquiry-modal-dialog::-webkit-scrollbar-track,
    .enquiry-modal-dialog::-webkit-scrollbar-thumb {
        border-width: 2px;
    }

    .enquiry-modal-scroll-meter {
        margin-inline: 1rem;
    }

    .enquiry-modal-form::before {
        background:
            url("/images/objects/feather-horizontal-mirrored.png") left -5.8rem bottom -2.75rem / 12rem auto no-repeat,
            radial-gradient(circle at 4% 92%, rgba(201, 154, 51, 0.12), transparent 12rem);
    }

    .enquiry-modal-header h2 {
        font-size: clamp(2.7rem, 13vw, 4.4rem);
        padding-right: 2.4rem;
    }

    .enquiry-modal-form .file-dropzone {
        grid-template-columns: 1fr;
    }

    .enquiry-modal-form .file-dropzone-action {
        justify-self: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .enquiry-modal-dialog,
    .enquiry-modal-scroll-meter,
    .enquiry-modal-header,
    .enquiry-modal-form,
    .enquiry-modal-form::before,
    .enquiry-modal-form::after,
    .enquiry-modal-form .field-control,
    .enquiry-modal-form .field-control-button,
    .enquiry-modal-form .checkbox-label,
    .enquiry-modal-form .file-dropzone {
        transition: none;
    }
}

/* Review submission form */

.reviews-submit-section {
    position: relative;
    overflow: hidden;
    padding-block: clamp(4rem, 8vw, 7rem);
    background:
        radial-gradient(circle at 14% 24%, rgba(0, 137, 123, 0.14), transparent 28rem),
        radial-gradient(circle at 88% 18%, rgba(214, 199, 145, 0.12), transparent 26rem),
        linear-gradient(140deg, #0b0e13 0%, #111720 48%, #090b0f 100%);
}

.reviews-submit-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        url("/images/objects/feather-horizontal.png") right 6vw top 8rem / min(18rem, 30vw) auto no-repeat,
        url("/images/objects/feather-horizontal-mirrored.png") left 7vw bottom 5rem / min(17rem, 34vw) auto no-repeat,
        radial-gradient(circle at 78% 14%, rgba(0, 118, 168, 0.15), transparent 24rem),
        radial-gradient(circle at 18% 88%, rgba(201, 154, 51, 0.12), transparent 22rem);
    opacity: 0.56;
    mix-blend-mode: screen;
}

.reviews-submit-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(18rem, 0.5fr) minmax(0, 0.82fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5.5rem);
}

.reviews-submit-copy {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
    display: grid;
    gap: 1.25rem;
    max-width: 36rem;
    padding-top: 0.6rem;
}

.reviews-submit-copy .eyebrow {
    color: var(--peacock-gold);
}

.reviews-submit-copy h2 {
    max-width: 10ch;
    color: #fff7cf;
    font-size: clamp(3rem, 5.8vw, 5.65rem);
    line-height: 0.96;
    background:
        linear-gradient(180deg, #fff7cf 0%, #d5aa42 34%, #60c5b0 72%, #78c7ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

.reviews-submit-copy > p:not(.eyebrow) {
    max-width: 31rem;
    color: rgba(243, 244, 246, 0.72);
    font-size: clamp(1rem, 1.2vw, 1.12rem);
    line-height: 1.8;
}

.reviews-submit-points {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.35rem;
}

.reviews-submit-points span {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.72rem;
    color: rgba(243, 244, 246, 0.82);
    font-weight: 800;
}

.reviews-submit-points span::before {
    content: "";
    flex: 0 0 auto;
    width: 1.15rem;
    aspect-ratio: 1;
    border-radius: 999px;
    background:
        radial-gradient(circle at 50% 50%, var(--peacock-blue) 0 22%, transparent 23%),
        radial-gradient(circle at 50% 50%, var(--peacock-sage) 0 58%, transparent 59%),
        radial-gradient(circle, rgba(214, 199, 145, 0.88), rgba(214, 199, 145, 0.12));
    box-shadow: 0 0 18px rgba(0, 137, 123, 0.2);
}

.reviews-submit-panel {
    position: relative;
    min-width: 0;
    padding: clamp(0.7rem, 1.4vw, 1rem);
    border: 1px solid transparent;
    border-radius: clamp(22px, 2vw, 32px);
    background:
        linear-gradient(90deg, rgba(0, 137, 123, 0.72), rgba(214, 199, 145, 0.76), rgba(215, 121, 35, 0.46)) border-box,
        linear-gradient(155deg, rgba(18, 24, 31, 0.94), rgba(7, 10, 14, 0.96)) padding-box;
    box-shadow:
        0 34px 100px rgba(0, 0, 0, 0.46),
        0 0 70px rgba(0, 137, 123, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.reviews-submit-panel::before {
    content: "";
    position: absolute;
    inset: auto -2.5rem -2rem auto;
    width: min(18rem, 30vw);
    aspect-ratio: 0.55;
    background: url("/images/objects/feather-vertical.png") center / contain no-repeat;
    opacity: 0.34;
    filter: drop-shadow(0 18px 40px rgba(0, 0, 0, 0.38));
    pointer-events: none;
}

.review-submission-form.enquiry-modal-form {
    position: relative;
    display: grid;
    gap: clamp(0.9rem, 1.5vw, 1.15rem);
    max-width: none;
    overflow: visible;
    padding: clamp(1rem, 2.4vw, 1.75rem);
    border: 1px solid rgba(243, 244, 246, 0.1);
    border-radius: clamp(18px, 1.7vw, 26px);
    background:
        url("/images/objects/feather-horizontal.png") right -4.5rem top 1.3rem / min(13rem, 22vw) auto no-repeat,
        radial-gradient(circle at 94% 3%, rgba(39, 149, 111, 0.14), transparent 15rem),
        radial-gradient(circle at 0% 100%, rgba(214, 199, 145, 0.08), transparent 17rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.018)),
        rgba(11, 14, 19, 0.78);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.review-submission-form.enquiry-modal-form::before,
.review-submission-form.enquiry-modal-form::after {
    content: none;
}

.review-form-intro {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.2rem;
    padding-bottom: 1.15rem;
    border-bottom: 1px solid rgba(214, 199, 145, 0.22);
}

.review-form-logo {
    --logo-clc-size: 80;
    --logo-wreath-scale: 1.22;
    width: clamp(3.9rem, 6vw, 5.25rem);
    overflow: visible;
}

.review-submission-form:hover .review-form-logo .logo-wreath,
.review-submission-form:focus-within .review-form-logo .logo-wreath {
    transform: rotate(360deg) scale(calc(var(--logo-wreath-scale) * 1.045));
}

.review-form-intro .eyebrow {
    margin-bottom: 0.35rem;
    color: var(--peacock-gold);
}

.review-form-intro h3 {
    max-width: 42rem;
    color: #fff8d8;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 700;
    line-height: 1.08;
}

.review-submission-form .field-row {
    gap: clamp(0.85rem, 1.5vw, 1.1rem);
    align-items: start;
    overflow: visible;
}

.review-submission-form .field-group {
    gap: 0.55rem;
    margin-bottom: 0;
    min-width: 0;
}

.review-submission-form .field-group label {
    color: rgba(243, 244, 246, 0.86);
    font-size: 0.95rem;
}

.review-submission-form .form-choice.is-open,
.review-submission-form .phone-field.is-open {
    z-index: 40;
}

.review-submission-form.enquiry-modal-form .field-control,
.review-submission-form.enquiry-modal-form .field-control-button,
.review-submission-form.enquiry-modal-form .checkbox-label,
.review-submission-form.enquiry-modal-form .file-dropzone {
    border-color: rgba(0, 137, 123, 0.32);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015)),
        rgba(8, 11, 16, 0.84);
    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.review-submission-form.enquiry-modal-form .field-control:hover,
.review-submission-form.enquiry-modal-form .field-control:focus-within,
.review-submission-form.enquiry-modal-form .field-control-button:hover,
.review-submission-form.enquiry-modal-form .field-control-button:focus-visible {
    border-color: rgba(214, 199, 145, 0.5);
    box-shadow:
        0 0 0 4px rgba(0, 137, 123, 0.12),
        0 18px 42px rgba(0, 0, 0, 0.3);
}

.review-submission-form.enquiry-modal-form .field-popup-select,
.review-submission-form.enquiry-modal-form .date-picker-shell {
    border-top-color: rgba(201, 154, 51, 0.46);
    background:
        radial-gradient(circle at 94% 0%, rgba(0, 137, 123, 0.12), transparent 12rem),
        linear-gradient(180deg, rgba(27, 32, 40, 0.98), rgba(10, 13, 18, 0.98));
}

.review-submission-form .field-popup {
    position: absolute;
    top: calc(100% + 0.65rem);
    right: 0;
    bottom: auto;
    left: auto;
    width: 100%;
    max-height: var(--field-popup-max-height, min(22rem, calc(100vh - 8rem)));
    margin-top: 0;
    overflow: visible;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-0.45rem) scale(0.98);
    transform-origin: top center;
}

.review-submission-form .field-popup.is-above {
    top: auto;
    bottom: calc(100% + 0.65rem);
    transform: translateY(0.45rem) scale(0.98);
    transform-origin: bottom center;
}

.review-submission-form .form-choice.is-open .field-popup,
.review-submission-form .phone-field.is-open .field-popup {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.review-submission-form .field-option-list {
    max-height: min(17rem, calc(var(--field-popup-max-height, 22rem) - 1rem));
}

.review-submission-form .rating-option {
    justify-content: space-between;
    gap: 0.9rem;
    color: var(--peacock-gold);
    font-weight: 900;
}

.review-submission-form .rating-option span {
    color: rgba(243, 244, 246, 0.76);
    font-size: 0.88rem;
    font-weight: 800;
}

.review-submission-form .field-popup-date {
    width: min(100%, 22rem);
}

.review-submission-form .date-picker-shell {
    max-height: none;
}

.review-submission-form .file-dropzone {
    min-height: 4.2rem;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    align-items: start;
    padding: 0.95rem;
    border-radius: 18px;
}

.review-submission-form .file-dropzone-action {
    justify-self: start;
    min-height: 2.25rem;
    padding: 0 0.82rem;
    border-color: rgba(214, 199, 145, 0.48);
    background: rgba(214, 199, 145, 0.1);
    color: #fff8d8;
    font-size: 0.86rem;
}

.review-submission-form .file-dropzone-copy {
    gap: 0.2rem;
}

.review-submission-form .file-dropzone-title {
    max-width: 100%;
    color: rgba(243, 244, 246, 0.88);
    font-size: 0.96rem;
    line-height: 1.25;
}

.review-submission-form .file-dropzone-note {
    max-width: 16rem;
    color: rgba(243, 244, 246, 0.58);
    font-size: 0.78rem;
    line-height: 1.35;
}

.review-submission-form .checkbox-row {
    margin-top: 0.25rem;
}

.review-submission-form .checkbox-label {
    padding: 0.95rem 1rem;
    color: rgba(243, 244, 246, 0.84);
}

.review-submission-form.enquiry-modal-form > .button,
.review-form-actions > .button {
    width: 100%;
    margin-top: 0;
    border-color: rgba(201, 154, 51, 0.58);
    background:
        radial-gradient(circle at 14% 16%, rgba(201, 154, 51, 0.28), transparent 42%),
        linear-gradient(135deg, rgba(7, 90, 118, 0.98), rgba(10, 14, 18, 0.98) 52%, rgba(39, 149, 111, 0.88));
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.36),
        0 0 0 1px rgba(201, 154, 51, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.review-form-actions {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.2rem;
}

.review-form-actions p {
    margin: 0;
    color: rgba(243, 244, 246, 0.62);
    font-size: 0.88rem;
    text-align: center;
}

@media (max-width: 1040px) {
    .reviews-submit-grid {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .reviews-submit-copy {
        position: relative;
        top: auto;
        max-width: 44rem;
    }

    .reviews-submit-panel {
        width: min(100%, 52rem);
        justify-self: center;
    }
}

@media (max-width: 720px) {
    .reviews-submit-section {
        padding-block: 3.2rem 4rem;
    }

    .reviews-submit-section::before {
        background:
            url("/images/objects/feather-horizontal.png") right -4rem top 2rem / 13rem auto no-repeat,
            radial-gradient(circle at 80% 12%, rgba(0, 118, 168, 0.14), transparent 15rem);
        opacity: 0.42;
    }

    .reviews-submit-grid {
        gap: 1.7rem;
    }

    .reviews-submit-copy h2 {
        max-width: 100%;
        font-size: clamp(2.45rem, 13vw, 3.6rem);
        line-height: 1.02;
    }

    .reviews-submit-points {
        gap: 0.62rem;
    }

    .reviews-submit-panel {
        padding: 0.75rem;
        border-radius: 22px;
    }

    .reviews-submit-panel::before {
        content: none;
    }

    .review-submission-form.enquiry-modal-form {
        gap: 0.9rem;
        padding: 0.9rem;
        border-radius: 18px;
        background:
            radial-gradient(circle at 100% 0%, rgba(39, 149, 111, 0.1), transparent 12rem),
            rgba(11, 14, 19, 0.86);
    }

    .review-form-intro {
        grid-template-columns: 1fr;
        gap: 0.7rem;
        padding-bottom: 0.95rem;
    }

    .review-form-logo {
        width: 4.2rem;
    }

    .review-form-intro h3 {
        font-size: clamp(1.35rem, 7vw, 1.75rem);
    }

    .review-submission-form .field-row {
        grid-template-columns: 1fr;
    }

    .review-submission-form .field-control,
    .review-submission-form .field-control-button {
        min-height: 3.45rem;
        border-radius: 17px;
    }

    .review-submission-form .field-control input,
    .review-submission-form .field-control textarea,
    .review-submission-form .field-control-button {
        padding-block: 0.88rem;
    }

    .review-submission-form .field-control-button {
        padding-right: 3.15rem;
    }

    .review-submission-form .field-popup-date {
        width: 100%;
    }

    .enquiry-modal-form .field-popup,
    .review-submission-form .field-popup {
        max-height: var(--field-popup-max-height, min(18rem, 48vh));
    }

    .enquiry-modal-form .field-popup-select,
    .enquiry-modal-form .field-popup-phone,
    .enquiry-modal-form .date-picker-shell,
    .review-submission-form .field-popup-select,
    .review-submission-form .date-picker-shell {
        border-radius: 18px;
    }

    .enquiry-modal-form .field-option-placeholder,
    .review-submission-form .field-option-placeholder {
        padding: 0.58rem 0.82rem 0.3rem;
        font-size: 0.78rem;
    }

    .enquiry-modal-form .field-option-list,
    .review-submission-form .field-option-list {
        max-height: min(15.5rem, calc(var(--field-popup-max-height, 18rem) - 0.75rem));
        padding: 0.45rem;
    }

    .enquiry-modal-form .field-option,
    .review-submission-form .field-option {
        padding: 0.78rem 0.82rem;
        border-radius: 13px;
        font-size: 0.95rem;
        line-height: 1.25;
    }

    .review-submission-form .file-dropzone {
        grid-template-columns: 1fr;
        gap: 0.65rem;
        min-height: auto;
        padding: 0.85rem;
    }

    .review-submission-form .file-dropzone-action {
        justify-self: start;
        min-height: 2.2rem;
        font-size: 0.84rem;
    }
}

@media (max-width: 420px) {
    .review-submission-form.enquiry-modal-form {
        padding: 0.75rem;
    }

    .reviews-submit-panel {
        padding: 0.55rem;
    }

    .review-submission-form .field-control input,
    .review-submission-form .field-control textarea,
    .review-submission-form .field-control-button {
        font-size: 0.95rem;
    }
}

/* Atmospheric feather field */

.atmospheric-feathers {
    position: fixed;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0.62;
    mix-blend-mode: screen;
    backface-visibility: hidden;
    contain: strict;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

body:has(.thank-you-page) .atmospheric-feathers {
    display: none;
}

body:has(.thank-you-page)::before {
    opacity: 0.22;
}

body > main,
body > footer,
body > .site-footer {
    position: relative;
    z-index: 1;
}

body > .enquiry-modal {
    position: fixed;
    z-index: 20000;
}

.site-header {
    z-index: 30;
}

.enquiry-modal {
    z-index: 20000;
}

body {
    background:
        radial-gradient(circle at 10% 4%, rgba(0, 137, 123, 0.16), transparent 26rem),
        radial-gradient(circle at 88% 12%, rgba(214, 199, 145, 0.16), transparent 24rem),
        radial-gradient(circle at 50% 0%, rgba(7, 90, 118, 0.16), transparent 34rem),
        linear-gradient(180deg, #090a0d 0%, #121820 44%, #20242c 100%);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        url("/images/objects/feather-horizontal-mirrored.png") left 7vw top 9rem / min(19rem, 32vw) auto no-repeat,
        url("/images/objects/feather-horizontal.png") right 6vw top 13rem / min(20rem, 34vw) auto no-repeat,
        radial-gradient(circle at 16% 14%, rgba(39, 149, 111, 0.16), transparent 18rem),
        radial-gradient(circle at 82% 22%, rgba(201, 154, 51, 0.14), transparent 18rem);
    opacity: 0.78;
    mix-blend-mode: screen;
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
}

.site-header,
.site-header.is-scrolled,
.site-header.is-scroll-up {
    background:
        linear-gradient(180deg, rgba(12, 14, 18, 0.94), rgba(12, 14, 18, 0.88));
    border-bottom-color: rgba(214, 199, 145, 0.2);
    box-shadow:
        0 12px 34px rgba(0, 0, 0, 0.34),
        inset 0 -1px 0 rgba(0, 137, 123, 0.18);
}

@media (min-width: 1041px) {
    .header-inner {
        display: grid;
        grid-template-columns: minmax(22rem, 1fr) auto minmax(13rem, 20rem);
        align-items: center;
        gap: clamp(1.15rem, 2vw, 2rem);
    }

    .brand {
        max-width: none;
    }

    .site-nav {
        justify-self: center;
        align-self: center;
        gap: clamp(1rem, 1.45vw, 1.45rem);
        margin-left: 0;
    }

    .site-nav a {
        display: inline-flex;
        align-items: center;
        min-height: 2.5rem;
        padding: 0 0 0.22rem;
        line-height: 1;
    }

    .header-actions {
        justify-self: end;
    }

    .site-header.is-condensed .header-inner {
        width: var(--shell);
        min-height: var(--header-height);
        gap: clamp(1.15rem, 2vw, 2rem);
        justify-content: normal;
    }

    .site-header.is-condensed .brand {
        flex: 0 1 auto;
    }

    .site-header.is-condensed .brand-lockup {
        width: clamp(4rem, 5.4vw, 5rem);
    }

    .site-header.is-condensed .brand-name {
        font-size: clamp(1.28rem, 2vw, 1.62rem);
    }

    .site-header.is-condensed .brand-tagline {
        font-size: 0.78rem;
    }

    .site-header.is-condensed .site-nav,
    .site-header.is-condensed .header-actions {
        max-width: none;
        opacity: 1;
        transform: none;
        overflow: visible;
        pointer-events: auto;
        gap: clamp(1rem, 1.45vw, 1.45rem);
        margin: 0;
        padding: 0;
    }
}

.section-atmosphere-sage::after,
.section-atmosphere-portrait::after {
    display: none;
}

.section-divider > .shell::before,
.section-divider > .shell::after {
    content: none;
}

.section-divider > .shell:first-child::after {
    content: "";
    position: absolute;
    left: 50%;
    right: auto;
    top: clamp(-2.35rem, -3.1vw, -1.55rem);
    bottom: auto;
    width: min(13.5rem, 42vw);
    height: clamp(1.45rem, 3.1vw, 2.15rem);
    background:
        url("/images/objects/feather-horizontal-mirrored.png") 0 50% / 48% 100% no-repeat,
        url("/images/objects/feather-horizontal.png") 100% 50% / 48% 100% no-repeat;
    opacity: 0.68;
    filter:
        drop-shadow(0 8px 16px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 12px rgba(214, 199, 145, 0.1));
    transform: translateX(-50%);
    transform-origin: center;
}

.theme-funeral .section-divider > .shell:first-child::after {
    opacity: 0.68;
    filter:
        drop-shadow(0 8px 16px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 12px rgba(214, 199, 145, 0.1));
}

.section-divider > .shell:first-child::before {
    content: "";
    position: absolute;
    left: 50%;
    top: clamp(-3.55rem, -4.35vw, -2.6rem);
    bottom: auto;
    width: min(18rem, 46vw);
    height: 1.05rem;
    border: 0;
    border-radius: 0;
    background:
        radial-gradient(circle at 50% 50%,
            rgba(214, 199, 145, 0.9) 0 0.18rem,
            rgba(0, 137, 123, 0.78) 0.19rem 0.33rem,
            rgba(183, 192, 204, 0.18) 0.34rem 0.55rem,
            transparent 0.56rem),
        linear-gradient(90deg,
            transparent 0%,
            rgba(183, 192, 204, 0.08) 18%,
            rgba(214, 199, 145, 0.24) 46%,
            rgba(214, 199, 145, 0.24) 54%,
            rgba(183, 192, 204, 0.08) 82%,
            transparent 100%);
    background-repeat: no-repeat;
    background-position: center;
    background-size:
        1.05rem 1.05rem,
        100% 1px;
    box-shadow: none;
    opacity: 0.82;
    transform: translateX(-50%);
}

.section-divider:first-child > .shell:first-child::before,
.section-divider:first-child > .shell:first-child::after,
main > .section-divider:first-child > .shell:first-child::before,
main > .section-divider:first-child > .shell:first-child::after {
    content: none;
}

.peacock-divider-top::before {
    content: none;
}

.section-symbolism {
    overflow: hidden;
}

.section-symbolism::before {
    content: "";
    position: absolute;
    right: max(-7rem, -8vw);
    top: 8%;
    z-index: 0;
    width: clamp(13rem, 24vw, 23rem);
    aspect-ratio: 0.46;
    background: url("/images/objects/feather-vertical.png") center / contain no-repeat;
    opacity: 0.18;
    filter:
        saturate(1.05)
        drop-shadow(0 28px 58px rgba(0, 0, 0, 0.34))
        drop-shadow(0 0 34px rgba(214, 199, 145, 0.12));
    transform: rotate(9deg);
    pointer-events: none;
}

.symbolism-brand-panel {
    overflow: hidden;
}

.symbolism-feather {
    width: min(92%, 18rem);
    opacity: 0.96;
    transform: translateY(-3%) rotate(-2deg);
    transform-origin: center;
}

.symbolism-brand-art {
    transform: translateY(-1%);
}

.symbolism-brand-panel::after {
    content: "";
    position: absolute;
    inset: 12% auto auto 50%;
    width: 52%;
    aspect-ratio: 1;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(214, 199, 145, 0.12), transparent 68%);
    transform: translateX(-50%);
    pointer-events: none;
}

@media (max-width: 720px) {
    .atmospheric-feathers {
        opacity: 0.48;
    }

    .section-symbolism::before {
        right: -8rem;
        top: 2rem;
        width: 18rem;
        opacity: 0.2;
    }

    .section-divider > .shell:first-child::after {
        top: -1.85rem;
        width: min(12.5rem, 58vw);
    }

    .section-divider > .shell:first-child::before {
        top: -2.95rem;
        width: min(15rem, 62vw);
    }
}

@media (prefers-reduced-motion: reduce) {
    .atmospheric-feathers {
        display: none;
    }
}