/* Icebound Ratings — global styles. Editorial polar-travel palette: deep navy + ice + amber accent. */
:root{
  --navy-950:#0a1626;
  --navy-900:#0f2038;
  --navy-800:#16304f;
  --navy-700:#204569;
  --ice-50:#f5f8fb;
  --ice-100:#eaf1f6;
  --ice-200:#d9e6ef;
  --line:#d7e2ea;
  --ink:#101c2c;
  --muted:#57697c;
  --muted-2:#7c8ba0;
  --amber:#dd8b2e;
  --amber-dark:#a9691c;
  --amber-100:#fbeed9;
  --green:#1f8a5f;
  --green-100:#e3f4ec;
  --red:#c0432c;
  --red-100:#fbe7e2;
  --paper:#ffffff;
  --radius:12px;
  --radius-sm:8px;
  --shadow-1:0 1px 2px rgba(10,22,38,.06), 0 4px 14px rgba(10,22,38,.05);
  --shadow-2:0 4px 10px rgba(10,22,38,.08), 0 14px 34px rgba(10,22,38,.10);
  --wrap:1180px;
  --font-display: Georgia, "Iowan Old Style", "Palatino Linotype", "URW Palladio", serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ice-50);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:var(--navy-700); text-decoration:underline; text-decoration-color:rgba(32,69,105,.4); text-underline-offset:2px; font-weight:600}
a:hover{text-decoration-color:currentColor}
.brand, .nav-list>li>a, .btn, .official-link, .op-link, .footer-col a, .jump-nav a, .topright a{
  text-decoration:none; font-weight:inherit;
}
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--amber); outline-offset:2px;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--navy-950);
  line-height:1.18;
  font-weight:700;
  margin:0 0 .55em;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(1.9rem, 1.4rem + 2vw, 3rem); letter-spacing:-0.02em}
h2{font-size:clamp(1.5rem, 1.25rem + 1vw, 2.1rem)}
h3{font-size:1.25rem}
p{margin:0 0 1.1em; color:var(--ink)}
.lede{font-size:1.15rem; color:var(--muted); line-height:1.65}

.container{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 1.5rem;
}
.prose{max-width:760px}
section{padding:3.5rem 0}
section.tight{padding:2.25rem 0}
.section-head{max-width:680px; margin-bottom:2rem}
.section-head .kicker{display:block}

.kicker{
  display:inline-flex; align-items:center; gap:.4em;
  font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--amber-dark); margin-bottom:.6em;
}
.kicker::before{content:""; width:18px; height:2px; background:var(--amber); display:inline-block}

/* ---------- Icons (inline SVG, no emoji) ---------- */
.icon{width:1.15em; height:1.15em; flex:none; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.2em}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  font-weight:600; font-size:.95rem; font-family:var(--font-body);
  padding:.7em 1.3em; border-radius:6px; border:1.5px solid transparent;
  cursor:pointer; transition:transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:hover{text-decoration:none; transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--amber); color:#231404; border-color:var(--amber); box-shadow:var(--shadow-1)}
