:root{--gold:#C9A227;--gold-soft:#F4ECD3;--navy:#0A1A3D;--navy-2:#15296B;--paper:#FBFAF6;--spring:cubic-bezier(0.32,0.72,0,1)}
.bg-guide{background:var(--paper)}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:#fff;color:var(--navy);padding:10px 16px;border-radius:999px;font-weight:700}
.skip-link:focus{left:12px}
.bg-guide a:focus-visible,.bg-guide button:focus-visible,.bg-guide input:focus-visible,.bg-guide select:focus-visible,.bg-guide textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.g-hero{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding:72px 0 64px}
.g-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 10%,rgba(59,91,204,.45),transparent 60%),radial-gradient(40% 60% at 0% 100%,rgba(201,162,39,.18),transparent 60%);pointer-events:none}
.g-hero .container{position:relative}
.g-marks{position:absolute;inset:18px;pointer-events:none;opacity:.35}
.g-marks i{position:absolute;width:22px;height:22px;border-color:rgba(255,255,255,.7);border-style:solid;border-width:0}
.g-marks i:nth-child(1){top:0;left:0;border-top-width:1px;border-left-width:1px}
.g-marks i:nth-child(2){top:0;right:0;border-top-width:1px;border-right-width:1px}
.g-marks i:nth-child(3){bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}
.g-marks i:nth-child(4){bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.g-pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:5px 12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;background:rgba(255,255,255,.08);color:var(--gold-soft);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.g-pill.light{background:var(--gold-soft);color:#5A4708;box-shadow:none}
.g-hero h1{color:#fff;font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.04;letter-spacing:-.03em;margin:18px 0 16px;max-width:15ch}
.g-hero h1 em{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:600;color:var(--gold-soft);letter-spacing:-.01em}
.g-hero .lede{color:rgba(255,255,255,.84);font-size:1.08rem;max-width:60ch;margin:0}
.g-crumbs{font-size:.85rem;color:rgba(255,255,255,.7);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.g-crumbs a{color:rgba(255,255,255,.78);display:inline-flex;align-items:center;min-height:44px}
.g-crumbs a:hover{color:#fff}
.g-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.g-stat{border-radius:18px;padding:12px 18px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.g-stat b{display:block;font-size:1.6rem;line-height:1.1;color:#fff}
.g-stat span{font-size:.82rem;color:rgba(255,255,255,.72)}
.g-sec{padding:72px 0}
.g-sec.tight{padding:48px 0}
.g-h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.02em;margin:10px 0 8px}
.g-sub{color:var(--muted);margin:0 0 28px;max-width:62ch}
.bezel{border-radius:28px;padding:6px;background:rgba(10,26,61,.035);box-shadow:inset 0 0 0 1px rgba(10,26,61,.07)}
.bezel>.core{border-radius:22px;background:#fff;box-shadow:0 1px 1px rgba(255,255,255,.9) inset,0 18px 40px -24px rgba(10,26,61,.25);padding:26px}
.answer .core{background:linear-gradient(180deg,#fff, #FDFBF4)}
.answer h2,.prose .answer h2{font-size:1.35rem;margin:0 0 8px;letter-spacing:-.01em}
.g-pill .gi{width:15px;height:15px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.show-all{margin-top:22px}
.list-grid>[hidden]{display:none}
.answer p{margin:0;color:var(--ink-soft);font-size:1.04rem;line-height:1.65}
.answer .upd{margin-top:12px;font-size:.8rem;color:var(--muted)}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cat-tile{display:flex;flex-direction:column;gap:10px;border-radius:22px;background:#fff;padding:20px;box-shadow:inset 0 0 0 1px rgba(10,26,61,.08);color:var(--ink);transition:transform .6s var(--spring),box-shadow .6s var(--spring)}
.cat-tile:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(30,58,138,.25),0 22px 40px -26px rgba(10,26,61,.35);color:var(--ink)}
.cat-tile .gi{width:30px;height:30px;color:var(--blue-primary)}
.cat-tile b{font-size:1.02rem}
.cat-tile small{color:var(--muted);font-size:.85rem;line-height:1.45}
.cat-tile .n{font-size:.78rem;font-weight:700;color:#7A5F0A;letter-spacing:.06em;text-transform:uppercase}
.tools{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-bottom:22px}
.tools label{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field{width:100%;min-height:48px;border-radius:14px;border:1px solid #9AA3B8;background:#fff;padding:10px 14px;font:inherit;color:var(--ink)}
textarea.field{min-height:120px;resize:vertical}
.field[aria-invalid="true"]{border-color:#B42318}
.count{font-size:.9rem;color:var(--muted);margin:0 0 16px}
.list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{display:flex;flex-direction:column;border-radius:24px;background:#fff;padding:22px;box-shadow:inset 0 0 0 1px rgba(10,26,61,.08);color:var(--ink);transition:transform .6s var(--spring),box-shadow .6s var(--spring);min-height:100%}
.card:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px rgba(30,58,138,.22),0 24px 44px -28px rgba(10,26,61,.4);color:var(--ink)}
.card .tag{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-primary)}
.card .tag .gi{width:16px;height:16px}
.card h3{font-size:1.12rem;margin:10px 0 4px;line-height:1.3}
.card .city{font-size:.85rem;color:var(--muted)}
.card p{font-size:.93rem;color:var(--ink-soft);margin:10px 0 16px;line-height:1.55}
.card .more{margin-top:auto;font-weight:700;font-size:.9rem;color:var(--blue-primary);display:inline-flex;align-items:center;gap:8px}
.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 12px 6px 6px;background:var(--gold-soft);color:#4A3A06;font-size:.8rem;font-weight:700}
.badge .dot{width:22px;height:22px;border-radius:999px;background:var(--navy);display:inline-flex;align-items:center;justify-content:center}
.badge .dot svg{width:12px;height:12px;color:var(--gold-soft)}
.pill-btn{display:inline-flex;align-items:center;gap:12px;border-radius:999px;padding:8px 8px 8px 22px;min-height:52px;font-weight:700;background:var(--gold);color:var(--navy);border:0;cursor:pointer;font-size:1rem;transition:transform .5s var(--spring),background .3s}
.pill-btn:hover{background:#D9B53A;color:var(--navy)}
.pill-btn:active{transform:scale(.98)}
.pill-btn .ic{width:36px;height:36px;border-radius:999px;background:rgba(10,26,61,.12);display:inline-flex;align-items:center;justify-content:center;transition:transform .5s var(--spring)}
.pill-btn:hover .ic{transform:translate(2px,-1px) scale(1.05)}
.pill-btn.navy{background:var(--navy);color:#fff}
.pill-btn.navy .ic{background:rgba(255,255,255,.14)}
.pill-btn.navy:hover{background:var(--navy-2);color:#fff}
.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#fff;text-decoration:underline;text-underline-offset:4px}
.l-head{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:end}
.l-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:26px}
.l-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:start}
.prose h2{font-size:1.5rem;margin:40px 0 10px;letter-spacing:-.015em}
.prose p{font-size:1.05rem;line-height:1.7;color:var(--ink-soft)}
.svc{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.svc li{border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(10,26,61,.1);padding:8px 14px;font-size:.92rem}
.src{font-size:.85rem;color:var(--muted);margin-top:26px}
.details dl{margin:0;display:grid;gap:14px}
.details dt{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.details dd{margin:2px 0 0;font-size:1rem;overflow-wrap:anywhere}
.details dd a{display:inline-flex;align-items:center;min-height:44px}
.details h2,.inq h2{font-size:1.1rem;margin:0 0 14px}
.side{display:grid;gap:18px;position:sticky;top:96px}
.inq .row{margin-bottom:14px}
.inq label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.inq .opt{text-transform:none;letter-spacing:0;font-weight:400}
.inq .err{color:#B42318;font-size:.85rem;margin:6px 0 0}
.inq .note{font-size:.82rem;color:var(--muted);margin:10px 0 0}
.inq .ok{border-radius:18px;background:#EAF5EC;color:#14532D;padding:18px}
.inq .ok b{display:block;font-size:1.05rem;margin-bottom:4px}
.inq .fail{color:#B42318;font-size:.9rem;margin-top:10px}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.impress-cta{border-radius:24px;background:var(--navy);color:rgba(255,255,255,.86);padding:24px}
.impress-cta h2{color:#fff;font-size:1.1rem;margin:0 0 6px}
.impress-cta p{margin:0 0 12px;font-size:.95rem}
.impress-cta a.go{color:var(--gold-soft);font-weight:700;display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.row-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/2.6);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
.row-scroll>*{scroll-snap-align:start}
.faq-list{display:grid;gap:12px;max-width:820px}
.faq-list details{border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px rgba(10,26,61,.08);padding:4px 20px}
.faq-list summary{cursor:pointer;font-weight:700;min-height:52px;display:flex;align-items:center;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";margin-left:auto;padding-left:16px;font-size:1.3rem;color:var(--blue-primary);transition:transform .4s var(--spring)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list p{margin:0 0 16px;color:var(--ink-soft);line-height:1.65}
.band{border-radius:32px;background:var(--navy);color:#fff;padding:44px;display:grid;grid-template-columns:1.4fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(201,162,39,.35);pointer-events:none}
.band h2{color:#fff;font-size:clamp(1.4rem,2.6vw,1.9rem);margin:10px 0 8px;letter-spacing:-.02em}
.band p{margin:0;color:rgba(255,255,255,.82);max-width:58ch}
.empty{display:none;padding:24px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px rgba(10,26,61,.08)}
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--spring),transform .9s var(--spring)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.card,.cat-tile,.pill-btn,.pill-btn .ic{transition:none}}
@media (max-width:1000px){.cat-grid{grid-template-columns:repeat(2,1fr)}.list-grid{grid-template-columns:repeat(2,1fr)}.l-body{grid-template-columns:1fr}.side{position:static}.l-head{grid-template-columns:1fr;gap:20px}}
@media (max-width:640px){.g-hero{padding:48px 0 44px}.g-sec{padding:48px 0}.tools{grid-template-columns:1fr}.list-grid{grid-template-columns:1fr}.cat-grid{grid-template-columns:1fr 1fr;gap:10px}.cat-tile{padding:16px}.band{grid-template-columns:1fr;padding:28px}.bezel>.core{padding:20px}.row-scroll{grid-auto-columns:78%}}
