.cms-main { position: relative; min-height: 100vh; }
.cms-section { padding: clamp(90px, 11vw, 160px) 0; }
.cms-section__head { display: grid; grid-template-columns:1fr auto; align-items:end; gap:30px; margin-bottom:52px; }
.cms-section__head h2 { max-width: 800px; margin:0; font-size:clamp(48px,6vw,90px); font-weight:400; line-height:.9; letter-spacing:-.07em; }
.cms-section__head p { max-width:430px; margin:0; color:rgba(10,32,24,.64); font-size:15px; line-height:1.6; }

.catalog-hero.inner-hero {
  min-height:clamp(390px,52svh,560px);
  padding-top:calc(var(--gaf-header-h) + 38px);
  padding-bottom:clamp(36px,5vw,60px);
}
.catalog-hero.inner-ticker .inner-ticker__track {
  gap:0;
  animation-name:gafCatalogTickerLoop;
  will-change:transform;
}
.catalog-hero.inner-ticker .inner-ticker__group {
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:28px;
  padding-right:28px;
}
@keyframes gafCatalogTickerLoop {
  to { transform:translate3d(-50%,0,0); }
}
.catalog-index-section { padding-top:clamp(24px,2.5vw,36px); }
.catalog-index-section .cms-section__head { margin-bottom:24px; }
.catalog-index-section .cms-section__head h2 { font-size:clamp(42px,4.8vw,68px); }

.cms-catalog-nav { position:sticky; z-index:6; top:calc(var(--gaf-header-h) + 12px); display:flex; justify-content:flex-end; gap:8px; margin:0 0 34px; pointer-events:none; }
.cms-catalog-nav a { min-width:148px; min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:0 17px; color:white; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(10,32,24,.9); backdrop-filter:blur(12px); font-size:10px; letter-spacing:.04em; pointer-events:auto; transition:color .3s ease,background .3s ease,transform .3s ease; }
.cms-catalog-nav a:hover { color:var(--gaf-ink); background:var(--gaf-acid); transform:translateY(-2px); }
.cms-catalog-nav small { color:var(--gaf-acid); font-size:8px; letter-spacing:.13em; }
.cms-catalog-nav a:hover small { color:inherit; }
.cms-catalog-section { scroll-margin-top:calc(var(--gaf-header-h) + 80px); }
.cms-catalog-section + .cms-catalog-section { margin-top:clamp(78px,10vw,140px); }
.cms-catalog-section__head { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,430px); align-items:end; gap:40px; margin:0 0 32px; }
.cms-catalog-section__head h2 { max-width:820px; margin:0; font-size:clamp(38px,4.6vw,66px); font-weight:400; line-height:.92; letter-spacing:-.06em; text-wrap:balance; }
.cms-catalog-section__head > p { margin:0 0 5px; color:rgba(10,32,24,.62); font-size:14px; line-height:1.58; }

