/*
Theme Name: Map Generator
Theme URI: https://callabridge.com/
Author: Callabridge
Description: Procedural world maps and Minecraft seed maps with accounts, saved maps and Stripe subscriptions. Activate it and the Map, Pricing, Sign up, Log in, Account and My maps pages are created for you. Connect Stripe under Settings > Map.
Version: 2.1.3
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: coolmap
*/

:root{
  --bg:#e9eeec; --panel:#f4f7f6; --panel-2:#e3e9e7; --field:#ffffff;
  --ink:#1c2a33; --muted:#5b6a71; --line:#cdd7d5;
  --accent:#2c6a6e; --on-accent:#f2fbfa; --brass:#a9821c; --danger:#b3261e; --ok:#1c7c43;
  --stage:#d5ddda; --stage-2:#c4cfcb; --glow:rgba(90,150,200,.35);
  --chip:rgba(244,247,246,.92); --shadow:0 6px 20px rgba(28,42,51,.12);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#10171b; --panel:#141d22; --panel-2:#1b262c; --field:#1f2b32;
    --ink:#dde6e5; --muted:#8c9ca1; --line:#26333a;
    --accent:#76bdb6; --on-accent:#0d1a1c; --brass:#d8b44c; --danger:#ff8a80; --ok:#7fd49b;
    --stage:#0b1114; --stage-2:#121b20; --glow:rgba(110,170,235,.42);
    --chip:rgba(20,29,34,.9); --shadow:0 6px 24px rgba(0,0,0,.4);
    color-scheme:dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ---------- Site header ---------- */
.site{flex:none;display:flex;align-items:center;gap:6px;padding:0 16px;min-height:56px;background:var(--panel);border-bottom:1px solid var(--line);position:relative;z-index:5}
.site .logo{display:flex;align-items:center;gap:9px;color:var(--accent);flex:none;margin-right:8px;text-decoration:none}
.site .logo img,.site .logo .logo-img{height:38px;width:auto;max-width:160px;object-fit:contain;display:block}
.site .pages{display:flex;gap:4px;overflow-x:auto;min-width:0;scrollbar-width:none}
.site .pages a{padding:8px 13px;border-radius:0;color:var(--muted);font-weight:500;white-space:nowrap;text-decoration:none;font-size:14px}
.site .pages a:hover{color:var(--ink)}
.site .pages a[aria-current="page"]{background:var(--panel-2);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.site .pages .gen-link{display:inline-flex;align-items:center;gap:8px}
.site .pages .gen-link svg{color:var(--accent)}
.site-user{margin-left:auto;display:flex;align-items:center;gap:4px;flex:none}
.site-user a{padding:7px 11px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.site-user a:hover{background:var(--panel-2)}
.site-user .cta{background:var(--accent);color:var(--on-accent);font-weight:600}
.site-user .cta:hover{background:var(--accent);filter:brightness(1.07)}
.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--panel-2);color:var(--muted);margin-left:6px;vertical-align:1px}
.badge.premium{background:var(--brass);color:#fff}
@media (max-width:900px){.site{flex-wrap:wrap;padding:6px 12px;gap:4px}.site .pages{order:3;width:100%}.site-user{margin-left:auto}.site-user .hide-sm{display:none}}

/* ---------- Content pages ---------- */
.site-main{max-width:1080px;margin:0 auto;padding:40px 20px 64px}
.site-main.narrow{max-width:520px}
.page-title{font:600 34px/1.15 Spectral,Georgia,serif;margin:0 0 8px}
.lede{color:var(--muted);margin:0 0 28px;font-size:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px}
.card h2{font:600 20px/1.3 Spectral,Georgia,serif;margin:0 0 10px}
.form-row{margin:0 0 14px}
.form-row label{display:block;font-weight:500;font-size:14px;margin-bottom:5px}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=password]{width:100%;background:var(--field);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.form-row small{display:block;color:var(--muted);font-size:12.5px;margin-top:4px}
.check-row{display:flex;gap:8px;align-items:center;font-size:14px;margin:0 0 16px}
.hp{position:absolute!important;left:-9999px!important}
.button,.button-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;padding:11px 18px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;font-size:15px}
.button{background:var(--accent);color:var(--on-accent)}
.button:hover{filter:brightness(1.07)}
.button-ghost{background:var(--field);color:var(--ink);border-color:var(--line)}
.button-ghost:hover{border-color:var(--accent)}
.button.wide,.button-ghost.wide{width:100%}
.button-danger{color:var(--danger)}
.notice{border-radius:10px;padding:12px 14px;margin:0 0 18px;font-size:14px;border:1px solid var(--line);background:var(--panel-2)}
.notice.error{border-color:rgba(179,38,30,.4);color:var(--danger)}
.notice.success{border-color:rgba(28,124,67,.4);color:var(--ok)}
.form-foot{margin-top:16px;font-size:14px;color:var(--muted)}
.plan-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--panel-2)}
.plan-pill.premium{background:var(--brass);color:#fff}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:12px 0 20px;font-size:14.5px}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
.actions{display:flex;flex-wrap:wrap;gap:10px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}

/* ---------- Pricing ---------- */
.pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:8px}
.price-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;display:flex;flex-direction:column}
.price-card.featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}
.price-card h2{font:600 20px Spectral,Georgia,serif;margin:0}
.price-card .price{font:600 40px/1 Spectral,Georgia,serif;margin:14px 0 2px}
.price-card .per{color:var(--muted);font-size:14px}
.price-card .save{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:600;color:var(--ok)}
.price-card ul{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:8px;align-content:start;font-size:14.5px;flex:1}
.price-card li{padding-left:22px;position:relative}
.price-card li::before{content:"";position:absolute;left:2px;top:.45em;width:10px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}

