/* ==========================================================================
   Picasso's Salon, South Hill VA
   Design tokens and site styles. One file, no build step.
   Palette is drawn from the salon logo: warm black, bone paper, the red
   swoosh from the wordmark, and a brass tone for rules and small type.
   ========================================================================== */

:root{
  --ink:#14100E;
  --ink-2:#241D19;
  --ink-3:#3A302A;
  --bone:#F4EFE7;
  --bone-2:#EAE2D6;
  --plaster:#DFD3C1;
  --vermilion:#C33B2A;
  --vermilion-deep:#94281B;
  --brass:#A98A55;
  --rule:rgba(20,16,14,.14);
  --rule-light:rgba(244,239,231,.18);

  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Karla","Helvetica Neue",Arial,sans-serif;

  --shell:1220px;
  --gutter:clamp(20px,5vw,64px);
  --sec:clamp(72px,10vw,132px);
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
}

body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block;}

a{color:inherit;}

::selection{background:var(--vermilion);color:var(--bone);}

:focus-visible{
  outline:2px solid var(--vermilion);
  outline-offset:3px;
}

.shell{
  width:100%;
  max-width:var(--shell);
  margin:0 auto;
  padding:0 var(--gutter);
}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--vermilion);color:var(--bone);
  padding:12px 18px;z-index:200;font-size:14px;
}
.skip:focus{left:12px;top:12px;}

/* ---------- Type ---------- */

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  font-variation-settings:"SOFT" 20,"WONK" 1,"opsz" 120;
  margin:0;
  letter-spacing:-.015em;
  line-height:1.06;
}

