/* ═══════════════════════════════════════════════════════════════════
   JP HYGGE — a hygge layer over the Jessica Plöen Counseling themes.

   Loads after the active theme's assets/css/theme.css and re-points the
   theme's own custom properties at a hygge token set. Every selector is
   rooted in :root[data-hygge…], which out-specifies the theme's
   html[data-theme="…"] and html[data-font="…"] blocks, so the theme's
   Customizer palette and typeface are overridden while the plugin is on
   and untouched the moment it is turned off.

   Attributes the plugin writes on <html> (see inc/frontend.php):

     data-hygge="on"                        master switch
     data-hygge-mood="lys|uld|skov|ler|hav|rug|lyng|sten|aften|nat"
                                           palette
     data-hygge-type="stue|bog|dansk"       typeface pairing
     data-hygge-candle="on"                 warm glow in the corners
     data-hygge-wool="on"                   fibre texture
     data-hygge-soft="on"                   rounder, warmer, slower
     data-hygge-evening="off|system|clock"  read by the inline script
     data-hygge-base="jp-01…jp-05"          which theme is underneath
     data-hygge-layout="stue|atelier|brev"  how the page is built
     data-hygge-shape="pille|bloed|kant"    buttons, corners, shadows
     data-hygge-labels="versal|stille"      the small line above headings
     data-hygge-streg="on"                  hand-drawn accents

   Hygge, as a design brief: a room after dark with one lamp on. Cream
   like candle wax, oak and wool, an amber glow, nothing sharp, nothing
   in a hurry. Restraint is still the rule — the ambience is felt more
   than seen.
   ═══════════════════════════════════════════════════════════════════ */


/* ─────────────────────────── 1. MOODS ───────────────────────────
   GENERATED by dev/hygge-moods.js — edit the moods there, not here.
   Colour values are mirrored in inc/options.php for the editor. */

