/* ==========================================================================
   Glamour Textile Mills Limited
   Editorial system: one grotesk, a strict 12-column grid, hairline rules.
   ========================================================================== */

@font-face{
  font-family:Archivo;
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url(../fonts/archivo-latin.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,
    U+2215,U+FEFF,U+FFFD;
}

:root{
  --paper:#f3f1ec;
  --paper-2:#eae7e0;
  --ink:#14120f;
  --ink-2:#3a3733;
  --mute:#656057;
  --rule:#d5d0c6;
  --rule-soft:#e3dfd7;
  --accent:#a83c22;

  --gut:clamp(18px,3.2vw,44px);
  --max:1760px;

  --t-meta:clamp(.62rem,.72vw,.72rem);
  --t-body:clamp(.98rem,1.02vw,1.08rem);
  --t-lead:clamp(1.18rem,1.62vw,1.62rem);
  --t-h3:clamp(1.35rem,2.1vw,2rem);
  --t-h2:clamp(2.3rem,8.2vw,6.4rem);
  --t-h1:clamp(2.9rem,10.6vw,10.5rem);

  --ease:cubic-bezier(.22,.61,.36,1);
  --head-h:64px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Archivo,"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  font-size:var(--t-body);
  line-height:1.55;
  font-synthesis-weight:none;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,p,figure,blockquote,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut)}

/* ------------------------------------------------------------ type helpers */
.meta{
  font-size:var(--t-meta);
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--mute);
}
.meta strong{color:var(--ink);font-weight:600}
.num{
  font-size:var(--t-meta);
  letter-spacing:.14em;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--accent);
}
.display{
  font-weight:600;
  letter-spacing:-.035em;
  line-height:.85;
  text-transform:uppercase;
}
.lead{
  font-size:var(--t-lead);
  line-height:1.34;
  letter-spacing:-.014em;
  font-weight:400;
  text-wrap:balance;
}
.body-lg{font-size:clamp(1rem,1.12vw,1.16rem);line-height:1.62;color:var(--ink-2)}
.rule{height:1px;background:var(--rule);border:0;margin:0}

.link{
  display:inline-flex;align-items:baseline;gap:.55em;
  font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  padding-bottom:.45em;border-bottom:1px solid var(--ink);
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.link span{transition:transform .35s var(--ease)}
.link:hover{color:var(--accent);border-color:var(--accent)}
.link:hover span{transform:translateX(.28em)}

/* ---------------------------------------------------------------- masthead */
.masthead{
  position:fixed;inset:0 0 auto 0;z-index:60;
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--rule-soft);
  transform:translateY(0);
  transition:transform .45s var(--ease),background .3s linear;
}
.masthead[data-hidden="true"]{transform:translateY(-101%)}
.masthead__in{
  display:flex;align-items:center;justify-content:space-between;gap:var(--gut);
  height:var(--head-h);
}
.brand{display:flex;align-items:baseline;gap:.7rem;letter-spacing:-.02em}
.brand b{font-weight:700;font-size:clamp(.86rem,1.15vw,1rem);text-transform:uppercase;letter-spacing:.02em}
.brand i{font-style:normal;font-size:var(--t-meta);letter-spacing:.18em;color:var(--mute);text-transform:uppercase}

.nav{display:flex;align-items:center;gap:clamp(14px,1.6vw,30px)}
.nav a{
  font-size:var(--t-meta);letter-spacing:.15em;text-transform:uppercase;font-weight:500;
  color:var(--mute);position:relative;padding:.35em 0;
  transition:color .28s var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--ink);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav a:hover,.nav a[aria-current="true"]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="true"]::after{transform:scaleX(1)}
.nav .is-privacy{color:var(--ink)}