.eyebrow{
  font-family:var(--body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 22px;
}

.eyebrow--light{color:var(--plaster);}

.display-xl{font-size:clamp(2.9rem,7.4vw,5.5rem);}
.display-l{font-size:clamp(2.3rem,5vw,3.7rem);}
.display-m{font-size:clamp(1.7rem,3.2vw,2.5rem);}
.display-s{font-size:clamp(1.25rem,2vw,1.55rem);}

.lede{
  font-size:clamp(1.06rem,1.7vw,1.28rem);
  line-height:1.62;
  max-width:56ch;
}

.muted{color:var(--ink-3);}
.muted-light{color:rgba(244,239,231,.72);}

.serif-quote{
  font-family:var(--display);
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 100;
  font-style:italic;
  font-weight:300;
}

/* ---------- Signature element: the hand mixed swatch rule ----------
   Nine tone chips, hand cut, each one slightly off. This is the salon's
   own claim made visible: color mixed by hand, gram by gram.            */

.swatch{
  display:flex;
  align-items:flex-end;
  gap:6px;
  height:26px;
  margin:0;
  padding:0;
  list-style:none;
  max-width:100%;
}
.swatch li{
  height:100%;
  border-radius:1px 3px 2px 4px;
  flex:0 1 auto;
  min-width:8px;
  transform-origin:bottom center;
}
.swatch li:nth-child(1){width:46px;background:#EBD9BD;transform:rotate(-1.4deg);}
.swatch li:nth-child(2){width:32px;background:#D8B382;transform:rotate(.8deg);height:84%;}
.swatch li:nth-child(3){width:54px;background:#B3793F;transform:rotate(-.5deg);}
.swatch li:nth-child(4){width:28px;background:#8A4B26;transform:rotate(1.6deg);height:92%;}
.swatch li:nth-child(5){width:60px;background:#5B3220;transform:rotate(-.9deg);}
.swatch li:nth-child(6){width:24px;background:var(--vermilion);transform:rotate(2.1deg);height:76%;}
.swatch li:nth-child(7){width:44px;background:#3A2A26;transform:rotate(-1.1deg);}
.swatch li:nth-child(8){width:36px;background:#C9C3BA;transform:rotate(.6deg);height:88%;}
.swatch li:nth-child(9){width:50px;background:#EFE8DC;transform:rotate(-1.8deg);}

.swatch--sm{height:14px;gap:4px;}
.swatch--sm li{border-radius:1px 2px 1px 2px;}

/* ---------- Buttons ---------- */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  padding:17px 32px;
  border:1px solid transparent;
  border-radius:0;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.btn--fill{background:var(--vermilion);color:var(--bone);}
.btn--fill:hover{background:var(--vermilion-deep);}
.btn--ink{background:var(--ink);color:var(--bone);}
.btn--ink:hover{background:var(--vermilion);}
.btn--line{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn--line:hover{background:var(--ink);color:var(--bone);}
.btn--line-light{background:transparent;color:var(--bone);border-color:rgba(244,239,231,.55);}
.btn--line-light:hover{background:var(--bone);color:var(--ink);}
.btn--wide{width:100%;}

.textlink{
  font-family:var(--body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:1px solid var(--vermilion);
  padding-bottom:5px;
  display:inline-block;
  transition:color .2s ease,border-color .2s ease;
}
.textlink:hover{color:var(--vermilion);}

/* ---------- Header ---------- */

.masthead{
  position:sticky;
  top:0;
  z-index:120;
  background:var(--ink);
  color:var(--bone);
  border-bottom:1px solid var(--rule-light);
}
.masthead__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:78px;
}
.brandmark{
  display:flex;
  align-items:baseline;
  gap:12px;
  text-decoration:none;
  color:var(--bone);
}
.brandmark__logo{
  height:44px;
  width:auto;
  display:block;
}
.brandmark__name{
  position:absolute;
  width:1px;height:1px;
  margin:-1px;padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}
.hero__logo{
  width:min(360px,64vw);
  height:auto;
  margin:0 0 34px;
}
.footer__logo{
  width:212px;
  height:auto;
  margin:0 0 20px;
}
.brandmark__tag{
  font-size:9.5px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--brass);
  display:none;
}

.nav{display:flex;align-items:center;gap:30px;}
.nav a{
  text-decoration:none;
  font-size:12px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(244,239,231,.82);
  padding:6px 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.nav a:hover{color:var(--bone);border-bottom-color:var(--vermilion);}
.nav a[aria-current="page"]{color:var(--bone);border-bottom-color:var(--brass);}
.nav .btn{padding:13px 22px;}

.navtoggle{
  display:none;
  background:none;
  border:1px solid var(--rule-light);
  color:var(--bone);
  font-family:var(--body);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:11px 16px;
  cursor:pointer;
}

/* ---------- Hero ---------- */

.hero{
  position:relative;
  background:var(--ink);
  color:var(--bone);
  overflow:hidden;
  isolation:isolate;
}
.hero__media{
  position:absolute;
  inset:0;
  z-index:-2;
}
.hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.52;
  filter:grayscale(.25) contrast(1.04);
}
.hero__wash{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(20,16,14,.74) 0%,rgba(20,16,14,.40) 45%,rgba(20,16,14,.88) 100%),
    radial-gradient(120% 90% at 12% 20%,rgba(195,59,42,.18) 0%,transparent 60%);
}
.hero__inner{
  padding-top:clamp(90px,15vw,168px);
  padding-bottom:clamp(72px,11vw,128px);
  max-width:960px;
}
.hero h1{margin-bottom:26px;}
.hero .lede{color:rgba(244,239,231,.82);margin:0 0 38px;}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:52px;}
.hero__swatch{margin-bottom:18px;}
.hero__note{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brass);
}

/* ---------- Proof strip ---------- */

.proof{
  background:var(--ink-2);
  color:var(--bone);
  border-top:1px solid var(--rule-light);
}
.proof__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--rule-light);
}
.proof__cell{
  background:var(--ink-2);
  padding:30px 22px;
  text-align:center;
}
.proof__num{
  font-family:var(--display);
  font-size:1.85rem;
  font-variation-settings:"SOFT" 20,"WONK" 1,"opsz" 90;
  display:block;
  line-height:1.1;
}
.proof__label{
  font-size:10.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(244,239,231,.62);
  margin-top:9px;
  display:block;
}

/* ---------- Sections ---------- */

.section{padding:var(--sec) 0;}
.section--tight{padding:clamp(52px,7vw,84px) 0;}
.section--ink{background:var(--ink);color:var(--bone);}
.section--paper{background:var(--bone-2);}

.section__head{max-width:62ch;margin-bottom:clamp(38px,5vw,60px);}
.section__head .display-l{margin-bottom:20px;}

.rule{height:1px;background:var(--rule);border:0;margin:0;}
.rule--light{background:var(--rule-light);}

/* two column statement */

.statement{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(34px,6vw,84px);
  align-items:start;
}
.statement__figure{position:relative;}
.statement__figure img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  filter:saturate(.86) contrast(1.04);
}
.figcap{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:14px;
}

/* ---------- Craft cards ---------- */

.craft{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,34px);
}
.craft__item{
  background:var(--bone);
  border:1px solid var(--rule);
  display:flex;
  flex-direction:column;
}
.section--paper .craft__item{background:var(--bone);}
.craft__item img{
  width:100%;
  aspect-ratio:5/4;
  object-fit:cover;
}
.craft__body{padding:28px 26px 32px;flex:1;display:flex;flex-direction:column;}
.craft__body h3{margin-bottom:14px;}
.craft__body p{margin:0 0 22px;font-size:15.5px;color:var(--ink-3);}
.craft__body .textlink{margin-top:auto;align-self:flex-start;}

/* ---------- Menu lines with leaders ---------- */

.menu{margin:0;padding:0;list-style:none;}
.menu__group{margin-bottom:clamp(40px,5vw,60px);}
.menu__group h3{margin-bottom:6px;}
.menu__groupnote{
  font-size:14px;
  color:var(--ink-3);
  margin:0 0 26px;
  max-width:60ch;
}
.menu__row{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:15px 0;
  border-bottom:1px solid var(--rule);
}
.menu__row:first-child{border-top:1px solid var(--rule);}
.menu__name{font-weight:700;font-size:16px;flex:0 0 auto;min-width:216px;}
.menu__desc{
  font-size:14px;
  color:var(--ink-3);
  flex:1 1 auto;
  min-width:0;
}
.menu__dots{
  flex:1 1 auto;
  border-bottom:1px dotted rgba(20,16,14,.32);
  transform:translateY(-4px);
  min-width:24px;
}
.menu__price{
  font-family:var(--display);
  font-size:1.12rem;
  font-variation-settings:"SOFT" 20,"opsz" 60;
  flex:0 0 auto;
  white-space:nowrap;
  min-width:104px;
  text-align:right;
}
.menu__price small{
  font-family:var(--body);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass);
  display:block;
  text-align:right;
  margin-top:-2px;
}

.pricenote{
  border-left:2px solid var(--vermilion);
  padding:4px 0 4px 20px;
  font-size:14.5px;
  color:var(--ink-3);
  max-width:62ch;
}

/* ---------- Gallery ---------- */

.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.gallery figure{margin:0;position:relative;overflow:hidden;}
.gallery img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.3,1),filter .4s ease;
}
.gallery figure:hover img{transform:scale(1.05);}