:root[data-hygge]{ /* Lys — candlelight. Cream, oak and ember (default). */
  color-scheme:light;
  --hy-bg:#FBF7F0; --hy-surface:#F2EADD; --hy-card:#FFFDF9;
  --hy-ink:#2C2420; --hy-muted:#6E6156; --hy-line:#E6DCCC;
  --hy-accent:#8B5E3C; --hy-accent-dk:#6E4728; --hy-accent-soft:#B08760;
  --hy-accent-lt:#F1E4D3; --hy-on-accent:#FBF7F0;
  --hy-ember:#C2653C; --hy-candle:#E4B364;
  --hy-deep:#2E2521; --hy-ondeep:#F3EBDF; --hy-ondeep-mut:#C6B8A8; --hy-ondeep-eb:#E0B77A;
  --hy-ph-a:#F0E4D2; --hy-ph-b:#DCC9AE; --hy-ph-c:#C2A784; --hy-ph-d:#A78B66;
  --hy-glow:#EAD9BE; --hy-shadow:#4A3222;
  --hy-candle-a:22%; --hy-wool-op:.05; --hy-wool-blend:multiply;
}
:root[data-hygge][data-hygge-mood="uld"]{ /* Uld — wool. Oatmeal, charcoal and a dusty Danish blue. */
  --hy-bg:#F6F3EE; --hy-surface:#ECE7DF; --hy-card:#FCFBF8;
  --hy-ink:#27262A; --hy-muted:#66636A; --hy-line:#DFD9CF;
  --hy-accent:#4B5D74; --hy-accent-dk:#37485C; --hy-accent-soft:#7C8DA3;
  --hy-accent-lt:#E4E8EE; --hy-on-accent:#F6F3EE;
  --hy-ember:#B5715A; --hy-candle:#E0B77A;
  --hy-deep:#2A2C33; --hy-ondeep:#EEEBE5; --hy-ondeep-mut:#B7B4B0; --hy-ondeep-eb:#D6B98A;
  --hy-ph-a:#ECE6DC; --hy-ph-b:#D6CEC2; --hy-ph-c:#B9AFA2; --hy-ph-d:#8F9AA8;
  --hy-glow:#DCDDE0; --hy-shadow:#2A2A30;
  --hy-candle-a:16%;
}
:root[data-hygge][data-hygge-mood="skov"]{ /* Skov — forest. Cream, pine and amber. */
  --hy-bg:#F9F6EE; --hy-surface:#EEEBDF; --hy-card:#FFFEF9;
  --hy-ink:#1F2622; --hy-muted:#5F665F; --hy-line:#E0DCCD;
  --hy-accent:#3F5B47; --hy-accent-dk:#2E4535; --hy-accent-soft:#6F8A73;
  --hy-accent-lt:#E3EAE1; --hy-on-accent:#F9F6EE;
  --hy-ember:#C4883F; --hy-candle:#E6B961;
  --hy-deep:#22302A; --hy-ondeep:#EEF0E6; --hy-ondeep-mut:#B2BDB1; --hy-ondeep-eb:#D9B871;
  --hy-ph-a:#ECE7D6; --hy-ph-b:#D6D2BC; --hy-ph-c:#B7B79A; --hy-ph-d:#7C8C72;
  --hy-glow:#DCE3D4; --hy-shadow:#1F2A22;
  --hy-candle-a:20%;
}
:root[data-hygge][data-hygge-mood="ler"]{ /* Ler — clay. Blush cream, terracotta and rust. */
  --hy-bg:#FBF4EF; --hy-surface:#F3E6DD; --hy-card:#FFFCFA;
  --hy-ink:#2E2521; --hy-muted:#6F6159; --hy-line:#E8D9CF;
  --hy-accent:#9E4A31; --hy-accent-dk:#7E3A26; --hy-accent-soft:#C98466;
  --hy-accent-lt:#F5E3DA; --hy-on-accent:#FBF4EF;
  --hy-ember:#C86A3A; --hy-candle:#E9B87A;
  --hy-deep:#3A2822; --hy-ondeep:#F6ECE5; --hy-ondeep-mut:#CBB5A9; --hy-ondeep-eb:#E4A07A;
  --hy-ph-a:#F2E1D6; --hy-ph-b:#E0C6B6; --hy-ph-c:#C8A28E; --hy-ph-d:#A97C66;
  --hy-glow:#EDD6C8; --hy-shadow:#4A2E24;
  --hy-candle-a:20%;
}
:root[data-hygge][data-hygge-mood="hav"]{ /* Hav — sea. Mist, deep sea-teal and driftwood. */
  --hy-bg:#F6F6F1; --hy-surface:#EAECE6; --hy-card:#FDFDFA;
  --hy-ink:#1F2A2C; --hy-muted:#616A6A; --hy-line:#DADDD5;
  --hy-accent:#2F5F6B; --hy-accent-dk:#21474F; --hy-accent-soft:#6A93A0;
  --hy-accent-lt:#E1EAEC; --hy-on-accent:#F6F6F1;
  --hy-ember:#C08B54; --hy-candle:#E6C07E;
  --hy-deep:#1F3238; --hy-ondeep:#EEF1EE; --hy-ondeep-mut:#A9B7B8; --hy-ondeep-eb:#D6B47A;
  --hy-ph-a:#E6EAE6; --hy-ph-b:#CBD6D4; --hy-ph-c:#A9BBBB; --hy-ph-d:#7E9BA1;
  --hy-glow:#D9E1E0; --hy-shadow:#1E2C30;
  --hy-candle-a:16%;
}
:root[data-hygge][data-hygge-mood="rug"]{ /* Rug — rye. Straw, honey-ochre and dark olive. */
  --hy-bg:#FBF6EA; --hy-surface:#F2E9D0; --hy-card:#FFFDF5;
  --hy-ink:#2A2517; --hy-muted:#6B6450; --hy-line:#E6DCC0;
  --hy-accent:#7A5A12; --hy-accent-dk:#5E450C; --hy-accent-soft:#B08A3A;
  --hy-accent-lt:#F2E6C6; --hy-on-accent:#FBF6EA;
  --hy-ember:#C98A2E; --hy-candle:#EBC25A;
  --hy-deep:#2E2914; --hy-ondeep:#F5EEDA; --hy-ondeep-mut:#C9BCA2; --hy-ondeep-eb:#E3B955;
  --hy-ph-a:#F1E6C8; --hy-ph-b:#DFCB98; --hy-ph-c:#C6A968; --hy-ph-d:#A2873F;
  --hy-glow:#EDDFB2; --hy-shadow:#3E3214;
  --hy-candle-a:24%;
}
:root[data-hygge][data-hygge-mood="lyng"]{ /* Lyng — heather. Lilac cream, plum and rose. */
  --hy-bg:#F9F5F4; --hy-surface:#EEE6E6; --hy-card:#FFFCFC;
  --hy-ink:#2A2226; --hy-muted:#6A6166; --hy-line:#E3D9DA;
  --hy-accent:#6B4A5E; --hy-accent-dk:#513546; --hy-accent-soft:#9A7A8C;
  --hy-accent-lt:#EEE3EA; --hy-on-accent:#F9F5F4;
  --hy-ember:#B96C6C; --hy-candle:#E5B98A;
  --hy-deep:#2E2329; --hy-ondeep:#F3ECEE; --hy-ondeep-mut:#C2B4BA; --hy-ondeep-eb:#D9A28E;
  --hy-ph-a:#EFE3E5; --hy-ph-b:#DCC8CC; --hy-ph-c:#BFA4AB; --hy-ph-d:#967A85;
  --hy-glow:#E6D8DC; --hy-shadow:#332328;
  --hy-candle-a:16%;
}
:root[data-hygge][data-hygge-mood="sten"]{ /* Sten — stone. Grey cream, charcoal and a warm ember. */
  --hy-bg:#F5F4F1; --hy-surface:#E9E8E3; --hy-card:#FCFBF9;
  --hy-ink:#262622; --hy-muted:#66655F; --hy-line:#DCDBD5;
  --hy-accent:#4A4A48; --hy-accent-dk:#2E2E2C; --hy-accent-soft:#8A8A86;
  --hy-accent-lt:#E6E5E0; --hy-on-accent:#F5F4F1;
  --hy-ember:#B87546; --hy-candle:#E0B57A;
  --hy-deep:#2A2A28; --hy-ondeep:#EFEEEA; --hy-ondeep-mut:#B4B3AD; --hy-ondeep-eb:#D6B182;
  --hy-ph-a:#E8E6E1; --hy-ph-b:#D3D0C9; --hy-ph-c:#B4B0A7; --hy-ph-d:#8E8A80;
  --hy-glow:#DEDCD6; --hy-shadow:#262624;
  --hy-candle-a:14%;
}
:root[data-hygge][data-hygge-mood="kirsebaer"]{ /* Kirsebær — cherry. Blush, deep cherry red and coral. */
  --hy-bg:#FDF1F0; --hy-surface:#F8DCDA; --hy-card:#FFF9F8;
  --hy-ink:#2A1618; --hy-muted:#6B4C50; --hy-line:#EECFCD;
  --hy-accent:#A0172E; --hy-accent-dk:#7C1022; --hy-accent-soft:#D65A6E;
  --hy-accent-lt:#FBE1E4; --hy-on-accent:#FDF1F0;
  --hy-ember:#E5562F; --hy-candle:#F5A96B;
  --hy-deep:#85142A; --hy-ondeep:#FDEDEF; --hy-ondeep-mut:#F4C4CB; --hy-ondeep-eb:#FFC9A3;
  --hy-ph-a:#FAD9D6; --hy-ph-b:#F2B3AE; --hy-ph-c:#E38A86; --hy-ph-d:#C45E63;
  --hy-glow:#F6CFCF; --hy-shadow:#4A0F1C;
  --hy-candle-a:24%;
}
:root[data-hygge][data-hygge-mood="solsikke"]{ /* Solsikke — sunflower. Butter yellow, burnt orange and marigold. */
  --hy-bg:#FFF7DC; --hy-surface:#FDEBA6; --hy-card:#FFFCEE;
  --hy-ink:#2B2210; --hy-muted:#675A38; --hy-line:#F2E0A0;
  --hy-accent:#9A3D0C; --hy-accent-dk:#7A2F08; --hy-accent-soft:#D9822E;
  --hy-accent-lt:#FCE3C2; --hy-on-accent:#FFF7DC;
  --hy-ember:#E8891C; --hy-candle:#F7C948;
  --hy-deep:#7E3208; --hy-ondeep:#FFF7DC; --hy-ondeep-mut:#F7D9A8; --hy-ondeep-eb:#FFE08A;
  --hy-ph-a:#FFE9A8; --hy-ph-b:#FBD56B; --hy-ph-c:#F2B53C; --hy-ph-d:#D98E1F;
  --hy-glow:#FBE7A0; --hy-shadow:#4A3008;
  --hy-candle-a:26%;
}
:root[data-hygge][data-hygge-mood="eng"]{ /* Eng — meadow. Mint, emerald and marigold. */
  --hy-bg:#F2F9F0; --hy-surface:#DCEFD6; --hy-card:#FBFEFA;
  --hy-ink:#17261C; --hy-muted:#4F6354; --hy-line:#CFE3C9;
  --hy-accent:#1B6A40; --hy-accent-dk:#124F2F; --hy-accent-soft:#4FA873;
  --hy-accent-lt:#DDF0E3; --hy-on-accent:#F2F9F0;
  --hy-ember:#E0A21E; --hy-candle:#F1CB55;
  --hy-deep:#0F4E2F; --hy-ondeep:#F2F9F0; --hy-ondeep-mut:#C8E6D1; --hy-ondeep-eb:#F8DA7E;
  --hy-ph-a:#DCF0D6; --hy-ph-b:#B9E0B0; --hy-ph-c:#8CC98A; --hy-ph-d:#5DA66B;
  --hy-glow:#D2EBCB; --hy-shadow:#0F2E1D;
  --hy-candle-a:20%;
}
:root[data-hygge][data-hygge-mood="fjord"]{ /* Fjord — fjord. Ice blue, cobalt and a warm orange. */
  --hy-bg:#F2F6FC; --hy-surface:#DDE7F6; --hy-card:#FAFCFF;
  --hy-ink:#141C2E; --hy-muted:#4F5A70; --hy-line:#CFDBEE;
  --hy-accent:#2045A0; --hy-accent-dk:#16347D; --hy-accent-soft:#5C82CF;
  --hy-accent-lt:#DFE7F8; --hy-on-accent:#F2F6FC;
  --hy-ember:#E8833A; --hy-candle:#F4C170;
  --hy-deep:#17357F; --hy-ondeep:#F2F6FC; --hy-ondeep-mut:#C3D2F1; --hy-ondeep-eb:#F6CC86;
  --hy-ph-a:#DCE6F7; --hy-ph-b:#B6C9EE; --hy-ph-c:#8AA6E0; --hy-ph-d:#5A7CC6;
  --hy-glow:#D3DEF3; --hy-shadow:#0E1A3A;
  --hy-candle-a:18%;
}
:root[data-hygge][data-hygge-mood="viol"]{ /* Viol — violet. Lavender, deep violet and pink. */
  --hy-bg:#F7F2FC; --hy-surface:#EADFF7; --hy-card:#FDFBFF;
  --hy-ink:#211832; --hy-muted:#5C5070; --hy-line:#E0D3F0;
  --hy-accent:#5B2A8C; --hy-accent-dk:#43206A; --hy-accent-soft:#9368C4;
  --hy-accent-lt:#EEE3F9; --hy-on-accent:#F7F2FC;
  --hy-ember:#E0648A; --hy-candle:#F0B77E;
  --hy-deep:#472271; --hy-ondeep:#F7F2FC; --hy-ondeep-mut:#D6C4EE; --hy-ondeep-eb:#F7B3C8;
  --hy-ph-a:#EADFF7; --hy-ph-b:#D3BFEE; --hy-ph-c:#B597DE; --hy-ph-d:#8E68C2;
  --hy-glow:#E3D6F4; --hy-shadow:#241438;
  --hy-candle-a:20%;
}
:root[data-hygge][data-hygge-mood="aften"]{ /* Aften — evening. A dark room, one lamp on. */
  color-scheme:dark;
  --hy-bg:#1D1714; --hy-surface:#282019; --hy-card:#2C241E;
  --hy-ink:#F2EADD; --hy-muted:#AA9D8C; --hy-line:#3B3029;
  --hy-accent:#D9A75E; --hy-accent-dk:#E7BE7C; --hy-accent-soft:#B98A4E;
  --hy-accent-lt:#3A2E22; --hy-on-accent:#1D1714;
  --hy-ember:#D08558; --hy-candle:#F0B860;
  /* The themes' dark palettes invert their inset panel to a light card —
     a lit window in a dark room — and hover states rely on it. Same here. */
  --hy-deep:#F2EADD; --hy-ondeep:#1D1714; --hy-ondeep-mut:#5E5348; --hy-ondeep-eb:#8B5E3C;
  --hy-ph-a:#3A2E25; --hy-ph-b:#2B221C; --hy-ph-c:#1F1915; --hy-ph-d:#4A3A2C;
  --hy-glow:#4A3524; --hy-shadow:#000000;
  --hy-candle-a:30%; --hy-wool-op:.075; --hy-wool-blend:screen;
}
:root[data-hygge][data-hygge-mood="nat"]{ /* Nat — night. Cool dark, pale gold. */
  color-scheme:dark;
  --hy-bg:#171A20; --hy-surface:#20242C; --hy-card:#252A33;
  --hy-ink:#ECEAE3; --hy-muted:#A3A6AD; --hy-line:#343943;
  --hy-accent:#D8B36A; --hy-accent-dk:#E6C68A; --hy-accent-soft:#B8985C;
  --hy-accent-lt:#33302A; --hy-on-accent:#171A20;
  --hy-ember:#D08A5A; --hy-candle:#EFC27A;
  /* The themes' dark palettes invert their inset panel to a light card —
     a lit window in a dark room — and hover states rely on it. Same here. */
  --hy-deep:#ECEAE3; --hy-ondeep:#171A20; --hy-ondeep-mut:#5B5E66; --hy-ondeep-eb:#74592A;
  --hy-ph-a:#2B3039; --hy-ph-b:#22262E; --hy-ph-c:#1B1E24; --hy-ph-d:#3A3F4A;
  --hy-glow:#3B3F4A; --hy-shadow:#000000;
  --hy-candle-a:26%; --hy-wool-op:.075; --hy-wool-blend:screen;
}