.burger{display:none;align-items:center;gap:.5rem;font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.burger i{display:block;width:22px;height:8px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}

.drawer{
  position:fixed;inset:0;z-index:70;background:var(--paper);
  display:flex;flex-direction:column;justify-content:center;
  padding:var(--gut);
  transform:translateY(-100%);visibility:hidden;
  transition:transform .5s var(--ease),visibility 0s linear .5s;
}
.drawer[data-open="true"]{transform:translateY(0);visibility:visible;transition-delay:0s}
.drawer a{
  display:flex;align-items:baseline;gap:1rem;
  font-size:clamp(1.8rem,7vw,3rem);font-weight:600;letter-spacing:-.03em;
  text-transform:uppercase;padding:.22em 0;border-bottom:1px solid var(--rule-soft);
}
.drawer a .num{font-size:.6rem}
.drawer__close{position:absolute;top:0;right:var(--gut);height:var(--head-h);letter-spacing:.16em;text-transform:uppercase;font-size:var(--t-meta);font-weight:600}

/* -------------------------------------------------------------------- hero */
.hero{padding-top:var(--head-h);position:relative}
.hero__media{
  position:relative;width:100%;
  height:clamp(420px,78vh,860px);
  overflow:hidden;background:var(--paper-2);
}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero__veil{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(243,241,236,.94) 0%,rgba(243,241,236,.72) 34%,rgba(243,241,236,.06) 66%,rgba(243,241,236,0) 100%);
}
.hero__type{
  position:absolute;inset:auto 0 0 0;
  padding-bottom:clamp(22px,4vw,54px);
}
.hero h1{
  font-size:var(--t-h1);
  font-weight:600;letter-spacing:-.045em;line-height:.82;text-transform:uppercase;
  max-width:14ch;
}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero__eyebrow{margin-bottom:clamp(14px,2vw,26px)}
.hero__foot{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);
  align-items:end;margin-top:clamp(20px,3vw,40px);
}
.hero__foot .lead{grid-column:1/span 6}
.hero__foot .hero__cta{grid-column:9/span 4;display:flex;flex-wrap:wrap;gap:1.6rem}

/* ------------------------------------------------------------ index strip */
.strip{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:clamp(48px,7vw,110px)}
.strip ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.strip li{padding:clamp(18px,2.2vw,30px) 0;border-left:1px solid var(--rule-soft)}
.strip li:first-child{border-left:0}
.strip li>span{display:block;padding-inline:clamp(10px,1.2vw,20px)}
.strip .num{display:block;margin-bottom:.7em}
.strip b{font-weight:500;font-size:clamp(.82rem,.95vw,1rem);letter-spacing:-.01em;display:block}

/* ---------------------------------------------------------------- sections */
.section{padding-block:clamp(70px,10vw,170px)}
.section--tight{padding-block:clamp(54px,7vw,120px)}
.sec-head{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);
  align-items:baseline;padding-bottom:clamp(20px,2.4vw,34px);
  border-bottom:1px solid var(--ink);
}
.sec-head .num{grid-column:1/span 1}
.sec-head h2{
  grid-column:2/span 7;
  font-size:var(--t-h2);font-weight:600;letter-spacing:-.042em;line-height:.86;text-transform:uppercase;
}
.sec-head .meta{grid-column:10/span 3;text-align:right}

/* ------------------------------------------------------------------- about */
.about{margin-top:clamp(38px,5vw,86px);align-items:start}
.about__fig{grid-column:1/span 5;position:sticky;top:calc(var(--head-h) + 24px)}
.about__fig img{width:100%;background:var(--paper-2)}
.about__body{grid-column:7/span 6}
.about__body p+p{margin-top:1.1em}
.about__body .lead{margin-bottom:1.5em}
.facts{margin-top:clamp(34px,4vw,60px);border-top:1px solid var(--rule)}
.facts div{display:grid;grid-template-columns:minmax(120px,.42fr) minmax(0,1fr);gap:var(--gut);padding:.95rem 0;border-bottom:1px solid var(--rule-soft)}
.facts dt{font-size:var(--t-meta);letter-spacing:.15em;text-transform:uppercase;color:var(--mute);font-weight:500}
.facts dd{margin:0;font-weight:500;letter-spacing:-.01em}

/* ---------------------------------------------------------------- textiles */
.swatches{margin-top:clamp(38px,5vw,80px);row-gap:clamp(44px,6vw,96px)}
.swatch{grid-column:span 4}
.swatch:nth-child(3n+2){margin-top:clamp(20px,4vw,72px)}
.swatch:nth-child(3n+3){margin-top:clamp(40px,8vw,144px)}
.swatch figure{margin:0;overflow:hidden;background:var(--paper-2)}
.swatch img{width:100%;transition:transform .8s var(--ease)}
.swatch:hover img{transform:scale(1.035)}
.swatch__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1.1rem;padding-bottom:.7rem;border-bottom:1px solid var(--rule)}
.swatch h3{font-size:var(--t-h3);font-weight:600;letter-spacing:-.03em;text-transform:uppercase;line-height:1}
.swatch dl{margin:.85rem 0 0}
.swatch dl div{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0}
.swatch dt{font-size:var(--t-meta);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.swatch dd{margin:0;font-size:.92rem;font-weight:500;font-variant-numeric:tabular-nums;text-align:right}

/* ----------------------------------------------------------- manufacturing */
.make{margin-top:clamp(38px,5vw,80px);row-gap:clamp(46px,6vw,110px)}
.make__wide{grid-column:1/span 12}
.make__wide img{width:100%;background:var(--paper-2)}
.make__cap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);margin-top:1rem}
.make__cap .meta:first-child{grid-column:1/span 4}
.make__cap p{grid-column:6/span 5;color:var(--ink-2)}

