/* After Keep — one stylesheet. Direction 03, the family house. */

/* ---------- fonts, self-hosted (no third-party CDN, no external requests) ---------- */
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;
 src:url('../fonts/eb-garamond-latin-ext-400-normal.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;
 src:url('../fonts/eb-garamond-latin-400-normal.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;
 src:url('../fonts/eb-garamond-latin-ext-400-italic.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;
 src:url('../fonts/eb-garamond-latin-400-italic.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;
 src:url('../fonts/eb-garamond-latin-ext-500-normal.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;
 src:url('../fonts/eb-garamond-latin-500-normal.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:400;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-ext-400-normal.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:400;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-400-normal.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:500;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-ext-500-normal.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:500;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-500-normal.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:700;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-ext-700-normal.woff2') format('woff2');
 unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Alegreya Sans';font-style:normal;font-weight:700;font-display:swap;
 src:url('../fonts/alegreya-sans-latin-700-normal.woff2') format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- tokens ---------- */
:root{
  --plaster:#E4DDD0; --plaster-2:#D3CABA; --ink:#241F1A; --cloth:#464E44; --interior:#2A2621;
  --muted:#645C4E; --muted-pale:#B8AF9F; --family:#8A4E3C; --link:#6B5334; --link-pale:#C9B48F;
  --rule:rgba(36,31,26,.18); --key:rgba(228,221,208,.32);
  --err:#9C3B26; --err-pale:#E8A898; --ok:#3F6B4A; --ok-pale:#A9CBB2;
  --serif:'EB Garamond',Georgia,'Times New Roman',serif;
  --sans:'Alegreya Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
  --gut:clamp(20px,5vw,64px);       /* page side margin */
  --rev:clamp(14px,2vw,24px);       /* the threshold: strip of the layer behind */
  --band:clamp(56px,8vw,110px);     /* vertical rhythm between bands */
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--plaster);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--link)}
a:hover{opacity:.78}
:focus-visible{outline:2px solid var(--link-pale);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--interior);color:var(--plaster);padding:14px 18px;z-index:50}
.skip:focus{left:0}
.hp{position:absolute!important;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- the threshold ---------- */
.dark{background:var(--cloth);padding-left:var(--rev)}
.dark>.in{background:var(--interior);color:var(--plaster);padding:var(--band) var(--gut)}
.dark--alt{background:var(--plaster-2)}
.light{background:var(--plaster);color:var(--ink);padding:var(--band) var(--gut)}
.dark a{color:var(--link-pale)}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;line-height:1.06}
h1{font-size:clamp(44px,7.4vw,100px);line-height:.98}
h2{font-size:clamp(30px,4.3vw,46px)}
h3{font-size:clamp(22px,2.6vw,31px);line-height:1.1}
h4{font-size:clamp(20px,2.1vw,27px);line-height:1.12}
/* a section heading that is an h2 for structure and an h3 for the eye */
.h3{font-size:clamp(22px,2.6vw,31px);line-height:1.1}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
em{font-style:italic}
.lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;max-width:56ch}
.small{font-size:15.5px;line-height:1.55}
.tiny{font-size:14px;line-height:1.5}
.label{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .4em}
.dark .label{color:var(--muted-pale)}
.label--accent{color:var(--link)}
.dark .label--accent{color:var(--link-pale)}
.quote{font-family:var(--serif);font-size:clamp(24px,3vw,36px);line-height:1.24;font-style:italic}
.sig{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3.4vw,44px);line-height:1.16}
.muted{color:var(--muted)}
.dark .muted{color:var(--muted-pale)}
.prose p{font-family:var(--serif);font-size:clamp(17px,1.5vw,20px);line-height:1.6;max-width:62ch}