/* ────────────────────────── 2. TYPEFACES ──────────────────────────
   Albert Sans on every pairing: a geometric sans by the Danish designer
   Andreas Rasmussen, after Scandinavian type of the 1920s and 30s.
   --hy-soft drives Fraunces' SOFT axis (rounder terminals); the other
   faces ignore it. --hy-reading is what theme 05 sets its serif body in. */

:root[data-hygge]{ /* Stue — Fraunces + Albert Sans */
  --hy-display:"Fraunces","Iowan Old Style",Palatino,Georgia,serif;
  --hy-body:"Albert Sans",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --hy-reading:var(--hy-display);
  --hy-soft:80;
}
:root[data-hygge][data-hygge-type="bog"]{ /* Bog — Literata + Albert Sans */
  --hy-display:"Literata",Georgia,"Iowan Old Style",serif;
  --hy-soft:0;
}
:root[data-hygge][data-hygge-type="hus"]{ /* Hus — Newsreader + Source Sans 3, a humanist body */
  --hy-display:"Newsreader","Iowan Old Style",Palatino,Georgia,serif;
  --hy-body:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --hy-soft:0;
}
:root[data-hygge][data-hygge-type="hus"] body{font-size:19px;line-height:1.72}
:root[data-hygge][data-hygge-type="dansk"]{ /* Dansk — Playfair Display + Albert Sans, Literata for reading */
  --hy-display:"Playfair Display",Georgia,"Iowan Old Style",serif;
  --hy-reading:"Literata",Georgia,"Iowan Old Style",serif;
  --hy-soft:0;
}


/* ─────────────────────────── 3. BRIDGE ────────────────────────────
   Point every custom property the five themes use at the hygge tokens.
   Setting a name a theme does not use is harmless, so this is the union. */