@media (prefers-reduced-motion:reduce){
  .gallery img{transition:none;}
  .gallery figure:hover img{transform:none;}
}

/* ---------- Stylists ---------- */

.team{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(18px,2.4vw,30px);
}
.stylist{display:flex;flex-direction:column;}
.stylist__photo{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:top center;
  filter:grayscale(.18);
}
.stylist__mono{
  width:100%;
  aspect-ratio:3/4;
  background:linear-gradient(160deg,var(--ink-2),var(--ink));
  color:var(--plaster);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--display);
  font-size:3.4rem;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 144;
}
.stylist__name{margin:20px 0 4px;font-size:1.35rem;}
.stylist__role{
  font-size:10.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--vermilion);
  margin:0 0 14px;
}
.stylist__facts{
  margin:0;
  padding:0;
  list-style:none;
  font-size:14px;
  color:var(--ink-3);
}
.stylist__facts li{padding:5px 0;border-top:1px solid var(--rule);}
.section--ink .stylist__facts{color:rgba(244,239,231,.72);}
.section--ink .stylist__facts li{border-top-color:var(--rule-light);}
.section--ink .stylist__role{color:var(--brass);}

/* ---------- Products ---------- */

.brands{
  display:flex;
  flex-wrap:wrap;
  gap:14px 42px;
  align-items:center;
  justify-content:center;
  padding:6px 0;
}
.brands span{
  font-family:var(--display);
  font-size:1.22rem;
  font-variation-settings:"SOFT" 10,"opsz" 80;
  letter-spacing:.02em;
  color:var(--ink-3);
}