.cms-catalog { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); border-top:1px solid var(--gaf-line); border-left:1px solid var(--gaf-line); }
.cms-catalog__item {
  position:relative;
  grid-column:span 4;
  min-height:610px;
  display:flex;
  flex-direction:column;
  padding:24px;
  overflow:hidden;
  border-right:1px solid var(--gaf-line);
  border-bottom:1px solid var(--gaf-line);
  background:var(--gaf-cream);
  isolation:isolate;
}
.cms-catalog__link { flex:1; min-height:0; display:flex; flex-direction:column; color:inherit; text-decoration:none; }
.cms-catalog__item--layout-wide { grid-column:span 8; }
.cms-catalog__item--layout-full { grid-column:span 12; }
.cms-catalog__item::before { content:""; position:absolute; z-index:-2; inset:0; background:linear-gradient(145deg,transparent 30%,rgba(177,181,83,.18)); opacity:0; transition:opacity .5s ease; }
.cms-catalog__item::after { content:""; position:absolute; z-index:-1; top:28%; left:50%; width:54%; aspect-ratio:1; border:1px solid rgba(10,32,24,.16); border-radius:50%; transform:translate(-50%,-50%); transition:width .7s var(--gaf-ease),border-color .4s ease; }
.cms-catalog__item:hover::before { opacity:1; }
.cms-catalog__item:hover::after { width:70%; border-color:rgba(97,103,35,.45); }
.cms-catalog__top { display:flex; justify-content:space-between; gap:20px; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.cms-catalog__top span:last-child { color:var(--gaf-forest-2); }
.cms-catalog__visual { position:relative; flex:1; min-height:330px; display:grid; place-items:center; }
.cms-catalog__visual picture { width:100%; height:100%; display:grid; place-items:center; }
.cms-catalog__visual img { position:relative; z-index:2; display:block; width:min(70%,270px); max-height:340px; object-fit:contain; filter:drop-shadow(0 28px 34px rgba(10,32,24,.19)); transition:transform .8s var(--gaf-ease),filter .5s ease; }
.cms-catalog__item--layout-wide .cms-catalog__visual img,
.cms-catalog__item--layout-full .cms-catalog__visual img { width:min(48%,320px); max-height:390px; }
.cms-catalog__item:hover img { transform:translateY(-14px) rotate(2deg) scale(1.025); filter:drop-shadow(0 36px 42px rgba(10,32,24,.25)); }
.cms-catalog__meta { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:end; padding-top:20px; border-top:1px solid var(--gaf-line); }
.cms-catalog__meta h2 { max-width:430px; margin:0 0 8px; font-size:clamp(27px,2.4vw,42px); font-weight:400; line-height:.95; letter-spacing:-.055em; }
.cms-catalog__meta p { max-width:440px; margin:0; color:rgba(10,32,24,.62); font-size:13px; line-height:1.5; }
.cms-catalog__arrow { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--gaf-ink); border-radius:50%; font-size:18px; transition:background .3s ease,color .3s ease,transform .3s ease; }
.cms-catalog__item:hover .cms-catalog__arrow { color:var(--gaf-ink); background:var(--gaf-acid); transform:rotate(45deg); }
.cms-catalog__purchase { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; padding-top:16px; border-top:1px solid var(--gaf-line); }
.cms-catalog__price { min-width:0; display:grid; gap:4px; }
.cms-catalog__price b { font-size:19px; font-weight:400; letter-spacing:-.035em; }
.cms-catalog__price small { color:rgba(10,32,24,.55); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.cms-catalog__add { position:relative; min-width:128px; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 17px; overflow:hidden; color:white; border:1px solid var(--gaf-ink); border-radius:999px; background:var(--gaf-ink); font-size:10px; cursor:pointer; }
.cms-catalog__add::before { position:absolute; inset:0; background:var(--gaf-acid); content:""; transform:translateY(102%); transition:transform .45s var(--gaf-ease); }
.cms-catalog__add > * { position:relative; z-index:1; }
.cms-catalog__add i { font-size:17px; font-style:normal; }
.cms-catalog__add:hover { color:var(--gaf-ink); }
.cms-catalog__add:hover::before, .cms-catalog__add.is-added::before { transform:none; }
.cms-catalog__add:disabled { opacity:.46; cursor:not-allowed; }
.cms-catalog__add:disabled::before { display:none; }
.cms-catalog-section--bundles { padding-top:clamp(38px,5vw,68px); border-top:1px solid var(--gaf-line); }
.cms-catalog--bundles .cms-catalog__item { grid-column:span 6; min-height:720px; }
.cms-catalog--bundles .cms-catalog__item--layout-full { grid-column:span 12; min-height:660px; }
.cms-catalog__item--bundle::before { background:linear-gradient(145deg,rgba(177,181,83,.12),rgba(10,32,24,.1)); opacity:.45; }
.cms-catalog__item--bundle::after { top:34%; width:48%; border-color:rgba(10,32,24,.14); }
.cms-catalog__item--bundle:hover::after { width:61%; }
.cms-catalog__item--bundle .cms-catalog__visual {
  min-height:360px;
  margin:14px 0 8px;
  overflow:visible;
  background:transparent;
}
.cms-bundle-visual::before {
  position:absolute;
  top:50%;
  left:50%;
  width:min(72%,420px);
  aspect-ratio:1;
  border:1px solid rgba(10,32,24,.11);
  border-radius:50%;
  content:"";
  transform:translate(-50%,-50%);
}
.cms-bundle-visual::after {
  position:absolute;
  right:8%;
  bottom:9%;
  left:8%;
  height:16%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(10,32,24,.16),rgba(10,32,24,0) 70%);
  content:"";
  filter:blur(12px);
  transform:scaleY(.42);
}
.cms-bundle-packshots {
  position:relative;
  z-index:2;
  width:min(92%,620px);
  height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin:auto;
  padding:22px 0 18px;
  transition:transform .75s var(--gaf-ease);
}
.cms-bundle-packshot {
  position:relative;
  width:min(40%,230px);
  height:92%;
  display:grid;
  place-items:end center;
  margin:0 -2.8%;
  transform:translateY(2px);
}
.cms-bundle-packshot:nth-child(3n + 1) { transform:translateY(5px); }
.cms-bundle-packshot:nth-child(3n) { transform:translateY(7px); }
.cms-bundle-packshot img,
.cms-catalog--bundles .cms-catalog__item--layout-full .cms-bundle-packshot img {
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  filter:drop-shadow(0 24px 24px rgba(10,32,24,.2));
  transform:none;
  transition:transform .75s var(--gaf-ease),filter .45s ease;
}
.cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshots { width:min(96%,960px); }
.cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot {
  width:min(20.5%,220px);
  height:88%;
  margin:0 -1.2%;
}
.cms-catalog__item--bundle:hover .cms-bundle-packshots { transform:translateY(-9px); }
.cms-catalog__item--bundle:hover .cms-bundle-packshot:nth-child(odd) img { transform:rotate(-1.2deg); }
.cms-catalog__item--bundle:hover .cms-bundle-packshot:nth-child(even) img { transform:rotate(1.2deg); }
.cms-catalog__item--bundle:hover .cms-bundle-packshot img { filter:drop-shadow(0 31px 30px rgba(10,32,24,.25)); }
.cms-catalog__item--bundle .cms-catalog__top span:last-child { max-width:65%; text-align:right; }
.cms-catalog__item--bundle .cms-catalog__price small { color:var(--gaf-forest-2); }