/* ---------- layout ---------- */
.wrap{max-width:1312px;margin:0 auto}
.cols{display:grid;gap:clamp(24px,4vw,56px)}
.c-5-7{grid-template-columns:5fr 7fr}
.c-7-5{grid-template-columns:7fr 5fr}
.c-6-6{grid-template-columns:1fr 1fr}
.c-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.c-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:clamp(16px,2vw,26px)}
.stack--s{gap:12px}
.end{align-items:end}
.mt{margin-top:clamp(24px,3vw,40px)}

/* ---------- header ---------- */
.bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:clamp(40px,7vw,96px)}
.mark{display:inline-flex;align-items:center;min-height:44px;flex:none;color:var(--plaster);text-decoration:none}
.mark .wm{width:162px;height:auto;display:block;fill:currentColor}
.dark .mark,.foot .mark{color:var(--plaster)}
.light .mark,.mark--ink{color:var(--ink)}
.nav{display:flex;gap:clamp(14px,1.8vw,26px);align-items:center;font-size:15.5px}
.nav a{color:var(--plaster);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.nav a[aria-current="page"]{border-bottom:1px solid currentColor;padding-bottom:2px}
.nav .btn{border:1px solid var(--plaster);padding:12px 18px;min-height:44px;display:inline-flex;align-items:center}
.lang{color:var(--muted-pale);font-size:14px;display:inline-flex;gap:6px;align-items:center}
.lang a{min-height:44px;display:inline-flex;align-items:center;padding:0 2px}
.lang a{color:var(--muted-pale);text-decoration:none}
.lang a[aria-current]{color:var(--plaster)}
.burger{display:none;min-width:44px;min-height:44px;background:none;border:0;color:var(--plaster);font:inherit;font-size:15px;padding:0;text-align:right;cursor:pointer}

/* ---------- buttons and links ---------- */
.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;padding:0 20px;
  border:1px solid currentColor;text-decoration:none;font-family:var(--sans);font-size:16px;color:var(--plaster);max-width:420px}
.light .cta,.cta--ink{color:var(--ink)}
.cta:hover{background:currentColor}
.cta:hover span{color:var(--interior)}
.light .cta:hover span,.cta--ink:hover span{color:var(--plaster)}
.more{font-family:var(--sans);font-size:16px;min-height:44px;display:inline-flex;align-items:center;gap:8px}

/* ---------- pieces ---------- */
.plate{position:relative;background:var(--cloth);padding:var(--rev) 0 0 var(--rev)}
.light .plate{background:var(--plaster-2)}
.plate img{width:100%;display:block}
.cap{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--muted);margin-top:10px}
.dark .cap{color:var(--muted-pale)}
.fields{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13.5px;line-height:1.6}
.fields dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;padding-top:3px}
.fields dd{margin:0}
.dark .fields dt{color:var(--muted-pale)}
.unknown{border-top:1px solid var(--link);color:var(--link);padding-top:10px;margin-top:12px;font-size:13.5px;line-height:1.55}
.dark .unknown{border-top-color:var(--link-pale);color:var(--link-pale)}
.rows{border-top:1px solid var(--rule)}
.dark .rows{border-top-color:var(--key)}
.row{display:grid;grid-template-columns:300px 1fr;gap:clamp(16px,3vw,32px);padding:22px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.dark .row{border-bottom-color:var(--key)}
.row--num{grid-template-columns:70px 300px 1fr}
.row--q{grid-template-columns:400px 1fr}
.step{border-top:1px solid var(--key);padding-top:16px}
.light .step{border-top-color:var(--rule)}
.entry{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--key);padding-top:18px;text-decoration:none;color:inherit;min-height:44px}
.entry:hover{opacity:1}
.entry:hover h3{text-decoration:underline}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-pale)}
.light .field label{color:var(--muted)}
.field input,.field select,.field textarea{min-height:56px;border:0;border-bottom:1px solid var(--plaster);
  background:rgba(228,221,208,.06);padding:0 14px;font-family:var(--sans);font-size:17px;color:var(--plaster);width:100%}