/* ---------- Testimonials ---------- */

.voices{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(22px,3vw,40px);
}
.voice{
  border-top:2px solid var(--vermilion);
  padding-top:24px;
}
.voice p{
  font-family:var(--display);
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 90;
  font-style:italic;
  font-weight:300;
  font-size:1.24rem;
  line-height:1.45;
  margin:0 0 18px;
}
.voice cite{
  font-style:normal;
  font-size:10.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--brass);
}

/* ---------- Split promo ---------- */

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
}
.split__media img{width:100%;height:100%;object-fit:cover;min-height:340px;}
.split__body{
  padding:clamp(40px,6vw,84px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.split__body h2{margin-bottom:20px;}
.split__body p{margin:0 0 30px;max-width:48ch;}

/* ---------- Visit ---------- */

.visit{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:clamp(26px,4vw,52px);
}
.visit h3{font-size:1.25rem;margin-bottom:16px;}
.visit p{margin:0 0 8px;font-size:15.5px;}
.hours{margin:0;padding:0;list-style:none;font-size:15.5px;}
.hours li{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:9px 0;
  border-bottom:1px solid var(--rule);
}
.section--ink .hours li{border-bottom-color:var(--rule-light);}
.hours .closed{color:var(--brass);}

/* ---------- Forms ---------- */

.formwrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(30px,5vw,70px);
  align-items:start;
}
.form{
  background:var(--bone);
  border:1px solid var(--rule);
  padding:clamp(26px,4vw,44px);
}
.section--ink .form{
  background:var(--ink-2);
  border-color:var(--rule-light);
}
.field{margin-bottom:22px;}
.field label,.fieldset__legend{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:9px;
  color:var(--ink-3);
}
.section--ink .field label,
.section--ink .fieldset__legend{color:var(--plaster);}
.field .hint{
  display:block;
  font-size:13px;
  letter-spacing:0;
  text-transform:none;
  font-weight:400;
  color:var(--ink-3);
  margin:8px 0 0;
}
.section--ink .field .hint{color:rgba(244,239,231,.6);}

input[type="text"],input[type="email"],input[type="tel"],input[type="date"],
input[type="url"],input[type="number"],select,textarea{
  width:100%;
  font-family:var(--body);
  font-size:16px;
  color:var(--ink);
  background:#FFFDF9;
  border:1px solid rgba(20,16,14,.24);
  border-radius:0;
  padding:14px 15px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
textarea{min-height:130px;resize:vertical;}
input:focus,select:focus,textarea:focus{
  border-color:var(--vermilion);
  box-shadow:0 0 0 3px rgba(195,59,42,.14);
  outline:none;
}

.field--split{display:grid;grid-template-columns:1fr 1fr;gap:18px;}

fieldset{border:0;margin:0 0 22px;padding:0;}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:14.5px;
  line-height:1.4;
  cursor:pointer;
}
.check input{margin-top:3px;accent-color:var(--vermilion);}
.section--ink .check{color:rgba(244,239,231,.82);}

label.drop{
  text-transform:none;
  letter-spacing:normal;
  font-weight:400;
  font-size:15px;
  color:inherit;
  border:1px dashed rgba(20,16,14,.34);
  background:rgba(20,16,14,.02);
  padding:26px 22px;
  text-align:center;
  cursor:pointer;
  display:block;
  transition:border-color .2s ease,background .2s ease;
}
.section--ink .drop{
  border-color:rgba(244,239,231,.34);
  background:rgba(244,239,231,.03);
}
.drop:hover{border-color:var(--vermilion);background:rgba(195,59,42,.05);}
.drop strong{
  display:block;
  font-family:var(--display);
  font-size:1.1rem;
  font-weight:400;
  margin-bottom:6px;
}
.drop span{font-size:13.5px;color:var(--ink-3);text-transform:none;letter-spacing:normal;}
.section--ink .drop span{color:rgba(244,239,231,.6);}
.drop input[type="file"]{
  position:absolute;
  width:1px;height:1px;
  opacity:0;
  overflow:hidden;
}
.filelist{
  margin:12px 0 0;
  padding:0;
  list-style:none;
  font-size:13.5px;
  color:var(--ink-3);
}
.section--ink .filelist{color:rgba(244,239,231,.72);}
.filelist li{
  padding:7px 0;
  border-bottom:1px solid var(--rule);
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.section--ink .filelist li{border-bottom-color:var(--rule-light);}

.formnote{
  font-size:13px;
  color:var(--ink-3);
  margin:18px 0 0;
}
.section--ink .formnote{color:rgba(244,239,231,.6);}

.formstatus{
  margin-top:20px;
  padding:18px 20px;
  border-left:2px solid var(--vermilion);
  background:rgba(195,59,42,.07);
  font-size:15px;
  display:none;
}
.formstatus.is-open{display:block;}

/* ---------- Booking embed slot ---------- */

.embedslot{
  border:1px dashed var(--brass);
  background:rgba(169,138,85,.08);
  padding:clamp(30px,5vw,54px);
  text-align:center;
}
.embedslot h3{margin-bottom:12px;}
.embedslot p{margin:0 auto;max-width:52ch;font-size:15px;color:var(--ink-3);}
.embedslot code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:13px;
  background:rgba(20,16,14,.07);
  padding:2px 7px;
}

/* ---------- Gift cards ---------- */

.amounts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:24px;
}
.amount{
  border:1px solid rgba(20,16,14,.24);
  background:#FFFDF9;
  padding:20px 10px;
  text-align:center;
  cursor:pointer;
  font-family:var(--display);
  font-size:1.5rem;
  font-variation-settings:"SOFT" 20,"opsz" 80;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.amount:hover{border-color:var(--vermilion);}
.amount.is-active{background:var(--ink);color:var(--bone);border-color:var(--ink);}

.giftcard{
  background:linear-gradient(150deg,var(--ink) 0%,var(--ink-2) 55%,#3B2420 100%);
  color:var(--bone);
  padding:clamp(28px,4vw,44px);
  aspect-ratio:1.6/1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}
.giftcard__top{position:relative;z-index:2;}
.giftcard__name{
  font-family:var(--display);
  font-size:clamp(1.6rem,3vw,2.3rem);
  font-variation-settings:"SOFT" 30,"WONK" 1,"opsz" 120;
  line-height:1;
}
.giftcard__sub{
  font-size:10.5px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:10px;
}
.giftcard__value{
  font-family:var(--display);
  font-size:clamp(2.4rem,5vw,3.4rem);
  font-variation-settings:"SOFT" 10,"opsz" 144;
  position:relative;
  z-index:2;
}
.giftcard .swatch{
  position:absolute;
  right:-10px;
  bottom:-4px;
  opacity:.5;
  z-index:1;
  transform:rotate(-90deg);
  transform-origin:bottom right;
}

/* ---------- Steps ---------- */

.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,3vw,46px);
  counter-reset:step;
}
.step{border-top:1px solid var(--rule);padding-top:22px;}
.section--ink .step{border-top-color:var(--rule-light);}
.step h3{font-size:1.2rem;margin:10px 0 12px;}
.step p{margin:0;font-size:15px;color:var(--ink-3);}
.section--ink .step p{color:rgba(244,239,231,.72);}
.step__mark{
  font-family:var(--display);
  font-size:.95rem;
  letter-spacing:.1em;
  color:var(--vermilion);
}

