/* ==========================================================================
   GETALINK — Directory theme (Phase 1)
   Design language adapted from the Markency reference: warm cream canvas,
   ink typography with tight tracking, signature orange, deep forest + butter
   accents, square geometry with chamfered notches, [ bracket ] links.
   Loaded ONLY by: index, category-listing, category-single-listing,
   single-listing. Other pages keep theme-wellnest.css untouched.
   ========================================================================== */

/* 1. TOKENS ---------------------------------------------------------------- */
:root {
  --gl-cream: #fcfcf2;
  --gl-cream-2: #f3f1e2;
  --gl-paper: #ffffff;
  --gl-ink: #121212;
  --gl-ink-2: #222222;
  --gl-text: rgba(18, 18, 18, 0.76);
  --gl-mute: rgba(18, 18, 18, 0.56);
  --gl-line: rgba(18, 18, 18, 0.14);
  --gl-line-2: rgba(18, 18, 18, 0.08);
  --gl-orange: #e5652e;
  --gl-orange-d: #c9521f;
  --gl-orange-t: rgba(229, 101, 46, 0.12);
  --gl-forest: #1a4131;
  --gl-forest-d: #133326;
  --gl-butter: #ffdd99;
  --gl-on-dark: #fcfcf2;
  --gl-on-dark-2: rgba(252, 252, 242, 0.72);
  --gl-line-dark: rgba(252, 252, 242, 0.16);

  --gl-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --gl-fs-display: clamp(3rem, 1.1rem + 7.4vw, 7.6rem);
  --gl-fs-h1: clamp(2.6rem, 1.2rem + 5.4vw, 6rem);
  --gl-fs-h2: clamp(2.2rem, 1.1rem + 3.9vw, 4.6rem);
  --gl-fs-h3: clamp(1.25rem, 1rem + 0.8vw, 1.75rem);
  --gl-fs-lead: clamp(1.05rem, 0.98rem + 0.35vw, 1.25rem);

  --gl-wrap: 1320px;
  --gl-gutter: clamp(16px, 4vw, 40px);
  --gl-sec: clamp(76px, 9vw, 140px);
  --gl-header-h: 76px;
  --gl-notch: 22px;

  --gl-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --gl-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --gl-shadow: 0 1px 0 rgba(18, 18, 18, 0.04), 0 18px 40px -22px rgba(18, 18, 18, 0.28);
  --gl-shadow-lg: 0 30px 70px -30px rgba(18, 18, 18, 0.4);
}

/* 2. BASE ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--gl-header-h) + 16px); }
body.gl {
  margin: 0;
  background: var(--gl-cream);
  color: var(--gl-text);
  font-family: var(--gl-font);
  font-size: 17px;
  line-height: 1.6;
  letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
.gl img, .gl svg, .gl iframe { display: block; max-width: 100%; }
.gl img { height: auto; }
.gl a { color: inherit; text-decoration: none; }
.gl button, .gl input, .gl select, .gl textarea { font: inherit; color: inherit; letter-spacing: inherit; }
.gl button { cursor: pointer; }
.gl h1, .gl h2, .gl h3, .gl h4, .gl h5, .gl h6 { margin: 0; color: var(--gl-ink); font-weight: 600; line-height: 1.04; letter-spacing: -0.045em; }
.gl p { margin: 0; }
.gl ul { margin: 0; padding: 0; list-style: none; }
.gl address { font-style: normal; }
.gl ::selection { background: var(--gl-orange); color: #fff; }
.gl :focus-visible { outline: 2px solid var(--gl-orange); outline-offset: 3px; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 300; padding: 10px 16px; background: var(--gl-ink); color: var(--gl-cream) !important; font-weight: 600; transition: top 0.2s; }
.skip-link:focus { top: 12px; }

.gl-wrap, .x-container { width: 100%; max-width: calc(var(--gl-wrap) + var(--gl-gutter) * 2); margin-inline: auto; padding-inline: var(--gl-gutter); }
.gl-sec { padding-block: var(--gl-sec); position: relative; }

/* 3. TYPE PRIMITIVES -------------------------------------------------------- */
.gl-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 14px; font-weight: 500; letter-spacing: -0.01em; color: var(--gl-ink); }
.gl-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gl-orange); flex: none; box-shadow: 0 0 0 0 rgba(229, 101, 46, 0.45); animation: gl-ping 2.4s var(--gl-ease) infinite; }
.gl-on-dark .gl-eyebrow, .gl-eyebrow.is-light { color: var(--gl-on-dark); }
.gl-h2 { font-size: var(--gl-fs-h2); letter-spacing: -0.055em; line-height: 0.98; }
.gl-h2 em, .gl-h1 em, .gl-display em { font-style: normal; color: var(--gl-orange); }
.gl-lead { font-size: var(--gl-fs-lead); line-height: 1.55; color: var(--gl-text); max-width: 46ch; }
.gl-on-dark { color: var(--gl-on-dark-2); }
.gl-on-dark h1, .gl-on-dark h2, .gl-on-dark h3, .gl-on-dark h4 { color: var(--gl-on-dark); }
.gl-on-dark .gl-lead { color: var(--gl-on-dark-2); }

.gl-head { display: grid; gap: 24px 48px; margin-bottom: clamp(40px, 5vw, 72px); }
@media (min-width: 900px) {
  .gl-head--split { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: end; }
  .gl-head--split .gl-head__side { justify-self: end; max-width: 420px; display: grid; gap: 20px; }
}

/* 4. BUTTONS & LINKS -------------------------------------------------------- */
.gl-btn {
  --bg: var(--gl-orange); --fg: #fff; --bd: var(--gl-orange);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 0 24px; border: 1px solid var(--bd); background: var(--bg); color: var(--fg) !important;
  font-size: 15px; font-weight: 600; letter-spacing: -0.02em; line-height: 1; white-space: nowrap;
  overflow: hidden; isolation: isolate; transition: color 0.35s var(--gl-ease), border-color 0.35s var(--gl-ease), transform 0.35s var(--gl-ease);
}
.gl-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gl-ink); transform: translateY(101%); transition: transform 0.5s var(--gl-ease); }
.gl-btn:hover::before, .gl-btn:focus-visible::before { transform: translateY(0); }
.gl-btn:hover { border-color: var(--gl-ink); }
.gl-btn__label { position: relative; display: inline-block; overflow: hidden; height: 1.15em; line-height: 1.15; }
.gl-btn__label > span { display: block; transition: transform 0.5s var(--gl-ease); }
.gl-btn__label > span + span { position: absolute; left: 0; top: 100%; }
.gl-btn:hover .gl-btn__label > span, .gl-btn:focus-visible .gl-btn__label > span { transform: translateY(-100%); }
.gl-btn__icon { display: inline-grid; place-items: center; width: 18px; height: 18px; transition: transform 0.45s var(--gl-ease); }
.gl-btn__icon svg { width: 18px; height: 18px; }
.gl-btn:hover .gl-btn__icon { transform: translateX(3px) rotate(-45deg); }
.gl-btn--dark { --bg: var(--gl-ink); --bd: var(--gl-ink); }
.gl-btn--dark::before { background: var(--gl-orange); }
.gl-btn--dark:hover { border-color: var(--gl-orange); }
.gl-btn--ghost { --bg: transparent; --fg: var(--gl-ink); --bd: var(--gl-line); }
.gl-btn--ghost:hover { --fg: #fff; }
.gl-btn--light { --bg: var(--gl-cream); --fg: var(--gl-ink); --bd: var(--gl-cream); }
.gl-btn--light:hover { --fg: #fff; border-color: var(--gl-orange); }
.gl-btn--light::before { background: var(--gl-orange); }
.gl-btn--ghost-light { --bg: transparent; --fg: var(--gl-on-dark); --bd: var(--gl-line-dark); }
.gl-btn--ghost-light::before { background: var(--gl-cream); }
.gl-btn--ghost-light:hover { --fg: var(--gl-ink); border-color: var(--gl-cream); }
.gl-btn--sm { min-height: 44px; padding: 0 18px; font-size: 14px; }
.gl-btn--block { width: 100%; }

/* [ bracket ] text link — the reference's signature */
.gl-link { white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--gl-ink); letter-spacing: -0.02em; }
.gl-link__txt::before { content: "[\00a0"; transition: margin 0.4s var(--gl-ease), color 0.3s; }
.gl-link__txt::after { content: "\00a0]"; transition: margin 0.4s var(--gl-ease), color 0.3s; }
.gl-link__arr { display: inline-block; transition: transform 0.4s var(--gl-ease); }
.gl-link:hover { color: var(--gl-orange); }
.gl-link:hover .gl-link__txt::before { margin-right: 4px; }
.gl-link:hover .gl-link__txt::after { margin-left: 4px; }
.gl-link:hover .gl-link__arr { transform: translateX(5px); }
.gl-on-dark .gl-link { color: var(--gl-on-dark); }
.gl-on-dark .gl-link:hover { color: var(--gl-butter); }

/* 5. HEADER ---------------------------------------------------------------- */
.gl-header {
  position: fixed; inset: 0 0 auto; z-index: 100; height: var(--gl-header-h);
  background: rgba(252, 252, 242, 0); border-bottom: 1px solid transparent;
  transition: transform 0.5s var(--gl-ease), background 0.35s, border-color 0.35s, backdrop-filter 0.35s;
}
.gl-header.is-scrolled { background: rgba(252, 252, 242, 0.86); border-bottom-color: var(--gl-line-2); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.gl-header.is-hidden { transform: translateY(-100%); }
.gl-header .header-main { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.gl-header .logo { display: block; flex: none; }
.gl-header .logo img { width: auto; height: 34px; }
.gl-header .main-menu { display: none; }
.gl-header .main-menu ul { display: flex; gap: clamp(8px, 1.6vw, 28px); }
.gl-header .main-menu a { position: relative; display: inline-flex; align-items: center; padding: 8px 2px; font-size: 15px; font-weight: 500; color: var(--gl-ink); letter-spacing: -0.02em; }
.gl-header .main-menu a::before, .gl-header .main-menu a::after { color: var(--gl-mute); transition: margin 0.4s var(--gl-ease), color 0.3s; }
.gl-header .main-menu a::before { content: "[\00a0"; }
.gl-header .main-menu a::after { content: "\00a0]"; }
.gl-header .main-menu a:hover::before, .gl-header .main-menu a.active::before { margin-right: 3px; color: var(--gl-orange); }
.gl-header .main-menu a:hover::after, .gl-header .main-menu a.active::after { margin-left: 3px; color: var(--gl-orange); }
.gl-header .main-menu a.active { color: var(--gl-orange); }
.gl-header .header-tools { display: flex; align-items: center; gap: 12px; }
.gl-header .header-quote { min-height: 44px; padding: 0 18px; font-size: 14px; }
.menu-icon { position: relative; width: 44px; height: 44px; border: 1px solid var(--gl-line); background: transparent; display: grid; place-items: center; }
.menu-icon span, .menu-icon span::before, .menu-icon span::after { display: block; width: 20px; height: 2px; background: var(--gl-ink); transition: transform 0.4s var(--gl-ease); }
.menu-icon span { position: relative; }
.menu-icon span::before, .menu-icon span::after { content: ""; position: absolute; left: 0; }
.menu-icon span::before { top: -6px; }
.menu-icon span::after { top: 6px; width: 13px; }
.menu-icon:hover span::after { width: 20px; }
@media (min-width: 1024px) {
  .gl-header .main-menu { display: block; }
  .menu-icon { display: none; }
}
@media (max-width: 520px) {
  .gl-header .header-quote { display: none; }
  .gl-header .logo img { height: 28px; }
}

/* Mobile panel (main.js toggles body.menu-open) */
.mobile-panel {
  position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column; gap: 32px;
  padding: 22px var(--gl-gutter) 40px; background: var(--gl-forest); color: var(--gl-on-dark);
  clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path 0.7s var(--gl-ease-io), visibility 0s linear 0.7s; overflow-y: auto;
}
body.menu-open { overflow: hidden; }
body.menu-open .mobile-panel { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path 0.7s var(--gl-ease-io), visibility 0s; }
.mobile-panel__brand img { height: 30px; width: auto; }
.mobile-panel .close-menu { position: absolute; right: var(--gl-gutter); top: 16px; width: 48px; height: 48px; border: 1px solid var(--gl-line-dark); background: transparent; color: var(--gl-on-dark); font-size: 28px; line-height: 1; }
.mobile-panel nav { display: grid; counter-reset: mp; border-top: 1px solid var(--gl-line-dark); margin-top: 24px; }
.mobile-panel nav a { counter-increment: mp; display: flex; align-items: baseline; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--gl-line-dark); font-size: clamp(30px, 8vw, 44px); font-weight: 500; letter-spacing: -0.05em; color: var(--gl-on-dark); opacity: 0; transform: translateY(24px); transition: opacity 0.5s, transform 0.6s var(--gl-ease), color 0.3s; }
.mobile-panel nav a::before { content: "0" counter(mp); font-size: 13px; letter-spacing: 0; color: var(--gl-butter); font-weight: 500; }
.mobile-panel nav a:hover { color: var(--gl-butter); }
body.menu-open .mobile-panel nav a { opacity: 1; transform: none; }
body.menu-open .mobile-panel nav a:nth-child(2) { transition-delay: 0.05s; }
body.menu-open .mobile-panel nav a:nth-child(3) { transition-delay: 0.1s; }
body.menu-open .mobile-panel nav a:nth-child(4) { transition-delay: 0.15s; }
body.menu-open .mobile-panel nav a:nth-child(5) { transition-delay: 0.2s; }
body.menu-open .mobile-panel nav a:nth-child(6) { transition-delay: 0.25s; }
.mobile-panel__cta { margin-top: auto; display: grid; gap: 12px; }

.back-to-top { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 48px; height: 48px; border: 1px solid var(--gl-orange); background: var(--gl-cream); color: var(--gl-orange); font-size: 18px; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity 0.3s, transform 0.4s var(--gl-ease), background 0.3s, color 0.3s; }
.back-to-top.show { opacity: 1; transform: none; pointer-events: auto; }
.back-to-top:hover { background: var(--gl-orange); color: #fff; }

/* 6. SEARCH ---------------------------------------------------------------- */
.gl-search {
  position: relative; display: grid; grid-template-columns: 1fr; background: var(--gl-paper);
  border: 1px solid var(--gl-line); box-shadow: var(--gl-shadow-lg);
}
.gl-search .field { position: relative; display: grid; align-content: center; gap: 2px; padding: 14px 20px 14px 54px; min-height: 76px; border-bottom: 1px solid var(--gl-line-2); transition: background 0.3s; }
.gl-search .field:focus-within { background: #fffaf3; }
.gl-search .field > svg { position: absolute; left: 20px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--gl-orange); }
.gl-search label { font-size: 12px; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; color: var(--gl-mute); }
.gl-search input, .gl-search select { width: 100%; border: 0; background: transparent; padding: 0; font-size: 17px; font-weight: 500; color: var(--gl-ink); outline: none; appearance: none; -webkit-appearance: none; text-overflow: ellipsis; }
.gl-search input::placeholder { color: rgba(18, 18, 18, 0.45); }
.gl-search select { padding-right: 24px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23121212' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 2px center; cursor: pointer; }
.gl-search button[type="submit"] { min-height: 64px; margin: 8px; }
@media (min-width: 760px) {
  .gl-search { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; align-items: stretch; }
  .gl-search .field { border-bottom: 0; border-right: 1px solid var(--gl-line-2); }
  .gl-search button[type="submit"] { min-height: auto; padding-inline: 34px; }
}
.gl-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 18px; font-size: 14px; color: var(--gl-mute); }
.gl-quick a { padding: 6px 12px; border: 1px solid var(--gl-line); color: var(--gl-ink); font-weight: 500; transition: background 0.3s, color 0.3s, border-color 0.3s; }
.gl-quick a:hover { background: var(--gl-ink); border-color: var(--gl-ink); color: var(--gl-cream); }

/* 7. HOME HERO ------------------------------------------------------------- */
.gl-hero { position: relative; padding-top: calc(var(--gl-header-h) + clamp(28px, 5vw, 64px)); background:
  radial-gradient(60% 50% at 85% 0%, rgba(255, 221, 153, 0.45), transparent 70%),
  radial-gradient(40% 40% at 0% 20%, rgba(229, 101, 46, 0.08), transparent 70%), var(--gl-cream); }
.gl-hero__top { display: grid; gap: 0; }
.gl-hero h1 { font-size: var(--gl-fs-display); font-weight: 700; letter-spacing: -0.065em; line-height: 0.92; }
.gl-hero h1 .gl-h-row { display: block; }
.gl h1 em, .gl h2 em { font-style: normal; color: var(--gl-orange); }
.gl-hero__row { display: grid; gap: 28px 56px; align-items: start; margin-top: clamp(28px, 3.6vw, 48px); }
@media (min-width: 1100px) { .gl-hero__row { grid-template-columns: minmax(0, 1fr) 340px; } }
.gl-hero__side { display: grid; gap: 20px; max-width: 440px; }
.gl-hero__side p { font-size: var(--gl-fs-lead); line-height: 1.5; }
.gl-hero__avatars { display: flex; align-items: center; gap: 14px; font-size: 14px; color: var(--gl-mute); }
.gl-hero__avatars span { display: flex; flex: none; padding-left: 10px; }
.gl-hero__avatars img { width: 40px; height: 40px; border-radius: 50%; border: 2px solid var(--gl-cream); object-fit: cover; margin-left: -10px; }
.gl-hero__avatars p { font-size: 14px !important; }
.gl-hero__avatars b { color: var(--gl-ink); }
.gl-hero__search { position: relative; z-index: 3; min-width: 0; }
.gl-hero__stage { position: relative; margin-top: clamp(36px, 4vw, 56px); }
.gl-hero__media { position: relative; height: clamp(340px, 46vw, 640px); overflow: hidden; background: var(--gl-ink);
  clip-path: polygon(0 0, 100% 0, 100% 100%, calc(62% + 34px) 100%, 62% calc(100% - 34px), 0 calc(100% - 34px)); }
.gl-hero__media img { width: 100%; height: 118%; object-fit: cover; object-position: center 35%; will-change: transform; }
.gl-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,18,18,0.25), transparent 35%, transparent 60%, rgba(18,18,18,0.35)); pointer-events: none; }
.gl-hero__float { position: absolute; right: clamp(16px, 3vw, 40px); bottom: clamp(56px, 6vw, 84px); z-index: 2; display: grid; gap: 4px; width: min(300px, calc(100% - 32px)); padding: 18px 20px; background: rgba(252, 252, 242, 0.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--gl-ink); box-shadow: var(--gl-shadow); }
.gl-hero__float strong { display: flex; align-items: center; gap: 10px; font-size: 15px; letter-spacing: -0.02em; }
.gl-hero__float small { font-size: 13px; color: var(--gl-mute); }
@media (max-width: 639px) { .gl-hero__float { display: none; } }
.gl-hero__float .gl-live { width: 8px; height: 8px; border-radius: 50%; background: #2fb36d; box-shadow: 0 0 0 4px rgba(47, 179, 109, 0.18); animation: gl-ping-g 2s infinite; }
.gl-hero__float .gl-stars { color: var(--gl-orange); letter-spacing: 2px; font-size: 14px; }
.gl-badge { position: absolute; left: clamp(16px, 4vw, 48px); bottom: -6px; z-index: 4; width: clamp(118px, 13vw, 170px); aspect-ratio: 1; border-radius: 50%; background: var(--gl-butter); display: grid; place-items: center; box-shadow: 0 20px 40px -20px rgba(18,18,18,0.45); }
.gl-badge svg.gl-badge__ring { position: absolute; inset: 8%; width: 84%; height: 84%; animation: gl-spin 18s linear infinite; }
.gl-badge svg.gl-badge__ring text { font-size: 9.6px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; fill: var(--gl-ink); }
.gl-badge__core { width: 34%; height: 34%; color: var(--gl-ink); }
.gl-badge--forest { background: var(--gl-forest); }
.gl-badge--forest svg.gl-badge__ring text { fill: var(--gl-cream); }
.gl-badge--forest .gl-badge__core { color: var(--gl-butter); }

.gl-stats { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); margin-top: clamp(40px, 5vw, 64px); }
.gl-stat { position: relative; display: grid; gap: 6px; padding: clamp(22px, 3vw, 36px) clamp(4px, 2vw, 32px); border-bottom: 1px solid var(--gl-line); isolation: isolate; transition: color 0.4s; }
.gl-stat:last-child { border-bottom: 0; }
.gl-stat::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gl-ink); transform: scaleY(0); transform-origin: bottom; transition: transform 0.55s var(--gl-ease); }
.gl-stat strong { font-size: clamp(2.6rem, 1.6rem + 3vw, 4.4rem); font-weight: 600; letter-spacing: -0.06em; line-height: 1; color: var(--gl-ink); transition: color 0.4s; font-variant-numeric: tabular-nums; }
.gl-stat small { font-size: 15px; color: var(--gl-text); transition: color 0.4s; max-width: 30ch; }
.gl-stat em { font-style: normal; font-size: 14px; font-weight: 600; color: var(--gl-orange); }
.gl-stat:hover::before { transform: scaleY(1); }
.gl-stat:hover strong, .gl-stat:hover small { color: var(--gl-cream); }
.gl-stat:hover em { color: var(--gl-butter); }
@media (min-width: 760px) {
  .gl-stats { grid-template-columns: repeat(3, 1fr); }
  .gl-stat { border-bottom: 0; border-right: 1px solid var(--gl-line); }
  .gl-stat:last-child { border-right: 0; }
}