:root[data-hygge]{
  /* shared across themes */
  --bg:var(--hy-bg); --surface:var(--hy-surface); --card:var(--hy-card); --raise:var(--hy-card);
  --ink:var(--hy-ink); --muted:var(--hy-muted); --line:var(--hy-line);
  --line-soft:color-mix(in srgb,var(--hy-ink) 10%,transparent);
  --ph-a:var(--hy-ph-a); --ph-b:var(--hy-ph-b); --ph-c:var(--hy-ph-c); --ph-d:var(--hy-ph-d);
  /* jp-01 quiet authority */
  --accent:var(--hy-accent);
  /* jp-02 warm sanctuary */
  --deep:var(--hy-deep); --ondeep:var(--hy-ondeep); --ondeep-mut:var(--hy-ondeep-mut); --ondeep-eb:var(--hy-ondeep-eb);
  --sage:var(--hy-accent-soft); --sage-dk:var(--hy-accent); --terra:var(--hy-ember);
  /* jp-03 discreet concierge */
  --brass:var(--hy-accent); --brass-lt:var(--hy-accent-dk); --glow:var(--hy-glow);
  /* jp-04 clean contemporary */
  --teal:var(--hy-accent); --teal-dk:var(--hy-accent-dk); --teal-lt:var(--hy-accent-lt); --onteal:var(--hy-on-accent);
  /* jp-05 personal practice */
  --bronze:var(--hy-accent); --bronze-dk:var(--hy-accent-dk);
  /* type */
  --serif:var(--hy-display); --display:var(--hy-display); --sans:var(--hy-body);
}


/* ───────────────────────── 4. TYPOGRAPHY ────────────────────────── */

:root[data-hygge] body{
  font-family:var(--hy-body);
  line-height:1.78;
  letter-spacing:0;
}
/* Theme 05 sets its body in the serif; keep that, in the reading face. */
:root[data-hygge][data-hygge-base="jp-05"] body{font-family:var(--hy-reading)}

:root[data-hygge] :is(h1,h2,h3,h4){
  font-family:var(--hy-display);
  font-weight:400;
  letter-spacing:-.012em;
  line-height:1.14;
  font-optical-sizing:auto;
  font-variation-settings:"SOFT" var(--hy-soft);
}
:root[data-hygge] :is(h1,h2){text-wrap:balance}
:root[data-hygge] :is(.brand,.pull,summary,.fee-row strong,.sig){
  font-variation-settings:"SOFT" var(--hy-soft);
}
/* Playfair sits tall and wide; give the hero a little less. */
:root[data-hygge][data-hygge-type="dansk"] .hero h1{letter-spacing:-.02em;line-height:1.08}

:root[data-hygge] a{
  text-underline-offset:.18em;
  text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--hy-accent) 55%,transparent);
}
:root[data-hygge] ::selection{background:color-mix(in srgb,var(--hy-candle) 55%,transparent);color:var(--hy-ink)}
:root[data-hygge] :is(a,button,input,textarea,summary,select):focus-visible{
  outline:2px solid var(--hy-accent);
  outline-offset:3px;
  border-color:transparent;
}


/* ───────────────────────── 5. AMBIENCE ─────────────────────────── */

/* Candlelight. Two lamps: one low on the left, a fainter one high on the
   right. Fixed, non-interactive, under the texture layer, breathing very
   slowly. On the light moods it warms the cream; on Aften it is the lamp. */
:root[data-hygge][data-hygge-candle] body::after{
  content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;
  background:
    radial-gradient(58% 54% at 4% 104%, color-mix(in srgb,var(--hy-candle) var(--hy-candle-a),transparent) 0%, transparent 72%),
    radial-gradient(40% 36% at 102% -6%, color-mix(in srgb,var(--hy-candle) calc(var(--hy-candle-a) / 2),transparent) 0%, transparent 72%);
  animation:hy-breathe 12s ease-in-out infinite alternate;
}
@keyframes hy-breathe{from{opacity:.72}to{opacity:1}}

/* A faint golden cast on photographs, once there are photographs. */
:root[data-hygge][data-hygge-candle] :is(img.hero-img,img.portrait,img.band,img.break,img.ph,.jp-prose img,.wp-block-image img,.wp-block-post-featured-image img){
  filter:sepia(.07) saturate(.94) contrast(.98);
}

/* Wool. Replaces the theme's paper grain with a finer, slightly directional
   fibre, and adds it to theme 04 which shipped without any. Multiply on the
   light moods, screen on Aften, so it shows on both. */
:root[data-hygge][data-hygge-wool] body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:var(--hy-wool-op);
  mix-blend-mode:var(--hy-wool-blend);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95 .6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23w)'/%3E%3C/svg%3E");
  background-size:240px 240px;
}
/* Wool off: keep the theme's own grain but tone it to the mood. */
:root[data-hygge]:not([data-hygge-wool]) body::before{opacity:.035}

/* The wordmark dot on theme 02 and 04 becomes a small flame (only while no
   site logo is uploaded; an uploaded logo is left alone). */
:root[data-hygge] .mark,
:root[data-hygge] .brand:not(:has(.wp-block-site-logo))::before{
  background:radial-gradient(circle at 50% 38%,var(--hy-candle) 0%,var(--hy-ember) 58%,var(--hy-accent-dk) 100%);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--hy-candle) 24%,transparent);
}
:root[data-hygge][data-hygge-soft] .mark,
:root[data-hygge][data-hygge-soft] .brand:not(:has(.wp-block-site-logo))::before{border-radius:50%}


/* ────────────────────────── 6. SOFTNESS ────────────────────────── */

:root[data-hygge][data-hygge-soft]{--r:26px}

:root[data-hygge][data-hygge-soft] :is(.btn,.navcta,.chip,.jp-form button,.wp-block-button__link,.jp-searchform .wp-block-search__button){
  border-radius:999px;
}
:root[data-hygge][data-hygge-soft] :is(input,textarea,select,.jp-searchform .wp-block-search__input){border-radius:14px}
:root[data-hygge][data-hygge-soft] :is(details,.card,.fee-card,.svc article,.pgrid article,.jp-author){border-radius:18px}
:root[data-hygge][data-hygge-soft] :is(.hero-img,.portrait,.ph,.band,.break,img.hero-img,img.portrait){border-radius:var(--r)}

/* Shadows in the mood's own brown, never grey. */
:root[data-hygge] :is(.card:hover,.svc article:hover,.pgrid article:hover){
  box-shadow:0 22px 46px -28px color-mix(in srgb,var(--hy-shadow) 55%,transparent);
}
:root[data-hygge][data-hygge-soft] .btn:not(.btn-ghost){
  box-shadow:0 14px 30px -18px color-mix(in srgb,var(--hy-accent) 75%,transparent);
}
:root[data-hygge][data-hygge-soft] .btn:not(.btn-ghost):hover{
  box-shadow:0 18px 34px -18px color-mix(in srgb,var(--hy-accent) 85%,transparent);
}
:root[data-hygge][data-hygge-soft] :is(.hero-img,.portrait){
  box-shadow:0 28px 64px -30px color-mix(in srgb,var(--hy-shadow) 42%,transparent);
}