.steps{grid-column:1/span 5;border-top:1px solid var(--ink)}
.steps li{padding:clamp(16px,1.8vw,26px) 0;border-bottom:1px solid var(--rule-soft);display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:1rem;align-items:baseline}
.steps h3{font-size:clamp(1rem,1.25vw,1.2rem);font-weight:600;letter-spacing:-.02em;text-transform:uppercase}
.steps p{font-size:.94rem;color:var(--mute);margin-top:.35em;line-height:1.5}

.make__pair{grid-column:7/span 6;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gut)}
.make__pair img{width:100%;background:var(--paper-2)}
.make__pair figcaption{margin-top:.85rem;padding-top:.7rem;border-top:1px solid var(--rule)}

/* ----------------------------------------------------------------- quality */
.quality{background:var(--ink);color:var(--paper)}
.quality .sec-head{border-color:rgba(243,241,236,.55)}
.quality .meta{color:rgba(243,241,236,.6)}
.quality .num{color:#e0714f}
.qgrid{margin-top:clamp(38px,5vw,80px);align-items:start}
.qgrid__fig{grid-column:1/span 7}
.qgrid__fig img{width:100%}
.qgrid__body{grid-column:9/span 4}
.qgrid__body .lead{color:var(--paper)}
.tests{margin-top:clamp(28px,3vw,46px);border-top:1px solid rgba(243,241,236,.28)}
.tests li{padding:.9rem 0;border-bottom:1px solid rgba(243,241,236,.14)}
.tests b{display:block;font-size:var(--t-meta);letter-spacing:.15em;text-transform:uppercase;color:#e0714f;font-weight:600;margin-bottom:.3em}
.tests span{color:rgba(243,241,236,.82);font-size:.95rem}

/* ------------------------------------------------------------- collections */
.coll{margin-top:clamp(38px,5vw,80px);row-gap:clamp(46px,6vw,100px)}
.coll__item{grid-column:span 6;display:grid;gap:1rem}
.coll__item:nth-child(even){margin-top:clamp(28px,6vw,110px)}
.coll__item figure{margin:0;overflow:hidden;background:var(--paper-2)}
.coll__item img{width:100%;transition:transform .9s var(--ease)}
.coll__item:hover img{transform:scale(1.03)}
.coll__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--rule)}
.coll__head h3{font-size:var(--t-h3);font-weight:600;letter-spacing:-.03em;text-transform:uppercase;line-height:1}
.coll__item p{color:var(--ink-2);max-width:46ch}

