/* shared/site.css — the one stylesheet for every dearnurse page. Change tokens here. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');
:root{
  --bg:#faf7f2; --surface:#ffffff; --tint:#f1ebe0; --line:#ddd3c3; --ink:#1f2a27; --soft:#41504b; --muted:#66736e;
  --brand:#1d5c4f; --brand-ink:#ffffff; --brand-deep:#134238; --accent:#b4572e; --ok:#1d6b45; --warn:#8a5a00; --err:#a3281f;
  --radius:12px; --column:1040px; --narrow:680px; --gutter:16px;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --serif:"Fraunces",Georgia,serif;
}
*{box-sizing:border-box}
html{font-size:17px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.65 var(--sans)}
a{color:var(--brand);text-underline-offset:3px}
a:hover{color:var(--brand-deep)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2rem,6.4vw,3.3rem)}
h2{font-size:clamp(1.5rem,4vw,2.1rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
.wrap{max-width:var(--column);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:var(--narrow);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:8px;z-index:20}
.skip:focus{left:8px}

/* header */
.site-header{background:var(--surface);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px}
.brand{font:600 1.35rem/1 var(--serif);color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.brand em{font-style:normal;color:var(--brand)}
.nav{display:flex;align-items:center;gap:18px;font-size:.88rem}
.nav a{color:var(--soft);text-decoration:none}
.nav a:hover{color:var(--ink);text-decoration:underline}
.nav a.btn,.nav a.btn:hover{color:var(--brand-ink);text-decoration:none}
@media(max-width:640px){.nav a.hide-sm{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:999px;border:2px solid var(--brand);background:var(--brand);color:var(--brand-ink);font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--brand-ink)}
.btn.ghost{background:transparent;color:var(--brand)}
.btn.ghost:hover{background:var(--tint);color:var(--brand-deep)}
.btn[disabled]{opacity:.6;cursor:wait}
.link-arrow{font-weight:500}

/* hero: rotating city photos under a deep-green scrim */
.hero{position:relative;overflow:hidden;background:#16251f;color:#f6f1e7;padding:clamp(40px,8vw,88px) 0 clamp(32px,6vw,64px)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg-layer{position:absolute;inset:-2%;background:center/cover no-repeat;opacity:0;transform:scale(1.05);transition:opacity 1800ms ease-in-out,transform 12s ease-out}
.hero-bg-layer.is-visible{opacity:1;transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(14,28,23,.78),rgba(14,28,23,.62) 55%,rgba(14,28,23,.82))}
.hero>.wrap{position:relative;z-index:2}
.hero h1{max-width:16ch;margin-bottom:.45em;color:#fff}
.hero .lede{max-width:56ch;font-size:1.1rem;color:#efe8d9}
.hero a:not(.btn){color:#fff}
.hero .btn{background:#f6f1e7;border-color:#f6f1e7;color:var(--brand-deep)}
.hero .btn:hover{background:#fff;border-color:#fff;color:var(--brand-deep)}
.hero .facts li{background:rgba(14,28,23,.55);border-color:rgba(246,241,231,.35);color:#f6f1e7}
.hero-countries{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0;list-style:none}
.hero-countries a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 14px;border:1px solid rgba(246,241,231,.35);border-radius:999px;background:rgba(14,28,23,.55);color:#efe8d9;font-size:.82rem;text-decoration:none;opacity:.8;transition:opacity 300ms,border-color 300ms}
.hero-countries a img{width:24px;height:18px;object-fit:cover;border-radius:2px}
.hero-countries a:hover,.hero-countries a:focus-visible,.hero-countries a.is-current{opacity:1;border-color:#f6f1e7;color:#fff}
@media(prefers-reduced-motion:reduce){.hero-bg-layer,.hero-countries a{transition:none}}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:26px}
.facts{display:flex;flex-wrap:wrap;gap:8px 10px;margin:28px 0 0;padding:0;list-style:none}
.facts li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.85rem;color:var(--soft)}

/* sections */
.section{padding:clamp(32px,6vw,56px) 0;border-top:1px solid var(--line)}
.section .kicker{font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.section .intro{max-width:60ch;color:var(--soft)}
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-top:22px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 8px}
.card h3{margin-bottom:.35em}
.card p{font-size:.93rem;color:var(--soft)}
.steps{counter-reset:step;list-style:none;padding:0;margin:22px 0 0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.steps li{counter-increment:step;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.steps li::before{content:counter(step);display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tint);color:var(--brand);font-weight:600;margin-bottom:10px}
.steps strong{display:block;margin-bottom:4px}
.steps span{font-size:.93rem;color:var(--soft)}

/* cities */
.region{margin-top:26px}
.region h3{display:flex;align-items:baseline;gap:10px}
.region h3 small{font:500 .85rem var(--sans);color:var(--muted)}
.country{margin:12px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.country b{min-width:150px;font-weight:600;font-size:.9rem;color:var(--soft)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:500 .9rem/1.2 var(--sans);text-decoration:none}
a.chip:hover{border-color:var(--brand);color:var(--brand-deep)}
.chip .state{font-size:.72rem;font-weight:600;color:var(--ok)}
@media(max-width:560px){.country b{min-width:100%}}

/* faq */
details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:0 18px;margin-top:10px}
summary{cursor:pointer;padding:14px 0;font-weight:600;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";float:right;color:var(--brand);font-weight:600}
details[open] summary::after{content:"\2212"}
details p{color:var(--soft);font-size:.95rem}

/* form */
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,4vw,28px);margin:0 0 18px}
.form-card h2{font-size:1.25rem;margin-bottom:.9em}
label,.label{display:block;font-weight:600;font-size:.92rem;margin:16px 0 6px}
.hint{display:block;font-weight:400;font-size:.82rem;color:var(--muted);margin-top:2px}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;min-height:48px;padding:11px 13px;border:1px solid #bdb19c;border-radius:10px;background:#fff;color:var(--ink);font:400 1rem/1.4 var(--sans)}
textarea{min-height:96px;resize:vertical}
.grid2{display:grid;gap:0 16px;grid-template-columns:1fr 1fr}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}
.avail{display:grid;gap:10px;grid-template-columns:1fr 1fr}
@media(max-width:560px){.avail{grid-template-columns:1fr}}
.avail fieldset{margin:0;border:1px solid var(--line);border-radius:10px;padding:10px 14px 6px}
.avail legend{font-weight:600;padding:0 6px}
.check{display:flex;align-items:flex-start;gap:10px;margin:8px 0;font-weight:400;font-size:.95rem}
.check input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--brand)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.6em;margin:12px 0 0;font-weight:500}
.status.err{color:var(--err)}
.notice{background:var(--tint);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-size:.92rem;color:var(--soft)}
.confirm{text-align:left}
.confirm .ref{display:inline-block;margin:6px 0 14px;padding:10px 16px;border:2px dashed var(--brand);border-radius:10px;font:600 1.4rem/1 var(--sans);letter-spacing:.06em;color:var(--brand-deep)}

/* sticky mobile apply bar */
.apply-bar{display:none}
@media(max-width:640px){
  .apply-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:10;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(250,247,242,.96);border-top:1px solid var(--line)}
  .apply-bar .btn{width:100%}
  body.has-bar{padding-bottom:80px}
}

/* legal + footer */
.legal h2{margin-top:1.6em;font-size:1.3rem}
.legal p,.legal li{color:var(--soft)}
.site-footer{margin-top:48px;padding:32px 0 40px;background:var(--tint);border-top:1px solid var(--line);font-size:.9rem;color:var(--soft)}
.site-footer .links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 14px}
.site-footer a{color:var(--soft)}
.site-footer p{max-width:70ch;margin:0 0 8px}