/* ---------- Perks ---------- */

.perks{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(20px,3vw,38px);
}
.perk{border-left:2px solid var(--brass);padding-left:22px;}
.perk h3{font-size:1.18rem;margin-bottom:10px;}
.perk p{margin:0;font-size:15px;color:var(--ink-3);}
.section--ink .perk p{color:rgba(244,239,231,.72);}

/* ---------- CTA band ---------- */

.band{
  background:var(--vermilion);
  color:var(--bone);
  text-align:center;
  padding:clamp(56px,8vw,96px) 0;
}
.band h2{margin-bottom:18px;}
.band p{max-width:52ch;margin:0 auto 32px;color:rgba(244,239,231,.9);}

/* ---------- Footer ---------- */

.footer{
  background:var(--ink);
  color:var(--bone);
  padding:clamp(56px,7vw,86px) 0 34px;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:clamp(26px,4vw,50px);
  margin-bottom:48px;
}
.footer h4{
  font-family:var(--body);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 18px;
}
.footer ul{margin:0;padding:0;list-style:none;}
.footer li{margin-bottom:11px;}
.footer a{
  color:rgba(244,239,231,.8);
  text-decoration:none;
  font-size:15px;
  transition:color .2s ease;
}
.footer a:hover{color:var(--vermilion);}
.footer p{font-size:15px;color:rgba(244,239,231,.8);margin:0 0 10px;}

