:root{
  --dark:#232325;
  --deep:#1B1B1D;
  --dove:#EEEDEA;
  --panel:#F7F6F3;
  --ivory:#F3F1EC;
  --line:#D5D4D0;
  --silver:#B9BBBF;
  --soft:#C9C9C7;
  --text-mid:#4A4A4A;
  --label:#6B6B6B;
  --gold:#C8B07A;
  --silver-grad:linear-gradient(135deg,#8E9196 0%,#E4E5E7 45%,#A6A9AE 70%,#D5D6D8 100%);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--dove);color:var(--dark);font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;line-height:1.65}
img{max-width:100%;display:block}
a{color:inherit}
a:hover{opacity:.75}
input,select,textarea,button{font:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding-left:40px;padding-right:40px}
.label{margin:0;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.32em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;min-height:52px;padding:0 36px;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer}
.btn-ivory{background:var(--ivory);color:var(--dark)}
.btn-line{border:1px solid currentColor;background:transparent}
.btn-dark{background:var(--dark);color:var(--ivory)}
.link{font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--silver);padding-bottom:4px}
.sr{position:absolute;left:-9999px}

/* header */
.top{background:var(--dark);color:var(--ivory)}
.nav{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:28px;padding-bottom:28px}
.brand{display:flex;align-items:center;gap:18px;text-decoration:none}
.brand img{height:54px;width:auto}
.brand .divider{width:1px;height:42px;background:var(--silver-grad)}
.brand .name{display:flex;flex-direction:column;gap:2px}
.brand .name b{font-weight:500;font-size:22px;letter-spacing:.28em}
.brand .name small{font-family:'Jost',sans-serif;font-size:10px;letter-spacing:.4em;color:var(--soft)}
.menu{display:flex;gap:30px;flex-wrap:wrap;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.26em;text-transform:uppercase}
.menu a{text-decoration:none;padding-bottom:4px;border-bottom:1px solid transparent}
.menu a[aria-current="page"],.menu a.enq{border-bottom-color:var(--silver)}

/* hero */
.hero{display:flex;gap:60px;align-items:center;flex-wrap:wrap;padding-top:90px;padding-bottom:120px}
.hero-text{flex:1.5 1 520px;display:flex;flex-direction:column;gap:28px}
.hero h1{margin:0;font-size:clamp(48px,6.5vw,86px);line-height:1.02;font-weight:400}
.hero p.lede{margin:0;font-size:26px;line-height:1.45;color:var(--soft);max-width:600px}
.rule{width:90px;height:1px;background:var(--silver-grad)}
.hero-seal{flex:1 1 280px;display:flex;justify-content:center}
.seal{border-radius:50%;padding:2px;background:var(--silver-grad);display:inline-block}
.seal>div{border-radius:50%;background:var(--dark);display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.seal.big{width:290px;height:290px}
.seal.big>div{box-shadow:inset 0 0 0 10px var(--dark),inset 0 0 0 11px var(--gold)}
.seal.big img{height:186px;width:auto}
.seal.small{width:88px;height:88px;padding:1px}
.seal.small img{height:58px;width:auto}
.page-hero{padding-top:70px;padding-bottom:90px;display:flex;flex-direction:column;gap:22px}
.page-hero>*{max-width:820px}
.page-hero h1{margin:0;font-size:clamp(44px,5.5vw,72px);line-height:1.05;font-weight:400}
.page-hero p{margin:0;font-size:24px;color:var(--soft)}

/* sections */
section{padding:100px 0}
.center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
h2{margin:0;font-size:clamp(38px,4.5vw,56px);font-weight:400;line-height:1.1}
.ivory{background:var(--ivory)}
.deep{background:var(--deep);color:var(--ivory)}
.charcoal{background:var(--dark);color:var(--ivory)}

.opening{max-width:900px;margin:0 auto;text-align:center;display:flex;flex-direction:column;gap:22px;align-items:center}
.opening .verse{margin:0;font-size:36px;line-height:1.45}
.opening .after{margin:0;font-size:30px;line-height:1.4;color:var(--text-mid)}

.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:2px;background:var(--line);margin-top:56px}
.offer{background:var(--panel);padding:50px 38px;display:flex;flex-direction:column;gap:14px}
.offer .label{font-size:11px;color:#6E7076}
.offer h3{margin:0;font-size:34px;font-weight:500;line-height:1.15}
.offer p{margin:0;color:var(--text-mid)}

/* gallery */
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.gallery-head .label{color:var(--silver)}
.gallery-head .sub{margin:0;font-size:24px;color:var(--soft)}
.strip{display:flex;gap:36px;overflow-x:auto;padding:52px 4px 30px;scroll-snap-type:x mandatory}
.strip figure{margin:0;flex:0 0 280px;display:flex;flex-direction:column;gap:16px;scroll-snap-align:start}
.frame{width:280px;height:370px;background:#121213;padding:10px;box-shadow:0 24px 40px rgba(0,0,0,.45)}
.frame>div{width:100%;height:100%;background:var(--ivory);padding:26px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #D8D5CD}
.frame img{max-width:100%;max-height:100%}
.strip figcaption{display:flex;flex-direction:column;gap:4px}
.strip figcaption b{font-weight:400;font-size:24px}
.strip figcaption span{font-size:17px;color:var(--soft);line-height:1.4}
.originals{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border-top:1px solid #3A3A3D;padding-top:30px}
.originals p{margin:0}
.originals .t{font-size:28px}
.originals .d{font-size:19px;color:var(--soft);max-width:700px}

/* art page */
.piece{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px;align-items:center;padding:70px 0;border-top:1px solid #3A3A3D}
.piece:first-of-type{border-top:0}
.piece .frame{width:100%;max-width:400px;height:auto;aspect-ratio:3/4;margin:0 auto}
.piece h2{font-size:44px}
.piece .poem{margin:18px 0 0;font-size:22px;line-height:1.7;color:#E2E0DA;white-space:pre-line}
.piece .note{margin:22px 0 0}

/* guide */
.guide{display:flex;gap:30px;align-items:center;flex-wrap:wrap;max-width:1000px;margin:0 auto}
.guide img{width:100px;height:100px;border-radius:50%;object-fit:cover;object-position:top;filter:grayscale(100%);box-shadow:0 0 0 4px var(--dove),0 0 0 5px #A6A9AE}
.guide p{margin:0;font-size:26px;line-height:1.4}
.bookline{max-width:1000px;margin:0 auto;border-top:1px solid var(--line);padding-top:50px;display:flex;gap:32px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.inline-form{flex:1 1 360px;display:flex;gap:10px;flex-wrap:wrap}
.inline-form input{flex:1 1 200px;min-height:48px;padding:0 4px;border:0;border-bottom:1px solid var(--dark);background:transparent;font-size:20px;color:inherit}

/* about */
.story{max-width:760px;margin:0 auto}
.story p{margin:0 0 26px;font-size:23px}
.story .first::first-letter{font-size:64px;float:left;line-height:.9;padding:6px 10px 0 0}
.facts{max-width:760px;margin:40px auto 0;border-top:1px solid var(--line);padding-top:36px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.facts div{display:flex;flex-direction:column;gap:4px}
.facts span{font-size:21px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px;margin-top:50px}
.steps div{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:24px}
.steps .n{font-size:40px;line-height:1;color:#8E9196}
.steps h3{margin:0;font-size:28px;font-weight:500}
.steps p{margin:0;color:var(--text-mid)}

/* enquire */
.enquire{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:34px}
.enquire form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.enquire label{display:flex;flex-direction:column;gap:8px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.enquire .full{grid-column:1/-1}
.enquire input,.enquire select,.enquire textarea{width:100%;min-height:48px;padding:0 4px;border:0;border-bottom:1px solid #77797E;background:transparent;color:var(--ivory);font-family:'Cormorant Garamond',serif;font-size:21px;letter-spacing:0;text-transform:none}
.enquire select{background:var(--dark)}
.enquire textarea{padding-top:12px}
.enquire button{grid-column:1/-1;justify-self:center}
footer.foot{border-top:1px solid #3A3A3D;padding-top:26px;padding-bottom:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.22em;color:#A4A4A6}

@media (max-width:760px){
  .wrap{padding-left:20px;padding-right:20px}
  section{padding:70px 0}
  .hero{padding-top:50px;padding-bottom:80px;gap:40px}
  .seal.big{width:220px;height:220px}
  .seal.big img{height:140px}
  .piece{grid-template-columns:minmax(0,1fr);gap:28px}
  .brand .name b{font-size:18px}
  .menu{gap:18px}
  .opening .verse{font-size:28px}
  .opening .after{font-size:24px}
}

/* path line (home) */
.path{position:relative;--px:max(14px,calc((100vw - 1240px)/2 + 14px))}
.path-line{position:absolute;top:0;bottom:0;left:var(--px);width:1px;background:linear-gradient(180deg,rgba(166,169,174,.15),rgba(166,169,174,.7) 6%,rgba(166,169,174,.7) 94%,rgba(166,169,174,.3));z-index:1;pointer-events:none}
.path-fill{position:absolute;top:0;left:-0.5px;width:2px;height:0;background:linear-gradient(180deg,#E6D3A3,#C8B07A);box-shadow:0 0 6px rgba(200,176,122,.6)}
.path .stop{position:relative}
.path .stop::before{content:"";position:absolute;top:56px;left:calc(var(--px) - 4px);width:9px;height:9px;border-radius:50%;background:var(--dove);border:1px solid #A6A9AE;z-index:2}
.path .stop.deep::before{background:var(--deep)}
.path .stop.ivory::before{background:var(--ivory)}
.path-end{position:relative}
.path-end::before{content:"";position:absolute;top:-6px;left:calc(max(14px,calc((100vw - 1240px)/2 + 14px)) - 6px);width:13px;height:13px;border-radius:50%;background:#C8B07A;box-shadow:0 0 0 4px rgba(200,176,122,.25)}

/* workshop */
.workshop{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center}
.ws-photo{margin:0;position:relative}
.ws-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(100%) contrast(1.05);box-shadow:0 24px 40px rgba(0,0,0,.25)}
.stage-seal{position:absolute;right:-18px;bottom:-18px;box-shadow:0 10px 24px rgba(0,0,0,.35)}
.ws-text{display:flex;flex-direction:column;gap:16px}
.ws-text p{margin:0}
.ws-line{font-size:30px;line-height:1.3}
.ws-wide{width:100%;height:340px;object-fit:cover;object-position:center 40%;margin-top:70px;filter:grayscale(100%)}

/* testimonials */
.tgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:56px}
.tgrid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin-left:auto;margin-right:auto}
.tgrid.dark{grid-template-columns:minmax(0,1fr);max-width:820px;margin:60px auto 0;text-align:center}
.tq{margin:0;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:24px}
.tgrid.dark .tq{border-top-color:#3A3A3D;align-items:center}
.tq .qm{font-size:72px;line-height:.6;height:30px;color:#A6A9AE}
.tgrid.dark .tq .qm{color:var(--gold)}
.tq p{margin:0;font-size:24px;line-height:1.45}
.tgrid.dark .tq p{font-size:30px;color:var(--ivory)}

/* about stage photo */
.stage{margin:10px 0 40px;position:relative}
.stage img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;filter:grayscale(100%)}
.stage figcaption{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--label);margin-top:16px}
.stage .stage-seal{bottom:22px}

@media (max-width:760px){
  .workshop{grid-template-columns:minmax(0,1fr);gap:40px}
  .tgrid,.tgrid.two{grid-template-columns:minmax(0,1fr);gap:28px}
  .stage-seal{right:8px;bottom:8px}
  .ws-wide{height:220px}
  .path .stop::before{top:30px}
}
.opening .inline-form{flex:none;align-items:center}