/* Slower reveal, less travel. Nothing on this page is in a hurry. */
:root[data-hygge][data-hygge-soft] .reveal{
  transform:translateY(12px);
  transition:opacity .95s cubic-bezier(.22,.61,.36,1),transform .95s cubic-bezier(.22,.61,.36,1);
}
:root[data-hygge][data-hygge-soft] .reveal.in{opacity:1;transform:none}
:root[data-hygge][data-hygge-soft] :is(.card,.svc article,.btn,.navcta,.navlinks a){transition-duration:.32s}


/* ───────────────────── 7. PER-THEME TOUCHES ────────────────────── */

/* 01 and 05 set their buttons in the sans; keep that in Albert Sans. */
:root[data-hygge][data-hygge-base="jp-01"] .btn,
:root[data-hygge][data-hygge-base="jp-05"] .btn{font-family:var(--hy-body)}

/* 04 set headings bold in a sans; a 400 serif needs a touch more size. */
:root[data-hygge][data-hygge-base="jp-04"] .hero h1{font-size:clamp(2.6rem,5.6vw,4.4rem)}
:root[data-hygge][data-hygge-base="jp-04"] :is(.card,.svc article,.pgrid article){border-width:1px}


/* ──────────────────────────── 9. SHAPE ───────────────────────────
   Buttons, corners and shadows. "pille" is the pill with the warm glow that
   the Softness switch draws — no rules here, so the default look is the
   theme's own. "bloed" rounds gently and drops the glow. "kant" is square
   with a solid border and turns the second button into an underlined link.
   Placed after Softness on purpose: same selectors, later in the file. */

:root[data-hygge][data-hygge-shape="bloed"]{--r:12px}
:root[data-hygge][data-hygge-shape="bloed"] :is(.btn,.navcta,.chip,.jp-form button,.wp-block-button__link,.jp-searchform .wp-block-search__button){border-radius:8px;box-shadow:none}
:root[data-hygge][data-hygge-shape="bloed"] .btn:not(.btn-ghost){box-shadow:none;transition:background .25s ease,border-color .25s ease,transform .25s ease}
:root[data-hygge][data-hygge-shape="bloed"] .btn:not(.btn-ghost):hover{background:var(--hy-accent-dk);border-color:var(--hy-accent-dk);color:var(--hy-on-accent);box-shadow:none;transform:translateY(-1px)}
:root[data-hygge][data-hygge-shape="bloed"] :is(input,textarea,select,.jp-searchform .wp-block-search__input){border-radius:8px}
:root[data-hygge][data-hygge-shape="bloed"] :is(details,.card,.fee-card,.svc article,.pgrid article,.jp-author){border-radius:12px}
:root[data-hygge][data-hygge-shape="bloed"] :is(.hero-img,.portrait,.ph,.band,.break,img.hero-img,img.portrait){border-radius:14px;box-shadow:none}
:root[data-hygge][data-hygge-shape="bloed"] :is(.named,.privacy,.contact-card,.ctaband){border-radius:18px}
:root[data-hygge][data-hygge-shape="bloed"] .card:hover{transform:none;box-shadow:0 1px 0 0 var(--hy-line)}

:root[data-hygge][data-hygge-shape="kant"]{--r:3px}
:root[data-hygge][data-hygge-shape="kant"] :is(.btn,.navcta,.chip,.jp-form button,.wp-block-button__link,.jp-searchform .wp-block-search__button){border-radius:2px;box-shadow:none}
:root[data-hygge][data-hygge-shape="kant"] .btn:not(.btn-ghost){background:var(--hy-accent);border:1px solid var(--hy-accent);color:var(--hy-on-accent);box-shadow:none;padding:.95rem 1.6rem;letter-spacing:.01em;transition:background .25s ease,color .25s ease}
:root[data-hygge][data-hygge-shape="kant"] .btn:not(.btn-ghost):hover{background:transparent;color:var(--hy-accent);border-color:var(--hy-accent);box-shadow:none;transform:none}
:root[data-hygge][data-hygge-shape="kant"] .btn-ghost{background:transparent;border-color:transparent;color:var(--hy-accent);padding:.95rem .15rem;margin-left:1.1rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em;text-decoration-color:color-mix(in srgb,var(--hy-accent) 55%,transparent);transition:text-underline-offset .25s ease,text-decoration-color .25s ease,color .25s ease}
:root[data-hygge][data-hygge-shape="kant"] .btn-ghost:hover{background:transparent;border-color:transparent;color:var(--hy-accent-dk);text-underline-offset:.55em;text-decoration-color:var(--hy-ember)}
:root[data-hygge][data-hygge-shape="kant"] .navcta{background:transparent;color:var(--hy-accent);border:1px solid var(--hy-accent);padding:.6rem 1.1rem;transition:background .25s ease,color .25s ease}
:root[data-hygge][data-hygge-shape="kant"] .navcta:hover{background:var(--hy-accent);color:var(--hy-on-accent)}
:root[data-hygge][data-hygge-shape="kant"] :is(input,textarea,select,.jp-searchform .wp-block-search__input){border-radius:2px}
:root[data-hygge][data-hygge-shape="kant"] :is(details,.card,.fee-card,.svc article,.pgrid article,.jp-author){border-radius:2px}
:root[data-hygge][data-hygge-shape="kant"] :is(.hero-img,.portrait,.ph,.band,.break,img.hero-img,img.portrait){border-radius:3px;box-shadow:none}
:root[data-hygge][data-hygge-shape="kant"] :is(.named,.privacy,.contact-card,.ctaband){border-radius:3px}
:root[data-hygge][data-hygge-shape="kant"] .card:hover{transform:none;box-shadow:none}
@media (max-width:560px){
  :root[data-hygge][data-hygge-shape="kant"] .btn-ghost{margin:.9rem 0 0;padding-left:0;text-align:left}
}


/* ─────────────────────────── 10. LABELS ──────────────────────────
   The small line above a heading. "versal" is the theme's tracked capitals
   (no rules). "stille" sets it quietly: sentence case, italic, in the
   display face, with a short rule before it. */

