:root {
    --pj-wine-950: #22070d;
    --pj-wine-900: #300b14;
    --pj-wine-800: #47101f;
    --pj-wine-700: #641b2e;
    --pj-gold-600: #b78332;
    --pj-gold-500: #c99b4d;
    --pj-gold-300: #e7c98e;
    --pj-gold-100: #f6ead0;
    --pj-ivory-100: #fbf6ec;
    --pj-paper: #fffdf8;
    --pj-ink: #211719;
    --pj-muted: #71625f;
    --pj-success: #22643d;
    --pj-warning: #8a6417;
    --pj-danger: #982f38;
    --pj-line: rgba(71, 16, 31, .12);
    --pj-line-gold: rgba(201, 155, 77, .32);
    --pj-wine: var(--pj-wine-800);
    --pj-wine-2: var(--pj-wine-700);
    --pj-gold: var(--pj-gold-500);
    --pj-gold-soft: var(--pj-gold-300);
    --pj-ivory: var(--pj-ivory-100);
    --pj-shadow-subtle: 0 12px 30px rgba(57, 20, 29, .07);
    --pj-shadow-elevated: 0 24px 70px rgba(57, 20, 29, .12);
    --pj-shadow-ceremonial: 0 34px 90px rgba(34, 7, 13, .26);
    --pj-shadow: var(--pj-shadow-elevated);
    --pj-radius-sm: 16px;
    --pj-radius-md: 20px;
    --pj-radius: 28px;
    --pj-radius-lg: 32px;
    --pj-container: 1160px;
    --pj-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
    --pj-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --pj-ease: cubic-bezier(.22, .61, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 8% -10%, rgba(201, 155, 77, .07), transparent 28%),
        var(--pj-ivory-100);
    color: var(--pj-ink);
    font-family: var(--pj-sans);
    font-size: 16px;
    line-height: 1.68;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { outline-offset: 3px; }
a, button, [role="button"], input[type="submit"], input[type="button"] { touch-action: manipulation; }

:focus-visible {
    outline: 3px solid var(--pj-gold-500);
    outline-offset: 4px;
    border-radius: 8px;
}

::selection { background: var(--pj-gold-300); color: var(--pj-wine-950); }

.site-container {
    width: min(calc(100% - 40px), var(--pj-container));
    margin-inline: auto;
}
.site-main { min-height: 60vh; }

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.screen-reader-text:focus,
.skip-link:focus {
    clip: auto !important;
    width: auto;
    height: auto;
    margin: 8px;
    padding: 11px 16px;
    background: var(--pj-paper);
    color: var(--pj-wine-900);
    z-index: 99999;
    box-shadow: var(--pj-shadow-subtle);
}

.section {
    position: relative;
    padding: clamp(72px, 8vw, 112px) 0;
}
.section-light { background: var(--pj-ivory-100); }
.section-paper {
    background:
        linear-gradient(180deg, rgba(255,255,255,.68), rgba(255,253,248,.92)),
        var(--pj-paper);
    border-block: 1px solid rgba(71, 16, 31, .06);
}
.section-ceremonial {
    overflow: hidden;
    background:
        radial-gradient(circle at 16% 18%, rgba(231, 201, 142, .12), transparent 24%),
        radial-gradient(circle at 84% 86%, rgba(201, 155, 77, .08), transparent 28%),
        linear-gradient(135deg, var(--pj-wine-950), var(--pj-wine-800));
    color: #fff9ef;
}
.section-ceremonial::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .12;
    background-image:
        linear-gradient(45deg, transparent 49.5%, rgba(231,201,142,.22) 50%, transparent 50.5%),
        linear-gradient(-45deg, transparent 49.5%, rgba(231,201,142,.12) 50%, transparent 50.5%);
    background-size: 46px 46px;
}
.section-ceremonial > * { position: relative; z-index: 1; }