.btn-primary:hover{background:var(--amber-dark); border-color:var(--amber-dark); color:#fff; box-shadow:var(--shadow-2)}
.btn-ghost{background:transparent; color:var(--ice-100); border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.1); color:#fff}
.btn-outline{background:var(--paper); color:var(--navy-900); border-color:var(--line)}
.btn-outline:hover{border-color:var(--navy-700); background:var(--ice-100)}

/* ---------- Top bar ---------- */
.topbar{background:var(--navy-950); color:#b9c8d9; font-size:.8rem}
.topbar .container{display:flex; justify-content:space-between; align-items:center; min-height:38px; gap:1rem; flex-wrap:wrap; padding-top:.4rem; padding-bottom:.4rem}
.topbar .disclaimer{display:flex; align-items:center; gap:.5em}
.topbar .dot{width:6px; height:6px; border-radius:50%; background:var(--amber); flex:none}
.topbar a{color:#dce6f0}

/* ---------- Header ---------- */
.site-header{background:var(--paper); border-bottom:1px solid var(--line); position:relative; z-index:60}
.site-header .container{display:flex; align-items:center; gap:1.25rem; min-height:78px}
.brand{display:flex; align-items:center; gap:.65rem}
.brand:hover{text-decoration:none}
.brand-mark{display:block}
.brand-name{font-family:var(--font-display); font-weight:700; font-size:1.32rem; color:var(--navy-950); letter-spacing:-.01em}
.brand-name b{color:var(--amber-dark)}
.brand-tag{display:none}

.site-nav{margin-left:auto; display:flex; align-items:stretch}
.nav-list{list-style:none; display:flex; align-items:center; gap:.15rem; margin:0; padding:0}
.nav-list>li>a{
  display:inline-flex; align-items:center; height:78px; padding:0 .8rem;
  font-weight:600; font-size:.92rem; color:var(--navy-900); border-bottom:3px solid transparent;
}
.nav-list>li>a:hover, .nav-list>li>a.active{border-bottom-color:var(--amber); text-decoration:none; color:var(--navy-950)}
.nav-list>li>a.nav-cta{height:auto; padding:.55em 1rem; font-size:.88rem; border-bottom:none}
.nav-cta{margin-left:.5rem}

.nav-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; background:none; border:0; cursor:pointer}
.nav-toggle span{display:block; width:24px; height:2.5px; background:var(--navy-900); border-radius:2px; transition:.2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width: 767px){
  .nav-toggle{display:flex}
  .site-nav{position:fixed; inset:78px 0 0 0; background:var(--paper); transform:translateX(100%); transition:transform .25s ease; overflow-y:auto; padding:1rem 0 2rem}
  .site-nav.is-open{transform:translateX(0)}
  .nav-list{flex-direction:column; align-items:stretch; gap:0; padding:0 1.5rem}
  .nav-list>li>a{height:auto; padding:.85rem 0; border-bottom:1px solid var(--line)}
  .nav-cta{margin:1rem 1.5rem 0}
}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(180deg, var(--navy-950), var(--navy-900) 60%, var(--navy-800)); color:#eaf1f8; position:relative; overflow:hidden}
.hero::after{content:""; position:absolute; inset:0; background:
  radial-gradient(600px 300px at 85% -10%, rgba(221,139,46,.18), transparent 60%),
  radial-gradient(500px 260px at 10% 110%, rgba(47,125,196,.16), transparent 60%);
  pointer-events:none;
}
.hero .container{position:relative; padding-top:3.5rem; padding-bottom:3rem}
.hero .kicker{color:var(--amber)}
.hero .kicker::before{background:var(--amber)}
.hero h1{color:#fff; max-width:820px}
.hero .lede{color:#c3d2e1; max-width:680px}
.hero-meta{display:flex; flex-wrap:wrap; gap:.9rem 1.6rem; margin-top:1.6rem; font-size:.88rem; color:#aebedd}
.hero-meta .item{display:flex; align-items:center; gap:.5em}
.hero-meta .icon{color:var(--amber)}

/* ---------- Fact chips / callouts (anti-wall-of-text) ---------- */
.chip-row{display:flex; flex-wrap:wrap; gap:.8rem; margin:1.4rem 0}
.fact-chip{
  display:flex; align-items:flex-start; gap:.65rem; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:.9rem 1.1rem; box-shadow:var(--shadow-1); flex:1 1 220px;
}
.fact-chip .icon{color:var(--navy-700); margin-top:.15em}
.fact-chip strong{display:block; font-size:1.05rem; color:var(--navy-950)}
.fact-chip span{font-size:.85rem; color:var(--muted)}

.callout{
  border-left:4px solid var(--amber); background:var(--amber-100); border-radius:0 var(--radius) var(--radius) 0;
  padding:1.1rem 1.3rem; margin:1.4rem 0; color:var(--navy-950);
}
.callout p:last-child{margin-bottom:0}
.callout.info{border-left-color:var(--navy-700); background:var(--ice-100)}
.callout.warn{border-left-color:var(--red); background:var(--red-100)}
.callout.good{border-left-color:var(--green); background:var(--green-100)}
.callout-title{display:flex; align-items:center; gap:.5em; font-weight:700; margin-bottom:.35em; font-family:var(--font-body)}

.stat-strip{display:flex; flex-wrap:wrap; gap:1.4rem 2.2rem; margin:1.5rem 0; padding:1.4rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.stat-strip .stat b{display:block; font-family:var(--font-display); font-size:1.7rem; color:var(--navy-950); line-height:1}
.stat-strip .stat span{font-size:.82rem; color:var(--muted)}

/* ---------- Cards / grid ---------- */
.grid{display:grid; gap:1.5rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid-2,.grid-4{grid-template-columns:1fr}}

.card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-1); transition:box-shadow .2s ease, transform .2s ease}
.card:hover{box-shadow:var(--shadow-2); transform:translateY(-2px)}
.mini-card{padding:1.25rem 1.4rem}
.mini-card .icon{color:var(--amber-dark)}

/* ---------- Rating table ---------- */
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-1); background:var(--paper)}
table.rating-table{width:100%; border-collapse:collapse; min-width:760px; font-size:.93rem}
table.rating-table caption{caption-side:bottom; text-align:left; font-size:.8rem; color:var(--muted); padding:.9rem 1.1rem}
table.rating-table th, table.rating-table td{padding:.9rem 1.1rem; text-align:left; border-bottom:1px solid var(--line); vertical-align:middle}
table.rating-table thead th{background:var(--navy-950); color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; position:sticky; top:0}
table.rating-table th:first-child, table.rating-table td:first-child{width:44px; min-width:44px; text-align:center; font-family:var(--font-display); font-weight:700}
table.rating-table th:nth-child(2), table.rating-table td:nth-child(2){min-width:190px}
table.rating-table tbody tr:nth-child(odd){background:var(--ice-50)}
table.rating-table tbody tr.rank-1{background:var(--amber-100)}
table.rating-table .op-link{font-weight:700; color:var(--navy-950)}
table.rating-table .rating-val{font-weight:700; color:var(--navy-950)}
.rank-badge{display:inline-flex; align-items:center; justify-content:center; width:1.9em; height:1.9em; border-radius:50%; background:var(--navy-900); color:#fff; font-family:var(--font-display); font-weight:700; font-size:.9rem}
.rank-badge.gold{background:var(--amber); color:#231404}

/* ---------- Operator profile ---------- */
.operator{padding:2.75rem 0; border-top:1px solid var(--line)}
.operator:first-of-type{border-top:none}
.operator-head{display:grid; grid-template-columns:1.1fr 1fr; gap:2rem; align-items:start; margin-bottom:1.6rem}
@media (max-width:820px){.operator-head{grid-template-columns:1fr}}
.operator-image{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); position:relative}
.operator-image img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block}
.operator-image figcaption{font-size:.72rem; color:#fff; background:rgba(10,22,38,.65); position:absolute; right:0; bottom:0; padding:.25em .6em; border-top-left-radius:6px}
.operator-title{display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap}
.operator-title .rank-badge{font-size:1rem}
.operator-intro{align-self:center}
.attr-list{list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-direction:column; gap:.55rem}
.attr-list li{display:flex; gap:.65em; align-items:flex-start; font-size:.92rem; color:var(--navy-900)}
.attr-list .icon{color:var(--navy-700); margin-top:.2em}
.attr-list b{color:var(--navy-950)}

.reviews-block h3{font-size:1.02rem; margin-bottom:.7rem}
.review-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:1rem}
.review-card{background:var(--ice-50); border:1px solid var(--line); border-radius:var(--radius-sm); padding:1rem 1.1rem}
.review-stars{color:var(--amber-dark); font-size:.8rem; font-weight:700; margin-bottom:.4rem; display:flex; align-items:center; gap:.3em}
.review-card p{font-size:.9rem; margin-bottom:.5rem; color:var(--ink)}
.review-source{font-size:.76rem; color:var(--muted-2)}

.official-link{display:inline-flex; align-items:center; gap:.4em; font-size:.85rem; font-weight:600; margin-top:1rem}

/* ---------- Other operators mini grid ---------- */
.other-ops-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.1rem}
.other-op-card{padding:1.1rem 1.25rem}
.other-op-card h3{font-size:1rem; margin-bottom:.4rem}
.other-op-card p{font-size:.88rem; color:var(--muted); margin-bottom:.6rem}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line); padding:1.1rem 0}
.faq-list summary{cursor:pointer; font-weight:700; font-family:var(--font-display); font-size:1.05rem; color:var(--navy-950); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+"; font-size:1.4rem; color:var(--amber-dark); font-family:var(--font-body); flex:none; line-height:1}
.faq-list details[open] summary::after{content:"–"}
.faq-list details p{margin-top:.8rem; color:var(--muted); max-width:70ch}

/* ---------- Trust / editorial block ---------- */
.trust-block{background:var(--navy-950); color:#fff; border-radius:20px; padding:2.4rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap}
.trust-block h2{color:#fff; margin-bottom:.4rem; font-size:1.5rem}
.trust-block p{color:#b9c8d9; margin-bottom:0; max-width:520px}
.trust-actions{display:flex; gap:.75rem; flex-wrap:wrap}

/* ---------- Author byline ---------- */
.byline{display:flex; align-items:center; gap:.6rem; font-size:.85rem; color:var(--muted); margin-top:1.4rem}
.byline .avatar{width:2rem; height:2rem; border-radius:50%; background:var(--navy-800); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:.85rem; flex:none}
.byline b{color:var(--navy-950)}

/* ---------- Generic page (EEAT pages) ---------- */
.page-hero{background:var(--ice-100); border-bottom:1px solid var(--line)}
.page-hero .container{padding:2.6rem 0 2.2rem}
.page-hero h1{margin-bottom:.4rem}
.page-body{padding:2.75rem 0 3.5rem}
.page-body h2{margin-top:2rem}
.page-body ul, .page-body ol{padding-left:1.3rem}
.page-body li{margin-bottom:.5rem}
.updated-note{font-size:.85rem; color:var(--muted-2); margin-bottom:1.6rem}

/* ---------- Form (submit operator) ---------- */
.form-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-1); padding:2rem; max-width:640px}
.form-field{margin-bottom:1.1rem}
.form-field label{display:block; font-weight:600; font-size:.9rem; margin-bottom:.4rem; color:var(--navy-950)}
.form-field input, .form-field textarea{
  width:100%; padding:.7em .85em; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:.95rem; background:var(--ice-50);
}
.form-field input:focus, .form-field textarea:focus{outline:2px solid var(--amber); outline-offset:1px; background:#fff}
.form-note{font-size:.8rem; color:var(--muted-2)}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950); color:#c3d2e1; margin-top:4rem}
.footer-top{padding:3rem 0 2rem}
.footer-grid{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:2rem}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}
.footer-brand .brand-name{color:#fff}
.footer-brand p{color:#8ea2ba; font-size:.88rem; max-width:280px; margin-top:.8rem}
.footer-col h4{font-family:var(--font-body); font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:#8ea2ba; margin-bottom:.9rem}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.55rem}
.footer-col a{color:#dbe6f0; font-size:.9rem}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); padding:1.3rem 0; font-size:.8rem; color:#7c8fa8; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem}

/* ---------- Skip link ---------- */
.skip-link{position:absolute; left:-999px; top:0; background:#fff; color:var(--navy-950); padding:.6em 1em; z-index:100}
.skip-link:focus{left:1rem; top:1rem}
