/* Fonts are served from this site, so visitors' IP addresses are not sent to a font service */
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-ext-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/bodoni-moda-latin-ext-italic.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/jost-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jost";font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/jost-latin-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --oat:#e9dfd3;      /* page */
  --milk:#f5efe8;     /* fields, price card */
  --latte:#cdb8a2;    /* emboss, tape */
  --line:#c4b09c;     /* rules */
  --mocha:#5a4336;    /* secondary text, 7:1 on oat */
  --espresso:#2c201a; /* text, dark band */
  --cream-on-dark:#e3d4c3;
  --muted-on-dark:#cbb9a6;
  --serif:"Bodoni Moda",Didot,"Times New Roman",serif;
  --sans:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --wrap:1180px;
  --gutter:clamp(20px,4vw,48px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--oat);color:var(--espresso);font:400 1.1875rem/1.65 var(--sans)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}
/* Smaller serif headings use a lower optical size: sturdier hairlines, easier to read */
h3{font-variation-settings:"opsz" 14}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--espresso);outline-offset:4px;border-radius:2px}
.dark :focus-visible{outline-color:var(--cream-on-dark)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px;top:12px}
.skip:focus{left:12px;background:var(--milk);padding:10px 14px;z-index:20}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Header */
.top{position:relative;z-index:2}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand span{font-family:var(--serif);font-size:1.3rem;font-variation-settings:"opsz" 18}
.nav{display:flex;align-items:center;gap:clamp(18px,3vw,36px);font-size:1.05rem}
.nav a{text-decoration:none}
.nav a:hover{text-decoration:underline}
.nav .write{border:1px solid var(--espresso);padding:9px 20px;border-radius:999px}
.nav .write:hover{background:var(--espresso);color:var(--oat);text-decoration:none}
@media(max-width:760px){.nav a:not(.write){display:none}}

/* Hero */
.hero{position:relative;overflow:hidden;padding:clamp(48px,9vw,120px) 0 clamp(72px,10vw,140px)}
.hero .wrap{position:relative;z-index:1}
.hero h1{font-size:clamp(2.9rem,7vw,6.2rem);line-height:.98;letter-spacing:-.015em;max-width:9.5em}
.hero .intro{max-width:32em;margin-top:clamp(28px,4vw,44px);font-size:clamp(1.2rem,1.6vw,1.35rem);color:var(--mocha)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:34px}
.btn{display:inline-block;font:500 1.1rem var(--sans);background:var(--espresso);color:var(--oat);padding:16px 30px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:#4a372c}
.link{font-weight:500}
/* The seal is pressed into the paper, not printed on it */
.seal{position:absolute;z-index:0;color:var(--latte);width:min(42vw,580px);aspect-ratio:1;right:-14vw;top:50%;transform:translateY(-50%);
  filter:drop-shadow(-1.5px -1.5px 0 rgba(255,250,244,.75)) drop-shadow(1.5px 1.5px 1px rgba(44,32,26,.22))}
.seal svg{width:100%;height:100%}
.seal .ring{animation:turn 120s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
@media(max-width:860px){
  .hero{padding-bottom:230px}
  .seal{width:320px;right:-90px;top:auto;bottom:-110px;transform:none}
}
@media(prefers-reduced-motion:reduce){.seal .ring{animation:none}html{scroll-behavior:auto}}

/* Section rhythm */
.section{padding:clamp(72px,10vw,128px) 0}
.rule{border-top:1px solid var(--line)}
.section h2{font-size:clamp(2.3rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.01em}
.lede{color:var(--mocha);max-width:34em;margin-top:18px;font-size:1.25rem}

/* Process: a tailor's tape at a fixed scale of 1 mm = 4 px (1 cm = 40 px), so every
   millimetre gap is the same whole number of pixels. The steps sit every 5 cm:
   each step column is exactly 200 px wide. Each step has ONE line (li::before) that
   starts at the top edge of the tape and runs down past the step number. */
:root{--tape-h:44px}
.tape{position:relative;margin-top:clamp(40px,6vw,64px);height:var(--tape-h);background:var(--latte);color:var(--espresso);border-radius:0 3px 3px 0;overflow:hidden}
.tape svg{display:block}
.tape text{font:500 13px var(--sans);fill:currentColor}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,200px) minmax(200px,1fr);counter-reset:step}
.steps li{counter-increment:step;position:relative;padding:40px 20px 0 0}
.steps li::before{content:"";position:absolute;left:0;top:calc(var(--tape-h) * -1);width:2px;height:calc(var(--tape-h) + 30px);background:var(--espresso)}
.steps li::after{content:counter(step);position:absolute;left:12px;top:4px;font:italic 400 1.2rem var(--serif);color:var(--mocha)}
.steps h3{font-size:1.4rem;line-height:1.2;margin-bottom:12px}
.steps p{color:var(--mocha);margin:0;max-width:22em}
/* The tape needs 5 x 200 px; on narrower screens the steps become a list without it */
@media(max-width:1119px){
  .tape{display:none}
  .steps{grid-template-columns:1fr 1fr;gap:44px 32px;margin-top:40px}
  .steps li{padding:0 0 0 44px}
  .steps li::before{height:100%;top:4px}
  .steps li::after{left:16px;top:0}
  .steps h3{font-size:1.5rem}
}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* Agreements: what the client can count on */
.terms{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,6vw,88px);margin-top:clamp(36px,5vw,56px)}
.terms div{border-top:1px solid var(--espresso);padding:24px 0 36px}
.terms h3{font-size:1.65rem;line-height:1.2;margin-bottom:10px}
.terms p{color:var(--mocha);margin:0;max-width:28em}
@media(max-width:760px){.terms{grid-template-columns:1fr}}

