/* PAF Weekend Platform: front-end. Colors/shape come from CSS variables (Settings → Appearance, or per Elementor widget). */
.paf { --paf-gap: 20px; color: var(--paf-text, #1d2733); font-family: var(--paf-font, inherit); line-height: 1.55; box-sizing: border-box; }
.paf *, .paf *::before, .paf *::after { box-sizing: border-box; }
.paf img { max-width: 100%; height: auto; }
.paf h1, .paf h2, .paf h3, .paf h4 { color: var(--paf-primary, #0f2a44); line-height: 1.2; margin: 0 0 .5em; }
.paf a { color: var(--paf-primary, #0f2a44); }
.paf-muted { color: var(--paf-muted, #5f6b7a); }
.paf-lead { font-size: 1.1em; }
.paf-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .78em; font-weight: 700; color: var(--paf-accent, #c8a24a); margin: 0 0 .4em; }
.paf-req { color: var(--paf-danger, #c0392b); }
.paf-num { text-align: right; white-space: nowrap; }

.paf [hidden] { display: none !important; }

/* Buttons (scoped under .paf so theme button styles don't override them) */
.paf .paf-btn, .paf button.paf-btn, .paf a.paf-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: .7em 1.25em; border-radius: calc(var(--paf-radius, 12px) * .75); border: 1.5px solid var(--paf-primary, #0f2a44); background: transparent; color: var(--paf-primary, #0f2a44) !important; font-weight: 600; font-size: .95em; text-decoration: none !important; cursor: pointer; line-height: 1.2; transition: transform .15s, background .15s, color .15s, box-shadow .15s; font-family: inherit; }
.paf .paf-btn:hover, .paf button.paf-btn:hover { background: var(--paf-primary, #0f2a44); color: #fff !important; }
.paf .paf-btn:focus-visible { outline: 3px solid var(--paf-accent, #c8a24a); outline-offset: 2px; }
.paf .paf-btn--primary, .paf button.paf-btn--primary { background: var(--paf-primary, #0f2a44); color: #fff !important; }
.paf .paf-btn--primary:hover, .paf button.paf-btn--primary:hover { filter: brightness(1.15); }
.paf .paf-btn--accent, .paf button.paf-btn--accent { background: var(--paf-accent, #c8a24a); border-color: var(--paf-accent, #c8a24a); color: #fff !important; }
.paf .paf-btn--accent:hover, .paf button.paf-btn--accent:hover { background: var(--paf-accent, #c8a24a); filter: brightness(1.08); box-shadow: 0 6px 18px rgba(0,0,0,.15); transform: translateY(-1px); }
.paf .paf-btn--lg { padding: .9em 1.6em; font-size: 1.02em; }
.paf .paf-btn--sm { padding: .35em .7em; font-size: .82em; }
.paf .paf-btn.paf-btn--block, .paf button.paf-btn--block { display: flex; width: 100%; }
.paf .paf-btn[disabled] { opacity: .6; cursor: wait; }

/* Cards & layout */
.paf-card { background: var(--paf-card, #fff); border: 1px solid var(--paf-border, #e3e6ea); border-radius: var(--paf-radius, 12px); padding: 22px; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.paf-grid { display: grid; gap: var(--paf-gap); }
.paf-grid--cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.paf-grid--vendors { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.paf-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.paf-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; }
@media (max-width: 720px) { .paf-grid-2, .paf-grid-3 { grid-template-columns: 1fr; } }
.paf-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.paf-split__media img { border-radius: var(--paf-radius, 12px); width: 100%; object-fit: cover; aspect-ratio: 4/3; }
@media (max-width: 820px) { .paf-split { grid-template-columns: 1fr; } }
.paf-section-title { margin-top: 1.6em !important; }

/* Notices */
.paf-notice { padding: 12px 16px; border-radius: calc(var(--paf-radius, 12px) * .7); margin: 0 0 16px; background: #eef4fb; border-left: 4px solid var(--paf-primary, #0f2a44); }
.paf-notice--success { background: #eaf7f0; border-color: var(--paf-success, #1f8a5b); }
.paf-notice--error { background: #fdecea; border-color: var(--paf-danger, #c0392b); }
.paf-notice--warning { background: #fff6e5; border-color: #e0a100; }
.paf-callout { background: var(--paf-surface, #f5f3ee); border-radius: calc(var(--paf-radius, 12px) * .7); padding: 12px 16px; margin: 12px 0; }

/* Status pills & chips */
.paf-status { display: inline-block; padding: 3px 11px; border-radius: 99px; font-size: .78em; font-weight: 700; background: #eef0f3; color: #3c4653; letter-spacing: .02em; }
.paf-status--open, .paf-status--paid { background: #e3f5ec; color: #17734b; }
.paf-status--coming_soon, .paf-status--upcoming, .paf-status--pending_payment, .paf-status--partially_paid { background: #fff3dc; color: #8a5a00; }
.paf-status--closed, .paf-status--sold_out, .paf-status--cancelled, .paf-status--refunded { background: #fdecea; color: #a8322a; }
.paf-status--completed, .paf-status--drawn { background: #e8eefc; color: #2747a6; }
.paf-chip { display: inline-block; padding: 3px 10px; border-radius: 99px; background: var(--paf-surface, #f5f3ee); color: var(--paf-text); font-size: .8em; font-weight: 600; }
.paf-chip--lg { padding: 8px 16px; font-size: .92em; }
.paf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.paf-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--paf-danger, #c0392b); color: #fff; font-size: 11px; font-weight: 700; }

/* Forms */
.paf-form h2, .paf-form h3 { margin-top: 0; }
.paf-field { display: block; margin: 0 0 14px; }
.paf-field > span { display: block; font-weight: 600; font-size: .88em; margin-bottom: 5px; color: var(--paf-text); }
.paf input[type=text], .paf input[type=email], .paf input[type=tel], .paf input[type=password], .paf input[type=number], .paf input[type=url], .paf select, .paf textarea { width: 100%; padding: 10px 12px; border: 1.5px solid var(--paf-border, #e3e6ea); border-radius: calc(var(--paf-radius, 12px) * .6); background: #fff; font: inherit; color: var(--paf-text); transition: border-color .15s, box-shadow .15s; }
.paf input:focus, .paf select:focus, .paf textarea:focus { outline: none; border-color: var(--paf-primary, #0f2a44); box-shadow: 0 0 0 3px rgba(15,42,68,.12); }
.paf .is-invalid { border-color: var(--paf-danger, #c0392b) !important; background: #fff8f7 !important; }
.paf-field--inline { display: inline-flex; align-items: center; gap: 8px; margin-right: 12px; }
.paf-field--inline > span { margin: 0; }
.paf-field--inline input { width: 120px; }
.paf-check { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0; cursor: pointer; }
.paf-check input { margin-top: 4px; flex: none; width: 18px; height: 18px; accent-color: var(--paf-primary); }
.paf-options { display: grid; gap: 10px; margin: 0 0 16px; }
.paf-options--cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.paf-option { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1.5px solid var(--paf-border, #e3e6ea); border-radius: var(--paf-radius, 12px); cursor: pointer; background: var(--paf-card, #fff); transition: border-color .15s, box-shadow .15s; }
.paf-option:hover { border-color: var(--paf-primary); }
.paf-option:has(input:checked) { border-color: var(--paf-primary); box-shadow: 0 0 0 3px rgba(15,42,68,.10); background: #fbfcfe; }
.paf-option input { margin-top: 4px; accent-color: var(--paf-primary); }
.paf-option > span { display: flex; flex-direction: column; gap: 2px; }
.paf-option small { color: var(--paf-muted); }
.paf-option__price { color: var(--paf-primary); }
.paf-option.is-disabled { opacity: .5; cursor: not-allowed; }
.paf-chip-check { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1.5px solid var(--paf-border); border-radius: 99px; margin: 0 8px 8px 0; cursor: pointer; background: var(--paf-card); font-size: .92em; }
.paf-chip-check:has(input:checked) { border-color: var(--paf-success, #1f8a5b); background: #eef9f3; }
.paf-chip-check input { accent-color: var(--paf-success, #1f8a5b); }
.paf-legal { margin: 16px 0; }
.paf-legal__item { border-top: 1px solid var(--paf-border); padding: 8px 0; }
.paf-legal__doc summary { cursor: pointer; font-size: .85em; color: var(--paf-muted); margin-left: 28px; }
.paf-legal__text { max-height: 260px; overflow: auto; font-size: .88em; background: var(--paf-surface); border-radius: 8px; padding: 12px 16px; margin: 8px 0 0 28px; }

/* Auth */
.paf-auth { max-width: 480px; margin: 0 auto; }
.paf-auth__links { text-align: center; font-size: .9em; margin: 14px 0 0; }
.paf-login-prompt { text-align: center; }

/* Tables */
.paf-table-wrap { overflow-x: auto; }
.paf-table { width: 100%; border-collapse: collapse; font-size: .92em; margin: 0 0 12px; }
.paf-table th, .paf-table td { padding: 9px 10px; border-bottom: 1px solid var(--paf-border); text-align: left; vertical-align: top; }
.paf-table th { font-size: .8em; text-transform: uppercase; letter-spacing: .04em; color: var(--paf-muted); }
.paf-table .paf-total td { font-weight: 800; font-size: 1.1em; border-bottom: 0; color: var(--paf-primary); }
.paf-table .paf-discount td { color: var(--paf-success); }
.paf-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0 0 12px; }
.paf-dl dt { color: var(--paf-muted); }
.paf-dl dd { margin: 0; font-weight: 600; }

/* Weekend page */
.paf-weekend { --paf-gap: 22px; }
/* Built-in layout: sections break out of the theme's content column to full width. */
body.paf-weekend-page { overflow-x: clip; }
body.paf-weekend-page .paf-weekend > .paf-wsec { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.paf-activity__body > .paf-status, .paf-activity__body > .paf-chip, .paf-trip__body .paf-status { align-self: flex-start; }
.paf-card .paf-countdown__unit { min-width: 54px; padding: 6px; }
.paf-card .paf-countdown__unit strong { font-size: 1.2em; }
.paf-wsec { padding: 48px 0; }
.paf-wsec:nth-of-type(even) { background: var(--paf-surface, #f5f3ee); }
.paf-wsec__inner { max-width: var(--paf-max, 1200px); margin: 0 auto; padding: 0 20px; }
.paf-wsec--hero { padding: 0; background: none !important; }
.paf-wsec--hero .paf-wsec__inner { max-width: none; padding: 0; }
.paf-wsec__title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: 22px !important; }
.paf-hero { min-height: 520px; display: flex; align-items: flex-end; background: var(--paf-primary) center/cover no-repeat; color: #fff; }
.paf-hero__inner { width: 100%; max-width: var(--paf-max, 1200px); margin: 0 auto; padding: 64px 20px; }
.paf-hero .paf-eyebrow { color: var(--paf-accent); }
.paf-hero__title { color: #fff !important; font-size: clamp(2.2rem, 5vw, 3.8rem); margin-bottom: 12px !important; }
.paf-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 1.1em; margin: 0 0 14px; }
.paf-hero__price { color: #fff; font-weight: 600; margin-left: 8px; }
.paf-hero .paf-countdown__unit { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); }
.paf-hero .paf-countdown__unit strong, .paf-hero .paf-countdown__unit small { color: #fff; }
.paf-cta { margin: 18px 0 0; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.paf-spots { font-weight: 700; color: var(--paf-accent); }
.paf-prose > *:first-child { margin-top: 0; }
.paf-updates { display: grid; gap: 12px; }
.paf-update { background: var(--paf-card); border: 1px solid var(--paf-border); border-left: 4px solid var(--paf-accent); border-radius: calc(var(--paf-radius) * .6); padding: 12px 16px; }
.paf-update.is-pinned { border-left-color: var(--paf-danger); }
.paf-update p { margin: 4px 0 0; }
.paf-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin: 0 0 22px; }
.paf-tier { border: 1.5px solid var(--paf-border); border-radius: var(--paf-radius); padding: 18px; background: var(--paf-card); }
.paf-tier.is-active { border-color: var(--paf-accent); box-shadow: 0 8px 24px rgba(200,162,74,.18); }
.paf-tier.is-ended { opacity: .55; }
.paf-tier__label { font-weight: 700; display: flex; gap: 8px; align-items: center; }
.paf-tier__price { font-size: 1.8em; font-weight: 800; color: var(--paf-primary); margin: 6px 0; }
.paf-tier__price small, .paf-package__price small { font-size: .5em; font-weight: 500; color: var(--paf-muted); }
.paf-tier__dates { font-size: .85em; color: var(--paf-muted); }
.paf-package { position: relative; }
.paf-package__badge { position: absolute; top: -11px; right: 16px; background: var(--paf-accent); color: #fff; font-size: .74em; font-weight: 700; padding: 3px 10px; border-radius: 99px; font-style: normal; }
.paf-option .paf-package__badge { position: static; align-self: flex-start; margin-bottom: 4px; }
.paf-package__price { font-size: 1.6em; font-weight: 800; color: var(--paf-primary); margin: 4px 0 8px; }
.paf-package__inc, .paf-checklist { list-style: none; padding: 0; margin: 0 0 10px; }
.paf-package__inc li, .paf-checklist li { padding: 4px 0 4px 26px; position: relative; }
.paf-package__inc li::before, .paf-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--paf-success); font-weight: 800; }
.paf-checklist { columns: 2 260px; }
.paf-activity, .paf-room, .paf-weekend-card, .paf-raffle-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.paf-activity__img { display: block; aspect-ratio: 16/10; background: var(--paf-surface) center/cover no-repeat; }
.paf-activity__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.paf-activity__body h3 { margin: 6px 0 4px; font-size: 1.15em; }
.paf-activity__body > p:last-child { margin-top: auto; }
.paf-meta-list { list-style: none; padding: 0; margin: 4px 0 8px; font-size: .92em; color: var(--paf-muted); }
.paf-meta-list li { padding: 2px 0; }
.paf-meta-list .dashicons { font-size: 16px; width: 16px; height: 16px; vertical-align: -3px; color: var(--paf-accent); }
.paf-interest-btn { align-self: flex-start; margin-top: 8px; }
.paf-schedule__day { margin-bottom: 26px; }
.paf-timeline { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--paf-border); }
.paf-timeline__item { display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 10px 0 10px 18px; position: relative; }
.paf-timeline__item::before { content: ""; position: absolute; left: -7px; top: 16px; width: 12px; height: 12px; border-radius: 50%; background: var(--paf-accent); border: 2px solid var(--paf-card, #fff); }
.paf-timeline__time { font-weight: 700; color: var(--paf-primary); font-size: .92em; }
.paf-timeline__item p { margin: 4px 0 0; color: var(--paf-muted); }
@media (max-width: 600px) { .paf-timeline__item { grid-template-columns: 1fr; gap: 2px; } }
.paf-holes { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.paf-hole { position: relative; border: 1.5px dashed var(--paf-border); border-radius: var(--paf-radius); padding: 30px 12px 12px; text-align: center; min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: var(--paf-card); }
.paf-hole.is-sponsored { border-style: solid; border-color: var(--paf-accent); }
.paf-hole__num { position: absolute; top: 8px; left: 10px; font-weight: 800; color: var(--paf-primary); font-size: .9em; }
.paf-hole__num::before { content: "⛳ "; }
.paf-hole img { max-height: 54px; object-fit: contain; }
.paf-vendor { text-align: center; }
.paf-vendor.is-featured { border-color: var(--paf-accent); }
.paf-vendor__logo { height: 90px; display: flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.paf-vendor__logo img { max-height: 90px; object-fit: contain; }
.paf-vendor__logo span { width: 72px; height: 72px; border-radius: 50%; background: var(--paf-surface); display: flex; align-items: center; justify-content: center; font-size: 1.8em; font-weight: 800; color: var(--paf-primary); }
.paf-vendor h3 { font-size: 1.05em; }
.paf-vendor__links { font-size: .85em; display: flex; flex-wrap: wrap; gap: 6px 12px; justify-content: center; }
.paf-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-top: 16px; }
.paf-gallery__item { display: block; border-radius: calc(var(--paf-radius) * .7); overflow: hidden; aspect-ratio: 4/3; background: var(--paf-surface); }
.paf-gallery__item img, .paf-gallery__item video { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.paf-gallery__item:hover img { transform: scale(1.04); }
.paf-video { position: relative; aspect-ratio: 16/9; border-radius: var(--paf-radius); overflow: hidden; margin-bottom: 12px; }
.paf-video iframe, .paf-video video { position: absolute; inset: 0; width: 100%; height: 100%; }
.paf-custom + .paf-custom { margin-top: 40px; }
.paf-contact { max-width: 640px; }

/* Featured Weekend */
.paf-featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); border-radius: var(--paf-radius); overflow: hidden; background: var(--paf-card); border: 1px solid var(--paf-border); box-shadow: 0 18px 50px rgba(16,24,40,.08); }
.paf-featured__media { min-height: 420px; background: var(--paf-primary) center/cover no-repeat; }
.paf-featured__body { padding: clamp(24px, 4vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.paf-featured__title { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
.paf-featured__price { margin-left: 8px; }
.paf-featured__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
@media (max-width: 860px) { .paf-featured { grid-template-columns: 1fr; } .paf-featured__media { min-height: 260px; } }
.paf-trip__meta { color: var(--paf-muted); font-size: .92em; margin: 0 0 8px; }
.paf-trip__meta .dashicons { font-size: 16px; width: 16px; height: 16px; vertical-align: -3px; color: var(--paf-accent); }

/* Calendar list */
.paf-calendar__month h3 { font-size: 1em; text-transform: uppercase; letter-spacing: .08em; color: var(--paf-muted); margin: 22px 0 10px; }
.paf-calendar__item { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid var(--paf-border); border-radius: var(--paf-radius); background: var(--paf-card); margin-bottom: 10px; text-decoration: none !important; color: var(--paf-text) !important; transition: border-color .15s, transform .15s; }
.paf-calendar__item:hover { border-color: var(--paf-primary); transform: translateX(3px); }
.paf-calendar__date { flex: none; width: 58px; height: 58px; border-radius: calc(var(--paf-radius) * .7); background: var(--paf-primary); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; }
.paf-calendar__date strong { font-size: 1.4em; }
.paf-calendar__date small { text-transform: uppercase; font-size: .7em; letter-spacing: .08em; }
.paf-calendar__body { flex: 1; display: flex; flex-direction: column; }
.paf-calendar__body small { color: var(--paf-muted); }

/* Countdown */
.paf-countdown { display: flex; gap: 8px; margin: 14px 0; flex-wrap: wrap; }
.paf-countdown__unit { min-width: 68px; text-align: center; padding: 8px 10px; border: 1px solid var(--paf-border); border-radius: calc(var(--paf-radius) * .6); background: var(--paf-card); }
.paf-countdown__unit strong { display: block; font-size: 1.5em; color: var(--paf-primary); font-variant-numeric: tabular-nums; }
.paf-countdown__unit small { text-transform: uppercase; font-size: .66em; letter-spacing: .08em; color: var(--paf-muted); }
.paf-countdown__label { font-size: .8em; text-transform: uppercase; letter-spacing: .08em; color: var(--paf-muted); font-weight: 700; }
.paf-countdown-days strong { font-size: 2em; color: var(--paf-accent); }

/* Raffle */
.paf-raffle { max-width: var(--paf-max, 1200px); margin: 0 auto; }
.paf-raffle__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 36px; padding: 30px 0; }
@media (max-width: 860px) { .paf-raffle__grid { grid-template-columns: 1fr; } }
.paf-raffle__media .paf-gallery { grid-template-columns: repeat(2, 1fr); margin: 0; }
.paf-raffle__media .paf-gallery__item:first-child { grid-column: 1 / -1; aspect-ratio: 16/10; }
.paf-raffle__title { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin-top: 8px !important; }
.paf-raffle-card__prize { font-weight: 700; color: var(--paf-primary); }
.paf-raffle-card__prize .dashicons { color: var(--paf-accent); }
.paf-raffle-form { margin-top: 18px; }
.paf-raffle-form__total { font-size: 1.15em; margin: 6px 0 12px; }
.paf-rules { margin: 16px auto; max-width: var(--paf-max, 1200px); }
.paf-rules summary { cursor: pointer; font-weight: 700; color: var(--paf-primary); }
.paf-tickets { margin-top: 18px; }
.paf-tickets__list { display: flex; flex-wrap: wrap; gap: 8px; }
.paf-ticket { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; padding: 8px 14px; border: 2px dashed var(--paf-accent); border-radius: 8px; background: #fffaf0; letter-spacing: .04em; }
.paf-ticket.is-winner { border-style: solid; background: var(--paf-accent); color: #fff; }

/* Wizard */
.paf-register { max-width: var(--paf-max, 1200px); margin: 0 auto; }
.paf-reg-head { margin-bottom: 18px; }
.paf-steps { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0 0 22px; counter-reset: s; flex-wrap: wrap; }
.paf-steps li { flex: 1 1 140px; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: calc(var(--paf-radius) * .6); background: var(--paf-surface); font-size: .85em; font-weight: 600; color: var(--paf-muted); }
.paf-steps li span { width: 24px; height: 24px; flex: none; border-radius: 50%; background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .9em; }
.paf-steps li.is-active { background: var(--paf-primary); color: #fff; }
.paf-steps li.is-active span { color: var(--paf-primary); }
.paf-steps li.is-done { cursor: pointer; color: var(--paf-primary); }
.paf-steps li.is-done span { background: var(--paf-success); color: #fff; }
.paf-wizard__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
@media (max-width: 960px) { .paf-wizard__layout { grid-template-columns: 1fr; } .paf-wizard__summary { order: -1; } }
.paf-wizard__summary { position: sticky; top: 24px; }
.paf-step { display: none; border: 0; padding: 0; margin: 0; min-width: 0; }
.paf-step.is-active { display: block; animation: pafFade .25s ease; }
.paf-step legend { font-family: inherit;  font-size: 1.4em; font-weight: 800; color: var(--paf-primary); margin-bottom: 14px; padding: 0; }
@keyframes pafFade { from { transform: translateY(6px); } to { opacity: 1; transform: none; } }
.paf-wizard__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--paf-border); }
.paf-wizard__nav .paf-wizard__next, .paf-wizard__nav .paf-wizard__submit { margin-left: auto; }
.paf-foursome { border: 1px solid var(--paf-border); border-radius: var(--paf-radius); padding: 16px; margin-bottom: 16px; background: var(--paf-card); }
.paf-foursome h4 { margin-top: 0; }
.paf-person { padding: 12px 0; border-bottom: 1px dashed var(--paf-border); }
.paf-person:last-child { border-bottom: 0; }
.paf-person__head { font-weight: 700; margin-bottom: 8px; color: var(--paf-primary); }
.paf-person.is-primary .paf-person__head::after { content: " ★"; color: var(--paf-accent); }
.paf-person__hint { font-size: .82em; margin: 0; }
.paf-addon { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--paf-border); }
.paf-addon small { display: block; color: var(--paf-muted); }
.paf-promo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.paf-promo .paf-field--inline input { width: 180px; }
.paf-pricelock { font-size: .88em; }
.paf-review-people { padding-left: 18px; }

/* Checkout */
.paf-checkout { max-width: 1000px; margin: 0 auto; }
.paf-checkout__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 820px) { .paf-checkout__grid { grid-template-columns: 1fr; } }
.paf-checkout__due { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--paf-border); margin-top: 8px; }
.paf-checkout__due strong { font-size: 1.8em; color: var(--paf-primary); }
.paf-gw { border: 1.5px solid var(--paf-border); border-radius: var(--paf-radius); margin-bottom: 10px; background: var(--paf-card); }
.paf-gw[open] { border-color: var(--paf-primary); }
.paf-gw summary { padding: 14px 16px; cursor: pointer; display: flex; flex-direction: column; list-style: none; }
.paf-gw summary::-webkit-details-marker { display: none; }
.paf-gw__title { font-weight: 700; }
.paf-gw__desc { font-size: .85em; color: var(--paf-muted); }
.paf-gw__body { padding: 0 16px 16px; }
.paf-secure { font-size: .82em; color: var(--paf-muted); margin-top: 12px; }
.paf-success { text-align: center; max-width: 620px; margin: 0 auto; }
.paf-success__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--paf-success); color: #fff; font-size: 32px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
.paf-success .paf-dl { text-align: left; max-width: 420px; margin: 16px auto; }

/* Dashboard */
.paf-dashboard { max-width: var(--paf-max, 1200px); margin: 0 auto; }
.paf-dash__head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.paf-dash__head p { margin: 0; }
.paf-avatar { border-radius: 50%; }
.paf-tabs { display: flex; gap: 4px; overflow-x: auto; border-bottom: 2px solid var(--paf-border); margin-bottom: 22px; scrollbar-width: thin; }
.paf-tabs__tab { padding: 10px 14px; white-space: nowrap; text-decoration: none !important; color: var(--paf-muted) !important; font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -2px; display: inline-flex; gap: 6px; align-items: center; }
.paf-tabs__tab.is-active, .paf-tabs__tab:hover { color: var(--paf-primary) !important; border-bottom-color: var(--paf-accent); }
.paf-trip { display: grid; grid-template-columns: 1fr; border: 1px solid var(--paf-border); border-radius: var(--paf-radius); overflow: hidden; background: var(--paf-card); }
.paf-trip--primary { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); box-shadow: 0 14px 40px rgba(16,24,40,.08); }
@media (max-width: 760px) { .paf-trip--primary { grid-template-columns: 1fr; } }
.paf-trip__media { display: block; min-height: 200px; background: var(--paf-surface) center/cover no-repeat; }
.paf-trip__body { padding: 20px 22px; }
.paf-trip__title { font-size: 1.3em; }
.paf-trip--primary .paf-trip__title { font-size: 1.8em; }
.paf-trip__title a { text-decoration: none; }
.paf-trip__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.paf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-top: 24px; }
.paf-stat { display: block; border: 1px solid var(--paf-border); border-radius: var(--paf-radius); padding: 14px 16px; background: var(--paf-card); text-decoration: none !important; color: var(--paf-text) !important; }
.paf-stat span { display: block; font-size: .78em; text-transform: uppercase; letter-spacing: .05em; color: var(--paf-muted); }
.paf-stat strong { display: block; font-size: 1.6em; color: var(--paf-primary); }
.paf-reg { margin-bottom: 22px; }
.paf-reg__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.paf-reg__head h3 { margin-bottom: 2px; }
.paf-reg__head p { margin: 0; }
.paf-money { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 14px 0; }
.paf-money div { background: var(--paf-surface); border-radius: calc(var(--paf-radius) * .6); padding: 10px 12px; }
.paf-money span { display: block; font-size: .78em; color: var(--paf-muted); }
.paf-money strong { font-size: 1.15em; color: var(--paf-primary); }
.paf-reg__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.paf-breakdown summary { cursor: pointer; font-weight: 600; color: var(--paf-primary); margin: 10px 0; }
.paf-empty { text-align: center; padding: 36px 22px; }
.paf-offer { text-align: center; }
.paf-offer.is-inactive { opacity: .6; }
.paf-offer__value { font-size: 1.25em; font-weight: 800; color: var(--paf-primary); margin-bottom: 8px; }
.paf-offer__code code { font-size: 1.1em; padding: 6px 12px; border: 2px dashed var(--paf-accent); border-radius: 8px; letter-spacing: .06em; background: #fffaf0; }
.paf-notifications { list-style: none; padding: 0; margin: 0; }
.paf-notification { padding: 14px 16px; border: 1px solid var(--paf-border); border-radius: calc(var(--paf-radius) * .7); margin-bottom: 8px; background: var(--paf-card); }
.paf-notification.is-unread { border-left: 4px solid var(--paf-accent); background: #fffdf7; cursor: pointer; }
.paf-notification__title { font-weight: 700; }
.paf-notification__meta { font-size: .8em; color: var(--paf-muted); margin-top: 4px; }
.paf-profile__head { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.paf-bell { position: relative; display: inline-flex; align-items: center; text-decoration: none; }
.paf-bell .paf-badge { position: absolute; top: -8px; right: -10px; }
.paf-price strong { font-size: 1.4em; color: var(--paf-primary); }
.paf-price__label { font-weight: 700; color: var(--paf-accent); }
.paf-legal-doc { max-width: 860px; margin: 0 auto; }

@media (prefers-reduced-motion: reduce) { .paf *, .paf *::before { animation: none !important; transition: none !important; } }

/* ==========================================================================
   Design system refinements (driven by Settings > Appearance)
   ========================================================================== */
.paf { --paf-gap: calc(24px * var(--paf-space, 1)); font-size: var(--paf-base-size, 16px); line-height: 1.65; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.paf h1, .paf h2, .paf h3, .paf h4, .paf legend { font-family: var(--paf-heading-font, inherit); font-weight: var(--paf-heading-weight, 700); letter-spacing: -0.01em; }
.paf h2 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
.paf h3 { font-size: 1.22em; }
.paf h4 { font-size: 1.05em; margin-top: 1.4em; }
.paf p { margin: 0 0 1em; }
.paf-eyebrow { letter-spacing: .16em; font-size: .74em; color: var(--paf-accent); }
.paf-muted { color: var(--paf-muted); }

/* Buttons */
.paf .paf-btn, .paf button.paf-btn, .paf a.paf-btn { border-radius: var(--paf-btn-radius, 10px); padding: .82em 1.5em; font-family: var(--paf-font, inherit); letter-spacing: .01em; box-shadow: none; }
.paf .paf-btn--lg { padding: 1em 1.9em; }
.paf .paf-btn--sm { padding: .4em .85em; }
.paf .paf-btn--accent, .paf button.paf-btn--accent { box-shadow: 0 6px 18px color-mix(in srgb, var(--paf-accent) 28%, transparent); }

/* Cards, grids, sections */
.paf-card { padding: calc(28px * var(--paf-space, 1)); border-color: var(--paf-border); box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 10px 30px rgba(15,23,42,.04); }
.paf-grid { gap: var(--paf-gap); }
.paf-wsec { padding: calc(88px * var(--paf-space, 1)) 0; }
.paf-wsec__inner { padding: 0 24px; }
.paf-wsec__title { margin-bottom: calc(28px * var(--paf-space, 1)) !important; }
.paf-activity__body { padding: calc(22px * var(--paf-space, 1)) calc(24px * var(--paf-space, 1)); gap: 6px; }
.paf-section-title { margin: calc(40px * var(--paf-space, 1)) 0 calc(16px * var(--paf-space, 1)) !important; }

/* Forms */
.paf-field { margin-bottom: calc(18px * var(--paf-space, 1)); }
.paf-field > span { font-size: .84em; letter-spacing: .01em; color: var(--paf-text); margin-bottom: 7px; }
.paf input[type=text], .paf input[type=email], .paf input[type=tel], .paf input[type=password], .paf input[type=number], .paf input[type=url], .paf select, .paf textarea { padding: 12px 14px; border-width: 1px; border-radius: calc(var(--paf-radius) * .6); font-family: var(--paf-font, inherit); font-size: .98em; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.paf input:focus, .paf select:focus, .paf textarea:focus { border-color: var(--paf-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--paf-accent) 14%, transparent); }
.paf-option { padding: 18px 20px; border-width: 1px; }
.paf-option:has(input:checked) { border-color: var(--paf-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--paf-accent) 14%, transparent); background: #fff; }
.paf-option input, .paf-check input { accent-color: var(--paf-accent); }
.paf-steps li.is-active { background: var(--paf-primary); }
.paf-steps li.is-done span { background: var(--paf-accent); }
.paf-wizard__layout { gap: calc(36px * var(--paf-space, 1)); }
.paf-foursome { padding: calc(22px * var(--paf-space, 1)); }
.paf-auth .paf-card { padding: calc(36px * var(--paf-space, 1)); }

/* Status pills & chips */
.paf-status { padding: 4px 12px; font-size: .74em; letter-spacing: .03em; }
.paf-chip { padding: 4px 12px; background: color-mix(in srgb, var(--paf-secondary, #2f6fd1) 10%, #fff); color: var(--paf-primary); }

/* Dashboard */
.paf-tabs { gap: 6px; margin-bottom: calc(28px * var(--paf-space, 1)); }
.paf-tabs__tab { padding: 12px 16px; }
.paf-dash__head { margin-bottom: calc(24px * var(--paf-space, 1)); }
.paf-money div { padding: 14px 16px; background: var(--paf-surface); }
.paf-reg { margin-bottom: calc(28px * var(--paf-space, 1)); }

/* Hero & featured */
.paf-hero__inner { padding: calc(80px * var(--paf-space, 1)) 24px; }
.paf-featured__body { padding: clamp(28px, 4vw, 56px); }
.paf-tier, .paf-package { padding: calc(24px * var(--paf-space, 1)); }
.paf-tier.is-active { border-color: var(--paf-accent); box-shadow: 0 10px 28px color-mix(in srgb, var(--paf-accent) 16%, transparent); }
.paf-package__badge { background: var(--paf-accent); }
.paf-ticket { border-color: var(--paf-accent); background: color-mix(in srgb, var(--paf-accent) 6%, #fff); }
.paf-ticket.is-winner { background: var(--paf-accent); }
.paf-success__icon--pending { background: var(--paf-secondary, #2f6fd1); }
.paf-offline-instructions { background: var(--paf-surface); border-radius: calc(var(--paf-radius) * .7); padding: 14px 18px; margin-bottom: 12px; }

/* ==========================================================================
   v3 design language: clean sans type, tinted icon squares, panels, arrow scrollers
   ========================================================================== */
.paf-hscroll-wrap { position: relative; display: flex; align-items: stretch; min-width: 0; }
.paf-hscroll-wrap > .paf-hscroll { overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; flex: 1; min-width: 0; }
.paf-hscroll-wrap > .paf-hscroll::-webkit-scrollbar { display: none; }
.paf-hscroll__btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--paf-border); background: #fff; color: var(--paf-primary); display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 18px rgba(15,23,42,.12); padding: 0; }
.paf-hscroll__btn[hidden] { display: none; }
.paf-hscroll__btn--prev { left: 0; }
.paf-hscroll__btn--next { right: 0; }
.paf-hscroll__btn:hover { color: var(--paf-accent); border-color: var(--paf-accent); }
.paf-hscroll__btn svg { width: 16px; height: 16px; }
.paf-hscroll-wrap.has-prev::before, .paf-hscroll-wrap.has-next::after { content: ""; position: absolute; top: 0; bottom: 0; width: 56px; z-index: 2; pointer-events: none; }
.paf-hscroll-wrap.has-prev::before { left: 0; background: linear-gradient(90deg, #fff 30%, transparent); }
.paf-hscroll-wrap.has-next::after { right: 0; background: linear-gradient(270deg, #fff 30%, transparent); }
.paf-tabs-wrap { margin-bottom: calc(32px * var(--paf-space, 1)); border-bottom: 1px solid var(--paf-border); }
.paf-tabs-wrap > .paf-tabs { margin-bottom: 0; border-bottom: 0; }
.paf-steps-wrap { margin-bottom: calc(28px * var(--paf-space, 1)); }
.paf-steps-wrap > .paf-steps { margin-bottom: 0; flex-wrap: nowrap; }
.paf-steps-wrap > .paf-steps li { flex: 0 0 auto; }

/* Tinted icon squares */
.paf-ico { flex: none; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; }
.paf-ico .dashicons { font-size: 20px; width: 20px; height: 20px; }
.paf-ico--blue { background: #eaf1ff; color: #3b6ff5; }
.paf-ico--green { background: #e6f7ef; color: #16a36a; }
.paf-ico--purple { background: #f0ebff; color: #7c4dff; }
.paf-ico--amber { background: #fff5e0; color: #e59a0b; }
.paf-ico--pink { background: #ffe8f3; color: #d4167f; }

/* Dashboard stat row (one bordered strip) */
.paf-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--paf-border); border-radius: var(--paf-radius); background: var(--paf-card); box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 10px 30px rgba(15,23,42,.04); overflow: hidden; margin-top: calc(32px * var(--paf-space, 1)); }
.paf-stat { display: flex; align-items: center; gap: 16px; padding: 22px 24px; border: 0; border-right: 1px solid var(--paf-border); border-radius: 0; box-shadow: none; text-decoration: none !important; }
.paf-stat:last-child { border-right: 0; }
.paf-stat:hover { background: var(--paf-surface); }
.paf-stat > span:last-child { display: flex; flex-direction: column; }
.paf-stat strong { font-size: 1.6em; line-height: 1.1; color: var(--paf-primary); letter-spacing: -.02em; order: 1; }
.paf-stat > .paf-ico { display: grid; font-size: inherit; text-transform: none; letter-spacing: 0; }
.paf-stat > .paf-ico .dashicons { display: block; font-size: 20px; width: 20px; height: 20px; color: inherit; }
.paf-stat > span:last-child { font-size: inherit; text-transform: none; letter-spacing: 0; color: inherit; }
.paf-stat strong { font-family: var(--paf-heading-font, inherit); font-weight: 700; }
.paf-stat small { order: 2; display: block; margin-top: 4px; font-size: .84em; color: var(--paf-muted); }
.paf-dash-stats-first .paf-stats { margin: 0 0 calc(28px * var(--paf-space, 1)); }
@media (max-width: 900px) { .paf-stats { grid-template-columns: 1fr 1fr; } .paf-stat:nth-child(2) { border-right: 0; } .paf-stat:nth-child(-n+2) { border-bottom: 1px solid var(--paf-border); } }

/* Panels with title + subtitle (like admin) */
.paf-panel { background: var(--paf-card); border: 1px solid var(--paf-border); border-radius: var(--paf-radius); padding: calc(28px * var(--paf-space, 1)); box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 10px 30px rgba(15,23,42,.04); }
.paf-panel__head { margin-bottom: 18px; }
.paf-panel__head h3 { margin: 0; }
.paf-panel__head p { margin: 4px 0 0; color: var(--paf-muted); font-size: .9em; }

/* Cards: calmer borders, chevron affordance */
.paf-card { border-color: var(--paf-border); }
.paf-weekend-card, .paf-raffle-card, .paf-activity, .paf-room { transition: transform .18s, box-shadow .18s, border-color .18s; }
.paf-weekend-card:hover, .paf-raffle-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(15,23,42,.08); border-color: color-mix(in srgb, var(--paf-accent) 30%, var(--paf-border)); }
.paf h1, .paf h2, .paf h3 { letter-spacing: -.02em; }
.paf-eyebrow { display: inline-flex; align-items: center; gap: 8px; }

/* Minimal page banner (templates and Elementor platform pages share this look) */
.paf-banner { position: relative; margin: 0 0 calc(48px * var(--paf-space, 1)); padding: calc(64px * var(--paf-space, 1)) 24px calc(56px * var(--paf-space, 1)); border-radius: var(--paf-radius); background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--paf-accent) 10%, transparent) 0%, transparent 55%), linear-gradient(180deg, var(--paf-surface) 0%, #fff 100%); border: 1px solid var(--paf-border); overflow: hidden; }
.paf-banner__inner { max-width: 760px; }
.paf-banner .paf-eyebrow { display: inline-block; margin-bottom: 12px; color: var(--paf-accent); font-size: .78em; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.paf-banner__title { margin: 0 !important; color: var(--paf-primary); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -.025em; }
.paf-banner__sub { margin: 14px 0 0; color: var(--paf-muted); font-size: 1.08em; line-height: 1.6; }
.paf-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 18px; font-size: .85em; color: var(--paf-muted); }
.paf-crumbs a { color: var(--paf-muted); text-decoration: none; }
.paf-crumbs a:hover { color: var(--paf-accent); }
.paf-crumbs span[aria-current] { color: var(--paf-text); font-weight: 600; }
.paf-raffle { padding: calc(40px * var(--paf-space, 1)) 20px calc(96px * var(--paf-space, 1)); }
@media (max-width: 700px) { .paf-banner { padding: 44px 20px 40px; } }