/* 8. MARQUEE --------------------------------------------------------------- */
.gl-marquee { position: relative; z-index: 2; background: var(--gl-butter); color: var(--gl-ink); overflow: hidden; padding-block: clamp(14px, 2vw, 22px);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--gl-notch)), calc(100% - 36px) 100%, calc(70% + 36px) 100%, 70% calc(100% - var(--gl-notch)), 0 calc(100% - var(--gl-notch))); padding-bottom: calc(clamp(14px, 2vw, 22px) + var(--gl-notch)); margin-bottom: calc(var(--gl-notch) * -1); }
.gl-marquee__track { display: flex; width: max-content; animation: gl-marquee 38s linear infinite; }
.gl-marquee:hover .gl-marquee__track { animation-play-state: paused; }
.gl-marquee__group { display: flex; align-items: center; gap: clamp(20px, 3vw, 44px); padding-right: clamp(20px, 3vw, 44px); }
.gl-marquee__item { font-size: clamp(26px, 1.4rem + 2.2vw, 50px); font-weight: 600; letter-spacing: -0.05em; white-space: nowrap; line-height: 1.1; }
.gl-marquee__star { width: clamp(22px, 2.6vw, 38px); height: auto; color: var(--gl-ink); flex: none; animation: gl-spin 9s linear infinite; }

/* 9. CATEGORY CARDS (home, forest section) --------------------------------- */
.gl-forest { background: var(--gl-forest); }
.gl-cat-grid { display: grid; grid-template-columns: 1fr; gap: clamp(28px, 3vw, 40px) clamp(18px, 2vw, 28px); }
@media (max-width: 639px) {
  .gl-cat-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--gl-gutter) * -1); padding: 0 var(--gl-gutter) 8px; scroll-padding-inline: var(--gl-gutter); scrollbar-width: none; }
  .gl-cat-grid::-webkit-scrollbar { display: none; }
  .gl-catcard { scroll-snap-align: start; }
}
@media (min-width: 640px) { .gl-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gl-cat-grid { grid-template-columns: repeat(3, 1fr); } }
.gl-catcard { position: relative; display: grid; gap: 18px; color: var(--gl-on-dark); }
.gl-catcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gl-forest-d); }
.gl-catcard__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.1s var(--gl-ease), filter 0.6s; filter: saturate(0.92); }
.gl-catcard__band { position: absolute; left: -2%; right: -2%; top: 50%; padding: 12px 0; background: var(--gl-orange); color: #fff; transform: translateY(-50%) rotate(-4deg) scaleY(0); transition: transform 0.6s var(--gl-ease); overflow: hidden; }
.gl-catcard__band span { display: flex; width: max-content; gap: 22px; font-size: 18px; font-weight: 600; letter-spacing: -0.03em; white-space: nowrap; animation: gl-marquee 9s linear infinite; }
.gl-catcard__band span i { font-style: normal; opacity: 0.7; }
.gl-catcard:hover .gl-catcard__media img, .gl-catcard:focus-visible .gl-catcard__media img { transform: scale(1.1); filter: saturate(1.05); }
.gl-catcard:hover .gl-catcard__band, .gl-catcard:focus-visible .gl-catcard__band { transform: translateY(-50%) rotate(-4deg) scaleY(1); }
.gl-catcard__count { position: absolute; left: 14px; top: 14px; padding: 6px 10px; background: var(--gl-cream); color: var(--gl-ink); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; }
.gl-catcard__body { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: start; padding-top: 18px; border-top: 1px solid var(--gl-line-dark); }
.gl-catcard__num { font-size: 13px; font-weight: 500; color: var(--gl-butter); padding-top: 6px; }
.gl-catcard h3 { font-size: var(--gl-fs-h3); color: var(--gl-on-dark); letter-spacing: -0.04em; line-height: 1.12; }
.gl-catcard__go { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--gl-line-dark); color: var(--gl-on-dark); transition: background 0.35s, border-color 0.35s, color 0.35s, transform 0.5s var(--gl-ease); }
.gl-catcard__go svg { width: 18px; height: 18px; }
.gl-catcard:hover .gl-catcard__go { background: var(--gl-orange); border-color: var(--gl-orange); transform: rotate(45deg); }
.gl-sec__foot { margin-top: clamp(40px, 5vw, 64px); display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; justify-content: space-between; padding-top: 28px; border-top: 1px solid var(--gl-line-dark); }
.gl-sec__foot p { max-width: 52ch; }
.gl-sec__foot--light { border-top-color: var(--gl-line); }