.footer__base{
  border-top:1px solid var(--rule-light);
  padding-top:26px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:space-between;
  font-size:12.5px;
  color:rgba(244,239,231,.55);
}

/* ---------- Reveal ---------- */

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);
}
.reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- Overflow guards ---------- */

.footer__grid > *,
.statement > *,
.visit > *,
.formwrap > *,
.craft > *,
.team > *,
.voices > *,
.steps > *,
.perks > *,
.split > *{min-width:0;}

/* ---------- Responsive ---------- */

@media (max-width:1040px){
  .footer__grid{grid-template-columns:1fr 1fr;}
  .team{grid-template-columns:repeat(2,1fr);}
  .proof__grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:900px){
  .navtoggle{display:inline-block;}
  .nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--ink);
    border-bottom:1px solid var(--rule-light);
    padding:10px var(--gutter) 26px;
    display:none;
  }
  .nav.is-open{display:flex;}
  .nav a{padding:15px 0;border-bottom:1px solid var(--rule-light);}
  .nav .btn{margin-top:18px;justify-content:center;}
  .statement,.craft,.voices,.split,.visit,.formwrap,.steps,.perks{
    grid-template-columns:1fr;
  }
  .gallery{grid-template-columns:repeat(2,1fr);}
  .split__media img{min-height:260px;}
}

@media (max-width:620px){
  body{font-size:16.5px;}
  .brandmark__logo{height:36px;}
  .footer__grid{grid-template-columns:1fr;}
  .team{grid-template-columns:1fr;}
  .checks{grid-template-columns:1fr;}
  .amounts{grid-template-columns:repeat(2,1fr);}
  .field--split{grid-template-columns:1fr;}
  .menu__row{flex-wrap:wrap;}
  .menu__name{min-width:0;flex:1 1 auto;}
  .menu__desc{flex:1 0 100%;order:3;}
  .menu__dots{min-width:16px;}
  .menu__price{min-width:0;}
  .btn{width:100%;}
  .hero__cta .btn{width:100%;}
  .swatch{height:20px;}
}

@media print{
  .masthead,.nav,.band,.footer__base{display:none;}
  body{background:#fff;color:#000;}
}
