:root {
    --rjpv-cream: #f5f0e8;
    --rjpv-paper: #fffdfa;
    --rjpv-ink: #241711;
    --rjpv-chocolate: #2d1c15;
    --rjpv-cocoa: #51301f;
    --rjpv-terracotta: #9d402a;
    --rjpv-copper: #b7652e;
    --rjpv-ochre: #d89745;
    --rjpv-gold: #efbd66;
    --rjpv-sage: #63705b;
}

.rjpv-body { background: var(--rjpv-cream); color: var(--rjpv-ink); }
.rjpv-site-nav { position: relative; }
.rjpv-main { min-height: 65vh; }
.rjpv-main h1,.rjpv-main h2,.rjpv-main h3,.rjpv-main blockquote { font-family: var(--serif, "Cormorant Garamond", Georgia, serif); font-weight: 500; }
.rjpv-main input,.rjpv-main select,.rjpv-main textarea,.rjpv-main button { font: inherit; }
.rjpv-main a { color: inherit; }
.rjpv-notice { margin: 18px auto; max-width: 1180px; padding: 16px 22px; font: 600 14px/1.6 var(--sans, Montserrat, Arial, sans-serif); }
.rjpv-notice--success { background: #e4eadf; border-left: 4px solid var(--rjpv-sage); }
.rjpv-notice--error { background: #f4e5df; border-left: 4px solid var(--rjpv-terracotta); }

.rjpv-hero { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(360px,.94fr); max-width: 1440px; margin: 0 auto; min-height: 660px; }
.rjpv-hero__copy { background: var(--rjpv-cocoa); color: var(--rjpv-paper); padding: clamp(70px,8vw,124px) clamp(34px,7vw,106px); position: relative; overflow: hidden; }
.rjpv-hero__copy::after { content: "♞"; color: rgb(255 253 250 / 4.5%); font-family: Georgia,serif; font-size: clamp(280px,30vw,520px); line-height: 1; position: absolute; right: -7%; bottom: -18%; }
.rjpv-hero__copy > * { position: relative; z-index: 1; }
.rjpv-hero .eyebrow,.rjpv-form-hero .eyebrow { color: var(--rjpv-gold); }
.rjpv-hero h1 { font-size: clamp(54px,6.1vw,88px); line-height: .88; letter-spacing: -.035em; margin: 30px 0 28px; }
.rjpv-hero__copy > p:not(.eyebrow) { font: 400 clamp(22px,2vw,30px)/1.25 var(--serif, Georgia,serif); max-width: 670px; }
.rjpv-text-link { display: inline-flex; gap: 14px; margin-top: 38px; color: var(--rjpv-gold) !important; font: 600 13px/1.4 var(--sans,Arial,sans-serif); text-decoration: none; text-transform: uppercase; letter-spacing: .12em; }
.rjpv-search { align-content: center; background: var(--rjpv-paper); display: grid; gap: 18px; padding: clamp(54px,6vw,98px); position: relative; overflow: hidden; }
.rjpv-search__number { color: rgb(157 64 42 / 7%); font: 500 clamp(180px,20vw,330px)/.7 var(--serif,Georgia,serif); position: absolute; right: -12px; top: 12%; }
.rjpv-search > * { position: relative; z-index: 1; }
.rjpv-search h2 { font-size: clamp(40px,4vw,58px); line-height: 1; margin: 0 0 12px; max-width: 460px; }
.rjpv-search label,.rjpv-proposal label,.rjpv-contact label { display: grid; gap: 9px; font: 600 12px/1.4 var(--sans,Arial,sans-serif); letter-spacing: .04em; }
.rjpv-search input,.rjpv-search select,.rjpv-proposal input,.rjpv-proposal select,.rjpv-proposal textarea,.rjpv-contact input,.rjpv-contact textarea { border: 1px solid rgb(81 48 31 / 22%); background: #fff; color: var(--rjpv-ink); border-radius: 0; min-height: 52px; padding: 13px 15px; outline: none; width: 100%; }
.rjpv-search input:focus,.rjpv-search select:focus,.rjpv-proposal input:focus,.rjpv-proposal select:focus,.rjpv-proposal textarea:focus,.rjpv-contact input:focus,.rjpv-contact textarea:focus { border-color: var(--rjpv-terracotta); box-shadow: 0 0 0 3px rgb(157 64 42 / 10%); }
.rjpv-search > p:last-child { color: rgb(36 23 17 / 62%); font: 500 11px/1.5 var(--sans,Arial,sans-serif); margin: 0; }
.rjpv-button { align-items: center; background: var(--rjpv-ochre); border: 1px solid var(--rjpv-ochre); color: var(--rjpv-ink) !important; cursor: pointer; display: inline-flex; font: 700 12px/1 var(--sans,Arial,sans-serif); justify-content: center; letter-spacing: .08em; min-height: 50px; padding: 16px 24px; text-decoration: none; text-transform: uppercase; transition: background .18s,color .18s,transform .18s; }
.rjpv-button:hover,.rjpv-button:focus-visible { background: var(--rjpv-gold); transform: translateY(-1px); }
.rjpv-button--line { background: transparent; border-color: rgb(81 48 31 / 34%); }
.rjpv-button--line:hover { background: var(--rjpv-cocoa); border-color: var(--rjpv-cocoa); color: var(--rjpv-paper) !important; }
.rjpv-button--large { min-height: 58px; padding-inline: 34px; }

.rjpv-results { max-width: 1320px; margin: 0 auto; padding: clamp(78px,9vw,130px) clamp(24px,5vw,70px); }
.rjpv-section-heading { align-items: end; display: flex; justify-content: space-between; gap: 26px; margin-bottom: 44px; }
.rjpv-section-heading h2 { font-size: clamp(38px,4vw,56px); line-height: .98; margin: 14px 0 0; }
.rjpv-cards { display: grid; gap: 22px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.rjpv-card { background: var(--rjpv-paper); border: 1px solid rgb(81 48 31 / 14%); display: flex; flex-direction: column; min-height: 440px; padding: 30px; }
.rjpv-card__top { align-items: center; color: var(--rjpv-terracotta); display: flex; font: 700 11px/1.2 var(--sans,Arial,sans-serif); gap: 9px; letter-spacing: .08em; text-transform: uppercase; }
.rjpv-piece { font-size: 19px; }
.rjpv-card h3 { font-size: clamp(30px,2.5vw,38px); line-height: .98; margin: 24px 0; }
.rjpv-card dl { display: grid; gap: 10px; margin: 0; }
.rjpv-card dl div { border-top: 1px solid rgb(81 48 31 / 12%); display: grid; gap: 8px; grid-template-columns: 62px 1fr; padding-top: 9px; }
.rjpv-card dt { color: rgb(36 23 17 / 58%); font: 600 10px/1.4 var(--sans,Arial,sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.rjpv-card dd { font: 500 13px/1.45 var(--sans,Arial,sans-serif); margin: 0; }
.rjpv-card__tags { color: var(--rjpv-terracotta); font: 600 11px/1.55 var(--sans,Arial,sans-serif); }
.rjpv-card blockquote { font-size: 21px; line-height: 1.2; margin: 8px 0 28px; }
.rjpv-card .rjpv-button { margin-top: auto; }
.rjpv-empty { border: 1px solid rgb(81 48 31 / 16%); padding: clamp(55px,8vw,100px); text-align: center; }
.rjpv-empty > span { color: var(--rjpv-ochre); font-size: 44px; }
.rjpv-empty h1,.rjpv-empty h3 { font-size: clamp(36px,4vw,56px); line-height: 1; margin: 18px auto; max-width: 760px; }
.rjpv-empty p { font: 400 22px/1.4 var(--serif,Georgia,serif); }
.rjpv-empty .rjpv-button { margin-top: 18px; }

.rjpv-how { background: #ebe1d3; display: grid; gap: clamp(40px,7vw,110px); grid-template-columns: .8fr 1.2fr; padding: clamp(70px,8vw,120px) max(7vw,30px); }
.rjpv-how h2 { font-size: clamp(42px,4.7vw,68px); line-height: .95; margin: 18px 0 0; }
.rjpv-how ol { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.rjpv-how li { border-top: 1px solid rgb(81 48 31 / 22%); display: grid; grid-template-columns: 55px 1fr; padding: 24px 0; }
.rjpv-how li > span { color: var(--rjpv-terracotta); font: 700 11px/1.4 var(--sans,Arial,sans-serif); }
.rjpv-how li strong { font: 500 29px/1 var(--serif,Georgia,serif); }
.rjpv-how li p { grid-column: 2; margin: 8px 0 0; }
.rjpv-safety-band { align-items: center; background: var(--rjpv-chocolate); color: var(--rjpv-paper); display: grid; gap: 24px; grid-template-columns: auto 1fr auto; padding: 38px max(6vw,28px); }
.rjpv-safety-band > span { color: var(--rjpv-gold); font-size: 44px; }
.rjpv-safety-band strong { font: 500 27px/1.1 var(--serif,Georgia,serif); }
.rjpv-safety-band p { color: rgb(255 253 250 / 70%); margin: 8px 0 0; max-width: 820px; }
.rjpv-safety-band a { color: var(--rjpv-gold); font: 700 11px/1.3 var(--sans,Arial,sans-serif); letter-spacing: .1em; text-transform: uppercase; }

.rjpv-form-hero { background: var(--rjpv-cocoa); color: var(--rjpv-paper); padding: clamp(64px,8vw,112px) max(10vw,28px); }
.rjpv-form-hero h1 { font-size: clamp(50px,6vw,82px); line-height: .92; margin: 22px 0; }
.rjpv-form-hero > p:last-child { font: 400 clamp(20px,2vw,28px)/1.3 var(--serif,Georgia,serif); max-width: 760px; }
.rjpv-proposal { max-width: 1080px; margin: 0 auto; padding: clamp(58px,8vw,110px) clamp(22px,5vw,60px); }
.rjpv-proposal fieldset { border: 0; border-top: 1px solid rgb(81 48 31 / 22%); margin: 0; padding: 46px 0 58px; }
.rjpv-proposal legend { align-items: center; display: flex; font: 500 clamp(31px,3vw,42px)/1 var(--serif,Georgia,serif); gap: 18px; padding: 0 24px 0 0; }
.rjpv-proposal legend span { color: var(--rjpv-terracotta); font: 700 11px/1 var(--sans,Arial,sans-serif); }
.rjpv-grid { display: grid; gap: 22px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 30px; }
.rjpv-proposal label b { color: var(--rjpv-terracotta); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.rjpv-proposal label em { color: rgb(36 23 17 / 53%); font-size: 10px; font-style: normal; font-weight: 500; }
.rjpv-proposal label small { color: rgb(36 23 17 / 58%); font-weight: 500; letter-spacing: 0; }
.rjpv-choice { display: flex; flex-wrap: wrap; gap: 12px; margin: 26px 0 0; }
.rjpv-choice label { align-items: center; background: var(--rjpv-paper); border: 1px solid rgb(81 48 31 / 18%); display: flex; flex-direction: row; min-height: 48px; padding: 12px 16px; }
.rjpv-choice input,.rjpv-check input,.rjpv-options input { min-height: 18px; padding: 0; width: 18px; }
.rjpv-adult-fields,.rjpv-minor-fields { margin-top: 24px; }
.rjpv-minor-fields[hidden],.rjpv-adult-fields[hidden] { display: none; }
.rjpv-safety { background: #ebe1d3; border-left: 4px solid var(--rjpv-ochre); color: var(--rjpv-cocoa); padding: 18px 20px; }
.rjpv-options { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 30px 0; }
.rjpv-options label { align-items: center; background: var(--rjpv-paper); border: 1px solid rgb(81 48 31 / 14%); display: flex; flex-direction: row; gap: 12px; min-height: 52px; padding: 14px 16px; }
.rjpv-proposal > fieldset > label { margin-top: 28px; }
.rjpv-consents { display: grid; gap: 14px; margin: 30px 0; }
.rjpv-check { align-items: flex-start !important; display: flex !important; flex-direction: row !important; gap: 13px !important; letter-spacing: 0 !important; line-height: 1.55 !important; }
.rjpv-check a { color: var(--rjpv-terracotta); }
.rjpv-form-note { color: rgb(36 23 17 / 62%); font-size: 12px; margin-top: 14px; }
.rjpv-honeypot { height: 1px !important; left: -10000px !important; overflow: hidden !important; position: absolute !important; width: 1px !important; }

.rjpv-detail { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(350px,.88fr); max-width: 1320px; margin: 0 auto; padding: clamp(65px,8vw,115px) clamp(24px,5vw,70px); }
.rjpv-detail__story { background: var(--rjpv-cocoa); color: var(--rjpv-paper); padding: clamp(42px,6vw,84px); }
.rjpv-detail__story .eyebrow { color: var(--rjpv-gold); }
.rjpv-detail__story h1 { font-size: clamp(45px,5vw,72px); line-height: .94; margin: 24px 0; }
.rjpv-lead { color: var(--rjpv-gold); font: 500 21px/1.3 var(--serif,Georgia,serif); }
.rjpv-detail__facts { border-block: 1px solid rgb(255 253 250 / 18%); display: grid; gap: 0; margin: 32px 0; }
.rjpv-detail__facts p { display: grid; gap: 10px; grid-template-columns: 180px 1fr; margin: 0; padding: 14px 0; }
.rjpv-detail__facts strong { color: rgb(255 253 250 / 62%); font: 600 10px/1.4 var(--sans,Arial,sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.rjpv-detail__story blockquote { font-size: clamp(25px,2.5vw,34px); line-height: 1.15; margin: 35px 0; }
.rjpv-share { background: transparent; border: 0; border-bottom: 1px solid var(--rjpv-gold); color: var(--rjpv-gold); cursor: pointer; font: 700 11px/1.4 var(--sans,Arial,sans-serif); padding: 6px 0; text-transform: uppercase; letter-spacing: .08em; }
.rjpv-contact { background: var(--rjpv-paper); border: 1px solid rgb(81 48 31 / 14%); padding: clamp(38px,5vw,70px); }
.rjpv-contact h2 { font-size: clamp(36px,3.5vw,50px); line-height: 1; margin: 18px 0; }
.rjpv-contact form { display: grid; gap: 17px; margin-top: 28px; }
.rjpv-contact textarea { resize: vertical; }

.rjpv-legal,.rjpv-panel { background: var(--rjpv-paper); max-width: 980px; margin: clamp(40px,7vw,90px) auto; padding: clamp(38px,7vw,90px); }
.rjpv-legal h1,.rjpv-panel h1 { font-size: clamp(43px,5vw,68px); line-height: .95; margin: 22px 0 38px; }
.rjpv-legal h2 { font-size: clamp(29px,3vw,40px); line-height: 1; margin: 44px 0 14px; }
.rjpv-legal p,.rjpv-panel p { font: 400 20px/1.55 var(--serif,Georgia,serif); }
.rjpv-panel--narrow { max-width: 760px; text-align: center; }
.rjpv-feedback { display: flex; gap: 14px; justify-content: center; margin-top: 30px; }
.rjpv-footer { margin: 0 auto; }

@media (max-width: 1100px) {
    .rjpv-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .rjpv-hero { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
    .rjpv-hero,.rjpv-detail,.rjpv-how { grid-template-columns: 1fr; }
    .rjpv-hero { min-height: 0; }
    .rjpv-search { min-height: 500px; }
    .rjpv-safety-band { grid-template-columns: auto 1fr; }
    .rjpv-safety-band a { grid-column: 2; }
}
@media (max-width: 680px) {
    .rjpv-hero__copy { padding: 65px 25px 72px; }
    .rjpv-hero h1 { font-size: clamp(50px,15vw,68px); }
    .rjpv-search { min-height: 0; padding: 62px 24px; }
    .rjpv-cards,.rjpv-grid,.rjpv-options { grid-template-columns: 1fr; }
    .rjpv-results { padding-inline: 20px; }
    .rjpv-section-heading { align-items: stretch; flex-direction: column; }
    .rjpv-card { min-height: 0; }
    .rjpv-detail { padding: 0; }
    .rjpv-detail__story,.rjpv-contact { padding: 46px 24px; }
    .rjpv-detail__facts p { grid-template-columns: 1fr; }
    .rjpv-form-hero { padding-inline: 24px; }
    .rjpv-proposal { padding-inline: 20px; }
    .rjpv-proposal legend { align-items: flex-start; }
    .rjpv-choice,.rjpv-feedback { align-items: stretch; flex-direction: column; }
    .rjpv-safety-band { grid-template-columns: 1fr; text-align: left; }
    .rjpv-safety-band a { grid-column: 1; }
    .rjpv-legal,.rjpv-panel { margin: 20px; padding: 38px 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .rjpv-button { transition: none; }
}