/* 10. ABOUT (Markency "Visual Identity" layout) ---------------------------- */
.gl-about { background: radial-gradient(70% 60% at 0% 0%, rgba(255, 221, 153, 0.22), transparent 70%), var(--gl-cream); }
.gl-about__layout { display: grid; gap: 28px 64px; }
@media (min-width: 1000px) { .gl-about__layout { grid-template-columns: minmax(0, 0.62fr) minmax(0, 1fr); } }
.gl-about__aside { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.gl-about__aside .gl-eyebrow { margin: 0; }
.gl-about__since { font-size: clamp(1.25rem, 1rem + 0.6vw, 1.6rem); font-weight: 500; letter-spacing: -0.035em; color: var(--gl-ink); }
@media (max-width: 999px) { .gl-about__since { display: none; } }
.gl-about__lead { font-size: clamp(1.7rem, 1rem + 2vw, 2.65rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.12; color: var(--gl-ink); }
.gl-about__lead .w { opacity: var(--o, 1); transition: opacity 0.2s linear; }
.gl-about__row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 1.8vw, 24px); align-items: end; margin-top: clamp(44px, 7vw, 100px); }
@media (min-width: 760px) { .gl-about__row { grid-template-columns: minmax(0, 196px) minmax(0, 196px) minmax(0, 1fr); } }
.gl-about__shot { position: relative; margin: 0; aspect-ratio: 1; overflow: hidden; background: var(--gl-cream-2); }
.gl-about__shot img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--gl-ease), clip-path 1.3s var(--gl-ease-io); }
.gl-about__shot:hover img { transform: scale(1.07); }
.gl-about__shot:nth-child(2) > img { transition-delay: 0.15s; }
.gl-about__team { grid-column: 1 / -1; display: grid; gap: 16px; align-content: end; padding-left: clamp(0px, 1vw, 12px); }
@media (min-width: 760px) { .gl-about__team { grid-column: auto; } }
.gl-about__faces { display: flex; align-items: center; padding-left: 10px; }
.gl-about__faces > * { width: 52px; height: 52px; border-radius: 50%; border: 3px solid var(--gl-cream); margin-left: -12px; object-fit: cover; flex: none; transition: transform 0.4s var(--gl-ease); }
.gl-about__faces > *:hover { transform: translateY(-4px); }
.gl-about__plus { display: grid; place-items: center; background: var(--gl-butter); color: var(--gl-ink) !important; font-size: 26px; font-weight: 300; line-height: 1; }
.gl-about__plus:hover { background: var(--gl-orange); color: #fff !important; }
.gl-about__team p { font-size: 16px; line-height: 1.6; max-width: 40ch; }
.gl-about__stats { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: clamp(56px, 7vw, 96px); border-top: 1px solid var(--gl-line); border-left: 1px solid var(--gl-line); }
@media (min-width: 900px) { .gl-about__stats { grid-template-columns: repeat(4, 1fr); } }
.gl-about__stats > div { display: grid; gap: 10px; padding: clamp(22px, 3vw, 40px) clamp(16px, 2vw, 28px); border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); }
.gl-about__stats h3 { font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.8rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1; font-variant-numeric: tabular-nums; }
.gl-about__stats span { font-size: 15px; }
.gl-check { display: grid; gap: 10px; margin: 6px 0 10px; }
.gl-check li { position: relative; padding-left: 30px; font-size: 15px; color: var(--gl-ink); }
.gl-check li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: var(--gl-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.gl-on-dark .gl-check li { color: var(--gl-on-dark); }

/* 11. PROCESS -------------------------------------------------------------- */
.gl-cream2 { background: var(--gl-cream-2); }
.gl-steps { display: grid; gap: 0; counter-reset: st; border-top: 1px solid var(--gl-line); }
@media (min-width: 900px) { .gl-steps { grid-template-columns: repeat(3, 1fr); } }
.gl-step { position: relative; padding: 32px clamp(0px, 2vw, 32px) 36px 0; display: grid; gap: 14px; align-content: start; border-bottom: 1px solid var(--gl-line); }
@media (min-width: 900px) { .gl-step { border-bottom: 0; border-right: 1px solid var(--gl-line); padding-left: clamp(0px, 2vw, 32px); } .gl-step:first-child { padding-left: 0; } .gl-step:last-child { border-right: 0; } }
.gl-step::before { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 100%; background: var(--gl-orange); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--gl-ease) calc(var(--i, 0) * 0.2s); }
.gl-step.in-view::before { transform: scaleX(1); }
.gl-step__no { font-size: 13px; font-weight: 600; color: var(--gl-orange); letter-spacing: 0.02em; }
.gl-step__icon { width: 56px; height: 56px; display: grid; place-items: center; background: var(--gl-ink); color: var(--gl-butter); }
.gl-step__icon svg { width: 26px; height: 26px; }
.gl-step h3 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); letter-spacing: -0.05em; }
.gl-step p { font-size: 15.5px; max-width: 34ch; }

/* 12. LISTING DECK (home "Popular Profiles") ------------------------------
   Pinned card deck adapted from the Markency "Our Best Work" section: the
   stage pins while the track scrolls; the top card slides off (alternating
   left / right) and the fanned card beneath straightens into place.
   Without JS or with reduced motion it degrades to a plain vertical list. */
.gl-deck-sec { overflow-x: clip; }
.gl-deck__head { display: grid; gap: 20px 48px; align-items: end; margin-bottom: clamp(24px, 3vw, 40px); }
@media (min-width: 900px) { .gl-deck__head { grid-template-columns: 1fr 360px; } }
.gl-deck__title { font-size: clamp(3rem, 1rem + 6.4vw, 6.2rem); font-weight: 600; letter-spacing: -0.065em; line-height: 0.95; }
.gl-deck__side { display: grid; gap: 16px; font-size: 16px; padding-bottom: 8px; }
.gl-deck__cards { display: grid; gap: 24px; }
.gl-deck__progress { display: none; }

.gl-dcard { --fg: var(--gl-ink); --fg-2: var(--gl-text); --ln: var(--gl-line); background: var(--gl-cream); border: 1px solid var(--gl-line); color: var(--fg-2); transform-origin: 50% 50%; will-change: transform; }
.gl-dcard:nth-child(4n + 2) { --fg: var(--gl-on-dark); --fg-2: var(--gl-on-dark-2); --ln: var(--gl-line-dark); background: var(--gl-forest); border-color: var(--gl-forest); }
.gl-dcard:nth-child(4n + 4) { --fg: var(--gl-on-dark); --fg-2: var(--gl-on-dark-2); --ln: var(--gl-line-dark); background: var(--gl-ink); border-color: var(--gl-ink); }
.gl-dcard__inner { display: flex; flex-direction: column; gap: clamp(20px, 3vw, 40px); padding: clamp(16px, 2.8vw, 40px); height: 100%; }
.gl-dcard__media { position: relative; display: grid; place-items: center; aspect-ratio: 3 / 2; padding: 28px; overflow: hidden; flex: none; background-color: #fff;
  background-image: linear-gradient(var(--gl-line-2) 1px, transparent 1px), linear-gradient(90deg, var(--gl-line-2) 1px, transparent 1px); background-size: 28px 28px; }
.gl-dcard__media img { max-height: 46%; max-width: 78%; width: auto; object-fit: contain; transition: transform 0.9s var(--gl-ease); }
.gl-dcard__media.is-photo { padding: 0; }
.gl-dcard__media.is-photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; }
.gl-dcard__media:hover img { transform: scale(1.07); }
.gl-dcard__media .gl-chip { position: absolute; left: 14px; top: 14px; }
.gl-dcard__content { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; flex: 1; min-width: 0; }
.gl-dcard__no { display: flex; align-items: baseline; gap: 2px; color: var(--fg); }
.gl-dcard__no b { font-size: clamp(2.4rem, 1.6rem + 2vw, 3.3rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1; }
.gl-dcard__no span { font-size: 17px; color: var(--fg-2); }
.gl-dcard__details { display: grid; gap: 14px; }
.gl-dcard h3 { font-size: clamp(1.9rem, 1rem + 2.6vw, 3.25rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1; color: var(--fg); }
.gl-dcard h3 a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size 0.5s var(--gl-ease); }
.gl-dcard h3 a:hover { background-size: 100% 2px; }
.gl-dcard p { font-size: 17px; max-width: 46ch; }
.gl-dcard .gl-tags li { border-color: var(--ln); color: var(--fg); }
.gl-dcard .gl-link { color: var(--fg); align-self: flex-start; }
.gl-dcard .gl-link:hover { color: var(--gl-orange); }
.gl-dcard:nth-child(even) .gl-link:hover { color: var(--gl-butter); }
@media (min-width: 900px) {
  .gl-dcard__inner { flex-direction: row; align-items: stretch; }
  .gl-dcard__media { width: 44%; aspect-ratio: auto; min-height: 340px; }
}

/* pinned mode (enabled by getalink.js) */
.gl-deck.is-on { position: relative; }
.gl-deck.is-on .gl-deck__stage { position: sticky; top: var(--deck-top, 100px); padding: clamp(20px, 3vw, 44px) clamp(8px, 2vw, 30px) 0; }
.gl-deck.is-on .gl-deck__cards { gap: 0; }
.gl-deck.is-on .gl-dcard { grid-area: 1 / 1; }
.gl-deck.is-on .gl-deck__progress { display: flex; align-items: center; gap: 16px; margin-top: clamp(40px, 5vw, 72px); font-size: 14px; color: var(--gl-mute); }
.gl-deck__count, .gl-deck__hint { white-space: nowrap; }
@media (max-width: 599px) {
  .gl-dcard__media { aspect-ratio: 16 / 9; padding: 18px; }
  .gl-dcard .gl-tags { display: none; }
  .gl-dcard p { font-size: 15px; }
  .gl-dcard__content { gap: 14px; }
  .gl-deck__hint { font-size: 0; }
  .gl-deck__hint::after { font-size: 14px; }
}
.gl-deck__count b { color: var(--gl-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.gl-deck__bar { position: relative; flex: 0 1 220px; height: 2px; background: var(--gl-line); overflow: hidden; }
.gl-deck__bar i { position: absolute; inset: 0; background: var(--gl-orange); transform-origin: left; transform: scaleX(var(--p, 0)); }
.gl-deck__hint { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.gl-deck__hint::after { content: "\2193"; display: inline-block; animation: gl-bob 1.6s var(--gl-ease-io) infinite; color: var(--gl-orange); }
@keyframes gl-bob { 50% { transform: translateY(4px); } }
.gl-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-tags li { padding: 5px 11px; border: 1px solid var(--gl-line); font-size: 13px; font-weight: 500; color: var(--gl-ink); }
.gl-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; background: var(--gl-ink); color: var(--gl-cream); font-size: 12.5px; font-weight: 600; letter-spacing: 0; line-height: 1; }
.gl-chip--orange { background: var(--gl-orange); color: #fff; }
.gl-chip--butter { background: var(--gl-butter); color: var(--gl-ink); }
.gl-chip--line { background: transparent; color: var(--gl-ink); border: 1px solid var(--gl-line); }

/* 13. PROMO (for business owners) ----------------------------------------- */
.gl-promo { background: var(--gl-butter); clip-path: polygon(0 var(--gl-notch), 22% var(--gl-notch), calc(22% + 36px) 0, 100% 0, 100% 100%, 0 100%); }
.gl-promo__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 980px) { .gl-promo__grid { grid-template-columns: 1fr 1fr; gap: 72px; } }
.gl-promo .gl-check li::before { background-color: var(--gl-ink); }
.gl-promo__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; }
.gl-promo__visual { position: relative; min-height: clamp(320px, 50vw, 480px); }
.gl-promo__visual > img { position: absolute; inset: 0 0 0 12%; width: 88%; height: 100%; object-fit: cover; }
.gl-profile-mock { position: absolute; left: 0; bottom: 32px; width: min(330px, 86%); background: var(--gl-paper); box-shadow: var(--gl-shadow-lg); padding: 20px; display: grid; gap: 14px; animation: gl-float 6s var(--gl-ease-io) infinite; }
.gl-profile-mock__top { display: flex; align-items: center; gap: 12px; }
.gl-profile-mock__logo { width: 52px; height: 52px; display: grid; place-items: center; background: var(--gl-forest); color: var(--gl-butter); font-weight: 700; font-size: 20px; letter-spacing: -0.05em; }
.gl-profile-mock strong { display: block; color: var(--gl-ink); font-size: 16px; letter-spacing: -0.03em; }
.gl-profile-mock small { color: var(--gl-mute); font-size: 13px; }
.gl-profile-mock__row { display: flex; gap: 8px; flex-wrap: wrap; }
.gl-profile-mock__bar { height: 6px; background: var(--gl-line-2); position: relative; overflow: hidden; }
.gl-profile-mock__bar i { position: absolute; inset: 0 auto 0 0; width: 92%; background: var(--gl-orange); transform-origin: left; animation: gl-grow 2.4s var(--gl-ease) both; }
.gl-profile-mock__meta { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--gl-mute); }

/* 14. TESTIMONIALS (structure + data attrs used by main.js) ---------------- */
.gl-tst__header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: clamp(36px, 4vw, 56px); }
.gl-tst__header h2 { max-width: 15ch; }
.gl-arrows { display: flex; gap: 10px; }
.gl-arrows button { width: 54px; height: 54px; border: 1px solid var(--gl-line); background: transparent; color: var(--gl-ink); font-size: 20px; transition: background 0.3s, color 0.3s, border-color 0.3s; }
.gl-arrows button:hover { background: var(--gl-orange); border-color: var(--gl-orange); color: #fff; }
.gl-tst__grid { display: grid; gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); }
@media (min-width: 960px) { .gl-tst__grid { grid-template-columns: 340px 1fr; } }
.gl-tst__left { background: var(--gl-cream); padding: clamp(24px, 3vw, 40px); display: grid; gap: 28px; align-content: space-between; }
.gl-tst__thumbs { display: flex; gap: 10px; }
.gl-tst__thumb { width: 68px; height: 68px; padding: 0; border: 2px solid transparent; background: none; outline-offset: 2px; filter: grayscale(1); opacity: 0.6; transition: filter 0.4s, opacity 0.4s, border-color 0.4s, transform 0.4s var(--gl-ease); }
.gl-tst__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gl-tst__thumb.is-active, .gl-tst__thumb:hover { filter: none; opacity: 1; border-color: var(--gl-orange); }
.gl-tst__thumb.is-active { transform: translateY(-4px); }
.gl-tst__count { font-size: clamp(3.4rem, 2rem + 3vw, 5rem); line-height: 0.9; color: var(--gl-ink); letter-spacing: -0.07em; font-weight: 600; }
.gl-tst__count span { font-size: 0.36em; color: var(--gl-mute); letter-spacing: -0.02em; }
.gl-tst__score { font-size: 15px; }
.gl-tst__score strong { color: var(--gl-orange); }
.gl-tst__card { background: var(--gl-paper); padding: clamp(28px, 4vw, 64px); position: relative; overflow: hidden; }
.gl-tst__card::after { content: "\201C"; position: absolute; right: clamp(16px, 3vw, 44px); top: -0.15em; font-size: clamp(160px, 18vw, 280px); line-height: 1; color: var(--gl-orange-t); font-weight: 700; pointer-events: none; }
.tst-slider { position: relative; display: grid; }
.tst-slide { grid-area: 1 / 1; display: grid; gap: 28px; align-content: space-between; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity 0.6s var(--gl-ease), transform 0.8s var(--gl-ease), visibility 0s 0.6s; }
.tst-slide.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity 0.6s var(--gl-ease) 0.1s, transform 0.8s var(--gl-ease) 0.1s, visibility 0s; }
.gl-stars { color: var(--gl-orange); letter-spacing: 3px; font-size: 18px; }
.tst-slide blockquote { margin: 0; position: relative; z-index: 1; font-size: clamp(1.3rem, 0.95rem + 1.4vw, 2.2rem); line-height: 1.25; letter-spacing: -0.04em; font-weight: 500; color: var(--gl-ink); }
.tst-author { display: flex; align-items: center; gap: 14px; padding-top: 22px; border-top: 1px solid var(--gl-line); }
.tst-av img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.tst-author strong { display: block; color: var(--gl-ink); letter-spacing: -0.02em; }
.tst-author span { font-size: 14px; color: var(--gl-mute); }

