/* vernick.art — public site. Port of concept B «Herbarium» (opros/designs/b): linen with a fine weave, photos mounted on
   paper plates like herbarium sheets with double-ruled specimen labels, sage and dusty-mauve accents, plum only for
   primary actions, fine botanical line drawings. Cormorant Garamond for display, Jost for text. Mobile-first (375 px). */

/* ---------- tokens ---------- */
:root{--linen:#EEE8DE;--paper:#F8F5EF;--mount:#E3DBCF;--greige:#DDD4C7;--line:#D3C9BB;--line2:#B5AA9B;--sage:#A9B29C;--sage-soft:#E1E4D8;--sage-ink:#4E5A47;--mauve:#C7A9B0;--mauve-soft:#ECE0DF;--plum:#6B4A57;--plum2:#573A46;--ink:#2B2622;--ink2:#5C534B;
--serif:"Cormorant Garamond",Cormorant,Georgia,"Times New Roman",serif;--sans:Jost,"Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;
--gut:clamp(16px,5vw,40px);--max:1180px;--hd:64px;
/* fine paper grain (concept B) and the four botanical line drawings, used as masks for empty photo slots and ornaments */
--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .36 0 0 0 0 .3 0 0 0 0 .24 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23n)'/%3E%3C/svg%3E");
--art-sprig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -10 160 340'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke' d='M84 316C92 230 60 120 74 14M85.3 289.5L82 285.7M82 285.7C87.5 264.9 67 245.5 48.3 240.9C48.8 261.1 62 286.6 82 285.7M82 285.7Q65 263.4 52.1 246.5M84.8 264.6L87.9 260.6M87.9 260.6C108 261.6 118.7 236.8 117.4 217.2C101 223.1 83.1 242.4 87.9 260.6M87.9 260.6Q102.7 239 114 222.5M83.2 238.7L79.7 235.1M79.7 235.1C83.4 216.7 64.7 200.9 48.1 197.8C49.6 215.3 62.3 236.9 79.7 235.1M79.7 235.1Q63.8 216.6 51.8 202.5M80.8 212.1L83.5 207.9M83.5 207.9C100.9 207.2 108.3 185.1 105.6 168.4C92 174.7 78.1 192.6 83.5 207.9M83.5 207.9Q94.7 188.2 103.2 173.2M78 184.8L74.6 181.2M74.6 181.2C77.8 165.5 61.9 151.9 47.9 149.2C49 164.1 59.7 182.6 74.6 181.2M74.6 181.2Q61.1 165.3 50.9 153.2M75.2 157L77.8 152.7M77.8 152.7C92.4 151.7 98 132.9 95.4 119C84.1 124.6 72.9 140 77.8 152.7M77.8 152.7Q86.7 135.9 93.5 123.1M73 131.9L69.8 128.1M69.8 128.1C73.2 115.1 60.5 103.1 48.9 100.1C49.2 112.7 57.3 128.6 69.8 128.1M69.8 128.1Q59.3 114.2 51.3 103.6M71.3 106.5L74 102.3M74 102.3C86.1 101.7 91.1 86.2 89.1 74.5C79.6 79 70.1 91.7 74 102.3M74 102.3Q81.6 88.4 87.4 77.9M70.5 81L67.6 77M67.6 77C71.4 66.7 62 55.9 52.7 52.7C52 62.9 57.4 76.4 67.6 77M67.6 77Q60.1 64.9 54.4 55.7M70.6 58.7L73.5 54.6M73.5 54.6C83.3 54.6 88 42.2 86.8 32.7C79 36 70.7 45.8 73.5 54.6M73.5 54.6Q80.2 43.7 85.3 35.4M71.5 39.5L69.1 35.1M69.1 35.1C73 27.1 66.3 17.6 59.1 14.1C57.6 22.4 60.8 33.8 69.1 35.1M69.1 35.1Q64 24.7 60.2 16.7M74 14C80.9 10 80.5 -1.1 76.9 -7.8C72.1 -2.2 69 8.5 74 14M74 14Q75.4 3.1 76.5 -5.2'/%3E%3C/svg%3E");
--art-fern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 330'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke' d='M82 318C76 220 96 110 80 12M80.8 276.2C85.2 277.4 91.1 272.4 93.5 268C89 268.6 82.4 272.1 80.8 276.2M80.8 276.2C79.4 271.9 72.8 268.4 68.2 268C70.7 272.2 76.6 277.1 80.8 276.2M81 256.7C88.1 258.6 97.4 250.6 101.3 243.6C94.2 244.6 83.5 250.2 81 256.7M81 256.7C79.1 249.7 68.6 243.8 61.4 242.8C65.1 249.7 74.2 257.9 81 256.7M81.6 237.1C90.7 239.5 102.8 229 107.7 219.9C98.5 221.3 84.7 228.6 81.6 237.1M81.6 237.1Q94.7 228.6 104.6 222.1M81.6 237.1C79.4 227.9 66.1 219.8 56.7 218.1C61.3 227.2 72.6 238.3 81.6 237.1M81.6 237.1Q69.1 227.7 59.6 220.6M82.4 217.3C93.1 220 106.9 207.6 112.5 196.9C101.8 198.6 85.9 207.4 82.4 217.3M82.4 217.3Q97.5 207.2 109 199.5M82.4 217.3C80.1 206.5 64.8 196.6 54 194.4C59 205.1 71.9 218.4 82.4 217.3M82.4 217.3Q68.1 205.9 57.3 197.3M83.3 197.4C95 200.2 109.9 186.4 115.8 174.6C104.2 176.7 87 186.5 83.3 197.4M83.3 197.4Q99.6 186.1 112.1 177.6M83.3 197.4C81.1 185.6 64.7 174.3 53 171.6C58.1 183.5 71.8 198.4 83.3 197.4M83.3 197.4Q68 184.7 56.4 174.9M84.2 177.5C96.4 180.1 111.6 165.5 117.5 153.1C105.5 155.5 87.8 166.1 84.2 177.5M84.2 177.5Q100.9 165.4 113.6 156.2M84.2 177.5C82.1 165.1 65.4 153.2 53.3 150.1C58.4 162.5 72.3 178.3 84.2 177.5M84.2 177.5Q68.6 163.9 56.8 153.6M85.1 157.5C97.3 159.8 112 144.9 117.5 132.4C105.6 135.2 88.4 146.1 85.1 157.5M85.1 157.5Q101.4 145.1 113.8 135.7M85.1 157.5C83.2 145.2 66.7 133.1 54.7 129.9C59.6 142.3 73.2 158.1 85.1 157.5M85.1 157.5Q69.8 143.8 58.2 133.4M85.8 137.6C97.5 139.4 111.2 124.7 116.1 112.6C104.8 115.6 88.6 126.6 85.8 137.6M85.8 137.6Q101 125.2 112.6 115.8M85.8 137.6C84.1 125.8 68.5 114 57 110.9C61.6 122.8 74.4 138 85.8 137.6M85.8 137.6Q71.3 124.3 60.3 114.3M86.2 117.7C97.1 119 109.1 105.1 113.3 93.8C103 96.9 88.5 107.5 86.2 117.7M86.2 117.7Q99.8 105.8 110.2 96.8M86.2 117.7C84.8 106.8 70.5 96 59.9 93C64.1 104 75.8 118 86.2 117.7M86.2 117.7Q73 105.4 63 96.1M86.3 97.8C95.9 98.6 106 85.9 109.3 75.9C100.3 79 88 88.8 86.3 97.8M86.3 97.8Q97.9 87 106.7 78.7M86.3 97.8C85 88.3 72.4 78.7 63.2 76.1C66.8 85.8 77.2 98.2 86.3 97.8M86.3 97.8Q74.7 87.1 65.8 78.9M86 78.2C94.1 78.4 102 67.5 104.3 58.9C97 61.8 87 70.5 86 78.2M86 78.2C84.9 70.2 74.3 62.2 66.5 60.1C69.6 68.2 78.3 78.5 86 78.2M85.1 58.6C91.4 58.5 97.2 49.6 98.7 42.8C93.1 45.4 85.6 52.6 85.1 58.6M85.1 58.6C84.1 52.4 75.8 46.2 69.6 44.6C72.1 50.9 79.1 59 85.1 58.6M83.6 39.3C88 39 91.8 32.4 92.6 27.6C88.7 29.6 83.7 35.1 83.6 39.3M83.6 39.3C82.8 34.9 76.8 30.6 72.4 29.6C74.3 34 79.3 39.6 83.6 39.3M80 12C82.8 9.5 81.2 5.2 78.5 3.1C77 5.9 76.9 10.5 80 12'/%3E%3C/svg%3E");
--art-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 320'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke' d='M100 308Q101 286 100 262M100 262C175.1 207.1 152.6 92.1 97.7 29.8C47.3 97.4 27.6 214.5 100 262M100 262Q98.4 145.9 97.2 57.7M98.9 238.8Q119.5 230.8 135.2 202.2M98.9 238.8Q80.2 232.8 63.7 205.7M98 215Q121.3 206.8 138.8 178.1M98 215Q77.1 209.1 58.5 182.1M97.3 191.1Q121.1 183 138.5 154.2M97.3 191.1Q76 185.2 56.5 158.3M96.8 167.3Q119.3 159.2 135.1 130.5M96.8 167.3Q76.6 161.3 57.4 134.4M96.5 143.4Q116.3 135.4 129 106.9M96.5 143.4Q78.4 137.3 60.1 110.4M96.4 119.5Q111.7 111.8 119.6 83.5M96.4 119.5Q82 113.2 65.7 86.2M96.5 95.6Q105.7 88.2 107.5 60.2M96.5 95.6Q87 89.1 73.5 61.9'/%3E%3C/svg%3E");
--art-flower:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 310'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke' d='M101.6 93.1C128.7 82.5 126.5 48.8 111.5 27.9C92.4 43.7 80.9 75.3 101.6 93.1M101.6 93.1Q106.6 60.5 110.3 35.7M109.5 98.5C135.8 112.4 163.4 88.2 171.9 62.5C146.2 58.3 111.7 70.5 109.5 98.5M109.5 98.5Q140.7 80.5 164.4 66.8M110.2 108C114.5 136.8 147.9 142.2 171.7 132.2C160.5 110 132.2 91.8 110.2 108M110.2 108Q141 120.1 164.3 129.3M103.2 114.5C83.8 137.1 101.3 169.4 124.4 183.3C134.3 159.2 130.1 122.8 103.2 114.5M103.2 114.5Q113.8 148.9 121.9 175.1M93.8 113.1C64.8 110.9 52.1 142.2 56.6 167.6C80.7 161.7 104.8 138.1 93.8 113.1M93.8 113.1Q75.2 140.3 61.1 161.1M89 104.8C71.4 80.9 36 90.7 17.2 110.2C38.6 125.2 75 129.1 89 104.8M89 104.8Q53.1 107.5 25.8 109.5M92.5 95.9C101.1 68.2 73.4 48.8 47.6 47.5C48.1 72.3 65.6 101 92.5 95.9M92.5 95.9Q70.1 71.7 53 53.3M110 104a10 10 0 1 1-20 0a10 10 0 1 1 20 0M115.5 104h.1M114 110.7h.1M109.7 116.1h.1M103.4 119.1h.1M96.6 119.1h.1M90.3 116.1h.1M86 110.7h.1M84.5 104h.1M86 97.3h.1M90.3 91.9h.1M96.6 88.9h.1M103.4 88.9h.1M109.7 91.9h.1M114 97.3h.1M96.1 131.7C94 190 88 240 76 304M88.5 236C83.2 224.1 64.5 220.5 52.5 223.7C60.7 233.5 78 242.3 88.5 236M88.5 236Q70.5 229.9 56.8 225.3'/%3E%3C/svg%3E");
--weave:var(--noise),repeating-linear-gradient(0deg,rgba(92,76,60,.03) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(92,76,60,.022) 0 1px,transparent 1px 4px);
--ph-tex:radial-gradient(120% 85% at 50% 42%,rgba(255,252,246,.55),rgba(255,252,246,0) 62%),var(--noise);
color-scheme:light}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:12px}
body{margin:0;min-width:320px;overflow-x:hidden;overflow-x:clip;color:var(--ink);background-color:var(--linen);background-image:var(--weave);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-wrap:break-word}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;-webkit-tap-highlight-color:rgba(107,74,87,.12)}
svg{display:block}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
cite{font-style:italic}
:focus-visible{outline:2px solid var(--plum);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.005em}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:12px;top:-80px;z-index:60;background:var(--ink);color:var(--paper);padding:12px 18px;font-size:15px;text-decoration:none}
.skip:focus{top:12px}

