/*
Theme Name: Curantur
Theme URI: https://www.curantur.se/
Author: Curantur AB
Author URI: https://www.curantur.se/
Description: Custom theme for Curantur AB (curantur.se) — utbildning, rådgivning och föreläsning inom offentlig upphandling, entreprenadrätt, IT och antikorruption. Built from the Curantur AB Design System.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: curantur
*/

/* ---------- Tokens ---------- */
:root{
/* Accent — CONFIRMED from live site screenshot: warm orange/amber */
--orange-50:#fef6ec;--orange-100:#fce8cd;--orange-200:#f8d09e;--orange-300:#f4b46a;--orange-400:#f0a04e;--orange-500:#ec9137;--orange-600:#e8873a;--orange-700:#c96f28;--orange-800:#9c561f;--orange-900:#743f16;
/* Neutrals — ink, matching the black wordmark; hero surface is a lighter charcoal (confirmed) */
--ink-950:#1c2126;--ink-900:#242a30;--ink-800:#2f363d;--ink-700:#3b4147;--ink-600:#565f68;--ink-500:#6e7883;--ink-400:#98a0a8;--ink-300:#c9ccd2;--ink-200:#e2e4e8;--ink-100:#f0f1f3;--ink-50:#f8f8f9;--white:#ffffff;
/* Semantic */
--green-600:#2e7d43;--green-100:#ddefe2;--amber-600:#b07310;--amber-100:#f7ecd4;--red-600:#c03434;--red-100:#f7dddd;
/* Aliases */
--brand:var(--ink-950);--brand-strong:#000000;--accent:var(--orange-600);--accent-strong:var(--orange-700);--accent-soft:var(--orange-50);--accent-tint:var(--orange-100);
--text-heading:var(--ink-950);--text-body:var(--ink-600);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--text-on-dark:var(--white);--text-on-brand:var(--white);--text-link:var(--orange-700);
--surface-page:var(--white);--surface-subtle:var(--ink-50);--surface-card:var(--white);--surface-dark:var(--ink-950);--surface-accent:var(--orange-600);
--border-default:var(--ink-200);--border-strong:var(--ink-300);
--success:var(--green-600);--success-bg:var(--green-100);--warning:var(--amber-600);--warning-bg:var(--amber-100);--danger:var(--red-600);--danger-bg:var(--red-100);--info:var(--orange-600);--info-bg:var(--orange-100);
--focus-ring:0 0 0 3px rgba(232,135,58,.35);

--font-display:'Poppins',-apple-system,'Segoe UI',sans-serif;
--font-body:'Source Sans 3',-apple-system,'Segoe UI',sans-serif;
--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:38px;--text-4xl:48px;
--weight-body:400;--weight-semibold:600;--weight-bold:700;--weight-display:800;
--leading-tight:1.15;--leading-snug:1.3;--leading-body:1.55;
--tracking-display:-0.02em;--tracking-caps:0.08em;

--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;
--shadow-sm:0 1px 2px rgba(11,18,32,.06);
--shadow-card:0 1px 3px rgba(11,18,32,.08),0 4px 12px rgba(11,18,32,.05);
--shadow-lift:0 4px 8px rgba(11,18,32,.08),0 12px 28px rgba(11,18,32,.10);
--shadow-modal:0 8px 16px rgba(11,18,32,.10),0 24px 56px rgba(11,18,32,.18);
--ease-out:cubic-bezier(.22,.61,.36,1);
--dur-fast:120ms;
--dur-med:200ms;
--container-max:1200px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);letter-spacing:var(--tracking-display);line-height:var(--leading-tight);margin:0}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--brand-strong);text-decoration:underline}
img{max-width:100%;display:block}