/* 15. FAQ — Markency "Got Questions?" (classes used by main.js accordion) -- */
.gl-faq { overflow: hidden; }
.gl-faq__head { margin-bottom: clamp(32px, 4vw, 48px); }
.gl-faq__title { font-size: clamp(3rem, 1rem + 6.4vw, 6.2rem); font-weight: 600; letter-spacing: -0.065em; line-height: 1; }
.pinvoy-directory-faq__grid { display: grid; gap: 24px; align-items: stretch; }
@media (min-width: 980px) { .pinvoy-directory-faq__grid { grid-template-columns: minmax(0, 856fr) minmax(0, 416fr); } }
.pinvoy-directory-faq__accordion { display: grid; gap: 16px; align-content: start; }
.pinvoy-directory-faq__item { border: 1px solid var(--gl-line); background: transparent; transition: border-color 0.35s; }
.pinvoy-directory-faq__item:hover { border-color: rgba(18, 18, 18, 0.32); }
.pinvoy-directory-faq__question { width: 100%; display: flex; align-items: center; gap: 24px; padding: 23px 24px; border: 0; background: transparent; text-align: left; color: var(--gl-ink); transition: background 0.45s var(--gl-ease); }
.pinvoy-directory-faq__icon { position: relative; flex: none; width: 44px; height: 44px; border: 1px solid var(--gl-forest); background: transparent; transition: background 0.45s var(--gl-ease); }
.pinvoy-directory-faq__icon::before, .pinvoy-directory-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.5px; background: var(--gl-ink); transform: translate(-50%, -50%); transition: transform 0.5s var(--gl-ease), background 0.35s; }
.pinvoy-directory-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.pinvoy-directory-faq__title { color: var(--gl-ink); font-size: clamp(1.15rem, 0.95rem + 0.6vw, 1.5rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.15; }
.pinvoy-directory-faq__question:hover .pinvoy-directory-faq__icon { background: rgba(26, 65, 49, 0.08); }
.pinvoy-directory-faq__item.is-open { border-color: var(--gl-line); }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__question { background: var(--gl-butter); }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__icon { background: var(--gl-forest); }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__icon::before { background: #fff; transform: translate(-50%, -50%) rotate(45deg); }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__icon::after { background: #fff; transform: translate(-50%, -50%) rotate(135deg); }
.pinvoy-directory-faq__answer { display: grid; grid-template-rows: 0fr; background: var(--gl-cream); transition: grid-template-rows 0.55s var(--gl-ease); }
.pinvoy-directory-faq__answer > p { overflow: hidden; min-height: 0; padding: 0 40px 0 92px; font-size: 17px; line-height: 1.58; color: var(--gl-text); opacity: 0; transform: translateY(-6px); transition: padding 0.55s var(--gl-ease), opacity 0.4s, transform 0.55s var(--gl-ease); }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__answer { grid-template-rows: 1fr; }
.pinvoy-directory-faq__item.is-open .pinvoy-directory-faq__answer > p { padding-top: 24px; padding-bottom: 24px; opacity: 1; transform: none; transition-delay: 0s, 0.12s, 0.05s; }
@media (max-width: 599px) {
  .pinvoy-directory-faq__question { gap: 14px; padding: 16px; }
  .pinvoy-directory-faq__icon { width: 38px; height: 38px; }
  .pinvoy-directory-faq__answer > p { padding-left: 68px; padding-right: 18px; font-size: 15.5px; }
}
.pinvoy-directory-faq__left { min-width: 0; }
.pinvoy-directory-faq__image { position: relative; height: 100%; min-height: 520px; overflow: hidden; background: var(--gl-cream-2); }
.pinvoy-directory-faq__image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.gl-faq__card { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 1; display: grid; gap: 12px; justify-items: start; padding: 24px; background: var(--gl-cream); }
.gl-faq__card h3 { font-size: 32px; font-weight: 500; letter-spacing: -0.05em; line-height: 1; }
.gl-faq__card p { font-size: 16px; line-height: 1.58; margin-bottom: 8px; }
@media (max-width: 979px) { .pinvoy-directory-faq__image { min-height: 0; aspect-ratio: 4 / 5; max-height: 640px; } }

/* 16. RSS (cards are injected by rss.js) ----------------------------------- */
.gl-rss__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: clamp(32px, 4vw, 52px); }
.gl-rss__side { display: flex; align-items: center; gap: 18px; font-size: 14px; }
.gl-rss__status { display: inline-flex; align-items: center; gap: 8px; color: var(--gl-mute); }
.gl-rss__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gl-mute); }
.is-live .gl-rss__status::before { background: #2fb36d; box-shadow: 0 0 0 4px rgba(47, 179, 109, 0.18); }
.gl-rss__grid { display: grid; gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); }
@media (min-width: 700px) { .gl-rss__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .gl-rss__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 699px) { .gl-rss__grid > :nth-child(n+4) { display: none; } }
.rss-card { display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 12px; padding: 20px; background: var(--gl-cream); transition: background 0.35s; }
.rss-card:hover { background: var(--gl-paper); }
.rss-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gl-cream-2); }
.rss-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--gl-ease); }
.rss-card:hover .rss-card__media img { transform: scale(1.05); }
.rss-card__meta { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--gl-mute); }
.rss-card__meta b { color: var(--gl-orange); font-weight: 600; }
.rss-card h3 { font-size: 19px; letter-spacing: -0.035em; line-height: 1.25; }
.rss-card p { font-size: 14.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rss-card__more { font-size: 14px; font-weight: 600; color: var(--gl-ink); }
.rss-card:hover .rss-card__more { color: var(--gl-orange); }

/* 17. BLOG ----------------------------------------------------------------- */
.gl-blog__grid { display: grid; gap: clamp(28px, 3vw, 36px) clamp(18px, 2vw, 28px); }
@media (min-width: 760px) { .gl-blog__grid { grid-template-columns: repeat(3, 1fr); } }
.gl-post { display: grid; gap: 16px; }
.gl-post__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.gl-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--gl-ease); }
.gl-post:hover .gl-post__img img { transform: scale(1.06); }
.gl-post__img .gl-chip { position: absolute; left: 14px; top: 14px; }
.gl-post h3 { font-size: clamp(1.2rem, 1rem + 0.6vw, 1.5rem); letter-spacing: -0.04em; line-height: 1.2; }
.gl-post h3 a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.5s var(--gl-ease); }
.gl-post:hover h3 a { background-size: 100% 1.5px; }

/* 18. FOOTER --------------------------------------------------------------- */
.gl-footer { position: relative; background: var(--gl-forest); color: var(--gl-on-dark-2); padding-top: calc(var(--gl-sec) * 0.9); overflow: hidden;
  clip-path: polygon(0 var(--gl-notch), 18% var(--gl-notch), calc(18% + 36px) 0, calc(82% - 36px) 0, 82% var(--gl-notch), 100% var(--gl-notch), 100% 100%, 0 100%); margin-top: calc(var(--gl-notch) * -1); }
.gl-footer__cta { display: grid; gap: 28px; align-items: end; padding-bottom: clamp(40px, 5vw, 72px); border-bottom: 1px solid var(--gl-line-dark); }
@media (min-width: 900px) { .gl-footer__cta { grid-template-columns: 1fr auto; } }
.gl-footer__cta h2 { font-size: clamp(2.4rem, 1rem + 5vw, 6rem); color: var(--gl-on-dark); letter-spacing: -0.065em; line-height: 0.95; max-width: 14ch; }
.gl-footer__cta h2 em { font-style: normal; color: var(--gl-butter); }
.gl-footer__cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.gl-footer__phone { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid var(--gl-line-dark); color: var(--gl-butter); }
.gl-footer__phone svg { width: 22px; height: 22px; fill: currentColor; }
.gl-footer__grid { display: grid; gap: 40px; padding-block: clamp(44px, 5vw, 72px); }
@media (min-width: 900px) { .gl-footer__grid { grid-template-columns: 1.3fr 1fr 1fr; } }
.gl-footer h5 { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-butter); margin: 0 0 18px; }
.gl-footer__nav { counter-reset: fn; display: grid; }
.gl-footer__nav li { counter-increment: fn; }
.gl-footer__nav a { display: flex; align-items: baseline; gap: 18px; padding: 10px 0; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.3rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.1; color: var(--gl-on-dark-2); transition: color 0.3s, padding 0.45s var(--gl-ease); }
.gl-footer__nav a::before { content: "0" counter(fn) "\00a0\00a0—"; font-size: 13px; letter-spacing: 0; color: var(--gl-on-dark-2); }
.gl-footer__nav a:hover { color: var(--gl-on-dark); padding-left: 10px; }
.gl-footer__links { display: grid; gap: 10px; }
.gl-footer__links a { font-size: 16px; color: var(--gl-on-dark-2); transition: color 0.3s; }
.gl-footer__links a:hover { color: var(--gl-butter); }
.gl-footer__about p { font-size: 15.5px; max-width: 38ch; margin-bottom: 24px; }
.gl-footer__brand img { height: 32px; width: auto; margin-bottom: 18px; background: var(--gl-cream); padding: 8px 10px; box-sizing: content-box; }
.gl-social { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-social a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--gl-line-dark); color: var(--gl-on-dark); transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.4s var(--gl-ease); }
.gl-social a svg { width: 18px; height: 18px; fill: currentColor; }
.gl-social a:hover { background: var(--gl-orange); border-color: var(--gl-orange); transform: translateY(-3px); }
.gl-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-block: 24px; border-top: 1px solid var(--gl-line-dark); font-size: 14px; }
.gl-footer__giant { font-size: clamp(4rem, 17vw, 17rem); font-weight: 700; letter-spacing: -0.08em; line-height: 0.78; color: transparent; -webkit-text-stroke: 1px rgba(252, 252, 242, 0.14); white-space: nowrap; user-select: none; margin-bottom: -0.06em; text-align: center; }

/* 19. PAGE HEAD (inner pages) ---------------------------------------------- */
.gl-pagehead { position: relative; padding: calc(var(--gl-header-h) + clamp(36px, 6vw, 80px)) 0 clamp(48px, 6vw, 84px); background:
  radial-gradient(55% 60% at 100% 0%, rgba(255, 221, 153, 0.5), transparent 70%), var(--gl-cream); }
.gl-pagehead__grid { display: grid; gap: 36px 64px; align-items: end; }
@media (min-width: 1000px) { .gl-pagehead__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }
.gl-pagehead h1 { font-size: var(--gl-fs-h1); font-weight: 700; letter-spacing: -0.065em; line-height: 0.94; }
.gl-pagehead h1 .wn-hl, .gl-pagehead h1 em { font-style: normal; color: var(--gl-orange); }
.gl-pagehead .gl-lead { margin-top: 22px; }
.gl-pagehead .gl-search { margin-top: clamp(28px, 4vw, 44px); }
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-bottom: 22px; font-size: 14px; color: var(--gl-mute); }
.breadcrumb a { color: var(--gl-ink); font-weight: 500; transition: color 0.3s; }
.breadcrumb a::before { content: "[\00a0"; color: var(--gl-mute); }
.breadcrumb a::after { content: "\00a0]"; color: var(--gl-mute); }
.breadcrumb a:hover { color: var(--gl-orange); }
.breadcrumb span, .breadcrumb [aria-current] { color: var(--gl-orange); font-weight: 500; }
.gl-pagehead__aside { display: grid; gap: 18px; justify-items: start; }
@media (min-width: 1000px) { .gl-pagehead__aside { justify-items: end; text-align: right; } }
.gl-pagehead__media { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%); }
.gl-pagehead__media img { width: 100%; height: 100%; object-fit: cover; }
.gl-pagehead .gl-badge { position: relative; left: auto; bottom: auto; }
.gl-minis { display: flex; flex-wrap: wrap; gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); }
.gl-minis div { background: var(--gl-cream); padding: 14px 18px; min-width: 120px; text-align: left; }
.gl-minis strong { display: block; font-size: 1.9rem; font-weight: 600; letter-spacing: -0.06em; color: var(--gl-ink); line-height: 1; }
.gl-minis span { font-size: 13px; color: var(--gl-mute); }

/* 20. TOOLBAR / FILTER ----------------------------------------------------- */
.gl-toolbar { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 16px 0; margin-bottom: 28px; background: rgba(252, 252, 242, 0.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--gl-line); transition: top 0.5s var(--gl-ease); }
body.gl-header-visible .gl-toolbar { top: var(--gl-header-h); }
.gl-toolbar p { font-size: 15px; color: var(--gl-mute); }
.gl-toolbar p strong { color: var(--gl-ink); font-size: 1.35em; letter-spacing: -0.04em; margin-right: 4px; font-variant-numeric: tabular-nums; }
.gl-toolbar__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.gl-filter { position: relative; flex: 1 1 280px; max-width: 420px; }
.gl-filter svg { position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--gl-orange); pointer-events: none; }
.gl-filter input { width: 100%; height: 50px; padding: 0 16px 0 46px; border: 1px solid var(--gl-line); background: var(--gl-paper); font-size: 15px; color: var(--gl-ink); outline: none; transition: border-color 0.3s, box-shadow 0.3s; }
.gl-filter input:focus { border-color: var(--gl-ink); box-shadow: 0 0 0 4px var(--gl-orange-t); }
.gl-select { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px; border: 1px solid var(--gl-line); background: var(--gl-paper); font-size: 14px; color: var(--gl-mute); }
.gl-select select { border: 0; background: transparent; font-weight: 600; color: var(--gl-ink); outline: none; cursor: pointer; font-size: 14px; }
.gl-view { display: inline-flex; border: 1px solid var(--gl-line); }
.gl-view button { width: 46px; height: 44px; display: grid; place-items: center; border: 0; background: var(--gl-paper); color: var(--gl-mute); transition: background 0.3s, color 0.3s; }
.gl-view button + button { border-left: 1px solid var(--gl-line); }
.gl-view button svg { width: 18px; height: 18px; }
.gl-view button[aria-pressed="true"] { background: var(--gl-ink); color: var(--gl-cream); }