.cms-detail { min-height:100svh; display:grid; grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr); padding-top:var(--gaf-header-h); background:var(--gaf-cream); }
.cms-detail__visual { position:relative; min-height:calc(100svh - var(--gaf-header-h)); display:grid; place-items:center; overflow:hidden; color:white; background:var(--gaf-forest); isolation:isolate; }
.cms-detail__grid { position:absolute; z-index:-2; inset:0; opacity:.1; background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px); background-size:74px 74px; transform:perspective(760px) rotateX(59deg) scale(1.3) translateY(18%); }
.cms-detail__orbit { position:absolute; z-index:-1; width:min(68%,580px); aspect-ratio:1; border:1px solid rgba(177,181,83,.42); border-radius:50%; animation:gafOrbit 28s linear infinite; }
.cms-detail__orbit::after { content:""; position:absolute; top:50%; left:-5px; width:10px; height:10px; border-radius:50%; background:var(--gaf-acid); box-shadow:0 0 24px rgba(177,181,83,.8); }
.cms-detail__visual picture { width:100%; display:grid; place-items:center; }
.cms-detail__visual img { display:block; width:min(52%,390px); max-height:600px; object-fit:contain; filter:drop-shadow(0 38px 55px rgba(0,0,0,.38)); animation:gafFloat 5.6s ease-in-out infinite; }
.cms-detail--bundle .cms-bundle-visual::before { width:min(68%,610px); border-color:rgba(255,255,255,.14); }
.cms-detail--bundle .cms-bundle-visual::after { background:radial-gradient(ellipse,rgba(0,0,0,.42),rgba(0,0,0,0) 70%); }
.cms-detail--bundle .cms-bundle-packshots {
  position:absolute;
  inset:8% 4% 8%;
  width:auto;
  height:auto;
  align-items:center;
  padding:0;
}
.cms-detail--bundle .cms-bundle-packshot {
  width:min(49%,380px);
  height:86%;
  place-items:center;
  margin:0 -5%;
  transform:none;
  animation:gafFloat 5.6s ease-in-out infinite;
  will-change:transform;
}
.cms-detail--bundle .cms-bundle-packshot:nth-child(2) { animation-delay:-1.1s; }
.cms-detail--bundle .cms-bundle-packshot:nth-child(3) { animation-delay:-2.2s; }
.cms-detail--bundle .cms-bundle-packshot:nth-child(4) { animation-delay:-3.3s; }
.cms-detail--bundle .cms-bundle-packshot:nth-child(5) { animation-delay:-4.4s; }
.cms-detail--bundle .cms-bundle-packshot img {
  width:100%;
  height:100%;
  max-height:none;
  animation:none;
  filter:drop-shadow(0 36px 35px rgba(0,0,0,.34));
  transform:scale(1.18);
  transform-origin:50% 50%;
}
.cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshots { width:min(94%,920px); }
.cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot { width:min(21%,240px); margin:0 -1.8%; }
.cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot img { transform:scale(1.05); }
@media (min-width:1001px) {
  .cms-detail .cms-detail__visual {
    position:sticky;
    top:var(--gaf-header-h);
    align-self:start;
    height:calc(100svh - var(--gaf-header-h));
    min-height:560px;
  }
}
.cms-detail__code { position:absolute; inset:28px 30px auto; display:flex; justify-content:space-between; gap:30px; font-size:9px; letter-spacing:.14em; text-transform:uppercase; opacity:.62; }
.cms-detail__count { position:absolute; right:30px; bottom:28px; color:var(--gaf-acid); font-size:10px; letter-spacing:.14em; }
.cms-detail__copy { min-width:0; align-self:center; padding:clamp(42px,5.5vw,72px) clamp(34px,6vw,92px) 64px; }
.cms-detail__back { display:inline-flex; align-items:center; gap:16px; margin-bottom:clamp(24px,4vh,40px); border-bottom:1px solid currentColor; padding-bottom:8px; font-size:11px; }
.cms-label { margin:0 0 18px; color:var(--gaf-forest-2); font-size:10px; font-weight:700; line-height:1.3; letter-spacing:.15em; text-transform:uppercase; }
.cms-detail h1, .cms-article h1 { margin:0; font-size:clamp(54px,5.8vw,96px); font-weight:400; line-height:.86; letter-spacing:-.078em; }
.cms-detail h1 { max-width:100%; overflow-wrap:anywhere; }
.cms-latin { margin:18px 0 0; color:var(--gaf-forest-2); font-size:14px; font-style:italic; }
.cms-lead { max-width:620px; margin:22px 0 0; font-size:clamp(17px,1.4vw,21px); line-height:1.42; letter-spacing:-.02em; }
.cms-detail__buy { display:grid; grid-template-columns:minmax(145px,.72fr) minmax(210px,1.28fr); align-items:end; gap:24px; margin-top:26px; padding:22px 0; border-block:1px solid var(--gaf-line); }
.cms-detail__contact-choice{margin-top:18px;padding-top:18px;border-top:1px solid var(--gaf-line)}
.cms-detail__contact-choice>.cms-label{margin:0 0 10px}
.cms-detail__price-wrap { display:grid; gap:7px; }
.cms-detail__price { margin:0; color:var(--gaf-ink); font-size:clamp(28px,3vw,42px); line-height:1; letter-spacing:-.05em; }
.cms-detail__availability { color:rgba(10,32,24,.5); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.cms-detail__availability.is-available { color:var(--gaf-forest-2); }
.cms-detail__buy .gaf-cart-add { max-width:none; margin:0; }
.cms-detail__trust { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--gaf-line); }
.cms-detail__trust-item { min-width:0; display:grid; grid-template-columns:24px 1fr; gap:3px 9px; align-content:start; padding:17px 12px 18px 0; color:inherit; border-right:1px solid var(--gaf-line); }
.cms-detail__trust-item + .cms-detail__trust-item { padding-left:12px; }
.cms-detail__trust-item:last-child { padding-right:0; border-right:0; }
.cms-detail__trust-icon { grid-row:1/3; color:var(--gaf-forest-2); font-size:14px; line-height:1; }
.cms-detail__trust-item strong { min-width:0; overflow:hidden; font-size:10px; font-weight:600; line-height:1.2; letter-spacing:.035em; text-overflow:ellipsis; white-space:nowrap; }
.cms-detail__trust-item small { color:rgba(10,32,24,.52); font-size:8px; line-height:1.35; letter-spacing:.035em; }
a.cms-detail__trust-item { transition:color .25s ease,background .25s ease; }
a.cms-detail__trust-item:hover { color:var(--gaf-forest-2); background:rgba(177,181,83,.08); }
.cms-detail__description { max-width:670px; margin:30px 0 0; color:rgba(10,32,24,.68); font-size:15px; line-height:1.68; }
.cms-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:32px; }
.cms-tags span { padding:9px 13px; border:1px solid var(--gaf-line); border-radius:999px; font-size:10px; letter-spacing:.04em; }
.cms-note { margin-top:38px; padding:24px 0; border-block:1px solid var(--gaf-line); }
.cms-note b { display:block; margin-bottom:8px; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.cms-note p { margin:0; color:rgba(10,32,24,.68); font-size:15px; line-height:1.6; }

.cms-journal-list { counter-reset:journal; border-top:1px solid var(--gaf-line); }
.cms-journal-list__item { position:relative; display:grid; grid-template-columns:90px minmax(280px,.72fr) minmax(0,1.28fr) 50px; align-items:center; gap:clamp(24px,4vw,70px); min-height:270px; padding:30px 0; overflow:hidden; border-bottom:1px solid var(--gaf-line); isolation:isolate; }
.cms-journal-list__item::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(177,181,83,.11),transparent 72%); transform:translateX(-102%); transition:transform .8s var(--gaf-ease); }
.cms-journal-list__item:hover::before { transform:translateX(0); }
.cms-journal-list__index { align-self:start; padding-top:5px; color:var(--gaf-forest-2); font-size:10px; letter-spacing:.13em; }
.cms-journal-list__visual { position:relative; height:205px; overflow:hidden; background:var(--gaf-forest); clip-path:inset(0 round 1px); }
.cms-journal-list__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(140deg,transparent 48%,rgba(177,181,83,.29)); pointer-events:none; }
.cms-journal-list__visual img { width:100%; height:100%; object-fit:cover; filter:saturate(.68) contrast(1.03); transition:transform .9s var(--gaf-ease),filter .5s ease; }
.cms-journal-list__issue { position:absolute; z-index:2; right:12px; bottom:10px; padding:7px 9px; color:white; border:1px solid rgba(255,255,255,.3); background:rgba(10,32,24,.66); backdrop-filter:blur(8px); font-size:8px; letter-spacing:.14em; }
.cms-journal-list__visual--generated { display:grid; place-items:center; color:white; background:var(--gaf-forest); }
.cms-journal-list__visual--generated::before { content:""; width:46%; aspect-ratio:1; border:1px solid var(--gaf-acid); border-radius:50%; box-shadow:0 0 0 24px rgba(177,181,83,.08),0 0 0 52px rgba(177,181,83,.04); animation:gafOrbit 14s linear infinite; }
.cms-journal-list__copy h2 { max-width:800px; margin:11px 0 14px; font-size:clamp(34px,3.7vw,60px); font-weight:400; line-height:.94; letter-spacing:-.06em; text-wrap:balance; }
.cms-journal-list__copy p { max-width:720px; margin:0; color:rgba(10,32,24,.64); font-size:14px; line-height:1.6; }
.cms-journal-list__meta { display:flex; gap:18px; color:var(--gaf-forest-2); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.cms-journal-list__arrow { width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--gaf-ink); border-radius:50%; font-size:17px; transition:transform .35s ease,background .3s ease; }
.cms-journal-list__item:hover .cms-journal-list__visual img { transform:scale(1.065); filter:saturate(.94) contrast(1.08); }
.cms-journal-list__item:hover .cms-journal-list__arrow { transform:rotate(45deg); background:var(--gaf-acid); }

