/* ── COMMON: Public-page layout (body, nav, footer, buttons) ── */
/* tokens.css provides reset + :root variables */
/* utilities.css provides utility classes */
/* global-nav.css provides .global-nav block */

/* Override --accent2 for public pages (blue instead of sidebar dark-red) */
:root { --accent2: #2c5f8a; }

html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  background: var(--paper);
  color: var(--ink);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  max-width: 100vw;
}

/* ── NAV ── */
nav {
  display: flex; align-items: center; justify-content: space-between;
  min-height: var(--nav-h);
  padding: .4rem clamp(1rem, 4vw, 3rem);
  border-bottom: 1px solid var(--border);
  background: var(--paper);
  position: sticky; top: 0; z-index: 10;
  flex-wrap: wrap; gap: .4rem;
}
.logo {
  font-family: var(--serif); font-size: 1.25rem; font-weight: 400;
  color: var(--ink); text-decoration: none; letter-spacing: -.01em;
}
.logo em { color: var(--accent); font-style: normal; }
.nav-right { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.nav-right .nav-row{display:contents}
/* nav-row-desktop display rules are in global-nav.css only */
/* nav-mob-menu display rules are in global-nav.css only */
/* Desktop narrow + mobile rules are all in global-nav.css */
.font-size-btn {
  background: none; border: 1px solid var(--border); border-radius: var(--radius);
  font-family: var(--font); font-size: 0.72rem; font-weight: 600;
  color: var(--muted); cursor: pointer; padding: 0.3rem 0.5rem;
  letter-spacing: 0.04em; transition: all 0.15s; white-space: nowrap;
}
.font-size-btn:hover { border-color: var(--ink); color: var(--ink); }
.lang-switcher { display: flex; gap: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.lang-btn {
  background: none; border: none; border-right: 1px solid var(--border);
  font-family: var(--font); font-size: .72rem; font-weight: 500;
  letter-spacing: .05em; text-transform: uppercase;
  padding: .3rem .6rem; cursor: pointer; color: var(--muted); transition: all .15s;
}
.lang-btn:last-child { border-right: none; }
.lang-btn.active { background: var(--ink); color: #fff; }
.nav-actions { display: flex; gap: .6rem; }
.nav-actions .btn { font-size: .72rem; padding: .3rem .9rem; line-height: 1; }
.btn {
  font-family: var(--font); font-size: .85rem; font-weight: 500;
  padding: .5rem 1.2rem; border-radius: var(--radius);
  cursor: pointer; transition: all .18s; text-decoration: none; border: 1px solid transparent;
}
.btn-ghost { border-color: var(--border); color: var(--ink); background: none; }
.btn-ghost:hover { border-color: var(--ink); }
.btn-contact { border-color: var(--muted); color: var(--muted); background: none; text-decoration: none; }
.btn-contact:hover { border-color: var(--accent2); color: var(--accent2); }
.btn-dashboard { border-color: var(--accent2); color: var(--accent2); background: none; font-family: var(--font); font-size: .85rem; font-weight: 500; padding: .5rem 1.2rem; border-radius: var(--radius); cursor: pointer; transition: all .18s; text-decoration: none; border: 1px solid; }
.btn-dashboard:hover { background: var(--accent2); color: #fff; }
.btn-admin { background: var(--ink); color: #fff; font-family: var(--font); font-size: .85rem; font-weight: 500; padding: .5rem 1.2rem; border-radius: var(--radius); cursor: pointer; transition: all .18s; text-decoration: none; border: 1px solid var(--ink); }
.btn-admin:hover { background: #333; }
.btn-logout { font-family: var(--font); font-size: .85rem; font-weight: 500; padding: .5rem 1.2rem; border-radius: var(--radius); cursor: pointer; transition: all .18s; border: 1px solid var(--border); color: var(--muted); background: none; }
.btn-logout:hover { border-color: var(--accent); color: var(--accent); }
.nav-user { display: flex; align-items: center; gap: .75rem; }
.nav-user-type { font-size: .68rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; background: var(--border); color: var(--muted); padding: .1rem .4rem; border-radius: 3px; margin-left: .3rem; vertical-align: middle; }
.nav-user-name { font-size: .85rem; font-weight: 500; color: var(--ink); }
.btn-primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn-primary:hover { background: #962b18; }

/* ── PAGE LAYOUT (shared by legal, FAQ, contact) ── */
.page{max-width:calc(780px * var(--ts));margin:0 auto;padding:2rem clamp(1rem,4vw,3rem) 5rem}
.page-eyebrow{font-size:calc(.72rem * var(--ts));font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.page-title{font-family:var(--serif);font-size:calc(2.2rem * var(--ts));letter-spacing:-.02em;margin-bottom:.4rem;line-height:1.15;color:var(--ink)}
.page-sub{font-size:calc(.85rem * var(--ts));color:var(--muted);font-weight:300;margin-bottom:2rem}
.page-updated{font-size:calc(.8rem * var(--ts));color:var(--muted);font-weight:300;margin-bottom:2.5rem;font-style:italic}
.notice{background:rgba(181,53,31,.06);border:1px solid rgba(181,53,31,.18);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1.75rem;font-size:calc(.82rem * var(--ts));color:#333;line-height:1.6}
.notice a{color:var(--accent)}
.legal-body{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:2.5rem;box-shadow:var(--shadow)}

/* ── FOOTER ── */
footer {
  border-top: 1px solid var(--border);
  max-width: 1100px; margin: 0 auto; width: 100%;
  padding: 1.75rem clamp(.75rem, 4vw, 3rem);
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
  font-size: calc(0.78rem * var(--ts)); color: var(--muted);
  text-align: center;
}
.footer-links { display: flex; gap: 1.25rem; flex-wrap: wrap; justify-content: center; }
.footer-links a { color: var(--muted); text-decoration: none; font-size: calc(0.78rem * var(--ts)); }
.footer-links a:hover { color: var(--ink); }

/* ── RESPONSIVE NAV ── */
@media (max-width: 900px) {
  nav { padding: 0 1.25rem; }
}
@media (max-width: 600px) {
  nav { padding: 0 1rem; }
}
@media (max-width: 400px) {
  nav { padding: 0 .75rem; }
}

/* ── Styled confirm dialog overlay ── */
.consent-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:1rem}
.consent-overlay.open{display:flex}
.consent-card{background:var(--paper,#fff);border-radius:10px;max-width:480px;width:100%;padding:1.75rem 2rem;box-shadow:0 8px 32px rgba(0,0,0,.18);position:relative}
.modal-close{position:absolute;top:.6rem;right:.75rem;background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--muted,#999);line-height:1;padding:.2rem;border-radius:4px;transition:all .12s;z-index:1}
.modal-close:hover{color:var(--ink,#111);background:rgba(0,0,0,.06)}
.consent-card h3{font-family:var(--font-serif);font-size:calc(1.1rem * var(--ts,1));margin:0 0 .75rem;color:var(--ink,#111)}
.consent-card p{font-size:calc(.88rem * var(--ts,1));line-height:1.6;color:var(--muted2,#555);margin:0 0 1.25rem}
.consent-btns{display:flex;gap:.6rem;justify-content:flex-end}
.consent-btns button{padding:.5rem 1.2rem;border-radius:6px;font-size:calc(.82rem * var(--ts,1));font-weight:600;cursor:pointer;border:1px solid var(--border,#ddd);transition:all .15s}
.consent-btns .btn-accept{background:var(--accent,#b5351f);color:#fff;border-color:var(--accent,#b5351f)}
.consent-btns .btn-accept:hover{opacity:.85}
.consent-btns .btn-cancel{background:transparent;color:var(--muted,#666)}
.consent-btns .btn-cancel:hover{background:var(--hover,#f5f5f5)}