/* 21. CATEGORY INDEX GRID (category-listing) ------------------------------- */
.gl-cells { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--gl-line); border-left: 1px solid var(--gl-line); counter-reset: cell; }
@media (min-width: 560px) { .gl-cells { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .gl-cells { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .gl-cells { grid-template-columns: repeat(4, 1fr); } }
.gl-cell { counter-increment: cell; position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: 22px; min-height: 236px; padding: 22px; border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); background: var(--gl-cream); isolation: isolate; overflow: hidden; }
.gl-cell[hidden] { display: none; }
.gl-cell::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gl-forest); clip-path: inset(100% 0 0 0); transition: clip-path 0.6s var(--gl-ease); }
.gl-cell__top { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--gl-mute); font-weight: 500; }
.gl-cell__top::before { content: counter(cell, decimal-leading-zero); }
.wn-cell__icon, .gl-cell__icon { width: 46px; height: 46px; color: var(--gl-ink); transition: color 0.4s, transform 0.6s var(--gl-ease); }
.wn-cell__icon .a, .gl-cell__icon .a { color: var(--gl-orange); stroke: var(--gl-orange); transition: stroke 0.4s; }
.gl-cell h3 { font-size: 20px; letter-spacing: -0.04em; line-height: 1.15; transition: color 0.4s; }
.gl-cell__meta { display: inline-block; margin-top: 8px; font-size: 13.5px; color: var(--gl-mute); transition: color 0.4s; }
.gl-cell__go { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--gl-line); color: var(--gl-ink); font-size: 16px; transition: transform 0.6s var(--gl-ease), background 0.4s, border-color 0.4s, color 0.4s; }
.gl-cell:hover::before, .gl-cell:focus-visible::before { clip-path: inset(0 0 0 0); }
.gl-cell:hover h3, .gl-cell:focus-visible h3 { color: var(--gl-on-dark); }
.gl-cell:hover .gl-cell__meta, .gl-cell:hover .gl-cell__top, .gl-cell:focus-visible .gl-cell__meta { color: var(--gl-on-dark-2); }
.gl-cell:hover .wn-cell__icon, .gl-cell:focus-visible .wn-cell__icon { color: var(--gl-on-dark); transform: translateY(-4px) scale(1.04); }
.gl-cell:hover .wn-cell__icon .a { stroke: var(--gl-butter); }
.gl-cell:hover .gl-cell__go, .gl-cell:focus-visible .gl-cell__go { background: var(--gl-orange); border-color: var(--gl-orange); color: #fff; transform: rotate(45deg); }
.gl-empty { display: none; padding: 48px 24px; text-align: center; border: 1px dashed var(--gl-line); margin-top: 24px; font-size: 17px; color: var(--gl-ink); }
.gl-empty.is-visible { display: block; }
.gl-empty a { color: var(--gl-orange); font-weight: 600; }
.gl-letters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }

/* CTA band */
.gl-band { background: var(--gl-ink); color: var(--gl-on-dark-2); }
.gl-band__grid { display: grid; gap: 28px; align-items: center; padding-block: clamp(48px, 6vw, 84px); }
@media (min-width: 900px) { .gl-band__grid { grid-template-columns: 1fr auto; } }
.gl-band h2 { color: var(--gl-on-dark); font-size: clamp(2rem, 1rem + 3vw, 3.6rem); letter-spacing: -0.06em; line-height: 1; }
.gl-band h2 em { font-style: normal; color: var(--gl-butter); }
.gl-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* 22. CATEGORY RESULTS (category-single-listing) --------------------------- */
.gl-results { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "aside" "main"; }
@media (min-width: 1080px) { .gl-results { grid-template-columns: minmax(0, 1fr) 320px; grid-template-areas: "main aside"; gap: 48px; align-items: start; } }
.gl-results__main { grid-area: main; min-width: 0; }
.gl-results__aside { grid-area: aside; min-width: 0; }

.gl-lgrid { display: grid; gap: 22px; }
.gl-lgrid:not(.is-list) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.gl-lcard { position: relative; display: grid; grid-template-rows: auto 1fr; background: var(--gl-paper); border: 1px solid var(--gl-line); transition: border-color 0.4s, box-shadow 0.5s var(--gl-ease), transform 0.5s var(--gl-ease); }
.gl-lcard:hover { border-color: var(--gl-ink); box-shadow: var(--gl-shadow-lg); transform: translateY(-4px); }
.gl-lcard__media { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; padding: 28px; overflow: hidden; background-color: #fff;
  background-image: linear-gradient(var(--gl-line-2) 1px, transparent 1px), linear-gradient(90deg, var(--gl-line-2) 1px, transparent 1px); background-size: 24px 24px; border-bottom: 1px solid var(--gl-line); }
.gl-lcard__media img { max-height: 92px; width: auto; max-width: 80%; object-fit: contain; transition: transform 0.8s var(--gl-ease); }
.gl-lcard:hover .gl-lcard__media img { transform: scale(1.07); }
.gl-lcard__rate { position: absolute; right: 12px; top: 12px; padding: 6px 9px; background: var(--gl-ink); color: var(--gl-cream); font-size: 12.5px; font-weight: 600; letter-spacing: 0; }
.gl-lcard__rate b { color: var(--gl-butter); font-weight: 600; }
.gl-lcard__body { display: grid; gap: 10px; align-content: start; padding: 22px; }
.gl-lcard__cat { justify-self: start; font-size: 12.5px; font-weight: 600; color: var(--gl-orange); letter-spacing: 0.01em; }
.gl-lcard h3 { font-size: 21px; letter-spacing: -0.04em; line-height: 1.15; }
.gl-lcard h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.gl-lcard p { font-size: 15px; }
.gl-lcard__loc { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--gl-mute); }
.gl-lcard__loc svg { flex: none; margin-top: 3px; color: var(--gl-orange); }
.gl-lcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--gl-line-2); }
.gl-lcard__foot .gl-link, .gl-lcard__foot a { position: relative; z-index: 2; }
.gl-lcard__hint { font-size: 13px; color: var(--gl-mute); }
.gl-lgrid:not(.is-list) .gl-lcard__hint { display: none; }
.gl-lgrid:not(.is-list) .gl-lcard__foot { justify-content: flex-end; }
.gl-verified { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: #1f8a52; }
.gl-verified svg { width: 15px; height: 15px; }
@media (min-width: 760px) {
  .gl-lgrid.is-list .gl-lcard { grid-template-columns: 280px 1fr; grid-template-rows: none; }
  .gl-lgrid.is-list .gl-lcard__media { aspect-ratio: auto; height: 100%; min-height: 220px; border-bottom: 0; border-right: 1px solid var(--gl-line); }
  .gl-lgrid.is-list .gl-lcard__body { padding: 26px 30px; }
  .gl-lgrid.is-list .gl-lcard h3 { font-size: 26px; }
}

.gl-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 44px; }
.gl-pagination a, .gl-pagination span { min-width: 48px; height: 48px; display: grid; place-items: center; padding: 0 16px; border: 1px solid var(--gl-line); font-size: 15px; font-weight: 600; color: var(--gl-ink); transition: background 0.3s, color 0.3s, border-color 0.3s; }
.gl-pagination a:hover { background: var(--gl-ink); color: var(--gl-cream); border-color: var(--gl-ink); }
.gl-pagination .is-current { background: var(--gl-orange); border-color: var(--gl-orange); color: #fff; }
.gl-pagination .is-disabled { color: var(--gl-mute); opacity: 0.55; }

/* Sidebar categories */
.gl-side { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
.gl-side__box, .gl-side__box nav { min-width: 0; }
@media (min-width: 1080px) { .gl-side { position: sticky; top: calc(var(--gl-header-h) + 24px); } }
.gl-side__box { border: 1px solid var(--gl-line); background: var(--gl-paper); }
.gl-side__head { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--gl-line); }
.gl-side__head-icon { width: 38px; height: 38px; display: grid; place-items: center; background: var(--gl-ink); color: var(--gl-butter); }
.gl-side__head h3 { font-size: 18px; letter-spacing: -0.03em; }
.gl-side__head small { display: block; font-size: 13px; color: var(--gl-mute); }
.category-single-sidebar__list { position: relative; max-height: 520px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--gl-line) transparent; }
.category-single-sidebar__link { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 12px 20px; font-size: 14.5px; font-weight: 500; color: var(--gl-ink); border-bottom: 1px solid var(--gl-line-2); transition: background 0.3s, color 0.3s, padding 0.4s var(--gl-ease); }
.category-single-sidebar__icon { color: var(--gl-mute); }
.category-single-sidebar__icon svg { width: 16px; height: 16px; }
.category-single-sidebar__arrow { width: 14px; height: 14px; color: var(--gl-mute); opacity: 0; transform: translateX(-6px); transition: opacity 0.3s, transform 0.4s var(--gl-ease); }
.category-single-sidebar__link:hover { background: var(--gl-cream); padding-left: 26px; }
.category-single-sidebar__link:hover .category-single-sidebar__arrow { opacity: 1; transform: none; color: var(--gl-orange); }
.category-single-sidebar__link.is-active { background: var(--gl-ink); color: var(--gl-cream); }
.category-single-sidebar__link.is-active .category-single-sidebar__icon, .category-single-sidebar__link.is-active .category-single-sidebar__arrow { color: var(--gl-butter); opacity: 1; transform: none; }
.gl-side__promo { position: relative; padding: 26px; background: var(--gl-forest); color: var(--gl-on-dark-2); display: grid; gap: 14px; overflow: hidden; }
.gl-side__promo h3 { color: var(--gl-on-dark); font-size: 26px; letter-spacing: -0.05em; line-height: 1.05; }
.gl-side__promo::after { content: ""; position: absolute; right: -40px; top: -40px; width: 140px; height: 140px; border-radius: 50%; border: 22px solid rgba(255, 221, 153, 0.12); }
@media (max-width: 1079px) {
  .gl-side__box { border: 0; background: none; }
  .gl-side__head { display: none; }
  .category-single-sidebar__list { display: flex; gap: 8px; max-height: none; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; }
  .category-single-sidebar__list li { flex: none; scroll-snap-align: start; }
  .category-single-sidebar__link { grid-template-columns: auto 1fr; border: 1px solid var(--gl-line); background: var(--gl-paper); white-space: nowrap; padding: 10px 14px; }
  .category-single-sidebar__link:hover { padding-left: 14px; }
  .gl .category-single-sidebar__arrow { display: none; }
  .gl-side__promo { display: none; }
}

/* 23. SINGLE LISTING ------------------------------------------------------- */
.gl-lhero { padding: calc(var(--gl-header-h) + clamp(28px, 4vw, 56px)) 0 clamp(40px, 5vw, 72px); background:
  radial-gradient(50% 60% at 100% 0%, rgba(255, 221, 153, 0.5), transparent 70%), var(--gl-cream); }
.gl-lhero__grid { display: grid; gap: 36px 56px; align-items: start; }
@media (min-width: 1040px) { .gl-lhero__grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); } }
.listing-detail-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.listing-detail-badge { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; background: var(--gl-ink); color: var(--gl-cream); font-size: 13px; font-weight: 600; letter-spacing: 0; line-height: 1; vertical-align: middle; }
.listing-detail-badge.is-trusted { background: #e8f6ee; color: #1f8a52; font-size: 14px; padding: 8px 12px; transform: translateY(-0.35em); }
.listing-detail-badge.is-trusted svg path:first-child { fill: #c9ecd7; }
.listing-detail-title-row h1 { font-size: clamp(2.4rem, 1.2rem + 4.4vw, 5.2rem); font-weight: 700; letter-spacing: -0.065em; line-height: 0.96; }
.listing-reference-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 22px; font-size: 15px; }
.listing-reference-rating .rating-star { color: var(--gl-orange); letter-spacing: 3px; font-size: 18px; }
.listing-reference-rating strong { color: var(--gl-ink); }
.listing-reference-rating > span:last-child { color: var(--gl-mute); padding-left: 14px; border-left: 1px solid var(--gl-line); }
.listing-reference-contact-list { display: grid; margin-top: 30px; border-top: 1px solid var(--gl-line); border-left: 1px solid var(--gl-line); }
@media (min-width: 640px) { .listing-reference-contact-list { grid-template-columns: repeat(2, 1fr); } }
.listing-reference-contact-item { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); background: rgba(255, 255, 255, 0.5); min-width: 0; transition: background 0.3s; }
a.listing-reference-contact-item:hover { background: var(--gl-paper); }
a.listing-reference-contact-item:hover .listing-reference-contact-icon { background: var(--gl-orange); color: #fff; }
.listing-reference-contact-icon { flex: none; width: 42px; height: 42px; display: grid; place-items: center; background: var(--gl-orange-t); color: var(--gl-orange); transition: background 0.3s, color 0.3s; }
.listing-reference-contact-icon svg { width: 20px; height: 20px; }
.listing-reference-contact-item > span:last-child { min-width: 0; display: grid; }
.listing-reference-contact-item small { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gl-mute); font-weight: 600; }
.listing-reference-contact-item strong { font-size: 15px; font-weight: 600; color: var(--gl-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.listing-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.single-listing-copy-status { min-height: 1.4em; margin-top: 10px !important; font-size: 14px; color: #1f8a52; font-weight: 500; }

.gl-lcardx { position: relative; background: var(--gl-paper); border: 1px solid var(--gl-line); display: grid; }
@media (min-width: 1040px) { .gl-lcardx { position: sticky; top: calc(var(--gl-header-h) + 24px); } }
.listing-detail-logo-card { display: grid; place-items: center; aspect-ratio: 16 / 10; padding: 32px; background-color: #fff;
  background-image: linear-gradient(var(--gl-line-2) 1px, transparent 1px), linear-gradient(90deg, var(--gl-line-2) 1px, transparent 1px); background-size: 26px 26px; border-bottom: 1px solid var(--gl-line); }
.listing-detail-logo-card img { max-height: 120px; width: auto; max-width: 84%; object-fit: contain; }
.gl-lcardx__stats { display: grid; grid-template-columns: repeat(3, 1fr); }
.gl-lcardx__stats div { padding: 18px 16px; border-right: 1px solid var(--gl-line); }
.gl-lcardx__stats div:last-child { border-right: 0; }
.gl-lcardx__stats strong { display: block; font-size: 28px; font-weight: 600; letter-spacing: -0.06em; color: var(--gl-ink); line-height: 1; }
.gl-lcardx__stats span { font-size: 12.5px; color: var(--gl-mute); }
.gl-lcardx__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; background: var(--gl-butter); font-size: 13.5px; font-weight: 600; color: var(--gl-ink); }

.gl-detail { padding-block: clamp(48px, 6vw, 88px) var(--gl-sec); }
.gl-detail__grid { display: grid; gap: 36px; }
@media (min-width: 1040px) { .gl-detail__grid { grid-template-columns: 250px minmax(0, 1fr); gap: 56px; align-items: start; } }
.gl-toc { display: none; }
@media (min-width: 1040px) {
  .gl-toc { display: grid; gap: 18px; position: sticky; top: calc(var(--gl-header-h) + 24px); }
}
.gl-toc h4 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gl-mute); font-weight: 600; }
.gl-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--gl-line); counter-reset: toc; }
.gl-toc li { counter-increment: toc; }
.gl-toc a { position: relative; display: flex; gap: 10px; padding: 8px 0 8px 16px; font-size: 14.5px; font-weight: 500; color: var(--gl-mute); transition: color 0.3s; }
.gl-toc a::before { content: counter(toc, decimal-leading-zero); font-size: 12px; padding-top: 2px; }
.gl-toc a::after { content: ""; position: absolute; left: -1px; top: 6px; bottom: 6px; width: 2px; background: var(--gl-orange); transform: scaleY(0); transition: transform 0.4s var(--gl-ease); }
.gl-toc a:hover { color: var(--gl-ink); }
.gl-toc a.is-active { color: var(--gl-ink); }
.gl-toc a.is-active::after { transform: scaleY(1); }
.gl-toc__cta { padding: 20px; background: var(--gl-forest); color: var(--gl-on-dark-2); display: grid; gap: 12px; font-size: 14px; }
.gl-toc__cta strong { color: var(--gl-on-dark); font-size: 19px; letter-spacing: -0.04em; line-height: 1.15; }