.section-kicker,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--pj-gold-600);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .16em;
    line-height: 1.4;
    text-transform: uppercase;
}
.section-kicker::before,
.eyebrow::before {
    content: "✦";
    color: var(--pj-gold-500);
    font-size: .68rem;
}
.section-ceremonial .section-kicker,
.section-ceremonial .eyebrow { color: var(--pj-gold-300); }

.section-title {
    max-width: 790px;
    margin: 14px 0 16px;
    color: var(--pj-wine-900);
    font-family: var(--pj-serif);
    font-size: clamp(2.2rem, 4.6vw, 4.25rem);
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: 1.02;
}
.section-ceremonial .section-title { color: #fff8eb; }
.section-lead {
    max-width: 720px;
    margin: 0;
    color: var(--pj-muted);
    font-size: clamp(1rem, 1.5vw, 1.12rem);
}
.section-ceremonial .section-lead { color: rgba(255, 248, 235, .72); }

.sacred-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: var(--pj-gold-500);
}
.sacred-divider::before,
.sacred-divider::after {
    content: "";
    width: 72px;
    max-width: 18vw;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--pj-line-gold));
}
.sacred-divider::after { transform: scaleX(-1); }

.grid { display: grid; gap: 24px; }

.button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 850;
    line-height: 1.2;
    transition: transform .22s var(--pj-ease), box-shadow .22s var(--pj-ease), background .22s var(--pj-ease), border-color .22s var(--pj-ease);
}
.button:hover { transform: translateY(-2px); }
.button-gold,
.button-primary {
    background: linear-gradient(135deg, #e2bf7c 0%, var(--pj-gold-500) 50%, var(--pj-gold-600) 100%);
    color: var(--pj-wine-950);
    border-color: rgba(255,255,255,.26);
    box-shadow: 0 12px 30px rgba(183, 131, 50, .22), inset 0 1px rgba(255,255,255,.42);
}
.button-gold:hover,
.button-primary:hover { box-shadow: 0 17px 34px rgba(183, 131, 50, .3), inset 0 1px rgba(255,255,255,.5); }
.button-outline {
    border-color: rgba(231, 201, 142, .36);
    color: #fff8eb;
    background: rgba(255,255,255,.05);
    box-shadow: inset 0 1px rgba(255,255,255,.04);
}
.button-outline:hover { background: rgba(255,255,255,.1); border-color: rgba(231, 201, 142, .58); }
.button-light { background: var(--pj-paper); color: var(--pj-wine-900); box-shadow: var(--pj-shadow-subtle); }
.button-block { width: 100%; }

.quiet-link,
.card-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--pj-wine-700);
    font-weight: 850;
    text-underline-offset: 4px;
}
.quiet-link:hover,
.card-link:hover { color: var(--pj-gold-600); }

.luxury-card,
.card,
.sacred-panel {
    position: relative;
    overflow: hidden;
    background: rgba(255, 253, 248, .96);
    border: 1px solid var(--pj-line);
    border-radius: var(--pj-radius);
    box-shadow: var(--pj-shadow-subtle);
}
.luxury-card::before,
.sacred-panel::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 88px;
    height: 1px;
    background: linear-gradient(90deg, var(--pj-gold-500), transparent);
}
.card-body { padding: clamp(22px, 3vw, 30px); }