/* ----------------------------------------------------------------- contact */
.contact__lead{grid-column:1/span 7;margin-top:clamp(34px,4.5vw,70px)}
.contact__lead a.big{
  display:block;font-weight:600;letter-spacing:-.04em;line-height:.94;text-transform:uppercase;
  font-size:clamp(1.6rem,4.4vw,3.4rem);
  border-bottom:1px solid var(--rule);padding-block:.34em;
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.contact__lead a.big:first-of-type{border-top:1px solid var(--rule)}
.contact__lead a.big:hover{color:var(--accent);border-color:var(--accent)}
.contact__side{grid-column:9/span 4;margin-top:clamp(34px,4.5vw,70px)}
.contact__side address{font-style:normal;font-size:clamp(1.05rem,1.35vw,1.3rem);letter-spacing:-.015em;line-height:1.45}
.contact__block{padding-block:1.3rem;border-bottom:1px solid var(--rule-soft)}
.contact__block:first-child{border-top:1px solid var(--rule)}
.contact__block .meta{display:block;margin-bottom:.6em}

/* ------------------------------------------------------------------ footer */
.foot{border-top:1px solid var(--ink);padding-block:clamp(34px,4vw,60px)}
.foot__grid{align-items:start;row-gap:clamp(26px,3vw,40px)}
.foot__brand{grid-column:1/span 4}
.foot__brand b{display:block;font-size:clamp(1rem,1.4vw,1.3rem);font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.foot__col{grid-column:span 2}
.foot__col li{padding:.28rem 0}
.foot__col a{font-size:.92rem;color:var(--ink-2);transition:color .25s var(--ease)}
.foot__col a:hover{color:var(--accent)}
.foot__end{grid-column:1/span 12;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:clamp(24px,3vw,40px);border-top:1px solid var(--rule-soft);margin-top:clamp(14px,2vw,26px)}

/* -------------------------------------------------------------- legal page */
.legal{padding-top:calc(var(--head-h) + clamp(48px,7vw,120px))}
.legal__head{padding-bottom:clamp(26px,3vw,44px);border-bottom:1px solid var(--ink)}
.legal__head h1{font-size:clamp(2.15rem,6.4vw,5.4rem);font-weight:600;letter-spacing:-.04em;line-height:.88;text-transform:uppercase;margin-top:.3em}
.legal__cols{margin-top:clamp(38px,5vw,76px);align-items:start}
.legal__toc{grid-column:1/span 3;position:sticky;top:calc(var(--head-h) + 24px)}
.legal__toc li{padding:.34rem 0}
.legal__toc a{font-size:.88rem;color:var(--mute);transition:color .25s var(--ease)}
.legal__toc a:hover{color:var(--ink)}
.legal__body{grid-column:5/span 7}
.legal__body section{padding-block:clamp(26px,3.2vw,48px);border-bottom:1px solid var(--rule-soft)}
.legal__body section:first-child{padding-top:0}
.legal__body h2{
  font-size:clamp(1.05rem,1.75vw,1.5rem);font-weight:600;letter-spacing:-.025em;
  text-transform:uppercase;margin-bottom:.7em;display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:.6rem;align-items:baseline;
}
.legal__body h3{font-size:1rem;font-weight:600;margin-top:1.5em;margin-bottom:.4em;letter-spacing:-.01em}
.legal__body p{color:var(--ink-2)}
.legal__body p+p{margin-top:.9em}
.legal__body ul{margin-top:.8em}
.legal__body ul+p{margin-top:1em}
.legal__body li{padding-left:1.3em;position:relative;color:var(--ink-2);padding-block:.24em}
.legal__body li::before{content:"";position:absolute;left:0;top:.85em;width:.55em;height:1px;background:var(--accent)}
.legal__body a{border-bottom:1px solid var(--rule);transition:border-color .25s var(--ease),color .25s var(--ease)}
.legal__body a:hover{color:var(--accent);border-color:var(--accent)}
.legal__note{margin-top:1.2em;padding:1.1rem 1.2rem;background:var(--paper-2);font-size:.95rem;color:var(--ink-2)}

/* --------------------------------------------------------------- reveal fx */
.rv{opacity:0;transform:translateY(18px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.07s}
.rv-d2{transition-delay:.14s}
.rv-d3{transition-delay:.21s}

/* ------------------------------------------------------------- responsive */
@media (max-width:1080px){
  .about__fig{grid-column:1/span 6}
  .about__body{grid-column:7/span 6}
  .swatch{grid-column:span 6}
  .swatch:nth-child(3n+2),.swatch:nth-child(3n+3){margin-top:0}
  .swatch:nth-child(even){margin-top:clamp(24px,5vw,64px)}
  .steps{grid-column:1/span 12}
  .make__pair{grid-column:1/span 12;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .qgrid__fig{grid-column:1/span 12}
  .qgrid__body{grid-column:1/span 12;margin-top:2rem}
  .contact__lead{grid-column:1/span 12}
  .contact__side{grid-column:1/span 12}
  .legal__toc{display:none}
  .legal__body{grid-column:1/span 12}
  .foot__brand{grid-column:1/span 12}
  .foot__col{grid-column:span 4}
  .strip ol{grid-template-columns:repeat(3,minmax(0,1fr))}
  .strip li:nth-child(3n+1){border-left:0}
  .strip li:nth-child(n+4){border-top:1px solid var(--rule-soft)}
}
@media (max-width:820px){
  :root{--head-h:56px}
  .nav{display:none}
  .burger{display:flex}
  .hero__media{height:clamp(380px,64vh,620px)}
  .hero__veil{background:linear-gradient(180deg,rgba(243,241,236,.5) 0%,rgba(243,241,236,.86) 62%,rgba(243,241,236,.97) 100%)}
  .hero__foot .lead,.hero__foot .hero__cta{grid-column:1/span 12}
  .hero__foot .hero__cta{margin-top:1.6rem}
  .sec-head h2{grid-column:1/span 12;margin-top:.4em}
  .sec-head .num{grid-column:1/span 6}
  .sec-head .meta{grid-column:7/span 6}
  .about__fig{grid-column:1/span 12;position:static}
  .about__body{grid-column:1/span 12;margin-top:2.2rem}
  .swatch{grid-column:1/span 12}
  .swatch:nth-child(even){margin-top:0}
  .coll__item{grid-column:1/span 12}
  .coll__item:nth-child(even){margin-top:0}
  .make__pair{grid-template-columns:1fr}
  .facts div{grid-template-columns:1fr;gap:.2rem}
}
@media (max-width:560px){
  .strip ol{grid-template-columns:repeat(2,minmax(0,1fr))}
  .strip li:nth-child(n){border-left:1px solid var(--rule-soft)}
  .strip li:nth-child(odd){border-left:0}
  .strip li:nth-child(n+3){border-top:1px solid var(--rule-soft)}
  .legal__body h2{grid-template-columns:1fr;gap:.2rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
}
