/* Policy and Contact pages: calm light reading surface with the shared dark footer. */
.pub-body-policy .pub-service-backdrop { display: none; }
.pub-body-policy .pub-main { position: relative; z-index: 1; background: #f7f3ec; }
.pub-body-policy .pub-footer { background: radial-gradient(80% 130% at 88% 0%, rgba(232,169,92,.12), transparent 58%), #1b1109; color: #f7edda; border-top-color: rgba(232,169,92,.2); }
.pub-body-policy .pub-footer-inner { max-width: 1180px; }
.pub-body-policy .pub-footer-policy-links { display: flex; flex-direction: column; gap: .35rem; }
.pub-body-policy .pub-footer-policy-links a { color: #f7edda; text-decoration: none; }
.pub-body-policy .pub-footer-policy-links a:hover { color: #e7a64f; }

.policy-wrap { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.policy-hero { position: relative; overflow: hidden; background: linear-gradient(112deg, #fffdf9, #f5efe5 54%, #fbf7f0); border-bottom: 1px solid #d9cdbd; }
.policy-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55; background: radial-gradient(circle at 80% 45%, rgba(231,166,79,.16), transparent 30%), radial-gradient(circle at 14% 20%, rgba(231,198,142,.11), transparent 26%); }
.policy-hero-inner { position: relative; z-index: 1; min-height: 320px; padding: 70px 0 62px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.policy-hero-copy { max-width: 790px; }
.policy-eyebrow, .policy-kicker { margin: 0 0 13px; color: #c58a27; font-size: 11px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.policy-hero h1 { max-width: 790px; margin: 0; color: #27282c; font: 400 clamp(42px, 6vw, 74px)/1.03 Cinzel, Georgia, serif; letter-spacing: -.02em; }
.policy-hero-intro { max-width: 620px; margin: 22px 0 0; color: #766f66; font-size: 18px; line-height: 1.65; }
.policy-mark { flex: 0 0 clamp(180px, 23vw, 260px); width: clamp(180px, 23vw, 260px); height: clamp(180px, 23vw, 260px); opacity: .16; display: grid; place-items: center; mix-blend-mode: multiply; }
.policy-mark-image { width: 100%; height: 100%; object-fit: contain; filter: sepia(.3) saturate(.9); }
.policy-main { padding: 52px 0 82px; }
.policy-notice { margin: 0 0 30px; padding: 14px 18px; border-left: 3px solid #e7a64f; background: #fff5df; color: #73551b; font-size: 13px; }
.policy-notice a { color: #73551b; font-weight: 600; }
.policy-layout { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 46px; align-items: start; }
.policy-card { min-width: 0; padding: 44px 50px; background: #fffdf9; border: 1px solid #d9cdbd; border-radius: 20px; box-shadow: 0 18px 34px rgba(57,36,18,.07); }
.policy-card h2 { margin: 0 0 18px; color: #27282c; font: 400 38px/1.2 Cinzel, Georgia, serif; }
.policy-section + .policy-section { margin-top: 34px; }
.policy-section h3 { margin: 0 0 8px; color: #7f5a17; font: 600 21px/1.3 Cinzel, Georgia, serif; }
.policy-section p, .policy-section li { color: #4e4942; line-height: 1.75; }
.policy-section p { margin: 10px 0; }
.policy-section ul { margin: 10px 0 0; padding-left: 24px; }
.policy-section li { margin: 7px 0; }
.policy-index { position: sticky; top: 22px; padding: 21px; background: rgba(255,255,255,.55); border: 1px solid #d9cdbd; border-radius: 16px; }
.policy-index h2 { margin: 0 0 10px; color: #27282c; font: 600 19px/1.2 Cinzel, Georgia, serif; }
.policy-index a { display: block; padding: 9px 0; border-bottom: 1px solid rgba(217,205,189,.75); color: #6d4d14; font-size: 13px; text-decoration: none; }
.policy-index a:last-child { border-bottom: 0; }
.policy-index a:hover { color: #b17717; }

/* The existing ContactController uses the same CSRF/honeypot pipeline. */
.policy-contact-hero { padding-bottom: 54px; }
.policy-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 28px; }
.policy-contact-card { padding: 22px; border: 1px solid #d9cdbd; border-radius: 14px; background: #fffaf1; }
.policy-contact-card h3 { margin: 0 0 8px; color: #7f5a17; font: 600 20px/1.3 Cinzel, Georgia, serif; }
.policy-contact-card p { margin: 8px 0; color: #4e4942; }
.policy-contact-card a { color: #7f5a17; }
.policy-contact-form { margin-top: 26px; }
.policy-contact-form .pub-form { background: #f2e9dc; border-color: #d3c3af; box-shadow: none; }
.policy-contact-form .pub-btn { background: #e7a64f; color: #2d1a06; }
.policy-contact-form .pub-confirm { background: #fffdf9; }
.policy-contact-form .pub-title { font-family: Cinzel, Georgia, serif; }
.policy-form-lede { margin: 0 0 22px; color: #6f675e; line-height: 1.65; }

@media (max-width: 800px) {
    .policy-wrap { width: min(1180px, calc(100% - 36px)); }
    .policy-hero-inner { min-height: 0; padding: 52px 0 46px; display: block; }
    .policy-hero h1 { font-size: clamp(38px, 11vw, 60px); }
    .policy-hero-intro { font-size: 16px; }
    .policy-mark { display: none; }
    .policy-main { padding: 38px 0 58px; }
    .policy-layout { display: block; }
    .policy-card { padding: 29px 22px; border-radius: 16px; }
    .policy-card h2 { font-size: 30px; }
    .policy-index { position: static; margin-top: 18px; }
    .policy-contact-grid { grid-template-columns: 1fr; }
}