.cms-article { background:var(--gaf-cream); }
.cms-article__hero { position:relative; min-height:clamp(500px,56svh,620px); display:flex; align-items:flex-end; padding:calc(var(--gaf-header-h) + 46px) 0 clamp(42px,5vw,56px); color:white; background:var(--gaf-forest); overflow:hidden; isolation:isolate; }
.cms-article__hero-inner { display:grid; grid-template-columns:minmax(0,1.32fr) minmax(290px,.68fr); gap:clamp(42px,6vw,88px); align-items:end; }
.cms-article__hero h1 { max-width:980px; font-size:clamp(52px,5.3vw,86px); line-height:.88; letter-spacing:-.072em; text-wrap:balance; overflow-wrap:anywhere; }
.cms-article__hero .cms-label { color:var(--gaf-acid); }
.cms-article__lead { max-width:520px; margin:0; color:rgba(255,255,255,.7); font-size:16px; line-height:1.55; }
.cms-article__meta { display:flex; gap:20px; margin-top:22px; padding-top:13px; border-top:1px solid var(--gaf-white-line); font-size:9px; letter-spacing:.13em; text-transform:uppercase; opacity:.7; }
.cms-article__body { width:min(1040px,calc(100% - 40px)); margin:0 auto; padding:clamp(70px,9vw,130px) 0; }
.cms-article__figure { position:relative; margin:0 0 clamp(64px,9vw,110px); background:var(--gaf-forest); overflow:hidden; }
.cms-article__cover { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.cms-article__figure figcaption { position:absolute; right:0; bottom:0; left:0; display:flex; justify-content:space-between; gap:30px; padding:44px 18px 15px; color:white; background:linear-gradient(transparent,rgba(4,16,12,.78)); font-size:8px; letter-spacing:.14em; text-transform:uppercase; }
.cms-article__body > p, .cms-article__body > h2, .cms-article__body > h3, .cms-article__body > ul, .cms-article__body > blockquote { width:min(780px,100%); margin-right:auto; margin-left:auto; }
.cms-article__body > p { margin-top:0; margin-bottom:1.45em; font-family:Georgia,"Times New Roman",serif; font-size:clamp(18px,1.5vw,20px); line-height:1.68; }
.cms-article__body > p:first-of-type::first-letter { float:left; margin:.08em .13em 0 0; color:var(--gaf-forest-2); font-family:Arial,sans-serif; font-size:4.8em; line-height:.72; }
.cms-article__body > h2 { scroll-margin-top:calc(var(--gaf-header-h) + 30px); margin-top:clamp(70px,9vw,110px); margin-bottom:28px; font-size:clamp(40px,5.4vw,72px); font-weight:400; line-height:.95; letter-spacing:-.06em; text-wrap:balance; }
.cms-article__body > h2::before { content:""; display:block; width:42px; height:1px; margin-bottom:24px; background:var(--gaf-forest-2); }
.cms-article__body > h3 { margin-top:48px; margin-bottom:20px; font-size:clamp(25px,3vw,36px); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
.cms-article__body > ul { margin-top:12px; margin-bottom:40px; padding:0; list-style:none; border-top:1px solid var(--gaf-line); }
.cms-article__body > ul li { position:relative; padding:16px 12px 16px 38px; border-bottom:1px solid var(--gaf-line); font-family:Georgia,"Times New Roman",serif; font-size:clamp(18px,1.7vw,22px); line-height:1.55; }
.cms-article__body > ul li::before { content:""; position:absolute; top:1.75em; left:12px; width:7px; height:7px; border-radius:50%; background:var(--gaf-acid); }
.cms-article__body > blockquote { position:relative; margin-top:clamp(52px,7vw,86px); margin-bottom:clamp(52px,7vw,86px); padding:34px 0 34px clamp(34px,7vw,86px); color:var(--gaf-forest); border-block:1px solid var(--gaf-line); font-family:Georgia,"Times New Roman",serif; font-size:clamp(26px,3.5vw,45px); font-style:italic; line-height:1.22; letter-spacing:-.035em; }
.cms-article__body > blockquote::before { content:"“"; position:absolute; top:24px; left:8px; color:var(--gaf-acid); font-family:Georgia,serif; font-size:72px; line-height:1; }
.cms-article__eyebrow { margin:0 0 14px; color:var(--gaf-forest-2); font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.cms-article__contents { width:min(780px,100%); margin:0 auto clamp(70px,9vw,110px); padding:30px; color:white; background:var(--gaf-forest); }
.cms-article__contents .cms-article__eyebrow { color:var(--gaf-acid); }
.cms-article__contents ol { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.16); }
.cms-article__contents li { display:grid; grid-template-columns:46px 1fr; gap:14px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.cms-article__contents li span { color:var(--gaf-acid); font-size:9px; letter-spacing:.12em; }
.cms-article__contents a { font-size:14px; line-height:1.45; transition:color .25s ease,transform .25s ease; }
.cms-article__contents a:hover { color:var(--gaf-acid); transform:translateX(3px); }
.cms-article__callout { width:min(900px,100%); margin:0 auto clamp(60px,8vw,90px); display:grid; grid-template-columns:150px 1fr; gap:clamp(22px,5vw,64px); padding:clamp(26px,4vw,44px); color:white; background:var(--gaf-forest); }
.cms-article__callout > span { color:var(--gaf-acid); font-size:9px; letter-spacing:.15em; }
.cms-article__callout p { margin:0; font-size:clamp(18px,2.2vw,26px); line-height:1.45; letter-spacing:-.025em; }
.cms-article__sources { width:min(900px,100%); margin:clamp(80px,10vw,130px) auto 0; padding:clamp(30px,5vw,52px); border:1px solid var(--gaf-line); background:rgba(255,255,255,.28); }
.cms-article__sources h2 { margin:0 0 32px; font-size:clamp(36px,5vw,58px); font-weight:400; line-height:.95; letter-spacing:-.055em; }
.cms-article__sources ol { margin:0; padding:0; list-style:none; counter-reset:sources; }
.cms-article__sources li { counter-increment:sources; border-top:1px solid var(--gaf-line); }
.cms-article__sources li:last-child { border-bottom:1px solid var(--gaf-line); }
.cms-article__sources li.cms-article__source-text { display:grid; grid-template-columns:38px 1fr; gap:12px; padding:18px 0; font-size:13px; line-height:1.55; }
.cms-article__sources li.cms-article__source-text::before { content:counter(sources,decimal-leading-zero); color:var(--gaf-forest-2); font-size:9px; letter-spacing:.12em; }
.cms-article__sources a { position:relative; display:grid; grid-template-columns:38px 1fr auto; gap:12px; align-items:start; padding:18px 0; font-size:13px; line-height:1.55; }
.cms-article__sources a::before { content:counter(sources,decimal-leading-zero); color:var(--gaf-forest-2); font-size:9px; letter-spacing:.12em; }
.cms-article__source-arrow { font-size:16px; transition:transform .3s ease; }
.cms-article__sources a:hover .cms-article__source-arrow { transform:rotate(45deg); }
.cms-article__return { display:flex; justify-content:flex-end; margin-top:clamp(54px,7vw,82px); padding-top:24px; border-top:1px solid var(--gaf-line); }
.cms-article__actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; margin-top:48px; padding-top:28px; border-top:1px solid var(--gaf-line); }
.cms-article__actions--story { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:32px 56px; margin-top:clamp(64px,8vw,96px); padding:clamp(28px,5vw,52px); color:white; border:0; background:var(--gaf-forest); }
.cms-article__actions--story .cms-article__action-copy { max-width:610px; }
.cms-article__actions--story .cms-article__action-copy h2 { margin:0 0 16px; font-size:clamp(36px,5vw,62px); font-weight:400; line-height:.94; letter-spacing:-.058em; text-wrap:balance; }
.cms-article__actions--story .cms-article__action-copy > p:last-child { max-width:480px; margin:0; color:rgba(255,255,255,.68); font-size:14px; line-height:1.6; }
.cms-article__actions--story .cms-article__eyebrow { color:var(--gaf-acid); }
.cms-article__actions--story .cms-article__product { align-self:end; color:var(--gaf-ink); background:var(--gaf-acid); }
.cms-article__actions--story .cms-article__product:hover { color:var(--gaf-ink); background:white; }
.cms-article__back { display:inline-flex; align-items:center; gap:15px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:11px; }
.cms-article__product { display:inline-flex; align-items:center; justify-content:space-between; min-width:240px; min-height:54px; padding:0 22px; color:white; border-radius:999px; background:var(--gaf-ink); font-size:11px; transition:color .3s ease,background .3s ease,transform .3s ease; }
.cms-article__product i { margin-left:24px; font-size:17px; font-style:normal; transition:transform .3s ease; }
.cms-article__product:hover { color:var(--gaf-ink); background:var(--gaf-acid); transform:translateY(-2px); }
.cms-article__product:hover i { transform:translateX(4px); }
.cms-article__related { margin-top:clamp(80px,11vw,140px); padding-top:36px; border-top:1px solid var(--gaf-line); }
.cms-article__related > h2 { max-width:620px; margin:0 0 34px; font-size:clamp(42px,6vw,76px); font-weight:400; line-height:.9; letter-spacing:-.064em; }
.cms-article__related-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--gaf-line); border:1px solid var(--gaf-line); }
.cms-article__related-card { position:relative; min-height:430px; display:flex; flex-direction:column; padding:18px; overflow:hidden; background:var(--gaf-cream); }
.cms-article__related-card img { width:100%; aspect-ratio:16/9; margin-bottom:24px; object-fit:cover; filter:saturate(.75); transition:transform .7s var(--gaf-ease),filter .4s ease; }
.cms-article__related-card > span { color:var(--gaf-forest-2); font-size:8px; letter-spacing:.13em; text-transform:uppercase; }
.cms-article__related-card h3 { max-width:420px; margin:12px 44px 0 0; font-size:clamp(27px,3vw,42px); font-weight:400; line-height:.96; letter-spacing:-.055em; }
.cms-article__related-card i { position:absolute; right:18px; bottom:18px; width:42px; height:42px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-style:normal; transition:transform .35s ease,background .3s ease; }
.cms-article__related-card:hover img { transform:scale(1.035); filter:saturate(1); }
.cms-article__related-card:hover i { transform:rotate(45deg); background:var(--gaf-acid); }