.light .field input,.light .field select,.light .field textarea{border-bottom-color:var(--ink);background:transparent;color:var(--ink)}
.field textarea{font-family:var(--serif);font-size:19px;line-height:1.5;padding:14px;resize:vertical;min-height:140px}
.field .help{font-size:14.5px;color:var(--muted-pale)}
.field label{min-height:20px;display:block}
.light .field .help{color:var(--muted)}
.field.is-error input,.field.is-error textarea{border-bottom-color:var(--err-pale)}
.field .err{font-size:14.5px;color:var(--err-pale);display:none}
.light .field .err{color:var(--err)}
.field.is-error .err{display:block}
fieldset{border:0;padding:0;margin:0}
legend{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-pale);padding:0 0 10px}
.radios{display:flex;gap:26px;flex-wrap:wrap;font-size:16px}
.radios label,.check{min-height:44px;display:flex;align-items:center;gap:9px;cursor:pointer}
.check{align-items:flex-start;font-size:15px;line-height:1.5;color:var(--muted-pale);gap:11px}
.check input{margin-top:4px}
.submit{min-height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;
  background:var(--plaster);color:var(--interior);border:1px solid var(--plaster);font-family:var(--sans);font-size:16px;cursor:pointer;width:100%;max-width:420px}
.submit:hover{background:transparent;color:var(--plaster)}
.submit[disabled]{opacity:.55;cursor:default}
.done{display:none;border-top:1px solid var(--ok-pale);padding-top:24px}
.is-sent .done{display:block}
.is-sent form{display:none}
.newsletter form{display:flex;gap:14px;flex-wrap:wrap}
.newsletter input{flex:1 1 220px;min-height:56px;border:0;border-bottom:1px solid currentColor;background:transparent;
  padding:0 4px;font-family:var(--sans);font-size:17px;color:inherit}
.newsletter button{min-height:56px;padding:0 22px;border:1px solid currentColor;background:currentColor;font-family:var(--sans);font-size:16px;cursor:pointer}
.newsletter button span{color:var(--interior)}
.light .newsletter button span{color:var(--plaster)}
.newsletter .note{font-size:14.5px;margin-top:10px;min-height:20px}

/* ---------- footer ---------- */
.foot{background:var(--interior);color:var(--muted-pale);padding:40px var(--gut) 44px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;font-size:14px}
.foot a{color:var(--muted-pale);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.foot a:hover{text-decoration:underline}
.foot nav{display:flex;gap:28px;flex-wrap:wrap}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .c-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row--num{grid-template-columns:52px 1fr}
  .row--num h3{grid-column:2}
}
@media (max-width:860px){
  body{font-size:16.5px}
  .c-5-7,.c-7-5,.c-6-6,.c-3,.c-5{grid-template-columns:1fr}
  .row,.row--q{grid-template-columns:1fr;gap:8px}
  .row--num{grid-template-columns:52px 1fr}
  .nav{display:none}
  .nav.is-open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:flex-start;
    background:var(--interior);padding:18px var(--gut) 26px;gap:4px;z-index:20;border-top:1px solid var(--key)}
  .nav.is-open a{min-height:52px;display:flex;align-items:center;width:100%}
  .nav.is-open .btn{border:1px solid var(--plaster);padding:0 18px;margin-top:8px;width:auto}
  .burger{display:block}
  .bar{position:relative;padding-bottom:clamp(36px,10vw,64px)}
  .foot{flex-direction:column;align-items:flex-start;gap:18px}
  .cta,.submit{max-width:100%;width:100%}
}
@media (prefers-reduced-motion:no-preference){
  .dark>.in,.light{animation:rise .5s ease-out both}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media print{.dark>.in{background:#fff;color:#000}.nav,.cta,.burger{display:none}}

/* radio and checkbox: the label is the 44px target, the control itself is drawn larger too */
.radios input[type="radio"],.check input[type="checkbox"]{width:20px;height:20px;accent-color:var(--link-pale);flex:0 0 auto}
.light .radios input[type="radio"],.light .check input[type="checkbox"]{accent-color:var(--link)}
