.catalog-v8 { --ink:#302624; --paper:#fffdf9; --petal:#f4e8e6; --line:rgba(48,38,36,.14); --muted:#756b68; --raspberry:#b82759; background:var(--paper); }
.catalog-page { background:var(--paper); }
.catalog-hero { display:grid; min-height:620px; grid-template-columns:minmax(460px,46%) 1fr; border-bottom:1px solid var(--line); }
.catalog-hero__copy { display:flex; flex-direction:column; justify-content:center; padding:64px var(--pad); }
.catalog-hero__copy h1 { max-width:11ch; margin:22px 0 24px; font-family:var(--serif); font-size:clamp(4.1rem,5.25vw,5.9rem); font-weight:400; letter-spacing:-.035em; line-height:.9; text-wrap:balance; }
.catalog-hero__copy h1 em { color:var(--raspberry); font-style:italic; font-weight:400; }
.catalog-hero__copy>p:not(.section-kicker) { max-width:42ch; color:var(--muted); font-size:.95rem; line-height:1.65; }
.catalog-hero__prompt { width:max-content; margin-top:24px; border-bottom:1px solid currentColor; color:var(--ink)!important; font-size:.72rem!important; font-weight:500; }
.catalog-hero__copy dl { display:grid; grid-template-columns:repeat(3,1fr); margin-top:30px; border-block:1px solid var(--line); }
.catalog-hero__copy dl div { padding:15px 12px; }
.catalog-hero__copy dl div+div { border-left:1px solid var(--line); }
.catalog-hero__copy dt { color:var(--muted); font-size:.65625rem; letter-spacing:.11em; text-transform:uppercase; }
.catalog-hero__copy dd { margin-top:5px; font-family:var(--serif); font-size:1.45rem; }
.catalog-hero__visual { display:grid; min-width:0; grid-template-columns:repeat(3,1fr); align-items:end; overflow:hidden; background:linear-gradient(145deg,#faf2ed,#f4e8e6); }
.catalog-hero__visual>a { display:grid; height:100%; align-items:end; }
.catalog-hero__visual figure { position:relative; display:grid; height:88%; grid-template-rows:minmax(0,1fr) auto; border-left:1px solid rgba(48,38,36,.1); }
.catalog-hero__visual>a:nth-child(2) figure { height:94%; }
.catalog-hero__visual img { width:100%; height:100%; object-fit:contain; object-position:center bottom; background:#f8efeb; transition:transform 420ms var(--ease); }
.catalog-hero__visual>a:hover img { transform:translateY(-4px); }
.catalog-hero__visual figcaption { display:grid; min-height:62px; grid-template-columns:1fr auto auto; gap:8px; align-items:center; padding:10px 12px; border-top:1px solid var(--line); background:rgba(255,253,249,.94); font-family:var(--serif); font-size:1.2rem; }
.catalog-hero__visual figcaption span { display:grid; }
.catalog-hero__visual figcaption small { color:var(--muted); font-family:var(--sans); font-size:.65625rem; }
.catalog-hero__visual figcaption strong { font-family:var(--sans); font-size:.6875rem; font-weight:500; }
.catalog-hero__visual figcaption i { font-family:var(--sans); font-size:.8rem; font-style:normal; }

.flavour-collection { padding:clamp(70px,7vw,100px) var(--pad); }
.flavour-collection__head { display:grid; grid-template-columns:1fr auto; align-items:end; margin-bottom:40px; }
.flavour-collection__head .section-kicker { grid-column:1/-1; margin-bottom:18px; }
.flavour-collection__head h2 { font-family:var(--serif); font-size:clamp(4rem,5.6vw,6rem); font-weight:400; letter-spacing:-.035em; line-height:.92; white-space:nowrap; }
.flavour-collection__head h2 em { color:var(--raspberry); font-style:italic; font-weight:400; }
.flavour-collection__head>p:last-child { max-width:28ch; color:var(--muted); font-size:.86rem; }
.flavour-rail { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.flavour-card { border:1px solid var(--line); background:#fff; }
.flavour-card a { display:grid; height:100%; grid-template-rows:minmax(0,1fr) auto; }
.flavour-card img { width:100%; aspect-ratio:4/4.6; object-fit:cover; object-position:center 48%; transition:transform 540ms var(--ease); }
.flavour-card:hover img { transform:scale(1.01); }
.flavour-card a>span { display:grid; min-height:100px; grid-template-columns:1fr auto; gap:3px 16px; align-items:center; padding:16px; border-top:1px solid var(--line); }
.flavour-card b { font-family:var(--serif); font-size:2rem; font-weight:400; line-height:1; }
.flavour-card small { grid-column:1; color:var(--muted); }
.flavour-card strong { grid-column:2; grid-row:1; font-size:.75rem; }
.flavour-card i { grid-column:2; grid-row:2; font-size:.68rem; font-style:normal; }

.ritual-strip { padding:clamp(66px,6vw,88px) var(--pad); color:#603849; background:var(--petal); }
.ritual-strip h2 { margin-top:18px; font-family:var(--serif); font-size:clamp(3.8rem,5.6vw,5.8rem); font-weight:400; letter-spacing:-.035em; line-height:.92; white-space:nowrap; }
.ritual-strip h2 em { font-style:italic; font-weight:400; }
.ritual-strip ol { display:grid; grid-template-columns:repeat(3,1fr); margin-top:40px; border-block:1px solid rgba(96,56,73,.2); }
.ritual-strip li { display:grid; min-height:160px; align-content:center; padding:26px; }
.ritual-strip li+li { border-left:1px solid rgba(96,56,73,.2); }
.ritual-strip li span { color:#8a6873; font-size:.65625rem; }
.ritual-strip li strong { margin-top:12px; font-family:var(--serif); font-size:2.5rem; font-weight:400; }
.ritual-strip li p { margin-top:5px; color:#765f67; font-size:.8rem; }

.catalog-assurance { display:grid; grid-template-columns:5fr 7fr; gap:6vw; padding:clamp(66px,6vw,88px) var(--pad); }
.catalog-assurance h2 { max-width:none; margin-top:18px; font-family:var(--serif); font-size:clamp(3.3rem,4.6vw,4.9rem); font-weight:400; letter-spacing:-.035em; line-height:.94; white-space:nowrap; }
.catalog-assurance>div { border-top:1px solid var(--line); }
.catalog-assurance details { border-bottom:1px solid var(--line); }
.catalog-assurance summary { display:flex; min-height:70px; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; font-size:.82rem; font-weight:500; }
.catalog-assurance details p { max-width:58ch; padding:0 30px 22px 0; color:var(--muted); font-size:.78rem; line-height:1.65; }
.catalog-v8 .footer { min-height:260px; color:#432d34; background:var(--petal); }
.catalog-v8 .footer .brand { filter:none; }
.catalog-v8 .footer__links strong,.catalog-v8 .footer__status { color:#8a7076; }
.catalog-v8 .footer__status { border-color:var(--line); }

@media(max-width:860px){
  .catalog-hero { min-height:0; grid-template-columns:1fr; }
  .catalog-hero__copy { padding:52px 22px; }
  .catalog-hero__copy h1 { max-width:none; font-size:clamp(3.8rem,10vw,5.2rem); }
  .catalog-hero__visual { min-height:500px; grid-row:1; }
  .flavour-collection { padding:64px 22px; overflow:hidden; }
  .flavour-collection__head { display:block; }
  .flavour-collection__head h2 { font-size:clamp(3.6rem,9vw,4.8rem); white-space:normal; }
  .flavour-collection__head>p:last-child { margin-top:18px; }
  .flavour-rail { display:flex; gap:18px; margin:0 -22px; padding:0 22px 8px; overflow-x:auto; scroll-snap-type:x mandatory; }
  .flavour-card { flex:0 0 70vw; scroll-snap-align:center; }
  .ritual-strip { padding:60px 22px; }
  .ritual-strip h2 { font-size:clamp(3.5rem,9vw,4.7rem); white-space:normal; }
  .catalog-assurance { grid-template-columns:1fr; gap:34px; padding:60px 22px; }
  .catalog-assurance h2 { max-width:none; }
}

@media(max-width:560px){
  .catalog-hero__visual { min-height:330px; }
  .catalog-hero__visual figure { height:88%; }
  .catalog-hero__visual>a:nth-child(2) figure { height:100%; }
  .catalog-hero__visual figcaption { min-height:42px; padding:9px 7px; font-size:.85rem; }
  .catalog-hero__visual figcaption small,
  .catalog-hero__visual figcaption i { display:none; }
  .catalog-hero__copy { padding:42px 18px 46px; }
  .catalog-hero__copy h1 { margin-block:16px; font-size:clamp(3rem,13vw,4rem); }
  .catalog-hero__copy>p:not(.section-kicker) { font-size:.8125rem; }
  .catalog-hero__prompt { font-size:.75rem!important; }
  .catalog-hero__copy dl div { padding:12px 7px; }
  .catalog-hero__copy dd { font-size:1.1rem; }
  .flavour-collection { padding:54px 18px; }
  .flavour-collection__head h2 { font-size:clamp(3rem,12.5vw,3.8rem); }
  .flavour-collection__head h2 em { display:block; }
  .flavour-rail { margin-inline:-18px; padding-inline:18px; }
  .flavour-card { flex-basis:88vw; }
  .ritual-strip { padding:54px 18px; }
  .ritual-strip h2 { font-size:clamp(3rem,12vw,3.8rem); }
  .ritual-strip ol { grid-template-columns:1fr; margin-top:30px; }
  .ritual-strip li { min-height:112px; }
  .ritual-strip li+li { border-top:1px solid rgba(96,56,73,.2); border-left:0; }
  .catalog-assurance { padding:54px 18px; }
  .catalog-assurance h2 { font-size:clamp(3rem,12vw,3.8rem); }
  .catalog-assurance h2 { white-space:normal; }
  .catalog-v8 .footer { min-height:0; padding:38px 18px 22px; }
}