:root[data-hygge][data-hygge-labels="stille"] .eyebrow{
  text-transform:none;letter-spacing:0;font-family:var(--hy-display);font-style:italic;font-weight:400;
  font-size:1.05rem;line-height:1.3;color:var(--hy-accent);display:flex;align-items:center;gap:.75rem;
  margin-bottom:1.1rem;font-variation-settings:"SOFT" var(--hy-soft);
}
:root[data-hygge][data-hygge-labels="stille"] .eyebrow::before{content:"";flex:none;width:1.75rem;height:1px;background:currentColor;opacity:.7;margin:0}
:root[data-hygge][data-hygge-labels="stille"] .privacy .eyebrow{color:var(--hy-ondeep-eb)}
:root[data-hygge][data-hygge-labels="stille"][data-hygge-base="jp-04"] :is(.named,.ctaband) .eyebrow{color:var(--hy-on-accent)}


/* ─────────────────────────── 11. LAYOUT ──────────────────────────
   How the page is built. Everything here works on the blocks already in the
   Home page — only the styling changes, so switching is free and reversible.

   "stue"    the theme as designed: cards and rounded panels (no rules).
   "atelier" editorial. A 7/5 hero with the photo arched and bled to the
             edge, hairlines instead of cards, numbered steps beside a
             sticky introduction, a full-bleed privacy band, underlined
             form fields.
   "brev"    a letter. One calm column, the hero photo as an arched window
             below the words, a round portrait, a soft panel for privacy.

   The "named" and "privacy" panels carry !important side margins from the
   theme's layout reconciliation, so the two rules that change those margins
   say !important too. */

/* ── bones both editorial layouts share ── */
:root[data-hygge][data-hygge-layout="atelier"],
:root[data-hygge][data-hygge-layout="brev"]{--section:clamp(5rem,12vw,10rem)}
:root[data-hygge][data-hygge-layout="atelier"] h2,
:root[data-hygge][data-hygge-layout="brev"] h2{font-size:clamp(2.1rem,4.2vw,3.1rem);line-height:1.08;letter-spacing:-.015em;max-width:18ch;margin-bottom:1.5rem}
:root[data-hygge][data-hygge-layout="atelier"] .body-lg,
:root[data-hygge][data-hygge-layout="brev"] .body-lg{font-size:1.12rem;line-height:1.8}
:root[data-hygge][data-hygge-layout="atelier"] p,
:root[data-hygge][data-hygge-layout="brev"] p{max-width:62ch}

/* why people call — an open spread, not a panel */
:root[data-hygge][data-hygge-layout="atelier"] .named,
:root[data-hygge][data-hygge-layout="brev"] .named{background:transparent;border-radius:0;padding:var(--section) 0 0}
:root[data-hygge][data-hygge-layout="atelier"] .named-inner,
:root[data-hygge][data-hygge-layout="brev"] .named-inner{max-width:calc(1160px - 2 * var(--pad));margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) 0 0;border-top:1px solid var(--hy-line)}
:root[data-hygge][data-hygge-layout="atelier"] .pull,
:root[data-hygge][data-hygge-layout="brev"] .pull{position:relative;font-size:clamp(1.7rem,3.4vw,2.4rem);line-height:1.25;max-width:18ch}
:root[data-hygge][data-hygge-layout="atelier"] .pull::before,
:root[data-hygge][data-hygge-layout="brev"] .pull::before{content:"\201C";position:absolute;left:-.5em;top:-.1em;font-size:2.4em;line-height:1;color:var(--hy-accent-soft);font-style:normal;opacity:.9}

/* the approach steps — a numbered list with hairlines, not cards */
:root[data-hygge][data-hygge-layout="atelier"] .cards,
:root[data-hygge][data-hygge-layout="brev"] .cards{display:block;counter-reset:jp-step}
:root[data-hygge][data-hygge-layout="atelier"] .card,
:root[data-hygge][data-hygge-layout="brev"] .card{counter-increment:jp-step;display:grid;grid-template-columns:3.4rem 1fr;gap:.4rem 1.2rem;align-items:start;background:transparent;border:0;border-top:1px solid var(--hy-line);border-radius:0;padding:1.7rem 0 1.9rem;transform:none;box-shadow:none;transition:none}
:root[data-hygge][data-hygge-layout="atelier"] .card:last-child,
:root[data-hygge][data-hygge-layout="brev"] .card:last-child{border-bottom:1px solid var(--hy-line)}
:root[data-hygge][data-hygge-layout="atelier"] .card:hover,
:root[data-hygge][data-hygge-layout="brev"] .card:hover{transform:none;box-shadow:none}
:root[data-hygge][data-hygge-layout="atelier"] .card .num,
:root[data-hygge][data-hygge-layout="brev"] .card .num{grid-column:1;grid-row:1 / span 2;width:auto;height:auto;margin:.25rem 0 0;background:transparent;display:block;font-size:0;color:transparent}
:root[data-hygge][data-hygge-layout="atelier"] .card :is(h3,p),
:root[data-hygge][data-hygge-layout="brev"] .card :is(h3,p){grid-column:2}
:root[data-hygge][data-hygge-layout="atelier"] .card .num::before,
:root[data-hygge][data-hygge-layout="brev"] .card .num::before{content:"0" counter(jp-step);font-family:var(--hy-display);font-style:italic;font-size:1.5rem;line-height:1;color:var(--hy-accent-soft);font-variation-settings:"SOFT" var(--hy-soft)}
:root[data-hygge][data-hygge-layout="atelier"] .card h3,
:root[data-hygge][data-hygge-layout="brev"] .card h3{font-size:1.45rem;margin-bottom:.55rem;letter-spacing:-.012em}
:root[data-hygge][data-hygge-layout="atelier"] .card p,
:root[data-hygge][data-hygge-layout="brev"] .card p{font-size:1.02rem;max-width:58ch;color:var(--hy-muted)}

/* credentials — a quiet italic line, not chips */
:root[data-hygge][data-hygge-layout="atelier"] .creds,
:root[data-hygge][data-hygge-layout="brev"] .creds{display:block;margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--hy-line);font-family:var(--hy-display);font-style:italic;font-size:1.02rem;color:var(--hy-muted);line-height:1.7;gap:0}
:root[data-hygge][data-hygge-layout="atelier"] .chip,
:root[data-hygge][data-hygge-layout="brev"] .chip{display:inline;background:transparent;border:0;padding:0;font-size:inherit;color:inherit;border-radius:0}
:root[data-hygge][data-hygge-layout="atelier"] .chip + .chip::before,
:root[data-hygge][data-hygge-layout="brev"] .chip + .chip::before{content:"\00a0\00b7\00a0";color:var(--hy-accent-soft)}

/* the estimate notice — a ruled aside */
:root[data-hygge][data-hygge-layout="atelier"] .fee-card,
:root[data-hygge][data-hygge-layout="brev"] .fee-card{background:transparent;border:0;border-left:2px solid var(--hy-accent);border-radius:0;padding:.3rem 0 .3rem 1.5rem;box-shadow:none}

