/* Gate Ready Guide, v2 design (UX tasks/REDESIGN/plan.md, gate-home and gate-result). Self-hosted Manrope (SIL OFL 1.1, manrope-OFL.txt); no third-party requests. */
@font-face{font-family:Manrope;src:url(/assets/manrope.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--b:#0b6f8f;--d:#0a2a3a;--a:#f59e0b;--t:#e3f2f8;--i:#07384a;--ink:#14181f;--muted:#4b5563;--line:#e3e7ee;--bg:#fff;--bg2:#f6f8fb;--r:16px;--ui:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--shadow:0 1px 2px rgba(16,24,40,.06),0 10px 30px rgba(16,24,40,.08);--pass-bg:#dcfce7;--pass:#14532d;--fail-bg:#fee2e2;--fail:#7f1d1d;--chk-bg:#fff7e0;--chk:#6b4a00}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:500 1.0625rem/1.6 var(--ui);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}
h1,h2,h3{font-family:var(--ui);font-weight:800;line-height:1.12;letter-spacing:-.02em;margin:0 0 .45em}
h1{font-size:clamp(2rem,4.2vw,3rem)}h2{font-size:clamp(1.35rem,2.4vw,1.8rem);margin-top:1.6em}h3{font-size:1.15rem;letter-spacing:-.01em}
p{margin:0 0 1em}a{color:var(--b);text-underline-offset:2px}.content a{overflow-wrap:anywhere}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.ic{width:1.2em;height:1.2em;flex:none;vertical-align:-.22em}.ic.big{width:26px;height:26px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:3px solid var(--a);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:var(--ink);padding:10px 14px;border-radius:8px;z-index:30}.skip:focus{left:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}.js-only{display:none!important}.js .js-only{display:flex!important}
/* header */
.site-header{background:var(--d);color:#fff}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;min-height:68px;padding-top:8px;padding-bottom:8px}
.logo{display:flex;align-items:center;gap:10px}
.logo .mk{display:block;width:38px;height:38px;border-radius:11px;background:var(--a) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 21V3M18 21V3M6 7h12M6 16h12'/%3E%3C/svg%3E") center/22px 22px no-repeat}
.brand{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none;font-weight:800;font-size:1.15rem;letter-spacing:-.01em}
.site-header nav{margin-left:auto}.site-header nav ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:#e5eaf2;text-decoration:none;font-weight:650;font-size:.95rem}
.site-header nav a:hover{background:rgba(255,255,255,.12)}
.site-header nav li:first-child a{background:var(--a);color:#111;font-weight:800}
/* buttons, chips */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:14px;background:var(--b);color:#fff;border:0;font:800 1rem var(--ui);text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(.92)}.btn.acc{background:var(--a);color:#111}.btn.secondary{background:#fff;color:var(--ink);border:1.5px solid #cdd3dd}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;background:#fff;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;font:700 .92rem var(--ui);cursor:pointer}
.chip:hover{border-color:var(--b)}.chip[aria-pressed=true]{background:var(--b);border-color:var(--b);color:#fff}
/* hero */
.hero{background:radial-gradient(900px 420px at 80% -10%,rgba(11,111,143,.55),transparent 70%),linear-gradient(160deg,var(--d),#0c3d52);color:#fff;padding:52px 0 44px}
.hero h1{color:#fff;margin-bottom:.3em}.hero .lede{font-size:1.15rem;color:#d7e0ec;max-width:60ch}
.hero a:not(.btn):not(.chip){color:#fff}.hero .crumbs{font-size:.9rem;color:#cbd5e1;margin:0 0 14px}
.hero .notice-top{background:#fffbeb;color:#3b2a05;border:2px solid var(--a);border-radius:14px;padding:12px 16px;font-size:.95rem;margin:0 0 18px;max-width:72ch}
.page-hero{padding:36px 0 32px}
.home-hero h1{font-size:clamp(2.6rem,5.6vw,4.2rem)}
.home-hero{position:relative;overflow:hidden;min-height:520px;box-sizing:border-box}.home-hero>.wrap{position:relative;z-index:1}.hero-copy{max-width:640px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:800 .78rem var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--a);margin:0 0 16px}
.sbox{background:#fff;border-radius:20px;padding:10px;gap:10px;box-shadow:0 18px 50px rgba(0,0,0,.28);margin:22px 0 8px;max-width:640px}
.sbox .f{flex:1;display:flex;align-items:center;gap:12px;padding:0 14px;color:#374151}.sbox .f .ic{color:var(--b);width:24px;height:24px}
.sbox input{flex:1;border:0;outline:0;font:600 1.05rem var(--ui);min-height:52px;background:transparent;color:#111;min-width:0}.sbox input::placeholder{color:#6b7280}
.sbox:focus-within{outline:3px solid var(--a)}
.search-msg{min-height:1.2em;color:#fde68a;font-weight:650;margin:0}
.popular{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem;color:#cbd5e1;margin:16px 0 0}
.popular .chip{min-height:44px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff;font-size:.86rem}
/* trust */
.trust{background:#fff;border-bottom:1px solid var(--line)}.trust ul{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0}
.trust li{display:flex;gap:12px;align-items:center;padding:16px 18px;border-left:1px solid var(--line);font-size:.9rem;line-height:1.35;font-weight:700}.trust li:first-child{border-left:0}
.trust .ic{color:var(--b);width:26px;height:26px}.trust small{display:block;color:var(--muted);font-weight:500}
/* content */
main{display:block}.content{padding-top:8px;padding-bottom:56px}.content>h2:first-child,.content>section:first-child>h2:first-child{margin-top:1em}
.blk{padding:36px 0 8px}.sub{color:var(--muted);max-width:62ch}
.filters{flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 22px}.vcount{font-weight:700;color:var(--muted);font-size:.9rem;margin-left:4px}
.vgrid,.howgrid{display:grid;gap:18px;list-style:none;margin:0;padding:0;grid-template-columns:repeat(3,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:8px;height:100%}
a.card:hover{box-shadow:var(--shadow);border-color:var(--b)}
.card h3{margin:2px 0 0}.card p{margin:0;color:var(--muted)}.card .ic.big{color:var(--i);background:var(--t);border-radius:14px;padding:10px;width:48px;height:48px;box-sizing:border-box}
.badge{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:800 .75rem var(--ui);background:var(--t);color:var(--i)}
.vcard .where{color:var(--muted);font-size:.92rem}.vcard .rule{color:#374151;font-size:.95rem}
.cb{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:800 .8rem var(--ui)}.cb .ic{width:15px;height:15px}
.cb-yes{background:#fef3c7;color:#78350f}.cb-no,.cb-unstated{background:var(--bg2);color:var(--muted)}
.vcard .go{margin-top:auto;font-weight:800;font-size:.92rem;color:var(--b);display:inline-flex;gap:6px;align-items:center}
.more{margin:22px 0 0}
.lede{font-size:1.1rem;color:var(--muted);max-width:62ch}
.crumbs{font-size:.9rem;color:var(--muted)}
.notice-top{background:#fffbeb;border:2px solid var(--a);border-radius:14px;padding:12px 16px;font-size:.95rem;margin:12px 0 16px}
.notice-foot{font-size:.88rem;color:var(--muted);margin-top:2rem}
.small,.note{font-size:.9rem;color:var(--muted)}
.content section{margin:0}.content ul:not(.quick):not(.cards):not(.vgrid):not(.howgrid) li{margin:.35rem 0}
/* venue: quick answer cards */
.quick{list-style:none;padding:0;margin:14px 0 16px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
.quick li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px 14px 52px;position:relative;font-weight:650;line-height:1.45}
.quick li::before{content:"";position:absolute;left:14px;top:14px;width:26px;height:26px;border-radius:8px;background:var(--t) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2307384a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px 16px no-repeat}
.gate-line{border:2px solid var(--b);border-radius:14px;padding:12px 16px;background:#fff;font-size:.95rem}
.verified{font-size:.95rem}
.stale{background:var(--fail-bg);color:var(--fail);padding:10px 14px;border-radius:12px}
.callout{border:2px solid var(--b);border-radius:16px;padding:6px 20px 14px;margin:24px 0;background:#fff}.callout h2{margin-top:.6em}
/* checker */
.checker{background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:22px;margin:16px 0}
.checker form{display:block}
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.field{display:flex;flex-direction:column;gap:6px}
label{font:800 .8rem var(--ui);letter-spacing:.04em;text-transform:uppercase;color:#374151}
input,select{font:600 1rem var(--ui);padding:10px 14px;border:1.5px solid #8a94a3;border-radius:12px;background:#fff;color:var(--ink);min-height:52px;width:100%}
fieldset{border:0;border-top:1px solid var(--line);margin:16px 0 0;padding:14px 0 0}legend{font-weight:800;padding:0 0 8px}
.checker .btn{width:100%;margin-top:18px;background:var(--a);color:#111}
.result{margin:16px 0 0;padding:0}
.v{display:inline-block;font-weight:800;font-size:.85rem;border-radius:999px;padding:3px 10px;white-space:nowrap}
.v-yes,.v-if,.v-fits{background:var(--pass-bg);color:var(--pass)}
.v-no,.v-over{background:var(--fail-bg);color:var(--fail)}
.v-check,.v-invalid{background:var(--chk-bg);color:var(--chk)}
.v-box{border:2px solid var(--line);border-radius:16px;padding:12px 16px;margin:16px 0;background:#fff}
.v-box.v-yes,.v-box.v-if,.v-box.v-fits{border-color:#16a34a;background:#f0fdf4;color:var(--ink)}
.v-box.v-no,.v-box.v-over{border-color:#dc2626;background:#fef2f2;color:var(--ink)}
.v-box.v-check,.v-box.v-invalid{border-color:var(--a);background:#fffbeb;color:var(--ink)}
.v-box p{margin:.3em 0}
/* tables */
.scroll{overflow-x:auto;margin:16px 0;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table.chart{border-collapse:collapse;width:100%;font-size:.95rem}
table.chart caption{text-align:left;font-weight:800;padding:12px 14px;color:var(--i)}
table.chart th,table.chart td{border-top:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top}
table.chart thead th{background:var(--t);color:var(--i);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;font-weight:800}
table.chart th[scope=row]{font-weight:800}
table.chart tbody tr:nth-child(even){background:#fafbfd}table.chart tbody tr:hover{background:var(--t)}
table.chart td:nth-child(3){min-width:16rem}
/* cruise (plain layout: reviewed body is the whole of <main>) */
.plain{padding-top:28px}
.cards{list-style:none;padding:0;margin:20px 0;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.cards li{border:1px solid var(--line);border-radius:var(--r);padding:18px;background:#fff}.cards h2,.cards h3{margin:0 0 .35rem;font-size:1.1rem}.cards p{margin:0;color:var(--muted)}
/* footer */
.site-footer{background:var(--d);color:#cbd5e1;padding:36px 0;font-size:.92rem;margin-top:24px}
.site-footer a{color:#fff}.site-footer .notice{max-width:90ch}.site-footer .small,.site-footer .notice-foot{color:#cbd5e1}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;padding:0;margin:12px 0}
.foot-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
@media(max-width:980px){.vgrid,.howgrid{grid-template-columns:repeat(2,1fr)}.trust ul{grid-template-columns:repeat(2,1fr)}.trust li:nth-child(3){border-left:0}}
@media(max-width:600px){.wrap{padding:0 16px}.site-header nav{margin-left:-12px;width:calc(100% + 12px)}.site-header nav a{padding:0 10px;font-size:.9rem}
 .hero{padding:32px 0 28px}.sbox{flex-direction:column}.sbox .btn{width:100%}.vgrid,.howgrid,.quick{grid-template-columns:1fr}
 .trust ul{grid-template-columns:1fr}.trust li{border-left:0;border-top:1px solid var(--line)}.trust li:first-child{border-top:0}.checker{padding:16px}}
@media print{.site-header,.site-footer .foot-links,nav,.skip,.checker form,.sbox,.filters{display:none!important}.hero{background:none;color:#000}.hero h1{color:#000}body{font-size:11pt}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Cruise photos: width and height attributes reserve the space. */
.port-photo{margin:0 0 18px;max-width:640px}.cruise-hero{margin:0 0 16px}.port-photo img,.cruise-hero img,.cards li>img{display:block;width:100%;height:auto;border-radius:14px}.cards li>img{margin:0 0 12px}.port-photo figcaption,.cruise-hero figcaption{font-size:.85rem;margin-top:6px;opacity:.85}
/* A86 ad space: removed while hidden, and reserved when shown so filling it can't shift the layout. */
.ad-slot[hidden]{display:none!important}
/* The label sits in the padding, so the reserved height is still the ad's own. */
.ad-slot{display:block;position:relative;box-sizing:content-box;margin:2rem 0;padding-top:28px;min-height:250px}
.ad-slot::before{content:"Advertisement";position:absolute;top:0;left:0;font-size:13px;line-height:20px;color:var(--muted)}
.ad-slot[data-ad-status="unfilled"],.ad-slot:has(ins[data-ad-status="unfilled"]){display:none}
@media (max-width: 640px){.ad-slot{min-height:280px}}
/* Gate photos: every box is sized by CSS, so a late image can't shift the page or the ad space. */
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,33,46,.95),rgba(9,33,46,.86) 52%,rgba(9,33,46,.4))}
.hero-note,.gate-strip figcaption{font-size:.8rem;color:var(--muted);padding-top:6px;padding-bottom:6px;margin-bottom:0}
.hero-note{margin-top:0}
.gate-strip{margin:0}.gate-strip img{display:block;width:100%;height:280px;object-fit:cover}
.vcard{overflow:hidden}.vcard-photo{display:block;width:calc(100% + 40px);max-width:none;height:auto;aspect-ratio:8/5;object-fit:cover;margin:-20px -20px 6px}
.clear-bag{display:flex;align-items:center;gap:16px;margin:1.25rem 0;max-width:760px}.clear-bag svg{flex:0 0 auto;width:120px;height:100px}.clear-bag figcaption{font-size:.9rem;color:var(--muted)}
@media(max-width:980px){.home-hero::after{background:rgba(9,33,46,.88)}}
@media(max-width:600px){.gate-strip img{height:160px}}
@media print{.hero-photo,.home-hero::after,.gate-strip,.vcard-photo,.clear-bag{display:none}}
