
:root{
  --navy:#0e2340; --navy-2:#16335c; --navy-3:#244a7c;
  --gold:#c5a253; --gold-2:#a8863a; --gold-soft:#f4ecd8;
  --ink:#1b2433; --muted:#5b6678; --line:#dfe3ea; --bg:#f5f3ee; --card:#ffffff;
  --req:#d0021b; --err:#b42318; --ok:#1f7a4d;
  --radius:16px;
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.5;font-size:16px}
img{max-width:100%;height:auto}
a{color:var(--navy-3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:10px 14px;z-index:50}
.skip:focus{left:8px;top:8px}

/* Masthead: logo on a light background */
.masthead{background:#fff;border-bottom:1px solid var(--line)}
.masthead-inner{max-width:1040px;margin:0 auto;padding:22px 20px 18px;display:flex;justify-content:center}
.logo{width:200px;height:auto;display:block}

/* Hero */
.hero{background:radial-gradient(1200px 400px at 50% -120px,var(--navy-3),var(--navy) 60%);color:#fff;position:relative}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.hero-inner{max-width:880px;margin:0 auto;padding:40px 20px 92px;text-align:center}
.eyebrow{margin:0 0 6px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,6vw,3.2rem);line-height:1.08;margin:0 0 12px;letter-spacing:.01em}
.hero-note p{margin:0 auto;max-width:560px;color:#d9e1ee;font-size:.98rem}
.hero-note span{color:#ff6b6b !important;font-weight:700}

/* Layout */
.wrap{max-width:880px;margin:-64px auto 0;padding:0 16px 140px;position:relative;z-index:2}
.lfg-form{display:flex;flex-direction:column;gap:22px}

/* Section cards */
.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 2px rgba(14,35,64,.06),0 10px 30px rgba(14,35,64,.08);overflow:hidden;border:1px solid rgba(14,35,64,.06)}
.card[hidden]{display:none}
.card-head{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfaf7);position:relative}
.card-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.card-num{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-weight:700;font-size:.9rem;border:2px solid var(--gold)}
.card-head h2{margin:0;font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--navy);line-height:1.1}
.card-head .ff-section_break_desk{color:var(--muted);font-size:.9rem}
.card-body{padding:22px 24px 26px;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:18px}

/* Field groups */
.ff-el-group{min-width:0}
.ff-el-group.ff_excluded,.ff_excluded{display:none !important}
.card-body > .ff-field_container,.card-body > .ff_list_inline,.card-body > .ff-el-group:has(textarea){grid-column:1/-1}
.ff-field_container .ff-t-container{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ff-el-input--label{display:flex;align-items:flex-start;gap:4px;margin-bottom:6px}
.ff-el-input--label label{font-weight:600;font-size:.92rem;color:var(--navy);line-height:1.3}
.ff-el-is-required.asterisk-right label::after{content:" *";color:var(--req);font-weight:700}
.ff-help{margin:-2px 0 8px;font-size:.8rem;line-height:1.4;color:var(--muted)}
.ff-help strong{color:var(--ink)}
.ff-el-form-control{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid #cfd5df;border-radius:10px;padding:12px 14px;min-height:48px;transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
select.ff-el-form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230e2340' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
textarea.ff-el-form-control{min-height:120px;resize:vertical}
input[type=date].ff-el-form-control{min-height:48px;line-height:1.2}
input[type=date]::-webkit-date-and-time-value{text-align:left}
.ff-el-form-control::placeholder{color:#9aa3b2}
.ff-el-form-control:hover{border-color:#b6bfcc}
.ff-el-form-control:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(197,162,83,.22)}
.ff_input-group{display:flex;align-items:stretch}
.ff_input-group-prepend{display:flex}
.ff_input-group-text{display:grid;place-items:center;min-width:44px;padding:0 12px;background:var(--gold-soft);color:var(--navy);font-weight:700;border:1.5px solid #cfd5df;border-right:0;border-radius:10px 0 0 10px}
.ff_input-group .ff-el-form-control{border-radius:0 10px 10px 0}
.ff_input-group:focus-within .ff_input-group-text{border-color:var(--gold)}

/* Checkboxes */
.ff_list_inline .ff-el-input--content{display:flex;flex-wrap:wrap;gap:10px}
.ff-el-form-check-label{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1.5px solid #cfd5df;border-radius:10px;cursor:pointer;background:#fff;font-size:.92rem;min-height:46px}
.ff-el-form-check-label:hover{border-color:var(--gold)}
.ff-el-form-check-input{width:20px;height:20px;accent-color:var(--navy);margin:0;flex:0 0 auto}
.ff-el-form-check-label:has(input:checked){border-color:var(--navy);background:#f1f4f9}

/* Errors */
.ff-el-group.has-error .ff-el-form-control,.ff-el-group.has-error .ff-el-form-check-label{border-color:var(--err)}
.err-text{color:var(--err);font-size:.82rem;margin-top:6px;font-weight:500}

/* Submit */
.submit-row{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 0}
.btn-submit{font:inherit;font-weight:700;font-size:1.05rem;letter-spacing:.04em;color:var(--navy);background:linear-gradient(180deg,#d8b866,var(--gold) 55%,var(--gold-2));border:0;border-radius:999px;padding:16px 44px;min-height:54px;cursor:pointer;box-shadow:0 6px 18px rgba(168,134,58,.35);transition:transform .12s,box-shadow .12s;width:100%;max-width:360px}
.btn-submit:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(168,134,58,.42)}
.btn-submit:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.btn-submit[disabled]{opacity:.7;cursor:progress;transform:none}
.form-error{color:var(--err);font-weight:600;margin:0;text-align:center}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.hidden-helpers{display:none}

/* Thank-you */
.thanks{background:#fff;border-radius:var(--radius);padding:48px 24px;text-align:center;box-shadow:0 10px 30px rgba(14,35,64,.1)}
.thanks-mark{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-size:30px;border:3px solid var(--gold)}
.thanks h2{font-family:var(--serif);font-size:2.2rem;color:var(--navy);margin:0 0 8px}
.thanks p{color:var(--muted);margin:0}

/* Progress dock */
.progress-dock{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;padding:0 12px calc(10px + env(safe-area-inset-bottom));pointer-events:none;transition:opacity .2s,transform .2s}
.progress-dock.is-hidden{opacity:0;transform:translateY(20px)}
.progress-inner{pointer-events:auto;width:100%;max-width:880px;background:rgba(14,35,64,.96);color:#fff;border-radius:14px;padding:10px 16px 12px;box-shadow:0 10px 30px rgba(0,0,0,.25);backdrop-filter:blur(6px)}
.progress-top{display:flex;align-items:baseline;gap:12px;font-size:.82rem;margin-bottom:7px}
.p-title{font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.72rem}
.p-count{color:#c9d3e3;margin-left:auto}
.p-pct{font-weight:700;font-size:.95rem}
.p-bar{height:7px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden}
.p-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold-2),#e2c57a);border-radius:99px;transition:width .3s ease}

/* Footer */
.site-footer{background:#fff;border-top:3px solid var(--gold);padding:28px 20px 110px;display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap;text-align:left}
.footer-logo{width:72px}
.footer-text p{margin:2px 0;color:var(--muted);font-size:.88rem}
.footer-text .f-name{color:var(--navy);font-weight:700;font-size:1rem}
.footer-text a{color:var(--navy-3);text-decoration:none;font-weight:600}
.footer-text a:hover{text-decoration:underline}

@media (max-width:640px){
  .masthead-inner{padding:16px 16px 12px}
  .logo{width:150px}
  .hero-inner{padding:28px 18px 84px}
  .wrap{padding:0 12px 130px}
  .card-head{padding:16px 18px}
  .card-head h2{font-size:1.38rem}
  .card-body{grid-template-columns:1fr;padding:18px 18px 22px;row-gap:16px}
  .ff-field_container .ff-t-container{grid-template-columns:1fr;gap:16px}
  .ff_list_inline .ff-el-form-check{width:100%}
  .site-footer{flex-direction:column;text-align:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}

.lfg-form[hidden],.thanks[hidden]{display:none!important}

/* Address suggestions */
.addr-ac-host{position:relative}
.addr-ac{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:#fff;border:1.5px solid var(--gold);border-radius:12px;box-shadow:0 14px 34px rgba(14,35,64,.18),0 2px 6px rgba(14,35,64,.08);overflow:hidden}
.addr-ac[hidden]{display:none}
.addr-ac-list{list-style:none;margin:0;padding:6px 0;max-height:min(340px,52vh);overflow-y:auto;-webkit-overflow-scrolling:touch}
.addr-ac-item{display:flex;flex-direction:column;gap:1px;padding:11px 16px;cursor:pointer;border-left:3px solid transparent;line-height:1.3;-webkit-tap-highlight-color:transparent}
.addr-ac-item + .addr-ac-item{border-top:1px solid #eef0f4}
.addr-ac-item:hover,.addr-ac-item[aria-selected="true"]{background:var(--gold-soft);border-left-color:var(--gold)}
.addr-ac-l1{font-weight:600;color:var(--navy);font-size:15.5px}
.addr-ac-l2{color:var(--muted);font-size:13.5px}
.addr-ac-foot{padding:7px 16px;font-size:11.5px;color:var(--muted);background:#fbfaf7;border-top:1px solid var(--line)}
.addr-ac-foot a{color:var(--navy-3)}
.card:has(.addr-ac:not([hidden])){overflow:visible;z-index:5;position:relative}