/* ---------- My maps ---------- */
.maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:18px}
.map-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.map-card .thumb{aspect-ratio:2/1;background:var(--stage);display:block;object-fit:cover;width:100%}
.map-card .meta{padding:12px 14px;flex:1}
.map-card h3{margin:0 0 3px;font:600 16px/1.3 Spectral,Georgia,serif}
.map-card .sub{color:var(--muted);font-size:12.5px}
.map-card .row{display:flex;gap:8px;padding:0 14px 14px}
.map-card .row .button,.map-card .row .button-ghost{padding:7px 12px;font-size:13.5px}
.map-card form{margin:0}
.usage{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:6px}
.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}

/* ---------- Footer ---------- */
/* Always a deep slate band, in light and dark mode, using the site's dark palette. */
.site-foot{--f-bg:#0d1417;--f-ink:#e6eeed;--f-muted:#93a3a8;--f-line:#25323a;--f-accent:#76bdb6;
  background:var(--f-bg);color:var(--f-muted);border-top:1px solid var(--f-line);font-size:14px}
.site-foot a{color:var(--f-ink);text-decoration:none}
.site-foot a:hover{color:var(--f-accent)}
.site-foot .in{max-width:1180px;margin:0 auto;padding:44px 24px 30px}
.foot-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.foot-brand{display:inline-flex;align-items:center;gap:10px;font:600 19px/1.2 Spectral,Georgia,serif;color:var(--f-ink)!important}
.foot-brand .logo-img,.foot-brand img{height:34px;width:auto;max-width:140px;object-fit:contain;display:block}
.foot-brand svg{color:var(--f-accent)}
.foot-cta{display:flex;flex-wrap:wrap;gap:10px}
.foot-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 12px;border:1px solid #3a4850;border-radius:10px;color:var(--f-ink);line-height:1.15;font-weight:600;font-size:15px;transition:border-color .15s,background .15s}
.foot-btn small{display:block;font-size:10.5px;font-weight:500;color:var(--f-muted);letter-spacing:.02em}
.foot-btn svg{flex:none;color:var(--f-accent)}
.foot-btn:hover{border-color:var(--f-accent);background:rgba(118,189,182,.08);color:var(--f-ink)!important}
.foot-btn.primary{background:var(--f-accent);border-color:var(--f-accent);color:#0d1a1c}
.foot-btn.primary small{color:rgba(13,26,28,.7)}
.foot-btn.primary svg{color:#0d1a1c}
.foot-btn.primary:hover{filter:brightness(1.08);background:var(--f-accent);color:#0d1a1c!important}
.foot-mission{max-width:560px;margin:22px 0 26px;font-size:16px;line-height:1.6;color:#c9d4d3}
.foot-links ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}
.foot-links a{font-weight:600;font-size:14.5px}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:30px;padding-top:22px;border-top:1px solid var(--f-line);font-size:13px}
.foot-social{display:flex;gap:16px}
.foot-social a{color:var(--f-muted);display:grid;place-items:center}
.foot-social a:hover{color:var(--f-ink)}
.foot-legal{display:flex;gap:18px}
.foot-legal a{color:var(--f-muted)}
/* One-line version under the map generator */
.site-foot.slim{border-top-color:var(--f-line)}
.site-foot.slim .in{max-width:none;padding:7px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 20px;font-size:12px}
.site-foot.slim nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.site-foot.slim a{color:var(--f-muted)}
.site-foot.slim a:hover{color:var(--f-ink)}
@media (max-width:640px){
  .site-foot .in{padding:34px 20px 24px}
  .foot-cta{width:100%}
  .foot-btn{flex:1;justify-content:center}
  .foot-links ul{gap:10px 20px}
  .foot-bottom{flex-direction:column-reverse;align-items:flex-start}
}

/* Beta notice and legal links */
.beta-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(216,180,76,.16);color:#e3c46b;border:1px solid rgba(216,180,76,.4);vertical-align:1px}
.foot-beta{display:flex;align-items:flex-start;gap:12px;margin:28px 0 0;padding:14px 16px;border:1px solid var(--f-line);border-radius:12px;background:rgba(255,255,255,.03)}
.foot-beta p{margin:0;font-size:13.5px;line-height:1.55;color:#c9d4d3}
.foot-beta a{color:var(--f-accent);text-decoration:underline;text-underline-offset:2px}
.foot-beta .beta-badge{margin-top:2px;flex:none}
.foot-legal-row{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;padding-top:22px;border-top:1px solid var(--f-line)}
.foot-legal-row a{color:var(--f-muted);font-size:13px}
.foot-legal-row a:hover{color:var(--f-ink)}
.foot-legal-row + .foot-bottom{margin-top:16px;padding-top:0;border-top:0}
.foot-mc{display:block;margin-top:4px;font-size:11.5px;color:#6f8085}
.site-foot.slim .beta-badge{padding:1px 7px;font-size:9.5px;margin-right:6px}
.site-foot.slim .slim-legal{display:flex;flex-wrap:wrap;gap:4px 14px}

/* ---------- Policy pages ---------- */
.legal-doc{max-width:860px}
.legal-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 22px}
.legal-nav a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:13px;font-weight:500;text-decoration:none}
.legal-nav a:hover{color:var(--ink);border-color:var(--accent)}
.legal-nav a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.legal-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:34px 38px 30px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.legal-card header{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.legal-card .page-title{margin:0}
.legal-updated{margin:6px 0 0;color:var(--muted);font-size:13.5px}
.legal-card .entry-content{font-size:15.5px;line-height:1.7}
.legal-card .entry-content > *{max-width:none}
.legal-card h2{font:600 21px/1.3 Spectral,Georgia,serif;margin:30px 0 8px}
.legal-card h3{font-size:15.5px;margin:20px 0 6px}
.legal-card ul{padding-left:22px}
.legal-card li{margin:4px 0}
.legal-card table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:14px}
.legal-card th,.legal-card td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.legal-card th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.legal-card code{font-size:12.5px;background:var(--panel-2);padding:1px 5px;border-radius:4px}
.legal-missing{background:#fff1c2;color:#6b4e00;padding:0 4px;border-radius:4px}
.legal-foot{margin:18px 4px 0;color:var(--muted);font-size:14px}
@media (max-width:640px){.legal-card{padding:24px 20px}}

/* ---------- Generic content ---------- */
.entry-content{font-size:16px}
.entry-content > *{max-width:72ch}

/* Keep the footer at the bottom on short pages */
body:not(.coolmap-app){min-height:100vh;display:flex;flex-direction:column}
body:not(.coolmap-app) .site-main{flex:1 0 auto;width:100%}
.page-title + .entry-content{margin-top:22px}