/* ---------- type: eyebrows with Roman numerals, section heads ---------- */
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px;font:500 12px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-ink)}
.eyebrow::before{content:"";flex:none;width:28px;height:1px;background:currentColor;opacity:.7}
.eyebrow.plain::before{display:none}
.num{font:500 18px/1 var(--serif);letter-spacing:.04em;text-transform:none}
.mc-type{font:500 12px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-ink)}
.sh{max-width:660px;margin-bottom:36px}
.sh h1,.sh h2{font-size:clamp(38px,10vw,60px);font-weight:300;line-height:1}
.intro{margin-top:16px;color:var(--ink2);max-width:34em}
.lead{font:400 24px/1.32 var(--serif);max-width:20em}
.sec{padding-block:72px}
/* Plain sections share the space between them; the tinted ones (awards band, contact) keep their own. */
.sec:not(.band):not(.contact)+.sec:not(.band):not(.contact){padding-top:0}
.more{margin-top:24px}
.empty{color:var(--ink2);padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(min-width:960px){.sec{padding-block:112px}.sh{margin-bottom:52px}}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:12px 28px;border:1px solid transparent;border-radius:2px;font:500 16px/1.2 var(--sans);letter-spacing:.05em;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .3s ease,color .3s ease,border-color .3s ease}
.btn-primary{background:var(--plum);border-color:var(--plum);color:var(--paper)}
.btn-primary:hover{background:var(--plum2);border-color:var(--plum2)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn:active{transform:translateY(1px)}
.btn-block{display:flex;width:100%}
.btn-xl{min-height:60px;font-size:18px;letter-spacing:.04em}
.btn .ic{width:21px;height:21px}
.alink{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:var(--line2);transition:text-decoration-color .3s}
.alink:hover{text-decoration-color:var(--ink)}
.alink .ic{width:18px;height:18px}

/* ---------- small parts: chips, tags, specimen-label rows, seats ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border:1px solid var(--line2);border-radius:14px;font:500 12px/1 var(--sans);letter-spacing:.12em;color:var(--ink);background:var(--paper)}
.tag-ej{display:inline-flex;align-items:center;min-height:28px;padding:4px 11px;border:1px solid rgba(107,74,87,.45);border-radius:2px;font:500 11px/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--plum);background:var(--mauve-soft)}
.pill{display:inline-flex;align-items:center;align-self:flex-start;min-height:28px;padding:4px 12px;border-radius:14px;font:500 11px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;background:var(--greige);color:var(--ink)}
.lbl{border-top:1px solid var(--line)}
.lbl>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line)}
.lbl dt{font:500 11px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sage-ink)}
.lbl dd{font-size:16px;line-height:1.45;min-width:0}
.lbl dd .tm{display:block;color:var(--ink2)}
.seats{display:inline-flex;align-items:center;gap:9px;font:500 16px/1.3 var(--sans);color:var(--plum)}
.seats::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(107,74,87,.14)}

/* ---------- photos: a real photo, or the empty herbarium sheet (mount paper + a fine line drawing) ---------- */
.ph{--art:var(--art-sprig);--art-c:#8F9682;position:relative;display:block;width:100%;overflow:hidden;background-color:var(--mount)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph.bot{background-image:var(--ph-tex);background-size:cover,220px 220px;background-repeat:no-repeat,repeat;box-shadow:inset 0 0 0 1px rgba(43,38,34,.07)}
.ph.bot::before{content:"";position:absolute;inset:0;background-color:var(--art-c);-webkit-mask:var(--art) 50% 50%/auto 46% no-repeat;mask:var(--art) 50% 50%/auto 46% no-repeat}
.ph[data-art="fern"]{--art:var(--art-fern);--art-c:#A2A893}
.ph[data-art="leaf"]{--art:var(--art-leaf)}
.ph[data-art="flower"]{--art:var(--art-flower)}
.r45{aspect-ratio:4/5}.r34{aspect-ratio:3/4}.r11{aspect-ratio:1/1}.r32{aspect-ratio:3/2}.r43{aspect-ratio:4/3}
/* the plate a photo is mounted on, its caption line, and the double-ruled specimen label over its lower corner */
.plate{position:relative;background:var(--paper);border:1px solid var(--line);padding:10px 10px 0;box-shadow:0 1px 0 rgba(43,38,34,.03),0 22px 44px -34px rgba(43,38,34,.45)}
.plate>.ph:only-child{margin-bottom:10px}
.plate>figcaption:not(.hlabel){display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 2px 11px;font:500 10.5px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.plate>figcaption:not(.hlabel) em{white-space:nowrap;font:italic 400 16px/1 var(--serif);font-variant-numeric:lining-nums;letter-spacing:0;text-transform:none;color:var(--ink)}
.plate>figcaption:not(.hlabel) span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hlabel{position:relative;z-index:2;width:min(76%,290px);margin:-38px 12px 14px auto;padding:11px 14px 10px;background:var(--paper);border:1px solid var(--ink2);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px var(--line)}
.hlabel span{display:block}
.hlabel .k{font:500 10px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink2);padding-bottom:7px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.hlabel .n{font:italic 400 21px/1.15 var(--serif)}
.hlabel .m{font:400 13px/1.4 var(--sans);color:var(--ink2);margin-top:2px}
/* ornaments: the same drawings, in sage ink, placed by each block */
.orn{--art:var(--art-sprig);position:absolute;display:block;pointer-events:none;background-color:var(--sage-ink);-webkit-mask:var(--art) 50% 50%/contain no-repeat;mask:var(--art) 50% 50%/contain no-repeat}
.orn[data-art="fern"]{--art:var(--art-fern)}
.orn[data-art="leaf"]{--art:var(--art-leaf)}
.orn[data-art="flower"]{--art:var(--art-flower)}

/* ---------- header: mark + language; phones get the overlay menu, wider screens the menu row ---------- */
.top{position:relative;z-index:5}
.top-in{display:flex;align-items:center;gap:4px;min-height:var(--hd);border-bottom:1px solid var(--line)}
.mark{display:inline-flex;flex-direction:column;gap:4px;min-width:0;margin-right:auto;padding:10px 0;text-decoration:none;color:var(--ink)}
.mark b{font:500 24px/1 var(--serif);letter-spacing:.02em;white-space:nowrap}
.mark small{font:500 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.lang{flex:none;display:flex;align-items:center;font:500 13px/1 var(--sans);letter-spacing:.14em}
.lang a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-left:.14em;text-decoration:none;color:var(--ink2)}
.lang a+a::before{content:"";position:absolute;left:-1.5px;top:50%;width:3px;height:3px;margin-top:-1.5px;border-radius:50%;background:var(--line2)}
.lang a:hover{color:var(--ink)}
.lang a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
.mb{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;color:var(--ink)}
.mb .ic{width:24px;height:24px}
.mb .ic-x,.top.open .mb .ic-m{display:none}
.top.open .mb .ic-x{display:block}
.menu{display:none}
/* Open menu (phones): the header holds still at the top and the menu fills the screen below it, over the booking bar. */
.top.open{position:fixed;top:0;left:0;right:0;z-index:40;background-color:var(--linen);background-image:var(--weave)}
.top.open .menu{display:flex;flex-direction:column;position:fixed;left:0;right:0;top:var(--hd);bottom:0;overflow:auto;background-color:var(--linen);background-image:var(--weave);padding:8px max(var(--gut),env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(var(--gut),env(safe-area-inset-left))}
.menu>a{display:flex;align-items:center;justify-content:space-between;min-height:64px;border-bottom:1px solid var(--line);font:300 32px/1.1 var(--serif);text-decoration:none}
.menu>a .ic{width:18px;height:18px;color:var(--sage-ink)}
.menu .m-only{margin-top:auto;padding-top:32px;display:grid;gap:18px}
.m-langs{display:flex;flex-wrap:wrap;gap:0 22px;font-size:16px;color:var(--ink2)}
.m-langs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.m-langs a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media(max-width:399px){.mark small{font-size:9.5px;letter-spacing:.16em}.mark b{font-size:22px}}
@media(max-width:359px){.top .lang{display:none}}
@media(min-width:600px){
 .top-in{display:grid;grid-template-columns:1fr auto;grid-template-areas:"mark lang" "menu menu";min-height:0;border-bottom:0}
 .mark{grid-area:mark;padding:16px 0 14px}
 .lang{grid-area:lang;margin-right:-8px}
 .mb,.menu .m-only{display:none}
 .top.open{position:relative;background:none}
 .menu,.top.open .menu{grid-area:menu;display:flex;flex-direction:row;justify-content:space-between;gap:6px;position:static;padding:0;overflow:visible;background:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
 .menu>a{min-height:46px;padding:0 1px;border:0;font:400 15px/1 var(--sans);letter-spacing:.03em;color:var(--ink);background:linear-gradient(currentColor,currentColor) 0 calc(100% - 12px)/0 1px no-repeat;transition:background-size .35s ease}
 .menu>a:hover{background-size:100% 1px}
 .menu>a .ic{display:none}
}
@media(min-width:1024px){
 .top-in{grid-template-columns:auto 1fr auto;grid-template-areas:"mark menu lang";column-gap:40px;border-bottom:1px solid var(--line)}
 .mark{padding:20px 0}
 .menu,.top.open .menu{border:0;justify-content:center;gap:36px}
}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);padding:40px 0 calc(32px + env(safe-area-inset-bottom));font-size:16px;color:var(--ink2)}
.foot-in{display:grid;gap:18px}
.foot .mark{margin:0;padding:4px 0}
.foot-id p{margin-top:6px;font-size:15px}
.foot nav{display:flex;flex-wrap:wrap;column-gap:22px}
.foot nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:5px;text-decoration-thickness:1px}
.foot nav a:hover,.foot nav a[aria-current]{text-decoration-color:var(--ink)}
.foot-bot{display:grid;gap:4px;margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}
.foot-bot nav a{font-size:15px}
.foot-bot p{font-size:14px;line-height:1.5}
@media(min-width:960px){
 .foot-in{grid-template-columns:auto 1fr auto;align-items:center;column-gap:48px}
 .foot-in>#site-menu{justify-content:center}
 .foot-bot{grid-template-columns:1fr auto;align-items:center;column-gap:32px}
}

/* ---------- home: hero ---------- */
.hero{position:relative;overflow:hidden;display:grid;gap:40px;padding-top:36px;padding-bottom:64px}
.hero h1{font-weight:300;font-size:clamp(58px,17vw,118px);line-height:.9;letter-spacing:-.02em;margin:0 0 22px}
.hero h1 span{display:block}
.hero h1 .l2{padding-left:.55em;font-style:italic}
.honours{display:flex;flex-direction:column;gap:8px 22px;margin-top:22px;font:500 11.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.honours li{display:inline-flex;align-items:center}
.honours li::before{content:"";flex:none;width:5px;height:5px;margin-right:12px;transform:rotate(45deg);border:1px solid var(--plum)}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin-top:30px}
.cta-row .btn-primary{flex:1 1 100%}
.hero-fig{position:relative}
/* behind the plate and the text (negative z-index, no stacking context on the way up) */
.hero-fig .orn{z-index:-1;top:-64px;right:-12px;width:120px;height:250px;opacity:.6;transform:rotate(16deg)}
.hero-fig .plate{margin-right:34px}
@media(min-width:600px){.honours{flex-direction:row;flex-wrap:wrap}.cta-row .btn-primary{flex:0 0 auto}.hero-fig{max-width:520px}}
@media(min-width:960px){
 .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:72px;padding-top:72px;padding-bottom:120px}
 .hero-fig{width:100%;max-width:500px;justify-self:end}
 .hero-fig .orn{top:-60px;right:-30px;width:220px;height:440px}
}

/* ---------- home: next date (sage card) ---------- */
.next{position:relative;overflow:hidden;display:grid;gap:20px;padding:30px 22px 28px;background:var(--sage-soft);border:1px solid #C8CEBD}
.next-date{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding-bottom:18px;border-bottom:1px solid rgba(78,90,71,.3)}
.next-date .d{font:300 68px/.85 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.next-date .m{font:500 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sage-ink)}
.next-body .mc-type{margin-bottom:8px}
.next h2{font-size:40px;font-weight:400}
.next h2 a{text-decoration:none}
.next h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.next .where{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--ink2)}
.next .where .ic{width:18px;height:18px}
.next-body .t{margin-top:16px;max-width:30em}
.next-price{margin-top:14px;font:400 28px/1.2 var(--serif)}
.next-price small{font:400 15px/1 var(--sans);color:var(--ink2);margin-left:6px}
.next-body .alink{margin-top:14px}
.next-date,.next-body{position:relative;z-index:1}
.next .orn{right:-22px;bottom:-112px;width:92px;height:190px;opacity:.3;transform:rotate(-24deg)}
.next-media{display:block;position:relative;z-index:1;background:var(--paper);border:1px solid var(--line);padding:10px;box-shadow:0 22px 44px -36px rgba(43,38,34,.5)}
@media(min-width:760px){
 .next.has-photo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto 1fr;column-gap:48px;row-gap:20px;padding-right:56px}
 .next.has-photo .next-media{grid-row:1 / span 2;align-self:start}
 .next.has-photo .next-date{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:6px 14px;border-right:0;border-bottom:1px solid rgba(78,90,71,.3);padding:0 0 18px}
 .next.has-photo .next-date .d{font-size:84px}
 .next.has-photo .orn{display:none}
}
.next-empty h2{font-size:clamp(36px,9vw,52px);font-weight:300;line-height:1.05;margin-bottom:12px;max-width:12em}
.next-empty p{color:var(--ink2);max-width:30em}
.next-empty .btn{margin-top:24px}
@media(max-width:599px){.next-empty .btn{display:flex;width:100%}}
.after{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 24px;margin-top:28px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink2)}
@media(min-width:760px){
 .next{grid-template-columns:minmax(200px,auto) minmax(0,1fr);gap:48px;padding:48px 56px}
 .next-date{flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:12px;border-bottom:0;border-right:1px solid rgba(78,90,71,.3);padding:0 32px 0 0}
 .next-date .d{font-size:104px}
 .next .orn{right:18px;bottom:-56px;width:110px;height:220px}
 .next-empty{grid-template-columns:minmax(0,1fr)}
}
/* wide screens: the fern gets its own margin, clear of long titles */
@media(min-width:1080px){.next:not(.has-photo){padding-right:240px}.next .orn{right:40px;bottom:-60px;width:180px;height:350px}}