.single-listing-pane { display: grid; gap: 22px; }
.single-listing-pane[hidden] { display: none; }
.single-listing-overview-copy { display: grid; gap: 22px; }
.listing-detail-panel { background: var(--gl-paper); border: 1px solid var(--gl-line); padding: clamp(22px, 3vw, 40px); display: grid; gap: 18px; align-content: start; }
.listing-detail-panel > h2, .listing-review-heading h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); letter-spacing: -0.05em; display: flex; align-items: center; gap: 12px; }
.listing-detail-panel > h2::before, .listing-review-heading h2::before { content: ""; width: 10px; height: 10px; background: var(--gl-orange); flex: none; }
#overview-copy-video-title { text-transform: capitalize; }
.listing-overview-subtitle { font-size: 15px; font-weight: 600; color: var(--gl-orange); letter-spacing: -0.01em; }
.listing-detail-panel p { font-size: 16.5px; }
.business-overview-link { justify-self: start; font-weight: 600; color: var(--gl-ink); border-bottom: 1.5px solid var(--gl-orange); padding-bottom: 2px; transition: color 0.3s; }
.business-overview-link:hover { color: var(--gl-orange); }

.listing-detail-info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); border-top: 1px solid var(--gl-line); border-left: 1px solid var(--gl-line); }
.listing-detail-info-grid > div { padding: 18px 20px; border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); display: grid; gap: 4px; align-content: start; }
.listing-detail-info-grid > div > span:first-child { font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gl-mute); font-weight: 600; }
.listing-detail-info-grid > div > strong { font-size: 22px; letter-spacing: -0.04em; color: var(--gl-ink); font-weight: 600; line-height: 1.2; }
.single-listing-reference-info-grid > div { display: flex; gap: 14px; align-items: center; }
.single-listing-reference-copy { display: grid; gap: 2px; }
.single-listing-reference-copy > span { font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gl-mute); font-weight: 600; }
.single-listing-reference-copy > strong { font-size: 17px !important; letter-spacing: -0.02em; color: var(--gl-ink); }
.single-listing-detail-card__icon { flex: none; width: 42px; height: 42px; display: grid; place-items: center; background: var(--gl-cream); border: 1px solid var(--gl-line); color: var(--gl-orange); font-style: normal; }
.single-listing-detail-card__icon svg { width: 20px; height: 20px; }
.single-listing-detail-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.single-listing-detail-card, .single-listing-highlight-grid > span { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--gl-line); background: var(--gl-cream); transition: border-color 0.3s, background 0.3s, transform 0.4s var(--gl-ease); }
.single-listing-detail-card:hover, .single-listing-highlight-grid > span:hover { border-color: var(--gl-ink); background: var(--gl-paper); transform: translateY(-2px); }
.single-listing-detail-card strong, .single-listing-highlight-grid strong { font-size: 15px; font-weight: 600; color: var(--gl-ink); letter-spacing: -0.02em; }
.listing-trust-premium-signal .wn-premium { display: inline-flex; align-items: center; gap: 8px; font-style: normal; font-size: 16px; font-weight: 600; color: var(--gl-ink); margin-top: 4px; }
.wn-premium svg { color: var(--gl-orange); }
.wn-premium svg path { fill: var(--gl-butter); }

.listing-lightbox-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 700px) { .listing-lightbox-grid { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, minmax(0, 170px)); } .listing-lightbox-item.is-large { grid-row: span 2; } }
.listing-lightbox-grid.is-web-gallery { grid-template-columns: repeat(3, 1fr); grid-template-rows: none; }
.listing-lightbox-item { position: relative; display: block; overflow: hidden; background: var(--gl-cream-2); aspect-ratio: 4 / 3; cursor: zoom-in; }
@media (min-width: 700px) { .listing-lightbox-grid:not(.is-web-gallery) .listing-lightbox-item { aspect-ratio: auto; } }
.listing-lightbox-item.is-large { grid-column: span 2; }
@media (min-width: 700px) { .listing-lightbox-item.is-large { grid-column: auto; } }
.listing-lightbox-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--gl-ease); }
.listing-lightbox-item::after { content: "+"; position: absolute; right: 12px; bottom: 12px; width: 38px; height: 38px; display: grid; place-items: center; background: var(--gl-cream); color: var(--gl-ink); font-size: 22px; transform: scale(0.6); opacity: 0; transition: transform 0.4s var(--gl-ease), opacity 0.3s; }
.listing-lightbox-item:hover img { transform: scale(1.06); }
.listing-lightbox-item:hover::after { transform: none; opacity: 1; }
.listing-video-frame { position: relative; aspect-ratio: 16 / 9; background: var(--gl-ink); }
.listing-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.listing-map-panel iframe { width: 100%; height: 360px; border: 0; filter: grayscale(0.35) contrast(1.05); }
.listing-map-panel address { font-size: 16px; font-weight: 600; color: var(--gl-ink); }
.listing-map-panel .gl-btn { justify-self: start; }

.listing-review-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; }
.listing-review-summary { display: grid; gap: 24px; padding: 24px; background: var(--gl-cream); border: 1px solid var(--gl-line); }
@media (min-width: 700px) { .listing-review-summary { grid-template-columns: 220px 1fr; align-items: center; } }
.listing-review-score strong { display: block; font-size: 72px; line-height: 0.9; letter-spacing: -0.07em; color: var(--gl-ink); font-weight: 600; }
.listing-review-score span { color: var(--gl-orange); letter-spacing: 3px; }
.listing-review-score p { font-size: 14px !important; color: var(--gl-mute); margin-top: 4px; }
.listing-review-bars { display: grid; gap: 8px; }
.listing-review-bar-row { display: grid; grid-template-columns: 56px 1fr 42px; gap: 12px; align-items: center; font-size: 13.5px; }
.listing-review-bar-row em { font-style: normal; text-align: right; color: var(--gl-mute); font-variant-numeric: tabular-nums; }
.listing-review-track { height: 8px; background: var(--gl-line-2); overflow: hidden; }
.listing-review-track i { display: block; height: 100%; background: var(--gl-orange); transform-origin: left; transform: scaleX(0); transition: transform 1.4s var(--gl-ease); }
.listing-review-summary.in-view .listing-review-track i, .in-view .listing-review-track i { transform: scaleX(1); }
.bar-82 { width: 82%; } .bar-12 { width: 12%; } .bar-4 { width: 4%; } .bar-1 { width: 1%; }
.listing-review-grid { display: grid; gap: 12px; }
@media (min-width: 760px) { .listing-review-grid { grid-template-columns: repeat(3, 1fr); } }
.listing-review-grid article { display: grid; gap: 10px; align-content: start; padding: 20px; border: 1px solid var(--gl-line); }
.listing-review-grid cite { font-style: normal; font-weight: 600; color: var(--gl-ink); display: flex; align-items: center; gap: 10px; }
.listing-review-grid cite::before { content: attr(data-initial); width: 34px; height: 34px; display: grid; place-items: center; background: var(--gl-forest); color: var(--gl-butter); font-size: 14px; }
.listing-review-grid article > span { color: var(--gl-orange); letter-spacing: 2px; font-size: 14px; }
.listing-review-grid p { font-size: 15px !important; }
.listing-review-grid time { font-size: 13px; color: var(--gl-mute); }