.container{max-width:var(--container-max);margin:0 auto;padding:0 32px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.skip-link.screen-reader-text{z-index:100;background:var(--ink-950);color:#fff}
.skip-link.screen-reader-text:focus{clip:auto!important;clip-path:none;display:block;height:auto;width:auto;left:16px;top:16px;padding:10px 16px}

/* ---------- Site header ---------- */
.site-header{background:var(--ink-950);color:#fff}
.site-header__inner{max-width:var(--container-max);margin:0 auto;padding:14px 32px;display:flex;align-items:center;gap:32px}
.site-header__brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.site-header__brand:hover{text-decoration:none}
.site-header__logo{height:54px;width:auto}
.site-header__brand-text{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-0.01em;color:#fff}
.site-footer__brand-text{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-0.01em;color:#fff;opacity:.9}
.site-header__tagline{font-family:var(--font-body);font-size:13px;color:var(--ink-300);letter-spacing:.02em}
.site-header__nav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap;list-style:none;padding:0;margin-block:0}
.site-header__nav li{display:flex}
.site-header__nav a{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink-300);text-decoration:none;padding:8px 12px;border-radius:6px;background:transparent}
.site-header__nav a:hover{color:#fff;text-decoration:none;background:var(--ink-800)}
.site-header__nav .current-menu-item>a,.site-header__nav .current_page_item>a{color:#fff;background:var(--ink-800)}
.site-header__cta{margin-left:12px;background:#fff;color:var(--ink-950)!important}
.site-header__cta:hover{background:var(--ink-100)}
.menu-toggle{display:none}

@media (max-width:820px){
  .site-header__inner{flex-wrap:wrap;padding:14px 20px}
  .site-header__nav{width:100%;margin-left:0;justify-content:flex-start}
}

/* ---------- Site footer ---------- */
.site-footer{background:var(--ink-950);color:var(--ink-400)}
.site-footer__inner{max-width:var(--container-max);margin:0 auto;padding:40px 32px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.site-footer__logo{height:44px;opacity:.9}
.site-footer__nav{display:flex;gap:18px;font-size:13px;font-family:var(--font-body);list-style:none;padding:0;margin-block:0}
.site-footer__nav li{display:flex}
.site-footer__nav a{color:var(--ink-300);text-decoration:none}
.site-footer__nav a:hover{color:#fff}
.site-footer__copyright{margin-left:auto;font-size:12px}

/* ---------- Section ---------- */
.section{background:#fff}
.section--subtle{background:var(--surface-subtle)}
.section--dark{background:var(--ink-950)}
.section__inner{max-width:var(--container-max);margin:0 auto;padding:72px 32px}

/* ---------- Photo / Pictogram ---------- */
.photo{border-radius:var(--radius-md);overflow:hidden;background:var(--ink-100);width:100%;height:100%;object-fit:cover;display:block}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo--placeholder{background:linear-gradient(135deg,var(--ink-200),var(--ink-300));display:flex;align-items:center;justify-content:center;color:var(--ink-600);font-family:var(--font-body);font-size:12px;text-align:center;padding:12px}
.pictogram{width:44px;height:44px;display:block;color:var(--accent-strong)}

/* ---------- Buttons ---------- */
.btn{font-family:var(--font-body);font-weight:700;font-size:14px;padding:10px 20px;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);text-decoration:none;line-height:1;white-space:nowrap;background:var(--accent);color:var(--text-on-brand)}
.btn:hover{background:var(--accent-strong);color:var(--text-on-brand);text-decoration:none}
.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn--sm{font-size:13px;padding:7px 14px}
.btn--lg{font-size:16px;padding:13px 26px}
.btn--pill{border-radius:var(--radius-pill)}
.btn--secondary{background:var(--surface-card);color:var(--text-heading);border-color:var(--border-strong)}
.btn--secondary:hover{background:var(--surface-subtle);color:var(--text-heading)}
.btn--ghost{background:transparent;color:var(--accent-strong)}
.btn--ghost:hover{background:var(--accent-soft);color:var(--accent-strong)}
.btn--danger{background:var(--danger);color:#fff}
.btn--danger:hover{background:#a12b2b}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}

/* ---------- Form fields ---------- */
.field{display:block;font-family:var(--font-body)}
.field__label{display:block;font-size:13px;font-weight:700;color:var(--text-heading);margin-bottom:6px}
.field__control{display:flex;align-items:center;gap:8px;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:0 12px;transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.field__control:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}
.field--error .field__control{border-color:var(--danger)}
.field__input{flex:1;border:none;outline:none;background:transparent;font:400 15px/1.4 var(--font-body);color:var(--text-body);padding:10px 0;width:100%}
.field__helper{display:block;font-size:12px;margin-top:5px;color:var(--text-muted)}
.field__helper--error{color:var(--danger)}

.field__select-wrap{position:relative;display:block}
.field__select{width:100%;appearance:none;-webkit-appearance:none;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);font:400 15px var(--font-body);color:var(--text-body);padding:10px 36px 10px 12px;cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.field__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.field__select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}

/* Checkbox */
.checkbox{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-body);font-size:14px;color:var(--text-body)}
.checkbox__box{position:relative;width:18px;height:18px;flex:none;display:inline-block}
.checkbox__input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;z-index:1}
.checkbox__visual{position:absolute;inset:0;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--surface-card);display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.checkbox__visual svg{opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}
.checkbox__input:checked ~ .checkbox__visual{border-color:var(--accent);background:var(--accent)}
.checkbox__input:checked ~ .checkbox__visual svg{opacity:1}
.checkbox__input:focus-visible ~ .checkbox__visual{box-shadow:var(--focus-ring)}
.checkbox__input:disabled ~ .checkbox__visual{opacity:.45;cursor:not-allowed}

/* Radio */
.radio-group{display:flex;flex-direction:column;gap:10px;font-family:var(--font-body);font-size:14px;color:var(--text-body)}
.radio-group--row{flex-direction:row;gap:20px;flex-wrap:wrap}
.radio{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.radio__box{position:relative;width:18px;height:18px;flex:none;display:inline-block}
.radio__input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;z-index:1}
.radio__dot{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface-card);box-sizing:border-box;transition:border var(--dur-fast) var(--ease-out)}
.radio__input:checked ~ .radio__dot{border:5.5px solid var(--accent)}
.radio__input:focus-visible ~ .radio__dot{box-shadow:var(--focus-ring)}

/* ---------- Card ---------- */
.card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--dur-med) var(--ease-out);font-family:var(--font-body)}
.card--hoverable:hover{box-shadow:var(--shadow-lift)}
.card--flush .card__body{padding:0}
.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 0}
.card--flush .card__header{padding:0}
.card__title{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--text-heading);letter-spacing:-0.01em}
.card__subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}
.card__actions{display:flex;gap:8px;flex:none}
.card__body{padding:24px}
.card__footer{border-top:1px solid var(--border-default);padding:12px 24px;background:var(--surface-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex;justify-content:space-between;align-items:center;gap:12px}

/* ---------- Badge ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--ink-100);color:var(--ink-700);font-family:var(--font-body);font-weight:700;font-size:12px;line-height:1;padding:5px 10px;border-radius:var(--radius-pill)}
.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.badge--accent,.badge--brand{background:var(--accent-tint);color:var(--orange-800)}
.badge--success{background:var(--success-bg);color:#15803d}
.badge--warning{background:var(--warning-bg);color:#b45309}
.badge--danger{background:var(--danger-bg);color:#b91c1c}
.badge--info{background:var(--info-bg);color:#1d4ed8}

/* ---------- Toast ---------- */
.toast{display:flex;gap:12px;align-items:flex-start;background:var(--ink-950);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:14px 16px;max-width:380px;font-family:var(--font-body);position:fixed;bottom:24px;right:24px;z-index:60}
.toast[hidden]{display:none}
.toast__dot{width:8px;height:8px;border-radius:50%;background:var(--success);margin-top:5px;flex:none}
.toast--warning .toast__dot{background:var(--warning)}
.toast--danger .toast__dot{background:var(--danger)}
.toast__body{flex:1}
.toast__title{font-weight:700;font-size:14px}
.toast__desc{font-size:13px;color:var(--ink-300);margin-top:2px}
.toast__close{all:unset;cursor:pointer;color:var(--ink-400);display:flex;padding:2px}

/* ---------- Home page ---------- */
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;padding:88px 32px}
.hero__eyebrow{font-weight:700;font-size:12px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.hero__title{font-size:var(--text-4xl);font-weight:800}
.hero__lead{font-size:var(--text-md);color:var(--text-body);margin:18px 0 28px;max-width:480px}
.hero__photo{aspect-ratio:16/10}

.subjects{padding-top:56px;padding-bottom:56px}
.subjects__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.subjects__item{display:flex;flex-direction:column;gap:12px}
.subjects__title{font-size:var(--text-lg);font-weight:700}
.subjects__desc{margin:0;font-size:14px;color:var(--text-muted)}

.services__title{font-size:var(--text-2xl);font-weight:800;margin-bottom:32px}
.services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.services__photo{aspect-ratio:4/3;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.services__grid>.card:nth-child(1) .services__photo img{object-position:center 20%}
.services__body{padding:20px 22px 24px}
.services__body h3{font-size:var(--text-lg);font-weight:700;margin-bottom:8px}
.services__body p{margin:0;font-size:14px;color:var(--text-body)}

.ops{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ops__title{font-size:var(--text-2xl);font-weight:800}
.ops__text{font-size:15px;color:var(--text-body);margin-top:14px}
.ops__photo{aspect-ratio:4/3}

.quote{text-align:center;max-width:760px}
.quote__mark{width:64px;height:64px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:var(--ink-950);border-radius:16px;padding:10px;margin:0 auto}
.quote__text{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:var(--text-heading);line-height:1.45;margin:22px 0 14px}
.quote__author{font-size:14px;font-weight:700;color:var(--text-heading)}

.newsletter__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:56px}
.newsletter__title{font-size:var(--text-2xl);font-weight:800}
.newsletter__text{font-size:14px;color:var(--text-body);margin-top:12px}
.newsletter__fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.newsletter__consent{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

.contact{padding-bottom:88px}
.contact__title{font-size:var(--text-2xl);font-weight:800;margin-bottom:18px}
.contact__body{font-size:15px;color:var(--text-body);line-height:1.7}
.contact__body strong{color:var(--text-heading)}

/* ---------- Kurser page ---------- */
.page-hero{padding-bottom:40px}
.page-hero__eyebrow{font-weight:700;font-size:12px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.page-hero__title{font-size:var(--text-3xl);font-weight:800;max-width:640px}
.courses{padding-top:48px;display:grid;grid-template-columns:1fr;gap:32px;align-items:start}
.courses__desc{margin:0;font-size:16px;line-height:1.7;color:var(--text-body)}

/* ---------- Anmälan page ---------- */
.anmalan{max-width:720px}
.anmalan__title{font-size:var(--text-3xl);font-weight:800;margin-bottom:28px}
.anmalan__fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.anmalan__fields .field--full{grid-column:1/-1}
.anmalan__actions{margin-top:22px;display:flex;justify-content:flex-end}
.anmalan__notice{max-width:720px;margin:0 0 24px;padding:14px 16px;border-radius:var(--radius-md);background:var(--success-bg);color:#15803d;font-size:14px;font-weight:600}
.anmalan__notice--error{background:var(--danger-bg);color:#b91c1c}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .hero,.ops,.newsletter__grid{grid-template-columns:1fr}
  .subjects__grid,.services__grid{grid-template-columns:1fr 1fr}
  .anmalan__fields{grid-template-columns:1fr}
}
@media (max-width:620px){
  .subjects__grid,.services__grid{grid-template-columns:1fr}
  .newsletter__fields{grid-template-columns:1fr}
  .section__inner{padding:48px 20px}
}