.gaf-cart-add.cms-mobile-cart-add { display:none; }

.cms-empty { padding:46px; color:rgba(10,32,24,.6); border:1px dashed var(--gaf-line); font-size:15px; }
body.is-product-detail .catalog-hero, body.is-product-detail .catalog-index-section, body.is-article-detail .journal-hero, body.is-article-detail .journal-index-section { display:none; }

@media (max-width:1000px) {
  .cms-catalog__item,
  .cms-catalog__item--layout-wide,
  .cms-catalog__item--layout-compact { grid-column:span 6; }
  .cms-catalog__item--layout-wide .cms-catalog__visual img,
  .cms-catalog__item--layout-full .cms-catalog__visual img { width:min(70%,270px); }
  .cms-catalog--bundles .cms-catalog__item { grid-column:span 6; }
  .cms-catalog--bundles .cms-catalog__item--layout-full { grid-column:span 12; }
  .cms-detail { grid-template-columns:1fr; }
  .cms-detail__visual { min-height:680px; }
  .cms-detail__buy { grid-template-columns:1fr; align-items:stretch; }
  .cms-journal-list__item { grid-template-columns:60px 220px 1fr 48px; gap:24px; }
  .cms-article__hero { min-height:clamp(600px,72svh,700px); }
  .cms-article__hero-inner { grid-template-columns:1fr; gap:30px; }
  .cms-article__lead { max-width:680px; }
}

