/* Frost Goalers — international index of hotel categories
   Layout grammar: hard-edged colour slabs, knockout mastheads,
   two-column dossier entries with an outlined index numeral. */

:root{
  --fg-ink:#12141c;
  --fg-ink-2:#4b5162;
  --fg-page:#ffffff;
  --fg-wash:#f2f3f7;
  --fg-rule:#12141c;

  --fg-art:#6b21d4;
  --fg-capsule:#0f9d58;
  --fg-casino:#d81b60;
  --fg-ice:#1565f0;

  --fg-art-wash:#f3ecff;
  --fg-capsule-wash:#e8f7ee;
  --fg-casino-wash:#fdeaf1;
  --fg-ice-wash:#e9f1ff;

  --fg-key:var(--fg-ink);
  --fg-key-wash:var(--fg-wash);

  --fg-w:min(1180px, 100% - 2.5rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  background:var(--fg-page);
  color:var(--fg-ink);
  font-family:"Archivo","Helvetica Neue",Arial,sans-serif;
  font-size:17.5px;
  line-height:1.7;
}

h1,h2,h3{
  font-family:"Fraunces",Georgia,"Times New Roman",serif;
  font-weight:600;
  line-height:1.06;
  letter-spacing:-.015em;
  margin:0;
}

p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
a{color:inherit}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}

.fg-w{width:var(--fg-w);margin-inline:auto}
.fg-skip{position:absolute;left:-9999px}
.fg-skip:focus{left:1rem;top:1rem;background:#fff;padding:.6rem 1rem;z-index:9}

/* ---------- masthead ---------- */

.fg-spectrum{display:flex;height:10px}
.fg-spectrum span{flex:1}
.fg-spectrum span:nth-child(1){background:var(--fg-art)}
.fg-spectrum span:nth-child(2){background:var(--fg-capsule)}
.fg-spectrum span:nth-child(3){background:var(--fg-casino)}
.fg-spectrum span:nth-child(4){background:var(--fg-ice)}

.fg-top{border-bottom:3px solid var(--fg-rule)}
.fg-top .fg-w{
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;flex-wrap:wrap;padding:1.15rem 0;
}
.fg-mark{
  font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.5rem;
  letter-spacing:-.02em;text-decoration:none;
}
.fg-mark small{
  display:block;font-family:"Archivo",Arial,sans-serif;font-weight:600;
  font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-ink-2);
  margin-top:.2rem;
}
.fg-nav{display:flex;flex-wrap:wrap;gap:.4rem}
.fg-nav a{
  text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.5rem .8rem;border:2px solid transparent;
}
.fg-nav a:hover,.fg-nav a:focus{border-color:currentColor}
.fg-nav a[data-k="art"]{color:var(--fg-art)}
.fg-nav a[data-k="capsule"]{color:var(--fg-capsule)}
.fg-nav a[data-k="casino"]{color:var(--fg-casino)}
.fg-nav a[data-k="ice"]{color:var(--fg-ice)}

/* ---------- hero photograph ---------- */

.fg-hero{
  margin:2.4rem 0 0;
  aspect-ratio:21/8;
  overflow:hidden;
  border:3px solid var(--fg-rule);
  background:var(--fg-wash);
}
.fg-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* ---------- banner (page opener) ---------- */