/* questions — hairlines and a plus that turns */
:root[data-hygge][data-hygge-layout="atelier"] details,
:root[data-hygge][data-hygge-layout="brev"] details{background:transparent;border:0;border-bottom:1px solid var(--hy-line);border-radius:0;padding:1.25rem 0;margin:0}
:root[data-hygge][data-hygge-layout="atelier"] #faq details:first-of-type,
:root[data-hygge][data-hygge-layout="brev"] #faq details:first-of-type{border-top:1px solid var(--hy-line)}
:root[data-hygge][data-hygge-layout="atelier"] summary,
:root[data-hygge][data-hygge-layout="brev"] summary{font-size:1.22rem;gap:1.5rem}
:root[data-hygge][data-hygge-layout="atelier"] summary::after,
:root[data-hygge][data-hygge-layout="brev"] summary::after{content:"+";width:auto;height:auto;border:0;transform:none;font-family:var(--hy-body);font-weight:300;font-size:1.6rem;line-height:1;color:var(--hy-accent);transition:transform .25s ease}
:root[data-hygge][data-hygge-layout="atelier"] details[open] summary::after,
:root[data-hygge][data-hygge-layout="brev"] details[open] summary::after{transform:rotate(45deg)}
:root[data-hygge][data-hygge-layout="atelier"] details p,
:root[data-hygge][data-hygge-layout="brev"] details p{margin-top:.8rem;max-width:58ch}

/* contact — open, with underlined fields */
:root[data-hygge][data-hygge-layout="atelier"] .contact-card,
:root[data-hygge][data-hygge-layout="brev"] .contact-card{background:transparent;border-radius:0;padding:clamp(3rem,7vw,5rem) 0 0;border-top:1px solid var(--hy-line)}
:root[data-hygge][data-hygge-layout="atelier"] .jp-form,
:root[data-hygge][data-hygge-layout="brev"] .jp-form{gap:1.4rem}
:root[data-hygge][data-hygge-layout="atelier"] label,
:root[data-hygge][data-hygge-layout="brev"] label{font-family:var(--hy-body);text-transform:none;letter-spacing:0;font-size:.92rem;color:var(--hy-muted);margin-bottom:.25rem}
:root[data-hygge][data-hygge-layout="atelier"] :is(input,textarea),
:root[data-hygge][data-hygge-layout="brev"] :is(input,textarea){background:transparent;border:0;border-bottom:1px solid var(--hy-line);border-radius:0;padding:.7rem 0;font-size:1.05rem;transition:border-color .25s ease,box-shadow .25s ease}
:root[data-hygge][data-hygge-layout="atelier"] :is(input,textarea):focus,
:root[data-hygge][data-hygge-layout="brev"] :is(input,textarea):focus{outline:none;border-bottom-color:var(--hy-accent);box-shadow:0 1px 0 0 var(--hy-accent)}
:root[data-hygge][data-hygge-layout="atelier"] .formnote,
:root[data-hygge][data-hygge-layout="brev"] .formnote{font-size:.86rem}

/* ── atelier ── */
:root[data-hygge][data-hygge-layout="atelier"] .hero{padding:clamp(3rem,7vw,5.5rem) 0 0}
:root[data-hygge][data-hygge-layout="atelier"] .hero::before{filter:blur(28px);opacity:.75}
:root[data-hygge][data-hygge-layout="atelier"] .hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,5rem);align-items:end}
:root[data-hygge][data-hygge-layout="atelier"] .hero-grid > :first-child{padding-bottom:clamp(2.5rem,6vw,5rem)}
:root[data-hygge][data-hygge-layout="atelier"] .hero h1{font-size:clamp(2.9rem,6.6vw,5.4rem);line-height:1.02;letter-spacing:-.025em;max-width:11ch;margin-bottom:1.8rem}
:root[data-hygge][data-hygge-layout="atelier"] .lede{font-size:clamp(1.1rem,1.9vw,1.3rem);max-width:40ch;margin-bottom:2.4rem}
:root[data-hygge][data-hygge-layout="atelier"] .hero-img.hero-img{aspect-ratio:3/4;border-radius:999px 999px 6px 6px;box-shadow:none;max-width:none;margin:0 calc(-1 * (max(0px,(100vw - 1160px) / 2) + var(--pad))) 0 0}

:root[data-hygge][data-hygge-layout="atelier"] .named-inner{grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem)}

:root[data-hygge][data-hygge-layout="atelier"] #approach .wrap{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem);align-items:start}
:root[data-hygge][data-hygge-layout="atelier"] #approach .wrap::before{content:"";grid-column:1 / -1;height:1px;background:var(--hy-line);margin-bottom:clamp(2.5rem,6vw,4.5rem)}
:root[data-hygge][data-hygge-layout="atelier"] #approach .narrow{max-width:none;position:sticky;top:8rem}
:root[data-hygge][data-hygge-layout="atelier"] #approach .cards{margin-top:.3rem}

:root[data-hygge][data-hygge-layout="atelier"] .privacy{border-radius:0;margin-left:0 !important;margin-right:0 !important;padding:clamp(4rem,9vw,7rem) var(--pad)}
:root[data-hygge][data-hygge-layout="atelier"] .jp-privacy-inner{max-width:calc(1160px - 2 * var(--pad))}
:root[data-hygge][data-hygge-layout="atelier"] .privacy h2{max-width:16ch}
:root[data-hygge][data-hygge-layout="atelier"] .plist{gap:clamp(1.5rem,3vw,2.5rem);margin-top:3.5rem}
:root[data-hygge][data-hygge-layout="atelier"] .plist > div{border-top:1px solid color-mix(in srgb,var(--hy-ondeep) 25%,transparent);padding-top:1.3rem}
:root[data-hygge][data-hygge-layout="atelier"] .dot{width:12px;height:2px;border-radius:0;background:var(--hy-ondeep-eb)}

:root[data-hygge][data-hygge-layout="atelier"] #about{padding-top:clamp(3rem,7vw,5rem)}
:root[data-hygge][data-hygge-layout="atelier"] :is(#about,#fees,#faq) .wrap::before{content:"";display:block;grid-column:1 / -1;height:1px;background:var(--hy-line);margin-bottom:clamp(2.5rem,6vw,4.5rem)}
:root[data-hygge][data-hygge-layout="atelier"] .about-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2.5rem,7vw,6rem);align-items:start}
:root[data-hygge][data-hygge-layout="atelier"] .portrait.portrait{aspect-ratio:4/5;border-radius:999px 999px 6px 6px;box-shadow:none;margin-top:.5rem}
:root[data-hygge][data-hygge-layout="atelier"] #about h2{font-size:clamp(2.3rem,4.6vw,3.4rem)}

:root[data-hygge][data-hygge-layout="atelier"] .contact-card{grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem)}