.meta-row { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.meta-pill,
.status-chip {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 11px;
    border: 1px solid rgba(183, 131, 50, .18);
    border-radius: 999px;
    background: linear-gradient(180deg, #fbf5e9, #f4ead8);
    color: #6e4c22;
    font-size: .76rem;
    font-weight: 800;
}
.status-chip.is-success { background: #e9f4ed; border-color: #cbe4d3; color: var(--pj-success); }
.status-chip.is-warning { background: #fff5dc; border-color: #edd9a6; color: var(--pj-warning); }
.status-chip.is-danger { background: #fbeaec; border-color: #efc8ce; color: var(--pj-danger); }

.site-main,
.card,
.pj-invoice,
.booking-status-card { overflow-wrap: anywhere; }
input, select, textarea, button { max-width: 100%; }

@media (max-width: 900px) {
    .site-container { width: min(calc(100% - 30px), var(--pj-container)); }
}

@media (max-width: 760px) {
    .site-container { width: min(calc(100% - 24px), var(--pj-container)); }
    .section { padding: 68px 0; }
    .section-title { font-size: clamp(2.05rem, 10vw, 3rem); }
    .button { min-height: 48px; }
}

@media (max-width: 390px) {
    .site-container { width: min(calc(100% - 20px), var(--pj-container)); }
    .section { padding: 58px 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .button:hover { transform: none; }
}

/* ========================================================================
   Sacred Royal 3.0 — final client-ready design layer
   ======================================================================== */
:root {
    --sr-section-space: clamp(62px, 6.8vw, 92px);
    --sr-section-space-compact: clamp(42px, 5vw, 68px);
    --sr-gradient-wine: linear-gradient(135deg, #16070d 0%, #300b14 48%, #641b2e 100%);
    --sr-gradient-gold: linear-gradient(135deg, #f0d492 0%, #c99b4d 55%, #b78332 100%);
    --sr-gradient-paper: linear-gradient(145deg, rgba(255,255,255,.88), rgba(251,246,236,.96));
    --sr-glow-gold: 0 24px 70px rgba(201,155,77,.18);
    --sr-pointer-x: 0;
    --sr-pointer-y: 0;
}
.section { padding-block: var(--sr-section-space); }
.section-title { font-size: clamp(2rem, 4vw, 3.55rem); }
.section-head-row { align-items: end; }
.sr-section-glow { position: absolute; width: 34rem; height: 34rem; border-radius: 50%; filter: blur(10px); opacity: .24; pointer-events: none; }
.sr-image-surface { position: relative; overflow: hidden; background: var(--pj-wine-900); isolation: isolate; }
.sr-image-surface::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 38%, rgba(22,7,13,.72)); z-index: 1; }
.sr-image-surface img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s var(--pj-ease), filter .55s ease; }
.sr-image-surface:hover img { transform: scale(1.055); filter: saturate(1.08) contrast(1.02); }
.sr-icon-chip { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 14px; color: var(--pj-gold-300); background: linear-gradient(145deg, rgba(201,155,77,.18), rgba(201,155,77,.06)); border: 1px solid rgba(231,201,142,.22); box-shadow: inset 0 1px rgba(255,255,255,.08); }
.sr-reveal,[data-sr-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .72s var(--pj-ease), transform .72s var(--pj-ease); }
.sr-reveal.sr-in-view,[data-sr-reveal].sr-in-view { opacity: 1; transform: none; }
.sr-card-lift { transition: transform .35s var(--pj-ease), box-shadow .35s var(--pj-ease), border-color .35s ease; }
.sr-card-lift:hover { transform: translateY(-5px); box-shadow: 0 24px 60px rgba(57,20,29,.14); border-color: rgba(201,155,77,.4); }
@media (max-width: 760px) {
    :root { --sr-section-space: 54px; --sr-section-space-compact: 40px; }
    .section-title { font-size: clamp(2rem, 9.8vw, 2.8rem); }
}
@media (prefers-reduced-motion: reduce) {
    .sr-reveal,[data-sr-reveal],.sr-image-surface img { transition: none !important; transform: none !important; animation: none !important; }
    .sr-reveal,[data-sr-reveal] { opacity: 1 !important; }
}

/* ==========================================================
   Reference Match v0.8.0 — visual tokens
   ========================================================== */
:root {
    --rm-maroon: #6e0610;
    --rm-maroon-dark: #2b060b;
    --rm-maroon-deep: #180407;
    --rm-red: #9a0716;
    --rm-gold: #e3b341;
    --rm-gold-bright: #ffd96d;
    --rm-gold-soft: #f2d48a;
    --rm-cream: #fff9ea;
    --rm-cream-2: #f8eed8;
    --rm-ink: #2a1712;
    --rm-shadow: 0 18px 48px rgba(61, 13, 16, .14);
    --rm-shadow-dark: 0 24px 70px rgba(0, 0, 0, .30);
    --rm-radius: 18px;
    --rm-section-space: clamp(58px, 6vw, 92px);
}
.rm-section { position: relative; isolation: isolate; }
.rm-kicker {
    display: inline-flex; align-items: center; gap: 9px;
    color: var(--rm-gold); font-size: .72rem; font-weight: 850;
    letter-spacing: .15em; text-transform: uppercase;
}
.rm-kicker::before { content: "✦"; font-size: .65rem; }
.rm-section h2 { font-family: var(--pj-serif); }
.rm-section .button-gold {
    border-radius: 999px;
    background: linear-gradient(135deg, #ffe795 0%, #f7c94c 42%, #dca52f 100%);
    color: #281108;
    border-color: rgba(128, 73, 8, .28);
    box-shadow: 0 8px 24px rgba(213, 160, 43, .28), inset 0 1px rgba(255,255,255,.68);
}
.rm-section .button-gold:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(213,160,43,.38); }

/* =========================================================
   Final Exact Homepage v0.9.0 — design tokens & image quality
   ========================================================= */
:root{
  --fx-maroon:#5a0710;
  --fx-maroon-dark:#240205;
  --fx-maroon-mid:#780f17;
  --fx-red:#8f111a;
  --fx-gold:#e7b642;
  --fx-gold-light:#ffd866;
  --fx-cream:#fff3d4;
  --fx-cream-2:#f8e7bf;
  --fx-ink:#2b130e;
  --fx-line:rgba(130,68,20,.18);
  --fx-shadow:0 18px 45px rgba(50,14,7,.16);
}
.fx-home{background:#fff5dc;color:var(--fx-ink);overflow:hidden}
.fx-home img{display:block;width:100%;height:auto;image-rendering:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.fx-home .site-container{width:min(calc(100% - 48px),1160px)}
.fx-home h1,.fx-home h2,.fx-home h3{font-family:var(--pj-serif);text-wrap:balance}
.fx-home .button{border-radius:7px;min-height:42px;padding:10px 18px;font-size:.82rem;font-weight:850}
.fx-home .button-gold{color:#2b1307;background:linear-gradient(180deg,#ffe489,#efb83c 62%,#d99b20);border-color:#f7d46f;box-shadow:inset 0 1px rgba(255,255,255,.6),0 6px 18px rgba(127,70,9,.2)}
.fx-home .button-gold:hover{transform:translateY(-2px);box-shadow:inset 0 1px rgba(255,255,255,.65),0 10px 25px rgba(127,70,9,.28)}
.fx-button-dark{color:#fff3d4!important;background:rgba(74,5,10,.72)!important;border:1px solid rgba(245,197,78,.36)!important;box-shadow:none!important}
.fx-small-gold{min-height:36px!important;padding:8px 14px!important;color:#351808!important;background:linear-gradient(180deg,#ffe58e,#e8ad33)!important;border:1px solid #f0c55c!important}
.fx-section-heading{text-align:center;margin:0 auto 24px;max-width:760px}
.fx-section-heading h2{margin:0 0 5px;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1;color:#ffe06f}
.fx-section-heading p{margin:0;color:rgba(255,240,210,.76);font-size:.88rem}
.fx-section-heading-dark h2{color:#2b190e}
.fx-section-heading-dark p{color:#6d5745}
@media(max-width:760px){
  .fx-home .site-container{width:min(calc(100% - 28px),1160px)}
  .fx-home .button{min-height:40px;padding:9px 14px}
}