.single-listing-reference-contact-grid { display: grid; gap: 10px; }
@media (min-width: 760px) { .single-listing-reference-contact-grid { grid-template-columns: repeat(3, 1fr); } }
.single-listing-reference-contact-card { display: grid; gap: 14px; align-content: start; padding: 20px; border: 1px solid var(--gl-line); background: var(--gl-cream); min-width: 0; transition: border-color 0.3s, background 0.3s; }
a.single-listing-reference-contact-card:hover { border-color: var(--gl-ink); background: var(--gl-paper); }
.single-listing-reference-contact-card > span:last-child { display: grid; gap: 2px; min-width: 0; }
.single-listing-reference-contact-card small { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gl-mute); font-weight: 600; }
.single-listing-reference-contact-card strong { font-size: 15px; color: var(--gl-ink); overflow-wrap: anywhere; }
.single-listing-reference-contact-icon, .single-listing-reference-company-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--gl-ink); color: var(--gl-butter); }
.single-listing-reference-contact-icon svg, .single-listing-reference-company-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.single-listing-reference-social-wrap { display: grid; gap: 12px; padding-top: 6px; }
.single-listing-reference-social-wrap h3 { font-size: 16px; letter-spacing: -0.02em; }
.single-listing-reference-social-links { display: flex; flex-wrap: wrap; gap: 8px; }
.single-listing-reference-social-links a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--gl-line); color: var(--gl-ink); transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.4s var(--gl-ease); }
.single-listing-reference-social-links a svg { width: 18px; height: 18px; fill: currentColor; }
.single-listing-reference-social-links a:hover { background: var(--gl-orange); border-color: var(--gl-orange); color: #fff; transform: translateY(-3px); }

.single-listing-reference-hours-list { display: grid; border-top: 1px solid var(--gl-line); }
.single-listing-reference-hours-list > div { display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: center; padding: 14px 4px; border-bottom: 1px solid var(--gl-line); font-size: 15px; transition: background 0.3s; }
.single-listing-reference-hours-list span { font-weight: 600; color: var(--gl-ink); }
.single-listing-reference-hours-list strong { white-space: nowrap; font-weight: 500; color: var(--gl-text); font-variant-numeric: tabular-nums; }
.single-listing-reference-hours-list strong b { display: none; }
.single-listing-reference-hours-list em { font-style: normal; font-size: 12px; font-weight: 600; padding: 4px 9px; background: #e8f6ee; color: #1f8a52; min-width: 64px; text-align: center; }
.single-listing-reference-hours-list em.is-closed { background: #fde9e5; color: #c0392b; }
.single-listing-reference-hours-list > div.is-today { background: var(--gl-butter); padding-inline: 14px; }
.single-listing-reference-hours-list > div.is-today span::after { content: " · Today"; color: var(--gl-orange); font-weight: 600; }

.single-listing-reference-company-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; }
.single-listing-reference-company-grid > div { display: flex; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--gl-line); }
.single-listing-reference-company-grid small { display: block; font-size: 12.5px; color: var(--gl-mute); }
.single-listing-reference-company-grid strong { font-size: 22px; letter-spacing: -0.04em; color: var(--gl-ink); font-weight: 600; }

/* Lightbox */
.gl-lightbox { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 24px; background: rgba(18, 18, 18, 0.92); opacity: 0; visibility: hidden; transition: opacity 0.35s, visibility 0s 0.35s; }
.gl-lightbox.is-open { opacity: 1; visibility: visible; transition: opacity 0.35s; }
.gl-lightbox img { max-width: min(1100px, 100%); max-height: 82vh; object-fit: contain; transform: scale(0.96); transition: transform 0.5s var(--gl-ease); }
.gl-lightbox.is-open img { transform: none; }
.gl-lightbox button { position: absolute; width: 52px; height: 52px; border: 1px solid rgba(252, 252, 242, 0.25); background: transparent; color: var(--gl-cream); font-size: 22px; transition: background 0.3s; }
.gl-lightbox button:hover { background: var(--gl-orange); border-color: var(--gl-orange); }
.gl-lightbox__close { right: 20px; top: 20px; }
.gl-lightbox__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.gl-lightbox__next { right: 20px; top: 50%; transform: translateY(-50%); }
.gl-lightbox__cap { position: absolute; left: 0; right: 0; bottom: 22px; text-align: center; color: var(--gl-on-dark-2); font-size: 14px; }

/* Mobile action bar (single listing) */
.gl-actionbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--gl-line); border-top: 1px solid var(--gl-line); transform: translateY(100%); transition: transform 0.5s var(--gl-ease); padding-bottom: env(safe-area-inset-bottom); }
.gl-actionbar.is-visible { transform: none; }
.gl-actionbar a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 58px; background: var(--gl-cream); font-weight: 600; color: var(--gl-ink); font-size: 15px; }
.gl-actionbar a:first-child { background: var(--gl-orange); color: #fff; }
.gl-actionbar svg { width: 18px; height: 18px; }
@media (min-width: 1040px) { .gl-actionbar { display: none; } }
@media (max-width: 1039px) { body.page-single-listing .back-to-top { bottom: 76px; } }

/* Similar */
.gl-similar { padding-bottom: var(--gl-sec); }

/* 24. MOTION --------------------------------------------------------------- */
.reveal { opacity: 0; transform: translateY(36px); transition: opacity 0.9s var(--gl-ease), transform 1.1s var(--gl-ease); transition-delay: calc(var(--i, 0) * 90ms); }
.reveal.in-view { opacity: 1; transform: none; }
.gl-clip > img { clip-path: inset(100% 0 0 0); transform: scale(1.15); transition: clip-path 1.3s var(--gl-ease-io), transform 1.8s var(--gl-ease); }
.gl-clip.in-view > img { clip-path: inset(0 0 0 0); transform: none; }

/* split text — words rise from a mask */
[data-split] .gl-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
[data-split] .gl-w > span { display: inline-block; transform: translateY(105%); transition: transform 1.1s var(--gl-ease); transition-delay: calc(var(--w, 0) * 55ms + var(--d0, 0ms)); }
.is-ready [data-split]:not([data-split="scroll"]) .gl-w > span, [data-split="scroll"].is-in .gl-w > span { transform: none; }
[data-hero-fade] { opacity: 0; transform: translateY(22px); transition: opacity 0.9s var(--gl-ease), transform 1s var(--gl-ease); transition-delay: calc(var(--d, 0) * 1ms); }
.is-ready [data-hero-fade] { opacity: 1; transform: none; }
.no-js .reveal, .no-js [data-hero-fade] { opacity: 1; transform: none; }

@keyframes gl-marquee { to { transform: translateX(-50%); } }
@keyframes gl-spin { to { transform: rotate(360deg); } }
@keyframes gl-ping { 0% { box-shadow: 0 0 0 0 rgba(229, 101, 46, 0.45); } 70%, 100% { box-shadow: 0 0 0 8px rgba(229, 101, 46, 0); } }
@keyframes gl-ping-g { 0% { box-shadow: 0 0 0 0 rgba(47, 179, 109, 0.45); } 70%, 100% { box-shadow: 0 0 0 7px rgba(47, 179, 109, 0); } }
@keyframes gl-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes gl-grow { from { transform: scaleX(0); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .reveal, [data-hero-fade] { opacity: 1; transform: none; }
  [data-split] .gl-w > span { transform: none; }
  .gl-clip > img { clip-path: none; transform: none; }
  .gl-marquee__track { animation: none; }
}
@media print {
  .gl-header, .mobile-panel, .back-to-top, .gl-actionbar, .gl-marquee { display: none !important; }
  .reveal, [data-hero-fade] { opacity: 1 !important; transform: none !important; }
}

/* ==========================================================================
   25. INNER PAGES (Phase 2) — search, services, contact, blog, sitemap, 404
   ========================================================================== */

/* Light variant of the category card (services) */
.gl-cat-grid--light .gl-catcard { color: var(--gl-text); }
.gl-cat-grid--light .gl-catcard h3 { color: var(--gl-ink); }
.gl-cat-grid--light .gl-catcard__body { border-top-color: var(--gl-line); grid-template-columns: auto 1fr auto; }
.gl-cat-grid--light .gl-catcard__num { color: var(--gl-orange); }
.gl-cat-grid--light .gl-catcard__go { border-color: var(--gl-line); color: var(--gl-ink); }
.gl-cat-grid--light .gl-catcard:hover .gl-catcard__go { color: #fff; }
.gl-cat-grid--light .gl-catcard__media { background: var(--gl-cream-2); }
.gl-catcard__desc { grid-column: 2 / -1; font-size: 15.5px; margin-top: -6px; }

/* Intro split (services) */
.gl-intro { display: grid; gap: 40px 72px; align-items: start; }
@media (min-width: 1000px) { .gl-intro { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } }
.gl-intro h2 { font-size: clamp(2rem, 1rem + 3vw, 3.6rem); letter-spacing: -0.06em; line-height: 1; margin-bottom: 22px; }
.gl-intro__text > p { font-size: var(--gl-fs-lead); max-width: 52ch; }
.gl-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.gl-chips a { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border: 1px solid var(--gl-line); font-size: 14.5px; font-weight: 500; color: var(--gl-ink); transition: background 0.35s, color 0.35s, border-color 0.35s; }
.gl-chips a::after { content: "\2197"; font-size: 13px; color: var(--gl-orange); transition: transform 0.4s var(--gl-ease), color 0.3s; }
.gl-chips a:hover { background: var(--gl-ink); border-color: var(--gl-ink); color: var(--gl-cream); }
.gl-chips a:hover::after { color: var(--gl-butter); transform: rotate(45deg); }
.gl-intro__media { position: relative; margin: 0; }
.gl-intro__media > figure { margin: 0; aspect-ratio: 5 / 4; overflow: hidden; clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%); }
.gl-intro__media > figure img { width: 100%; height: 100%; object-fit: cover; }
.gl-note { position: relative; margin: -64px 0 0 clamp(16px, 4vw, 48px); padding: 24px; background: var(--gl-forest); color: var(--gl-on-dark-2); display: grid; gap: 8px; max-width: 420px; z-index: 1; }
.gl-note span { font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-butter); }
.gl-note strong { color: var(--gl-on-dark); font-size: 22px; letter-spacing: -0.04em; line-height: 1.15; font-weight: 500; }
.gl-note p { font-size: 15px; }

/* Feature rows (services support) */
.gl-features { display: grid; gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); }
@media (min-width: 900px) { .gl-features { grid-template-columns: repeat(3, 1fr); } }
.gl-feature { background: var(--gl-cream); display: grid; gap: 18px; align-content: start; padding: clamp(18px, 2vw, 24px); transition: background 0.35s; }
.gl-feature:hover { background: var(--gl-paper); }
.gl-feature__img { aspect-ratio: 16 / 10; overflow: hidden; }
.gl-feature__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--gl-ease); }
.gl-feature:hover .gl-feature__img img { transform: scale(1.06); }
.gl-feature__no { font-size: 13px; font-weight: 600; color: var(--gl-orange); }
.gl-feature h3 { font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.85rem); letter-spacing: -0.05em; }
.gl-feature p { font-size: 15.5px; }

/* Contact */
.gl-contact { display: grid; gap: 24px; align-items: stretch; }
@media (min-width: 1000px) { .gl-contact { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); } }
.gl-formcard { background: var(--gl-paper); border: 1px solid var(--gl-line); padding: clamp(22px, 4vw, 52px); }
.gl-formcard h2 { font-size: clamp(2rem, 1rem + 2.6vw, 3.2rem); letter-spacing: -0.06em; margin-bottom: 8px; }
.gl-formcard > p { margin-bottom: 30px; }
.gl-form { display: grid; gap: 26px 28px; }
@media (min-width: 640px) { .gl-form { grid-template-columns: 1fr 1fr; } }
.gl-form label { display: grid; gap: 6px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-mute); }
.gl-form label.full { grid-column: 1 / -1; }
.gl-form input, .gl-form select, .gl-form textarea { width: 100%; border: 0; border-bottom: 1px solid var(--gl-line); background: transparent; padding: 10px 0 12px; font-size: 17px; font-weight: 500; letter-spacing: -0.01em; text-transform: none; color: var(--gl-ink); outline: none; border-radius: 0; transition: border-color 0.3s, background-size 0.5s var(--gl-ease);
  background-image: linear-gradient(var(--gl-orange), var(--gl-orange)); background-repeat: no-repeat; background-position: 0 100%; background-size: 0 2px; }
.gl-form input:focus, .gl-form select:focus, .gl-form textarea:focus { background-size: 100% 2px; }
.gl-form input::placeholder, .gl-form textarea::placeholder { color: rgba(18, 18, 18, 0.38); font-weight: 400; }
.gl-form select { appearance: none; -webkit-appearance: none; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23121212' stroke-width='1.6'/%3E%3C/svg%3E"), linear-gradient(var(--gl-orange), var(--gl-orange)); background-position: right 2px center, 0 100%; background-size: auto, 0 2px; }
.gl-form select:focus { background-size: auto, 100% 2px; }
.gl-form textarea { min-height: 130px; resize: vertical; }
.gl-form .gl-btn { justify-self: start; margin-top: 6px; }
.gl-form__note { grid-column: 1 / -1; font-size: 13.5px; color: var(--gl-mute); text-transform: none; letter-spacing: 0; font-weight: 400; }
.gl-contact__info { position: relative; display: grid; align-content: space-between; gap: 32px; padding: clamp(24px, 4vw, 48px); background: var(--gl-forest); color: var(--gl-on-dark-2); overflow: hidden; }
.gl-contact__info::after { content: ""; position: absolute; right: -70px; bottom: -70px; width: 240px; height: 240px; border-radius: 50%; border: 34px solid rgba(255, 221, 153, 0.1); }
.gl-contact__badge { width: 56px; height: 56px; display: grid; place-items: center; background: var(--gl-butter); color: var(--gl-ink); margin-bottom: 22px; }
.gl-contact__info h3 { color: var(--gl-on-dark); font-size: clamp(2rem, 1.2rem + 2vw, 3rem); letter-spacing: -0.06em; margin-bottom: 12px; }
.gl-contact__list { display: grid; border-top: 1px solid var(--gl-line-dark); position: relative; z-index: 1; }
.gl-contact__list span { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--gl-line-dark); color: var(--gl-on-dark); font-size: 17px; font-weight: 500; letter-spacing: -0.02em; }
.gl-contact__list svg { flex: none; color: var(--gl-butter); }

/* Blog index (feature layout) */
.gl-blog-feature { display: grid; gap: clamp(28px, 3vw, 36px) clamp(18px, 2vw, 28px); }
@media (min-width: 900px) {
  .gl-blog-feature { grid-template-columns: 1.35fr 1fr; grid-template-rows: auto auto; }
  .gl-blog-feature > .gl-post:first-child { grid-row: span 2; }
  .gl-blog-feature > .gl-post:first-child .gl-post__img { aspect-ratio: 4 / 3.4; }
  .gl-blog-feature > .gl-post:first-child h3 { font-size: clamp(1.6rem, 1rem + 1.6vw, 2.4rem); }
  .gl-blog-feature > .gl-post:not(:first-child) { grid-template-columns: 1fr 1fr; align-items: center; }
  .gl-blog-feature > .gl-post:not(:first-child) .gl-post__img { grid-row: span 3; }
}
.gl-post__meta { display: flex; gap: 10px; align-items: center; font-size: 13px; color: var(--gl-mute); }
.gl-post__meta::before { content: ""; width: 18px; height: 1px; background: var(--gl-orange); }
.gl-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(28px, 3vw, 40px); }
.gl-tabs a { padding: 10px 16px; border: 1px solid var(--gl-line); font-size: 14.5px; font-weight: 500; color: var(--gl-ink); transition: background 0.3s, color 0.3s, border-color 0.3s; }
.gl-tabs a:hover { border-color: var(--gl-ink); }
.gl-tabs a[aria-current] { background: var(--gl-ink); border-color: var(--gl-ink); color: var(--gl-cream); }