/* ── brev ── */
:root[data-hygge][data-hygge-layout="brev"] .hero{padding:clamp(3.5rem,8vw,6rem) 0 0;text-align:center}
:root[data-hygge][data-hygge-layout="brev"] .hero-grid{grid-template-columns:1fr;gap:0;justify-items:center}
:root[data-hygge][data-hygge-layout="brev"] .hero-grid > :first-child{max-width:720px}
:root[data-hygge][data-hygge-layout="brev"] .hero .eyebrow{justify-content:center}
:root[data-hygge][data-hygge-layout="brev"] .hero h1{max-width:16ch;margin:0 auto 1.6rem;font-size:clamp(2.7rem,6vw,4.8rem);line-height:1.05}
:root[data-hygge][data-hygge-layout="brev"] .lede{margin:0 auto 2.4rem;max-width:52ch}
:root[data-hygge][data-hygge-layout="brev"] .hero-img.hero-img{width:min(100%,900px);max-width:none;aspect-ratio:16/10;border-radius:999px 999px 6px 6px;box-shadow:none;margin:clamp(3rem,7vw,5rem) auto 0;order:0}

:root[data-hygge][data-hygge-layout="brev"] .named-inner{grid-template-columns:1fr;max-width:680px;gap:1.5rem}

:root[data-hygge][data-hygge-layout="brev"] :is(#approach,#about,#fees,#faq,#contact) .wrap{max-width:calc(680px + 2 * var(--pad))}
:root[data-hygge][data-hygge-layout="brev"] :is(#approach,#about,#fees,#faq) .wrap::before{content:"";display:block;width:3rem;height:1px;background:var(--hy-accent-soft);margin:0 auto clamp(2.5rem,6vw,4rem)}
:root[data-hygge][data-hygge-layout="brev"] .cards{margin-top:2.5rem}

:root[data-hygge][data-hygge-layout="brev"] .privacy{background:var(--hy-surface);color:var(--hy-ink);border-radius:0;margin-left:0 !important;margin-right:0 !important;padding:clamp(4rem,9vw,7rem) var(--pad)}
:root[data-hygge][data-hygge-layout="brev"] .privacy h2{color:var(--hy-ink)}
:root[data-hygge][data-hygge-layout="brev"] .privacy p{color:var(--hy-muted)}
:root[data-hygge][data-hygge-layout="brev"] .privacy .eyebrow{color:var(--hy-accent)}
:root[data-hygge][data-hygge-layout="brev"] .plist h3{color:var(--hy-ink)}
:root[data-hygge][data-hygge-layout="brev"] .dot{background:var(--hy-ember)}
:root[data-hygge][data-hygge-layout="brev"] .jp-privacy-inner{max-width:680px}
:root[data-hygge][data-hygge-layout="brev"] .plist{grid-template-columns:1fr;gap:1.6rem;margin-top:2.5rem}
:root[data-hygge][data-hygge-layout="brev"] .plist > div{border-top:1px solid var(--hy-line);padding-top:1.2rem}

:root[data-hygge][data-hygge-layout="brev"] .about-grid{grid-template-columns:1fr;gap:2rem;justify-items:start;align-items:start}
:root[data-hygge][data-hygge-layout="brev"] .portrait.portrait{width:200px;max-width:200px;aspect-ratio:1;border-radius:50%;box-shadow:none}

:root[data-hygge][data-hygge-layout="brev"] .contact-card{grid-template-columns:1fr;gap:2.5rem;max-width:680px;margin-left:auto !important;margin-right:auto !important}


/* ── both editorial layouts on a phone or small tablet ──
   Last in the section on purpose: these undo the desktop grids above. */
@media (max-width:860px){
  :root[data-hygge][data-hygge-layout="atelier"] .hero-grid{grid-template-columns:1fr;align-items:start;gap:0}
  :root[data-hygge][data-hygge-layout="atelier"] .hero-grid > :first-child{padding-bottom:0}
  :root[data-hygge][data-hygge-layout="atelier"] .hero-img.hero-img{order:0;margin:2.5rem 0 0;max-width:440px;aspect-ratio:4/5}
  :root[data-hygge][data-hygge-layout="atelier"] .named-inner{grid-template-columns:1fr;gap:1.5rem}
  :root[data-hygge][data-hygge-layout="atelier"] #approach .wrap{grid-template-columns:1fr;gap:1.5rem}
  :root[data-hygge][data-hygge-layout="atelier"] #approach .narrow{position:static}
  :root[data-hygge][data-hygge-layout="atelier"] .about-grid{grid-template-columns:1fr}
  :root[data-hygge][data-hygge-layout="atelier"] .portrait.portrait{max-width:320px}
  :root[data-hygge][data-hygge-layout="atelier"] .contact-card{grid-template-columns:1fr}
  :root[data-hygge][data-hygge-layout="brev"] .hero-img.hero-img{order:0;margin:2.5rem auto 0;aspect-ratio:5/6}
}


/* ─────────────────────────── 12. STREG ───────────────────────────
   Hand-drawn accents: a stroke under section headings, a wobble in the
   quiet label's rule, and a thin plate frame around the photos. The stroke
   is an SVG used as a mask, so it takes the mood's colour. */

:root[data-hygge][data-hygge-streg] section h2::after,
:root[data-hygge][data-hygge-streg] .privacy h2::after{
  content:"";display:block;width:5rem;height:.55rem;margin-top:1rem;background:var(--hy-accent-soft);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6 C 20 2, 35 9, 55 5 S 90 2, 118 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6 C 20 2, 35 9, 55 5 S 90 2, 118 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
:root[data-hygge][data-hygge-streg] .privacy h2::after{background:var(--hy-ondeep-eb)}
:root[data-hygge][data-hygge-streg][data-hygge-layout="brev"] .privacy h2::after{background:var(--hy-accent-soft)}
:root[data-hygge][data-hygge-streg][data-hygge-labels="stille"] .eyebrow::before{
  height:.45rem;width:2rem;opacity:.85;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6 C 20 2, 35 9, 55 5 S 90 2, 118 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6 C 20 2, 35 9, 55 5 S 90 2, 118 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
:root[data-hygge][data-hygge-streg] :is(figure.hero-img,figure.portrait,img.hero-img,img.portrait){
  outline:1.5px solid color-mix(in srgb,var(--hy-accent-soft) 70%,transparent);outline-offset:.75rem;
}
:root[data-hygge][data-hygge-streg] .pull::before{color:var(--hy-ember)}


/* ──────────────────── 8. REDUCED MOTION, PRINT ─────────────────── */

@media (prefers-reduced-motion:reduce){
  :root[data-hygge][data-hygge-candle] body::after{animation:none}
  :root[data-hygge][data-hygge-soft] .reveal{opacity:1;transform:none;transition:none}
}
@media print{
  :root[data-hygge] body::before,
  :root[data-hygge] body::after{display:none}
}