.fg-banner{background:var(--fg-key);color:#fff;padding:3.4rem 0 3.6rem;margin-top:2.6rem}
.fg-banner .fg-kicker{
  font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;
  opacity:.82;margin-bottom:1rem;
}
.fg-banner h1{font-size:clamp(2.6rem,7vw,4.6rem)}
.fg-banner .fg-lede{
  margin-top:1.6rem;max-width:60ch;font-size:1.08rem;line-height:1.72;color:rgba(255,255,255,.9);
}

.fg-plain{padding:3rem 0 .5rem}
.fg-plain h1{font-size:clamp(2.2rem,5.5vw,3.4rem)}
.fg-plain .fg-rule{height:6px;background:var(--fg-key);width:120px;margin-top:1.4rem}

/* ---------- home ---------- */

.fg-intro{padding:3.2rem 0 1rem}
.fg-intro h2{font-size:clamp(1.9rem,4.4vw,2.8rem);max-width:22ch}
.fg-intro .fg-cols{
  margin-top:1.8rem;display:grid;gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
}

.fg-slabs{margin:3.4rem 0 0;display:grid;gap:0}
.fg-slab{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
  border-top:3px solid var(--fg-ink);
}
.fg-slabs .fg-slab:last-child{border-bottom:3px solid var(--fg-ink)}
.fg-slab-key{background:var(--fg-key);color:#fff;padding:2.6rem 2rem}
.fg-slab-key .fg-idx{
  font-family:"Fraunces",Georgia,serif;font-size:3.4rem;line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.75);
}
.fg-slab-key h2{font-size:clamp(1.7rem,3.6vw,2.5rem);margin-top:.8rem}
.fg-slab-key a{
  display:inline-block;margin-top:1.6rem;background:#fff;color:var(--fg-key);
  text-decoration:none;font-weight:700;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.7rem 1.1rem;
}
.fg-slab-key a:hover{background:var(--fg-key);color:#fff;box-shadow:inset 0 0 0 2px #fff}
.fg-slab-body{padding:2.6rem 2rem;background:var(--fg-key-wash)}
.fg-roster{
  margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.45rem;
}
.fg-roster li{
  background:#fff;border:2px solid var(--fg-key);color:var(--fg-key);
  font-size:.76rem;font-weight:700;letter-spacing:.04em;padding:.35rem .6rem;
}

.fg-note{padding:3.6rem 0}
.fg-note-inner{border:3px solid var(--fg-ink);padding:2.4rem 2rem}
.fg-note h2{font-size:clamp(1.6rem,3.4vw,2.2rem)}
.fg-note .fg-cols{
  margin-top:1.6rem;display:grid;gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}

/* ---------- dossier entries ---------- */

.fg-entries{padding:1rem 0 3.6rem}
.fg-entry{padding:2.8rem 0;border-bottom:3px solid var(--fg-ink)}
.fg-entry:first-of-type{border-top:3px solid var(--fg-ink);margin-top:2.8rem}
.fg-entry-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2.4rem}
.fg-entry-head .fg-num{
  font-family:"Fraunces",Georgia,serif;font-size:4.4rem;line-height:.9;
  color:transparent;-webkit-text-stroke:2px var(--fg-key);
}
.fg-entry-head h2{font-size:clamp(1.55rem,3vw,2.1rem);margin-top:.7rem}
.fg-entry-head .fg-place{
  margin-top:.9rem;display:inline-block;background:var(--fg-key);color:#fff;
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:.4rem .7rem;
}
.fg-entry-head .fg-tags{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.4rem}
.fg-entry-head .fg-tags li{
  font-size:.73rem;font-weight:600;color:var(--fg-key);
  border-bottom:2px solid var(--fg-key);
}
.fg-entry-body{border-left:3px solid var(--fg-key);padding-left:2.2rem}

/* ---------- prose pages ---------- */

.fg-prose{padding:2.6rem 0 4rem;max-width:72ch}
.fg-prose h2{font-size:1.5rem;margin:2.4rem 0 .8rem}
.fg-prose h2:first-child{margin-top:1.4rem}
.fg-prose a{font-weight:600}
.fg-prose .fg-meta{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-ink-2);
}

/* ---------- footer ---------- */

.fg-foot{border-top:3px solid var(--fg-ink);background:var(--fg-ink);color:#fff;padding:3rem 0 2rem}
.fg-foot-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.fg-foot h3{font-size:.74rem;font-family:"Archivo",Arial,sans-serif;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:#9aa2b8;margin-bottom:.9rem}
.fg-foot a{text-decoration:none}
.fg-foot a:hover{text-decoration:underline}
.fg-foot li{margin-bottom:.4rem}
.fg-foot p{color:#c3c9d8;font-size:.94rem}
.fg-legal{margin-top:2.4rem;border-top:1px solid #2c3145;padding-top:1.2rem;
  font-size:.8rem;color:#8d94a8;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}

/* ---------- responsive ---------- */

@media (max-width:900px){
  .fg-slab,.fg-entry-grid{grid-template-columns:1fr}
  .fg-entry-grid{gap:1.5rem}
  .fg-entry-body{border-left:0;border-top:3px solid var(--fg-key);padding-left:0;padding-top:1.5rem}
  .fg-hero{aspect-ratio:16/9}
}
@media (max-width:600px){
  body{font-size:16.5px}
  .fg-slab-key,.fg-slab-body,.fg-note-inner{padding:2rem 1.4rem}
  .fg-banner{padding:2.6rem 0}
}