/* Blog article */
.gl-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 120; height: 3px; background: transparent; pointer-events: none; }
.gl-progress i { display: block; height: 100%; background: var(--gl-orange); transform-origin: left; transform: scaleX(var(--p, 0)); }
.gl-arthead { padding: calc(var(--gl-header-h) + clamp(36px, 6vw, 80px)) 0 clamp(32px, 4vw, 52px); background: radial-gradient(55% 60% at 100% 0%, rgba(255, 221, 153, 0.5), transparent 70%), var(--gl-cream); }
.gl-arthead h1 { font-size: clamp(2.4rem, 1rem + 4.4vw, 5.2rem); font-weight: 700; letter-spacing: -0.065em; line-height: 0.98; max-width: 18ch; }
.gl-arthead .gl-lead { margin-top: 22px; max-width: 60ch; }
.gl-arthead__meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 22px; }
.gl-article__cover { margin: 0; aspect-ratio: 21 / 9; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 100%, calc(62% + 34px) 100%, 62% calc(100% - 34px), 0 calc(100% - 34px)); }
.gl-article__cover img { width: 100%; height: 100%; object-fit: cover; }
.gl-article { display: grid; gap: 48px; padding-block: clamp(48px, 6vw, 88px) var(--gl-sec); }
@media (min-width: 1040px) { .gl-article { grid-template-columns: minmax(0, 1fr) 340px; gap: 72px; align-items: start; } }
.gl-prose { max-width: 72ch; font-size: 18px; line-height: 1.75; }
.gl-prose > * + * { margin-top: 22px; }
.gl-prose h3 { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); letter-spacing: -0.05em; line-height: 1.1; margin-top: 52px; display: flex; gap: 14px; align-items: baseline; }
.gl-prose h3::before { content: ""; width: 10px; height: 10px; background: var(--gl-orange); flex: none; transform: translateY(-0.15em); }
.gl-prose h3:first-child { margin-top: 0; }
.gl-quote { position: relative; margin-block: 44px !important; padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) clamp(64px, 7vw, 96px); background: var(--gl-butter); }
.gl-quote__mark { position: absolute; left: clamp(18px, 2vw, 28px); top: 4px; font-size: clamp(72px, 8vw, 110px); line-height: 1; color: var(--gl-orange); font-weight: 700; }
.gl-quote p { font-size: clamp(1.2rem, 1rem + 0.7vw, 1.6rem); line-height: 1.35; letter-spacing: -0.035em; font-weight: 500; color: var(--gl-ink); }
.gl-prose ul { display: grid; gap: 12px; }
.gl-prose ul li { position: relative; padding-left: 34px; color: var(--gl-ink); }
.gl-prose ul li::before { content: ""; position: absolute; left: 0; top: 7px; width: 18px; height: 18px; background: var(--gl-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.gl-imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-block: 40px !important; }
.gl-imgs figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.gl-imgs img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--gl-ease); }
.gl-imgs figure:hover img { transform: scale(1.05); }
.gl-share { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 52px !important; padding-top: 24px; border-top: 1px solid var(--gl-line); }
.gl-aside { display: grid; gap: 22px; }
@media (min-width: 1040px) { .gl-aside { position: sticky; top: calc(var(--gl-header-h) + 24px); } }
.gl-widget { border: 1px solid var(--gl-line); background: var(--gl-paper); }
.gl-widget h3 { padding: 18px 22px; border-bottom: 1px solid var(--gl-line); font-size: 18px; letter-spacing: -0.03em; display: flex; align-items: center; gap: 10px; }
.gl-widget h3::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gl-orange); }
.gl-widget__links a { display: flex; justify-content: space-between; align-items: center; padding: 14px 22px; border-bottom: 1px solid var(--gl-line-2); font-weight: 500; color: var(--gl-ink); transition: background 0.3s, padding 0.4s var(--gl-ease), color 0.3s; }
.gl-widget__links li:last-child a { border-bottom: 0; }
.gl-widget__links a span { color: var(--gl-orange); transition: transform 0.4s var(--gl-ease); }
.gl-widget__links a:hover { background: var(--gl-cream); padding-left: 28px; }
.gl-widget__links a:hover span { transform: translateX(4px); }
.gl-widget__posts { display: grid; }
.gl-widget__posts a { display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: center; padding: 14px 22px; border-bottom: 1px solid var(--gl-line-2); font-size: 15px; font-weight: 500; line-height: 1.35; color: var(--gl-ink); letter-spacing: -0.02em; transition: background 0.3s; }
.gl-widget__posts a:last-child { border-bottom: 0; }
.gl-widget__posts img { width: 76px; height: 60px; object-fit: cover; }
.gl-widget__posts a:hover { background: var(--gl-cream); }
.gl-widget__posts a:hover span { color: var(--gl-orange); }

/* Sitemap */
.gl-smap { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--gl-line); border-left: 1px solid var(--gl-line); }
@media (min-width: 640px) { .gl-smap { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .gl-smap { grid-template-columns: repeat(5, 1fr); } }
.gl-smap__card { display: grid; gap: 20px; align-content: start; padding: clamp(22px, 2.4vw, 32px); border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); background: var(--gl-cream); transition: background 0.35s; }
.gl-smap__card:hover { background: var(--gl-paper); }
.gl-smap__card--featured { background: var(--gl-forest); color: var(--gl-on-dark-2); }
.gl-smap__card--featured:hover { background: var(--gl-forest-d); }
.gl-smap__card--featured h3, .gl-smap__card--featured a { color: var(--gl-on-dark) !important; }
.gl-smap__card--featured .gl-smap__kicker { color: var(--gl-butter); }
.gl-smap__kicker { font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-orange); }
.gl-smap__card h3 { font-size: 24px; letter-spacing: -0.045em; margin-top: 6px; }
.gl-smap__links { display: grid; gap: 4px; }
.gl-smap__links a { display: inline-flex; gap: 8px; padding: 5px 0; font-weight: 500; color: var(--gl-ink); transition: color 0.3s, transform 0.4s var(--gl-ease); }
.gl-smap__links a::before { content: "\2192"; color: var(--gl-orange); opacity: 0; width: 0; overflow: hidden; transition: opacity 0.3s, width 0.4s var(--gl-ease); }
.gl-smap__links a:hover { color: var(--gl-orange); }
.gl-smap__links a:hover::before { opacity: 1; width: 1em; }
.gl-smap__card--wide { grid-column: 1 / -1; }
.gl-smap__card--wide .gl-smap__links { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); column-gap: 28px; }
.gl-smap__card--wide .gl-smap__links a { border-bottom: 1px solid var(--gl-line-2); width: 100%; padding: 10px 0; }

/* 404 */
.gl-404 { position: relative; min-height: 100vh; min-height: 100svh; display: grid; align-items: center; padding: calc(var(--gl-header-h) + 40px) 0 80px; overflow: hidden; background: radial-gradient(60% 60% at 80% 10%, rgba(255, 221, 153, 0.55), transparent 70%), var(--gl-cream); }
.gl-404__num { font-size: clamp(9rem, 4rem + 22vw, 24rem); font-weight: 700; letter-spacing: -0.08em; line-height: 0.8; color: var(--gl-ink); display: flex; align-items: center; }
.gl-404__num span:nth-child(2) { color: transparent; -webkit-text-stroke: 2px var(--gl-orange); display: inline-block; animation: gl-float 5s var(--gl-ease-io) infinite; }
.gl-404 h1 { font-size: clamp(2.2rem, 1.2rem + 3vw, 4rem); letter-spacing: -0.06em; margin-top: 28px; }
.gl-404 p { font-size: var(--gl-fs-lead); margin-top: 14px; max-width: 48ch; }
.gl-404 .gl-search { margin-top: 32px; max-width: 900px; }
.gl-404__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.gl-404 .gl-badge { position: absolute; left: auto; right: clamp(16px, 6vw, 96px); bottom: auto; top: calc(var(--gl-header-h) + 40px); }
@media (max-width: 760px) { .gl-404 .gl-badge { display: none; } }

/* 26. CATEGORY INDEX — homepage card design on forest ---------------------- */
.gl-catindex .gl-catcard[hidden] { display: none; }
.gl-catcard__icon { position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; display: grid; place-items: center; background: var(--gl-forest); color: var(--gl-cream); transition: background 0.4s, transform 0.6s var(--gl-ease); }
.gl-catcard__icon svg { width: 26px; height: 26px; }
.gl-catcard__icon .a { stroke: var(--gl-butter); }
.gl-catcard:hover .gl-catcard__icon { background: var(--gl-orange); transform: rotate(-8deg); }
.gl-catcard:hover .gl-catcard__icon .a { stroke: #fff; }
.gl-toolbar--dark { background: rgba(26, 65, 49, 0.94); border-bottom-color: var(--gl-line-dark); margin-bottom: clamp(28px, 3vw, 44px); }
.gl-toolbar--dark p { color: var(--gl-on-dark-2); }
.gl-toolbar--dark p strong { color: var(--gl-butter); }
.gl-toolbar--dark .gl-filter { max-width: 520px; }
.gl-toolbar--dark .gl-filter input { background: rgba(252, 252, 242, 0.06); border-color: var(--gl-line-dark); color: var(--gl-on-dark); }
.gl-toolbar--dark .gl-filter input::placeholder { color: rgba(252, 252, 242, 0.5); }
.gl-toolbar--dark .gl-filter input:focus { border-color: var(--gl-butter); box-shadow: 0 0 0 4px rgba(255, 221, 153, 0.14); }
.gl-toolbar--dark .gl-filter svg { color: var(--gl-butter); }
.gl-empty--dark { border-color: var(--gl-line-dark); color: var(--gl-on-dark); }
.gl-empty--dark a { color: var(--gl-butter); }
.gl-catindex .gl-cat-grid { row-gap: clamp(36px, 4vw, 52px); }
@media (max-width: 639px) {
  /* compact 2-column index on phones (homepage uses a swipe row for 6 cards) */
  .gl-catindex .gl-cat-grid { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr 1fr; gap: 22px 12px; overflow: visible; margin-inline: 0; padding: 0; }
  .gl-catindex .gl-catcard { gap: 10px; }
  .gl-catindex .gl-catcard__media { aspect-ratio: 1; }
  .gl-catindex .gl-catcard__count { left: 8px; top: 8px; padding: 4px 7px; font-size: 11.5px; }
  .gl-catindex .gl-catcard__icon { right: 8px; top: auto; bottom: 8px; width: 34px; height: 34px; }
  .gl-catindex .gl-catcard__icon svg { width: 20px; height: 20px; }
  .gl-catindex .gl-catcard__body { grid-template-columns: 1fr; padding-top: 10px; gap: 4px; }
  .gl-catindex .gl-catcard__num, .gl-catindex .gl-catcard__go { display: none; }
  .gl-catindex .gl-catcard h3 { font-size: 16px; letter-spacing: -0.03em; }
  .gl-catindex .gl-catcard__band span { font-size: 13px; }
}

/* 27. BLOG INDEX — Markency "Articles" layout ------------------------------ */
.gl-pill { display: inline-flex; align-items: center; justify-self: start; align-self: flex-start; padding: 9px 20px; border: 1px solid var(--gl-line); border-radius: 22px; font-size: 15px; font-weight: 500; letter-spacing: -0.02em; color: var(--gl-ink); background: transparent; line-height: 1.2; white-space: nowrap; }
.gl-bhero { padding: calc(var(--gl-header-h) + clamp(40px, 7vw, 120px)) 0 clamp(64px, 8vw, 120px); background: radial-gradient(55% 60% at 100% 0%, rgba(255, 221, 153, 0.45), transparent 70%), var(--gl-cream); }
.gl-bhero__head { display: grid; gap: 18px 48px; align-items: end; margin-bottom: clamp(32px, 4vw, 48px); }
@media (min-width: 1000px) { .gl-bhero__head { grid-template-columns: 1fr 380px; } }
.gl-bhero__head .breadcrumb { margin-bottom: 14px; }
.gl-bhero__title { font-size: clamp(3rem, 1rem + 6.4vw, 6.2rem); font-weight: 600; letter-spacing: -0.065em; line-height: 1; }
.gl-bhero__lead { font-size: 17px; padding-bottom: 12px; }
.gl-bfeat { display: grid; gap: 24px; }
@media (min-width: 1000px) { .gl-bfeat { grid-template-columns: minmax(0, 636fr) minmax(0, 660fr); } }
.gl-bfeat__img { display: block; position: relative; overflow: hidden; background: var(--gl-cream-2); }
.gl-bfeat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--gl-ease); }
.gl-bfeat__main, .gl-bfeat__row { position: relative; overflow: hidden; }
.gl-bfeat__main .gl-bfeat__img { aspect-ratio: 3 / 2; height: 100%; }
.gl-bfeat__main:hover .gl-bfeat__img img, .gl-bfeat__row:hover .gl-bfeat__img img { transform: scale(1.06); }
.gl-bfeat__box { display: grid; gap: 0; align-content: start; }
.gl-bfeat__main .gl-bfeat__box { position: absolute; left: 16px; bottom: 16px; width: min(320px, calc(100% - 32px)); padding: 24px; background: var(--gl-cream); transition: transform 0.6s var(--gl-ease); }
.gl-bfeat__main:hover .gl-bfeat__box { transform: translateY(-6px); }
.gl-bfeat__title { margin: 22px 0 20px; padding-bottom: 20px; border-bottom: 1px solid var(--gl-line); font-size: 20px !important; font-weight: 500 !important; letter-spacing: -0.045em; line-height: 1.22; }
.gl-bfeat__title a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.5s var(--gl-ease); }
.gl-bfeat__title a:hover { background-size: 100% 1.5px; }
.gl-bfeat__side { display: grid; gap: 24px; }
.gl-bfeat__row { display: grid; grid-template-columns: minmax(0, 300fr) minmax(0, 300fr); gap: 24px; align-items: center; }
.gl-bfeat__row .gl-bfeat__img { aspect-ratio: 3 / 2; }
@media (max-width: 599px) {
  .gl-bfeat__main { overflow: visible; }
  .gl-bfeat__main .gl-bfeat__img { height: auto; }
  .gl-bfeat__main .gl-bfeat__box { position: relative; left: auto; bottom: auto; width: auto; margin: -48px 12px 0; box-shadow: var(--gl-shadow); }
  .gl-bfeat__row { grid-template-columns: 1fr; gap: 16px; }
}
.gl-center-head { text-align: center; display: grid; justify-items: center; margin-bottom: clamp(36px, 4vw, 56px); }
.gl-bgrid { display: grid; grid-template-columns: 1fr; border-left: 1px solid var(--gl-line); }
@media (min-width: 700px) { .gl-bgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .gl-bgrid { grid-template-columns: repeat(3, 1fr); } }
.gl-bcard { display: grid; gap: 24px; align-content: start; padding: 24px; border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); border-right: 1px solid var(--gl-line); margin-bottom: -1px; transition: background 0.4s; }
.gl-bcard:hover { background: var(--gl-paper); }
.gl-bcard__img { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--gl-cream-2); }
.gl-bcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--gl-ease); }
.gl-bcard__band { position: absolute; left: 0; right: 0; top: 50%; padding: 15px 0; background: var(--gl-orange); color: #fff; overflow: hidden; opacity: 0; transform: translateY(calc(-50% - 28px)); transition: opacity 0.45s var(--gl-ease), transform 0.6s var(--gl-ease); }
.gl-bcard__band > span { display: flex; width: max-content; gap: 22px; font-size: 18px; font-weight: 500; letter-spacing: -0.03em; white-space: nowrap; animation: gl-marquee 10s linear infinite; }
.gl-bcard__band i { font-style: normal; }
.gl-bcard:hover .gl-bcard__band, .gl-bcard:focus-within .gl-bcard__band { opacity: 1; transform: translateY(-50%); }
.gl-bcard:hover .gl-bcard__img img { transform: scale(1.05); }
.gl-bcard__title { font-size: clamp(1.25rem, 1.05rem + 0.5vw, 1.5rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1.15; }
.gl-bcard__title a:hover { color: var(--gl-orange); }
.gl-bcard__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 24px; border-top: 1px solid var(--gl-line); }
.gl-bcard__by { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--gl-text); }
.gl-bcard__by svg { color: var(--gl-ink); }