@media (max-width:700px) {
  .cms-section { padding:78px 0; }
  .cms-section__head { grid-template-columns:1fr; }
  .catalog-hero.inner-hero { min-height:auto; padding-top:calc(var(--gaf-header-h) + 28px); padding-bottom:28px; }
  .catalog-hero .inner-hero__content { gap:22px; }
  .catalog-hero .inner-display { font-size:64px; line-height:.86; }
  .catalog-hero .inner-hero__side p { margin-bottom:18px; font-size:14px; }
  .catalog-index-section { padding-top:22px; }
  .catalog-index-section .cms-section__head { gap:14px; margin-bottom:16px; }
  .catalog-index-section .cms-section__head h2 { font-size:42px; }
  .catalog-index-section .cms-section__head p { font-size:13px; line-height:1.45; }
  .cms-catalog-nav { position:static; justify-content:stretch; margin-bottom:28px; }
  .cms-catalog-nav a { min-width:0; flex:1; color:var(--gaf-ink); border-color:var(--gaf-line); background:transparent; backdrop-filter:none; }
  .cms-catalog-nav small { color:var(--gaf-forest-2); }
  .cms-catalog-section__head { grid-template-columns:1fr; gap:14px; margin-bottom:22px; }
  .cms-catalog-section__head h2 { font-size:40px; }
  .cms-catalog-section__head > p { font-size:13px; line-height:1.5; }
  .cms-catalog { display:block; border-left:1px solid var(--gaf-line); }
  .cms-catalog__item { min-height:520px; }
  .cms-catalog__visual { min-height:280px; }
  .cms-catalog__meta h2 { font-size:30px; }
  .cms-catalog--bundles .cms-catalog__item,
  .cms-catalog--bundles .cms-catalog__item--layout-full { min-height:0; }
  .cms-catalog__item--bundle .cms-catalog__visual { aspect-ratio:1; margin:20px 0; }
  .cms-catalog__item--bundle .cms-catalog__visual { min-height:330px; }
  .cms-bundle-packshots { width:100%; padding-inline:4px; }
  .cms-bundle-packshot { width:46%; margin:0 -5%; }
  .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshots {
    width:112%;
    transform:translateX(-5.5%);
  }
  .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot {
    width:23%;
    margin:0 -2.5%;
  }
  .cms-catalog__item--bundle .cms-catalog__top span:last-child { max-width:58%; }
  .cms-detail__visual { min-height:560px; }
  .cms-detail__visual img { width:min(68%,300px); max-height:420px; }
  .cms-detail--bundle .cms-detail__visual { min-height:520px; }
  .cms-detail--bundle .cms-bundle-packshots {
    inset:8% 1% 8%;
    width:auto;
    height:auto;
    padding:0;
  }
  .cms-detail--bundle .cms-bundle-packshot { width:48%; height:88%; margin:0 -6%; transform:none; }
  .cms-detail--bundle .cms-bundle-packshot img { transform:scale(1.18); }
  .cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshots {
    width:112%;
    transform:translateX(-5.5%);
  }
  .cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot {
    width:23%;
    margin:0 -2.5%;
  }
  .cms-detail--bundle .cms-bundle-visual[data-bundle-count="5"] .cms-bundle-packshot img {
    transform:scale(1.02);
  }
  .cms-detail__copy { padding:70px 20px 90px; }
  .cms-detail h1 { font-size:clamp(52px,16vw,82px); }
  .cms-article__hero h1 { font-size:clamp(48px,15vw,68px); line-height:.88; letter-spacing:-.068em; }
  .cms-article__hero h1.cms-article__title--long { font-size:clamp(44px,13.5vw,54px); line-height:.92; letter-spacing:-.06em; }
  .cms-detail__trust { grid-template-columns:1fr; }
  .cms-detail__trust-item, .cms-detail__trust-item + .cms-detail__trust-item { grid-template-columns:24px 1fr; padding:14px 0; border-right:0; border-bottom:1px solid var(--gaf-line); }
  .cms-detail__trust-item:last-child { border-bottom:0; }
  .cms-journal-list__item { grid-template-columns:1fr 48px; padding:26px 0; }
  .cms-journal-list__index { position:absolute; top:39px; left:14px; z-index:2; color:white; }
  .cms-journal-list__visual { grid-column:1/-1; height:230px; }
  .cms-journal-list__copy { grid-column:1; }
  .cms-journal-list__arrow { grid-column:2; grid-row:2; }
  .cms-journal-list__copy h2 { font-size:38px; }
  .cms-article__hero { min-height:clamp(590px,74svh,650px); padding:calc(var(--gaf-header-h) + 36px) 0 34px; }
  .cms-article__hero-inner { gap:24px; }
  .cms-article__lead { font-size:15px; line-height:1.5; }
  .cms-article__meta { margin-top:18px; padding-top:12px; }
  .cms-article__body { width:calc(100% - 36px); }
  .cms-article__figure { margin-right:-18px; margin-left:-18px; }
  .cms-article__figure figcaption { padding-right:14px; padding-left:14px; }
  .cms-article__contents { padding:24px 20px; }
  .cms-article__callout { grid-template-columns:1fr; }
  .cms-article__body > blockquote { padding-left:50px; }
  .cms-article__sources { padding:26px 20px; }
  .cms-article__sources a { grid-template-columns:30px 1fr auto; }
  .cms-article__actions--story { grid-template-columns:1fr; padding:26px 20px; }
  .cms-article__actions--story .cms-article__product { width:100%; }
  .cms-article__return { justify-content:flex-start; }
  .cms-article__related-grid { grid-template-columns:1fr; }
  .cms-article__related-card { min-height:390px; }
  body.is-product-detail { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .gaf-cart-add.cms-mobile-cart-add {
    position:fixed;
    z-index:80;
    right:14px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    left:14px;
    width:auto;
    max-width:none;
    min-height:56px;
    display:flex;
    margin:0;
    box-shadow:0 14px 35px rgba(10,32,24,.28);
  }
  .cms-mobile-cart-add__price { margin-left:auto; color:rgba(255,255,255,.66); font-size:11px; font-weight:400; white-space:nowrap; }
  .gaf-cart-add.cms-mobile-cart-add:hover .cms-mobile-cart-add__price,
  .gaf-cart-add.cms-mobile-cart-add.is-added .cms-mobile-cart-add__price { color:rgba(10,32,24,.62); }
  html.gaf-cart-is-open .cms-mobile-cart-add { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  .cms-catalog__add::before,
  .cms-journal-list__item::before,
  .cms-journal-list__visual img,
  .cms-journal-list__arrow,
  .cms-article__related-card img,
  .cms-article__related-card i,
  .cms-article__source-arrow,
  .cms-article__product { transition:none; }
  .cms-catalog-nav a,
  .cms-bundle-packshots,
  .cms-bundle-packshot img { transition:none; }
}