/* ---------- event cards ---------- */
.mc-grid{display:grid;gap:28px}
.mc{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);padding:10px;box-shadow:0 22px 44px -36px rgba(43,38,34,.5)}
.mc-media{display:block}
.mc-body{display:flex;flex-direction:column;gap:16px;flex:1;padding:18px 8px 8px}
.mc-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px}
.mc h3{font-size:32px;font-weight:400;line-height:1.05}
.mc h3 a{display:block;padding:6px 0;text-decoration:none}
.mc h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.mc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto;padding-top:4px}
.mc-body>.lbl+.btn{margin-top:auto}
.price{font:400 36px/1 var(--serif)}
.price small{display:block;margin-top:6px;font:500 11px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
@media(min-width:760px){.mc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.mc{padding:14px}.mc-body{padding:22px 12px 12px}}

/* ---------- home: how a workshop works + facts ---------- */
.how{display:grid;gap:18px}
.how li{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center}
.how .plate{padding:6px}
.how .plate>.ph:only-child{margin-bottom:0}
.how h3{margin:0 0 4px;font:400 23px/1.15 var(--serif)}
.how p{font-size:16px;color:var(--ink2)}
.perks{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border-top:1px solid var(--line)}
.perks li{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 8px 12px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.3}
.perks .ic{width:24px;height:24px;color:var(--sage-ink)}
@media(min-width:760px){
 .how{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
 .how li{grid-template-columns:1fr;align-items:start;gap:16px}
 .how .plate{padding:10px}
 .how .ph{aspect-ratio:1/1}
 .perks{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ---------- home: floral-art calendar (12-month line) ---------- */
.year{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:12px;padding:26px 0 8px}
.year .mo{grid-row:1;text-align:center;font:500 12px/1 var(--sans);letter-spacing:.08em;color:var(--ink2)}
.year .mo.now{color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.year .rule{grid-row:2;grid-column:1/-1;align-self:center;height:1px;background:var(--line2)}
.year .dot{grid-row:2;align-self:center;height:10px;border-radius:5px}
.year .season{margin:0 6px;background:var(--mauve)}
.year .month{justify-self:center;width:10px;background:var(--sage-ink);box-shadow:0 0 0 5px rgba(78,90,71,.15)}
.year .lab{grid-row:3;text-align:center;white-space:nowrap;font:italic 400 17px/1.2 var(--serif)}
.year .lab.r2{grid-row:4}
.year .lab.left{text-align:left}
.year .lab.right{text-align:right}
.cal-list{margin-top:32px;border-top:1px solid var(--line)}
.cal-list li{display:grid;grid-template-columns:116px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.cal-list .when{display:flex;align-items:center;gap:10px;align-self:start;padding-top:5px;font:500 12px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sage-ink)}
.cal-list .when::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--sage-ink)}
.cal-list .season .when::before{background:var(--mauve)}
.cal-list .what{display:block;font:400 25px/1.15 var(--serif)}
.cal-list .alink{font-size:16px;color:var(--ink2)}
@media(min-width:960px){.cal-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:72px;align-items:end}.cal-wrap .sh{margin-bottom:0}.cal-list li{grid-template-columns:160px minmax(0,1fr)}}

/* ---------- home: services ---------- */
.svc-grid{display:grid;gap:16px}
.svc{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-content:start;padding:12px;background:var(--paper);border:1px solid var(--line)}
.svc-body{display:flex;flex-direction:column;gap:6px;min-width:0;padding-top:2px}
.svc-n{font:italic 400 17px/1.2 var(--serif);color:var(--sage-ink)}
.svc h3{font-size:25px;line-height:1.08}
.svc p{font-size:16px;line-height:1.5;color:var(--ink2)}
.svc .pill{margin-top:6px}
.svc .btn{grid-column:1/-1;min-height:50px;padding-inline:16px;font-size:16px}
.sv-price{margin-top:4px;font:400 22px/1.2 var(--serif);color:var(--ink)}
.svc .sv-price small{font:400 14px/1 var(--sans);color:var(--ink2)}
.pl{margin:8px 0 2px;border-top:1px solid var(--line)}
.pl li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.4}
.pl-p{font:400 20px/1.3 var(--serif);color:var(--ink)}
.pl-p small{font:400 13px/1.3 var(--sans);color:var(--ink2);margin-left:6px}
.svc-note{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:28px 24px;background:var(--mauve-soft);border:1px solid #DCCACB}
.svc-note h3{font-size:28px}
.svc-note p{color:var(--ink2);font-size:16px;max-width:22em}
.svc-note>*:not(.orn){position:relative}
.svc-note .orn{right:-46px;top:-58px;width:120px;height:186px;opacity:.32;transform:rotate(20deg)}
@media(min-width:760px){
 .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .svc{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;padding:12px 12px 16px}
 .svc .ph{aspect-ratio:4/3}
 .svc-body{padding:8px 6px 0}
 .svc .btn{margin:6px 6px 0}
}
@media(min-width:1080px){.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- home: gallery (herbarium sheets) ---------- */
.gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:26px}
.gal .plate{padding:7px 7px 0}
.gal .plate:nth-child(even){transform:translateY(26px)}
.gal-more{margin-top:28px}
@media(max-width:759px){.gal figcaption span{display:none}}
@media(min-width:760px){.gal{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-bottom:40px}.gal .plate{padding:10px 10px 0}.gal .plate:nth-child(even){transform:none}.gal .plate:nth-child(3n+2){transform:translateY(40px)}}

/* ---------- home: awards (mauve band, double-ruled plates) ---------- */
.band{background-color:var(--mauve-soft);background-image:var(--weave)}
.aw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.aw{display:flex;flex-direction:column;gap:8px;min-width:0;padding:20px 18px;background:var(--paper);border:1px solid var(--ink2);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px var(--line)}
.aw.wide{grid-column:1/-1}
.aw-k{font:400 40px/1 var(--serif)}
.aw-t{font-size:16px;line-height:1.45}
.aw-d{font:500 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.aw .alink{align-self:flex-start;margin-top:auto;font-size:15px}
@media(min-width:960px){.aw-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:20px}.aw.wide{grid-column:span 2}.aw{padding:26px 24px}}

/* ---------- home: about ---------- */
.about{display:grid;gap:40px}
.about-fig{position:relative;max-width:440px}
.about-fig .plate{margin-right:44px}
.about-fig .orn{right:6px;bottom:30px;width:100px;height:200px;opacity:.5;transform:rotate(-8deg)}
.about-text h2{font-size:clamp(38px,10vw,60px);font-weight:300;line-height:1;margin-bottom:24px}
.bio p{max-width:34em}
.bio p+p{margin-top:16px}
.bio .first{font:400 24px/1.32 var(--serif)}
.sign{margin-top:26px;font:italic 300 44px/1 var(--serif);color:var(--plum)}
.about-text .alink{margin-top:14px}
@media(min-width:960px){.about{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:96px;align-items:center}.bio .first{font-size:28px}}

/* ---------- archive list ---------- */
.arch{border-top:1px solid var(--line)}
.arch li{display:grid;gap:6px;padding:24px 0;border-bottom:1px solid var(--line)}
.arch time{font:500 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sage-ink)}
.arch .mc-type{font-size:11px;color:var(--ink2)}
.arch h3{font-size:28px;line-height:1.1;margin-top:4px}
.arch h3 a{text-decoration:none}
.arch h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.arch div>p:last-child:not(.mc-type){margin-top:4px;font-size:16px;color:var(--ink2)}
.arch .pill{justify-self:start;margin-top:6px}
@media(min-width:760px){.arch li{grid-template-columns:200px minmax(0,1fr) auto;gap:24px;align-items:baseline}.arch .pill{margin:0}}

/* ---------- home: contact ---------- */
.contact{position:relative;overflow:hidden;background:var(--paper);border-top:1px solid var(--line)}
.contact .wrap{position:relative;max-width:760px}
.contact .orn{right:-34px;top:-34px;width:124px;height:192px;opacity:.28;transform:rotate(14deg)}
.contact h2{font-size:clamp(44px,12vw,72px);font-weight:300;line-height:1;margin-bottom:16px}
.contact .lead{margin-bottom:28px}
.contact .btn{min-height:58px;font-size:17px}
.clist{margin-top:28px;border-top:1px solid var(--line)}
.clist>a,.clist>.row{display:flex;align-items:center;gap:14px;min-height:60px;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:17px;line-height:1.4;overflow-wrap:anywhere}
.clist small{flex:none;margin-left:auto;font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.clist .ic{width:22px;height:22px;color:var(--sage-ink)}
.clist>a:hover span{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media(max-width:380px){.clist small{display:none}}
@media(min-width:760px){.contact .orn{right:-58px;top:-70px;width:200px;height:310px}}

/* ---------- event page ---------- */
.crumb{display:inline-flex;align-items:center;gap:10px;min-height:48px;margin-top:6px;font-size:16px;letter-spacing:.03em;color:var(--ink);text-decoration:none}
.crumb .ic{width:18px;height:18px;transition:transform .3s ease}
.crumb:hover .ic{transform:translateX(-3px)}
.crumb span{text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:5px;text-decoration-thickness:1px}
.ev{display:grid;padding-bottom:72px}
.ev-head{padding:18px 0 28px}
.ev-tags{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px}
.ev-head h1{font-size:clamp(44px,12.4vw,84px);font-weight:300;line-height:.98;letter-spacing:-.015em}
.ev-quick{display:flex;flex-wrap:wrap;gap:2px 20px;margin-top:18px;font-size:16px;color:var(--ink2)}
.ev-quick li{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.ev-quick .ic{width:18px;height:18px;color:var(--sage-ink)}
.ev-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:14px}
.fmt{font-size:16px;color:var(--ink2)}
/* booking card */
.book{margin-top:32px}
.book-card{padding:24px 20px 18px;background:var(--paper);border:1px solid var(--ink2);box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--line),0 26px 50px -38px rgba(43,38,34,.55)}
.book-card form{margin:0}
.book-card h2{margin-bottom:12px}
.book-when{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;font-size:16px;line-height:1.45}
.book-when .ic{color:var(--sage-ink)}
.book-price{display:flex;align-items:flex-end;gap:16px;margin:0 0 18px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.book-price .amt{font:400 62px/.82 var(--serif);letter-spacing:-.01em;white-space:nowrap}
.book-price .vat{font:500 11.5px/1.55 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.seats-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 20px}
.seats-box .seats::before{display:none}
.seat-dots{display:flex;flex-wrap:wrap;gap:6px}
.seat-dots li{width:13px;height:13px;border-radius:50%;border:1px solid var(--plum)}
.seat-dots li.t{background:var(--line2);border-color:var(--line2)}
.pay-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 16px;font-size:15px;letter-spacing:.03em;color:var(--ink2)}
.pay-note .ic{width:15px;height:15px}
.book-card .btn+.btn{margin-top:10px}
.calm{margin-top:14px;font-size:15px;line-height:1.5;color:var(--ink2);text-align:center}
.book-card .cal-link{display:flex;justify-content:center;margin-top:6px;font-size:16px}
.bk-closed{font:400 26px/1.2 var(--serif);margin-bottom:18px}
@media(max-width:399px){.book-card .btn{padding-inline:12px}.book-card .btn-xl{font-size:17px;letter-spacing:.02em}}
/* detail sections */
.ev-sec{padding-top:60px}
.ev-sec>h2{margin-bottom:20px;font-size:clamp(34px,8.5vw,46px);font-weight:300}
.ev-sec>.eyebrow{margin-bottom:10px}
.ev-sec>.intro{margin:-8px 0 20px}
.facts{border-top:1px solid var(--line)}
.facts>div{position:relative;padding:16px 0 16px 40px;border-bottom:1px solid var(--line)}
.facts dt{font:500 11px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sage-ink)}
.facts dt .ic{position:absolute;left:0;top:19px;width:24px;height:24px}
.facts dd{margin-top:2px;font-size:17px;line-height:1.45;min-width:0}
.facts dd small{display:block;font-size:16px;color:var(--ink2)}
.facts .chips{margin-top:6px}
.facts .chips-note{margin-top:4px}
.facts .alink{font-size:16px}
.incl{border-top:1px solid var(--line)}
.incl li{display:flex;align-items:center;gap:16px;min-height:62px;padding:8px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.35}
.incl .ic{width:28px;height:28px;stroke-width:1.1;color:var(--sage-ink)}
.desc p{max-width:36em}
.desc p+p{margin-top:16px}
.desc .first{font:400 24px/1.36 var(--serif)}
.teacher{display:grid;grid-template-columns:118px minmax(0,1fr);gap:20px;align-items:start}
.teacher .plate{padding:6px}
.teacher .plate>.ph:only-child{margin-bottom:0}
.teacher h2{margin-bottom:8px;font-size:30px;font-weight:400}
.teacher p{font-size:16px;color:var(--ink2)}
.teacher .alink{font-size:16px}
.steps{border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}
.steps b{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--sage-ink);border-radius:50%;font:500 17px/1 var(--serif);color:var(--sage-ink)}
.policy .lbl>div{grid-template-columns:118px minmax(0,1fr)}
.policy .alink{margin-top:12px}
.ask{position:relative;overflow:hidden;padding:30px 22px 24px;background:var(--sage-soft);border:1px solid #C8CEBD}
.ask h2{font-size:32px;font-weight:400;margin-bottom:8px}
.ask p{margin-bottom:20px;color:var(--ink2)}
.ask>*:not(.orn){position:relative}
.ask .orn{right:-40px;top:-74px;width:104px;height:210px;opacity:.3;transform:rotate(24deg)}
.ask .btn{background:var(--paper)}
.ask .btn:hover{background:var(--ink)}
@media(min-width:600px){.incl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}}
/* sticky bar (phones): price + main action, then WhatsApp and the small print */
body.has-bar{padding-bottom:calc(124px + env(safe-area-inset-bottom))}
html:has(body.has-bar){scroll-padding-bottom:calc(132px + env(safe-area-inset-bottom))}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:12px max(var(--gut),env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(var(--gut),env(safe-area-inset-left));background:rgba(248,245,239,.95);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -14px 30px -24px rgba(43,38,34,.45);transition:transform .35s ease,visibility 0s}
.bar.off{transform:translateY(110%);visibility:hidden;transition:transform .35s ease,visibility 0s .35s}
.bar-row,.bar-row2{display:flex;align-items:center;max-width:560px;margin:0 auto}
.bar-row{gap:16px;padding-bottom:8px}
.bar-price{flex:none;display:flex;flex-direction:column}
.bar-price span{font:400 34px/.9 var(--serif);white-space:nowrap}
.bar-price small{margin-top:4px;font:500 10.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.bar .btn{flex:1;min-width:0;min-height:52px;padding:8px 16px;font-size:17px}
.bar-row2{justify-content:space-between;gap:10px;min-height:40px}
.bar-sub{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;letter-spacing:.02em;color:var(--ink2)}
.bar-sub:only-child{margin:0 auto}
.bar-wa{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;font-size:14px;color:var(--ink);white-space:nowrap;text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:4px;text-decoration-thickness:1px}
.bar-wa .ic{width:17px;height:17px}
@media(max-width:374px){.bar-wa .xs{display:none}}
@media(max-width:359px){.bar-row{gap:10px}.bar-price span{font-size:28px}.bar .btn{font-size:15px;padding-inline:10px}}
@media(min-width:960px){
 body.has-bar{padding-bottom:0}
 html:has(body.has-bar){scroll-padding-bottom:0}
 .bar{display:none}
 .ev{grid-template-columns:minmax(0,1fr) 380px;column-gap:80px;align-items:start;padding-bottom:120px}
 .ev>*{grid-column:1}
 .ev>.book{grid-column:2;grid-row:1/span 12;position:sticky;top:24px;align-self:start;margin-top:40px}
 .ev-head{padding-top:36px}
 .ev-hero .ph{aspect-ratio:1/1}
 .book-card{padding:30px 28px 22px}
 .teacher{grid-template-columns:180px minmax(0,1fr);gap:32px}
}

/* ---------- simple pages: archive, legal, thank-you, 404 ---------- */
.pg{position:relative;padding:48px 0 96px;min-height:62vh}
.pg .wrap{position:relative}
.pg h1{font-weight:300;font-size:clamp(44px,12vw,80px);line-height:1;letter-spacing:-.015em}
.pg .sh{max-width:44rem}
/* Legal titles have the longest words («конфиденциальности»): smaller on phones so they do not break mid-word. */
.legal h1{font-size:clamp(34px,9.2vw,72px);-webkit-hyphens:auto;hyphens:auto}
.pg .intro{max-width:36em}
.pg .wrap>.orn{display:none}
@media(min-width:768px){
 .pg .wrap>.orn{display:block;right:var(--gut);top:-12px;width:120px;height:240px;opacity:.45;transform:rotate(10deg)}
 .nf h1,.nf .intro,.ok h1,.ok .intro{max-width:calc(100% - 180px)}
}
.ok-ev{margin-top:36px;max-width:38rem;padding:22px 20px 20px;background:var(--paper);border:1px solid var(--ink2);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px var(--line)}
.ok-ev p{color:var(--ink2)}
.ok-ev .mc-type{color:var(--sage-ink)}
.ok-ev .ok-t{font:400 30px/1.15 var(--serif);color:var(--ink);margin:8px 0}
.ok-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin-top:32px}
@media(max-width:599px){.ok-act .btn{flex:1 1 100%}}
.legal .pending{display:inline-block;margin:18px 0 0;padding:8px 12px;border:1px solid var(--line2);background:var(--paper);font-size:15px;color:var(--ink2)}
.prose{max-width:42rem}
.prose>p:first-child{margin-top:24px}
.prose h2{font-size:clamp(28px,6.4vw,38px);margin:44px 0 14px}
.prose p+p{margin-top:14px}
.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--line2)}
.prose a:hover{text-decoration-color:var(--ink)}
.kv{border-top:1px solid var(--line)}
.kv>div{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.kv dt{font:500 11px/1.9 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sage-ink)}
.pend{color:var(--ink2);font-style:italic}
.legal-nav{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:56px;padding-top:12px;border-top:1px solid var(--line)}

/* ---------- motion & figures ---------- */
/* A short settle (no fade: content is visible from the first frame); nothing at all with reduced motion. */
@keyframes rise{from{transform:translateY(8px)}to{transform:none}}
.hero-text,.hero-fig .plate,.ev-head{animation:rise .36s cubic-bezier(.2,.7,.2,1) backwards}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Cormorant defaults to old-style figures; keep dates, times and prices lining (after every font shorthand) */
h1,h2,h3,.lead,.bio .first,.desc .first,.next-date .d,.next-price,.price,.amt,.bar-price span,.pl-p,.sv-price,.aw-k,.ok-t,.steps b,.svc-n,.hlabel .n,.cal-list .what{font-variant-numeric:lining-nums}