/* Prices, set like a tailor's price card */
.prices .wrap{display:grid;grid-template-columns:4fr 7fr;gap:clamp(36px,6vw,88px)}
.card{background:var(--milk);border-radius:6px;padding:clamp(24px,4vw,48px)}
.item{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:0 12px;padding:22px 0;border-bottom:1px solid var(--line)}
.item:first-child{padding-top:0}
.item h3{font-size:1.6rem}
.item .lead{border-bottom:1px dotted var(--mocha);transform:translateY(-.3em)}
.item .price{font:400 1.6rem var(--serif);font-variation-settings:"opsz" 14;white-space:nowrap}
.item p{grid-column:1/-1;margin:6px 0 0;color:var(--mocha)}
.card h3.sub{font:500 1.2rem var(--sans);margin-top:36px}
.includes{margin:16px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
.includes li{padding-left:24px;position:relative}
.includes li::before{content:"";position:absolute;left:0;top:.82em;width:13px;height:1px;background:var(--espresso)}
.card .note{margin:30px 0 0;color:var(--mocha)}
@media(max-width:860px){.prices .wrap{grid-template-columns:1fr}.includes{grid-template-columns:1fr}}
@media(max-width:480px){.item{grid-template-columns:1fr}.item .lead{display:none}.item .price{margin-top:2px}}

/* Questions */
.faq .wrap{display:grid;grid-template-columns:4fr 7fr;gap:clamp(36px,6vw,88px)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--espresso)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;font:400 1.45rem/1.3 var(--serif);font-variation-settings:"opsz" 14}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 1.8rem/1 var(--sans);color:var(--mocha);flex:none}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--mocha);margin:0 0 24px;max-width:36em}
@media(max-width:860px){.faq .wrap{grid-template-columns:1fr}}

/* About, a short letter */
.letter{max-width:780px;margin:0 auto}
.letter blockquote{margin:0;font:italic 400 clamp(1.7rem,3.2vw,2.5rem)/1.3 var(--serif)}
.letter p.body{color:var(--mocha);margin-top:28px;max-width:36em}
.sign{display:flex;align-items:center;gap:14px;margin-top:32px}
.sign span{font-family:var(--serif);font-size:1.3rem;font-variation-settings:"opsz" 18}

/* Contact, dark band */
.dark{background:var(--espresso);color:var(--cream-on-dark)}
.contact .wrap{display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,6vw,96px)}
.contact h2{color:#f2e8dc}
.contact .lede{color:var(--muted-on-dark)}
.direct{display:grid;justify-items:start;gap:8px;margin-top:30px}
.mail{display:inline-block;font:400 clamp(1.3rem,2.4vw,1.8rem) var(--serif);font-variation-settings:"opsz" 18;overflow-wrap:anywhere}
form{display:grid;gap:20px}
label{display:grid;gap:6px;font-size:1.05rem}
input,textarea{font:inherit;color:#f2e8dc;background:transparent;border:0;border-bottom:1px solid #9c8573;padding:10px 0;border-radius:0}
input::placeholder{color:#9c8573}
input:focus,textarea:focus{outline:none;border-bottom-color:#f2e8dc}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--cream-on-dark);outline-offset:4px}
textarea{min-height:120px;resize:vertical}
.dark .btn{background:var(--cream-on-dark);color:var(--espresso);justify-self:start;margin-top:8px}
.dark .btn:hover{background:#f2e8dc}
.consent{font-size:1rem;color:var(--muted-on-dark);margin:0}
.status{min-height:1.5em;color:var(--muted-on-dark);margin:0}
@media(max-width:860px){.contact .wrap{grid-template-columns:1fr}}

/* Footer: brand, contact and page links on one line; legal line underneath */
footer{border-top:1px solid #4a3a30;color:var(--muted-on-dark)}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px 48px;align-items:start;padding:56px 0 48px}
.foot-brand{display:flex;align-items:center;gap:20px}
.foot-brand p{margin:0}
.foot-name{display:block;font:400 1.6rem/1.2 var(--serif);font-variation-settings:"opsz" 18;color:#f2e8dc;margin-bottom:4px}
footer .mini{width:76px;height:76px;flex:none;color:#8a7462}
footer .mini svg{width:100%;height:100%}
.foot-col{display:grid;gap:10px;justify-items:start}
.foot-col a,.foot-legal a{text-decoration:none}
.foot-col a:hover,.foot-legal a:hover{text-decoration:underline}
.foot-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 32px;border-top:1px solid #4a3a30;padding:22px 0 30px;font-size:1rem}
@media(max-width:860px){.foot{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media(max-width:480px){.foot{grid-template-columns:1fr}}

/* Plain text pages (privacy policy) */
.page{min-height:62vh;max-width:760px;padding-top:clamp(32px,6vw,72px);padding-bottom:clamp(72px,10vw,128px)}
.page h1{font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.05;margin-bottom:24px}
.page h2{font-size:1.7rem;margin:44px 0 12px;font-variation-settings:"opsz" 14}
.page ul{padding-left:1.2em}
.page li{margin-bottom:.4em}
.page .updated{color:var(--mocha)}
