:root { --paper:#fffaf2; --cream:#f4efe5; --cedar:#9f5422; --ember:#d96118; --ember-dark:#a94712; --ink:#102c38; --muted:#60717a; --line:#ded1c0; --white:#fff; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height:1.5; }
a { color:inherit; text-decoration:none; }
button, input, select, textarea { font:inherit; }
.wrap { width:min(1160px, calc(100% - 32px)); margin:0 auto; }
.topbar { position:sticky; top:0; z-index:20; background:rgba(255,250,242,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.nav { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.logo { width:58px; height:58px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.logo img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 14px rgba(16,44,56,.12)); }
.brand-main { display:block; font-family:Impact, "Arial Black", sans-serif; font-size:24px; line-height:.95; letter-spacing:.03em; }
.brand-sub { display:block; color:var(--cedar); font-size:10px; letter-spacing:.32em; }
.links { display:flex; align-items:center; gap:26px; color:#29414b; font-size:13px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.menu-toggle { display:none; width:48px; height:48px; align-items:center; justify-content:center; border:1px solid var(--line); background:#fffdf8; color:var(--ink); cursor:pointer; }
.menu-toggle svg { width:22px; height:22px; }
.mobile-links { display:none; padding:0 0 14px; border-top:1px solid rgba(222,209,192,.7); }
.mobile-links.open { display:grid; }
.mobile-links a { min-height:44px; display:flex; align-items:center; border-bottom:1px solid rgba(222,209,192,.7); color:#29414b; font-size:13px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.button, .nav-cta { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 18px; border:0; background:var(--ember); color:var(--white); font-weight:900; text-transform:uppercase; letter-spacing:.04em; cursor:pointer; box-shadow:0 12px 24px rgba(217,97,24,.24); }
.button:hover, .nav-cta:hover { background:var(--ember-dark); }
.button.ghost { background:transparent; color:var(--ink); border:1px solid var(--line); box-shadow:none; }
.hero { padding:70px 0 36px; background:var(--ink) url("../images/jackfish-hero-branded.png") center / cover no-repeat; color:var(--white); position:relative; }
.hero:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(16,44,56,.9), rgba(16,44,56,.58)); }
.hero .wrap { position:relative; z-index:1; }
.tag { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; border:1px solid rgba(222,209,192,.35); color:#ffc49d; background:rgba(255,250,242,.08); font-size:12px; font-weight:950; letter-spacing:.13em; text-transform:uppercase; }
h1, h2, h3 { font-family:Impact, "Arial Black", sans-serif; text-transform:uppercase; letter-spacing:.035em; }
h1 { max-width:850px; margin:18px 0 14px; font-size:clamp(46px, 8vw, 86px); line-height:.92; }
.hero p { max-width:700px; margin:0; color:rgba(255,255,255,.8); font-size:18px; }
section { padding:54px 0; }
.grid { display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(320px, .8fr); gap:22px; align-items:start; }
.panel, .summary { min-width:0; background:var(--white); border:1px solid var(--line); box-shadow:0 16px 42px rgba(26,39,45,.08); padding:26px; }
.form-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1 / -1; }
.field label { color:#314751; font-size:13px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.field input, .field select, .field textarea { width:100%; min-height:48px; border:1px solid var(--line); background:#fffdf8; color:var(--ink); padding:11px 12px; outline:0; }
.field textarea { min-height:98px; resize:vertical; }
.checks { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; }
.check { display:flex; gap:10px; align-items:start; min-height:54px; padding:12px; border:1px solid var(--line); background:#fffdf8; cursor:pointer; }
.check input { width:18px; height:18px; margin-top:2px; accent-color:var(--ember); }
.summary { position:sticky; top:96px; }
.summary h3 { margin:0 0 12px; font-size:30px; line-height:1; }
.summary p { color:var(--muted); margin:0 0 16px; }
.build-summary { display:grid; gap:12px; padding:0 0 16px; border-bottom:1px solid var(--line); }
.summary-row { display:flex; justify-content:space-between; gap:18px; min-width:0; color:var(--muted); font-size:14px; }
.summary-row strong { min-width:0; color:var(--ink); text-align:right; overflow-wrap:anywhere; }
.actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:18px; }
.summary-actions { display:grid; gap:10px; margin-top:18px; }
.notice { display:none; margin-top:16px; padding:13px 14px; border:1px solid rgba(217,97,24,.35); background:#fff4eb; color:#7d3912; font-weight:760; }
.notice.show { display:block; }
.notice.success { border-color:#bfd7c3; background:#edf6ef; color:#245735; }
.loading-modal { position:fixed; inset:0; z-index:40; display:none; place-items:center; padding:24px; background:rgba(16,44,56,.58); backdrop-filter:blur(8px); }
.loading-modal.show { display:grid; }
.loading-card { width:min(420px,100%); padding:26px; background:var(--paper); border:1px solid var(--line); box-shadow:0 24px 70px rgba(16,44,56,.26); text-align:center; }
.loading-card h2 { margin:14px 0 8px; font-size:32px; line-height:1; }
.loading-card p { margin:0; color:var(--muted); }
.spinner { width:44px; height:44px; margin:0 auto; border:4px solid rgba(217,97,24,.18); border-top-color:var(--ember); border-radius:999px; animation:spin 850ms linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.footer { background:var(--ink); color:rgba(255,255,255,.82); padding:28px 0; }
.foot { display:flex; align-items:center; justify-content:space-between; gap:22px; }
.footer .brand-main { color:var(--white); }
.footer .brand-sub { color:#ffc49d; }
.foot-links { display:flex; flex-wrap:wrap; gap:24px; font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
@media(max-width:900px){ .links{display:none;} .menu-toggle{display:inline-flex;} .grid{grid-template-columns:1fr;} .summary{position:static;} }
@media(max-width:640px){ .wrap{width:min(100% - 24px, 1160px);} .logo{width:50px;height:50px;} .brand-main{font-size:20px;} .brand-sub{font-size:9px;} .form-grid,.checks{grid-template-columns:1fr;} .panel,.summary{padding:18px;} .button{width:100%;} .foot{align-items:flex-start; flex-direction:column;} }
