:root {
  --forest-50: #f1f7f4;
  --forest-100: #dcece2;
  --forest-400: #3f8f68;
  --forest-600: #1f6b47;
  --forest-700: #175537;
  --forest-900: #0d3223;
  --honey-100: #fdf1dd;
  --honey-500: #e8a63b;
  --honey-600: #c9861f;
  --ink: #1a2420;
  --radius: 1.1rem;
}

* { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--forest-50);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.5;
}

img, video { max-width: 100%; height: auto; display: block; }

h1, h2 { font-family: Georgia, "Times New Roman", serif; margin: 0 0 .5rem; color: var(--forest-900); }

a { color: inherit; text-decoration: none; }

.container { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 10;
  background: rgba(241, 247, 244, .95);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--forest-100);
}
.header-inner { display: flex; align-items: center; gap: .5rem; padding-top: .75rem; padding-bottom: .75rem; }
.logo { font-family: Georgia, serif; font-size: 1.35rem; font-weight: 600; color: var(--forest-900); white-space: nowrap; display: flex; align-items: center; }
.logo__img { height: 2.75rem; width: auto; display: block; }
@media (min-width: 480px) { .logo__img { height: 3.25rem; } }
.main-nav { display: none; }
@media (min-width: 768px) { .main-nav { display: flex; gap: 1.5rem; font-weight: 500; margin-left: 1.5rem; } }
.header-actions { display: flex; gap: .25rem; margin-left: auto; }
.icon-btn { position: relative; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 999px; font-size: 1.15rem; flex-shrink: 0; }
.icon-btn:hover { background: var(--forest-100); }
.cart-badge { position: absolute; top: 2px; right: 2px; background: var(--honey-500); color: #fff; font-size: .65rem; font-weight: 700; border-radius: 999px; padding: 1px 5px; }

/* Mobile hamburger menu */
.menu-toggle {
  display: grid; place-items: center; gap: .3rem;
  width: 2.75rem; height: 2.75rem; flex-shrink: 0;
  background: none; border: none; cursor: pointer; border-radius: .6rem;
}
.menu-toggle:hover { background: var(--forest-100); }
.menu-toggle span { display: block; width: 1.35rem; height: 2px; background: var(--forest-900); transition: transform .2s, opacity .2s; }
.menu-toggle--open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle--open span:nth-child(2) { opacity: 0; }
.menu-toggle--open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (min-width: 768px) { .menu-toggle { display: none; } }

.mobile-nav {
  display: flex; flex-direction: column;
  max-height: 0; overflow: hidden;
  transition: max-height .25s ease;
  background: #fff; border-top: 1px solid var(--forest-100);
}
.mobile-nav--open { max-height: 20rem; }
.mobile-nav a {
  padding: .9rem 1.25rem; font-size: 1rem; font-weight: 500;
  border-bottom: 1px solid var(--forest-50); min-height: 2.75rem; display: flex; align-items: center;
}
@media (min-width: 768px) { .mobile-nav { display: none; } }

body.no-scroll { overflow: hidden; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1.5rem; border-radius: 999px; font-weight: 600; border: none; cursor: pointer; font-size: 1rem; }
.btn--primary { background: var(--forest-700); color: #fff; }
.btn--primary:hover { background: var(--forest-900); }
.btn--accent { background: var(--honey-500); color: #fff; }
.btn--wide { width: 100%; }
.link-btn { background: none; border: none; color: var(--forest-400); text-decoration: underline; cursor: pointer; font-size: .875rem; }

/* Hero / banner carousel */
.hero { padding-top: 1.5rem; }
.hero-carousel-wrap { position: relative; border-radius: var(--radius); overflow: hidden; }
.hero-carousel {
  display: flex; overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.hero-carousel::-webkit-scrollbar { display: none; }
.hero-banner {
  flex: 0 0 100%; scroll-snap-align: start; position: relative; display: block;
}
.hero-banner__img { width: 100%; height: auto; display: block; }
.hero-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(13,50,35,.35) 0%, rgba(13,50,35,0) 45%); pointer-events: none; }
.hero-banner__content { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.25rem; color: #fff; max-width: 26rem; }
.hero-banner__content h1 { color: #fff; font-size: clamp(1.4rem, 5vw, 2.2rem); line-height: 1.2; text-shadow: 0 1px 6px rgba(0,0,0,.4); margin: 0 0 .4rem; }
.hero-banner__content p { text-shadow: 0 1px 6px rgba(0,0,0,.4); margin: 0 0 .75rem; }
@media (min-width: 768px) { .hero-banner__content { padding: 2.5rem; } }

.hero-carousel__dots { position: absolute; bottom: .75rem; left: 50%; transform: translateX(-50%); display: flex; gap: .4rem; z-index: 2; }
.hero-carousel__dot { width: .5rem; height: .5rem; border-radius: 999px; background: rgba(255,255,255,.5); border: none; padding: 0; cursor: pointer; }
.hero-carousel__dot--active { background: #fff; width: 1.4rem; }

.hero-carousel__arrow {
  display: none; position: absolute; top: 50%; transform: translateY(-50%);
  width: 2.5rem; height: 2.5rem; border-radius: 999px; z-index: 2;
  background: rgba(255,255,255,.85); border: none; cursor: pointer;
  align-items: center; justify-content: center; font-size: 1.5rem; line-height: 1;
  color: var(--forest-900);
}
.hero-carousel__arrow:hover { background: #fff; }
.hero-carousel__arrow--prev { left: .75rem; }
.hero-carousel__arrow--next { right: .75rem; }
@media (min-width: 768px) { .hero-carousel__arrow { display: flex; } }
@media (min-width: 768px) { .hero-banner { min-height: 320px; } .hero-banner__content { padding: 2.5rem; } }

/* Sections */
.section { padding-top: 2rem; padding-bottom: 2rem; }
.section__header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1rem; }
.section__title { font-size: clamp(1.15rem, 3.2vw, 1.4rem); }
.section__title-link { color: var(--forest-900); }
.section__title-link:hover { color: var(--forest-600); }
.section__more { font-size: .875rem; font-weight: 600; color: var(--forest-600); }
.page-title { font-size: clamp(1.35rem, 4vw, 1.7rem); margin-bottom: 1.5rem; }

/* Categories — сітка, що сама підлаштовується під кількість категорій,
   а не горизонтальний скрол з дрібними картками. З 3-5 категоріями (як у
   вас) це виглядає як повноцінний мобільний блок, а не стиснутий desktop. */
.category-scroll {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
  gap: .85rem;
}
.category-chip { text-align: center; background: #fff; border-radius: var(--radius); padding: 1.1rem .6rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.category-chip__image { width: 4.5rem; height: 4.5rem; margin: 0 auto .6rem; border-radius: 999px; overflow: hidden; background: var(--forest-100); }
@media (min-width: 480px) { .category-chip__image { width: 4.75rem; height: 4.75rem; } }
.category-chip__image img { width: 100%; height: 100%; object-fit: cover; }
.category-chip span { font-size: .85rem; font-weight: 500; line-height: 1.25; }

/* Product grid & card */
.product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 640px) { .product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .product-grid { grid-template-columns: repeat(4, 1fr); } }

/* Горизонтальний скрол товарів на головній — ТІЛЬКИ на мобільних (<768px).
   На ПК (768px+) повертається до звичайної сітки, як і раніше. */
.product-scroll {
  display: flex; gap: 1rem; overflow-x: auto;
  -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity;
  padding-bottom: .35rem;
}
.product-scroll .product-card { flex: 0 0 auto; width: 11rem; scroll-snap-align: start; }
@media (min-width: 480px) { .product-scroll .product-card { width: 12rem; } }

@media (min-width: 768px) {
  .product-scroll {
    display: grid; grid-template-columns: repeat(3, 1fr);
    overflow-x: visible; padding-bottom: 0;
  }
  .product-scroll .product-card { width: auto; }
}
@media (min-width: 900px) { .product-scroll { grid-template-columns: repeat(4, 1fr); } }

.product-card { display: block; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: transform .15s; }
.product-card:hover { transform: translateY(-2px); }
.product-card__image { position: relative; aspect-ratio: 1; background: var(--forest-100); }
.product-card__image img { width: 100%; height: 100%; object-fit: cover; }
.product-card__placeholder { display: grid; place-items: center; height: 100%; color: var(--forest-400); font-size: .8rem; }
.badge { position: absolute; top: .6rem; left: .6rem; background: var(--honey-500); color: #fff; font-size: .7rem; font-weight: 700; padding: .25rem .6rem; border-radius: 999px; }
.product-card__body { padding: .75rem; }
.product-card__name { font-size: .875rem; margin: 0 0 .35rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-card__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem .5rem; }
.price { font-weight: 700; color: var(--forest-900); font-family: Georgia, serif; }
.price--old { font-weight: 400; color: var(--forest-400); text-decoration: line-through; margin-left: .4rem; }
.price--large { font-size: 1.35rem; }
@media (min-width: 480px) { .price--large { font-size: 1.5rem; } }

/* Info blocks */
.info-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .info-grid { grid-template-columns: repeat(3, 1fr); } }
.info-card { background: #fff; border-radius: var(--radius); padding: 1.25rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.info-card__title { font-weight: 600; color: var(--forest-900); margin: 0 0 .3rem; }

/* Catalog layout */
.catalog-layout { display: grid; gap: 1.25rem; }
@media (min-width: 768px) { .catalog-layout { grid-template-columns: 200px 1fr; gap: 2rem; } }

/* Mobile (<768px): категорії — горизонтальна стрічка чіпів над товарами,
   а не вертикальний сайдбар у 4+ рядки, який зʼїдає весь перший екран. */
.catalog-sidebar {
  display: flex; flex-direction: row; gap: .5rem;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  padding-bottom: .25rem;
}
.sidebar-link {
  flex-shrink: 0; white-space: nowrap;
  padding: .55rem 1.1rem; border-radius: 999px; font-size: .875rem;
  background: #fff; border: 1px solid var(--forest-100);
}
.sidebar-link--active { background: var(--forest-700); color: #fff; border-color: var(--forest-700); font-weight: 600; }

@media (min-width: 768px) {
  .catalog-sidebar { flex-direction: column; overflow-x: visible; gap: .25rem; padding-bottom: 0; }
  .sidebar-link { padding: .5rem .75rem; border-radius: .6rem; background: none; border: none; }
  .sidebar-link--active { background: var(--forest-100); color: inherit; }
  .sidebar-link:hover { background: var(--forest-50); }
}

.catalog-filters { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.catalog-filters input, .catalog-filters select { padding: .6rem 1rem; border-radius: 999px; border: 1px solid var(--forest-100); font-size: 1rem; min-height: 2.75rem; }
.catalog-filters input[type=search] { flex: 1; min-width: 200px; }

.empty-state { color: var(--forest-400); padding: 2rem 0; }

/* Product page */
.product-page { display: grid; gap: 2rem; }
@media (min-width: 768px) { .product-page { grid-template-columns: 1fr 1fr; } }
.product-gallery__main { aspect-ratio: 1; background: var(--forest-100); border-radius: var(--radius); overflow: hidden; }
.product-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.product-gallery__thumbs { display: flex; gap: .5rem; margin-top: .75rem; overflow-x: auto; }
.product-gallery__thumbs img { width: 4rem; height: 4rem; object-fit: cover; border-radius: .6rem; flex-shrink: 0; }
.product-video { width: 100%; margin-top: .75rem; border-radius: var(--radius); }
.product-info h1 { font-size: 1.4rem; line-height: 1.25; }
@media (min-width: 480px) { .product-info h1 { font-size: 1.6rem; } }
.product-article { color: var(--forest-400); font-size: .875rem; }
.product-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem .75rem; margin: 1rem 0; }
.product-buy-form { margin-bottom: 1.5rem; }
.product-description { color: #33443c; white-space: pre-line; margin-bottom: 1.5rem; }

/* Cart */
.cart-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.cart-item {
  display: grid; grid-template-columns: 3.75rem 1fr; grid-template-areas: "image body" "image actions";
  gap: .25rem .9rem;
  background: #fff; border-radius: var(--radius); padding: .75rem; box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.cart-item__image { grid-area: image; width: 3.75rem; height: 3.75rem; border-radius: .6rem; overflow: hidden; background: var(--forest-100); }
.cart-item__image img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__body { grid-area: body; min-width: 0; }
.cart-item__name { font-weight: 500; margin: 0 0 .25rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.cart-item__actions { grid-area: actions; display: flex; align-items: center; gap: 1rem; }
.cart-item__qty input { width: 3.75rem; height: 2.5rem; padding: .4rem; border-radius: .5rem; border: 1px solid var(--forest-100); text-align: center; font-size: 1rem; }
.cart-total { display: flex; justify-content: space-between; align-items: center; background: #fff; border-radius: var(--radius); padding: 1rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); margin-bottom: 1rem; }

@media (min-width: 480px) {
  .cart-item { grid-template-columns: 4rem 1fr auto; grid-template-areas: "image body actions"; align-items: center; }
  .cart-item__image { width: 4rem; height: 4rem; }
  .cart-item__name { -webkit-line-clamp: 1; white-space: nowrap; }
}

/* Checkout */
.checkout-form { display: flex; flex-direction: column; gap: .75rem; max-width: 32rem; }
.checkout-form input, .checkout-form select { padding: .75rem 1rem; border-radius: .7rem; border: 1px solid var(--forest-100); font-size: 1rem; width: 100%; }
.form-row { display: grid; grid-template-columns: 1fr; gap: .75rem; }
@media (min-width: 420px) { .form-row { grid-template-columns: 1fr 1fr; } }
.checkout-note { font-size: .8rem; color: var(--forest-400); }
.alert { padding: .75rem 1rem; border-radius: .7rem; margin-bottom: 1rem; }
.alert--error { background: #fdeeee; color: #b42318; }

/* Nova Poshta picker */
.np-picker { display: flex; flex-direction: column; gap: 1rem; }
.np-field label { display: block; font-size: .85rem; font-weight: 600; color: var(--forest-900); margin-bottom: .35rem; }
.np-field input:disabled { background: var(--forest-50); color: var(--forest-400); cursor: not-allowed; }
.np-results { position: relative; }
.np-results--scroll { max-height: 16rem; overflow-y: auto; border: 1px solid var(--forest-100); border-radius: .5rem; }
.np-results--scroll .np-result { border-top: none; border-left: none; border-right: none; }
.np-results--scroll .np-result:first-child { border-radius: 0; border-top: none; }
.np-results--scroll .np-result:last-child { border-radius: 0; }
.np-result { display: block; width: 100%; text-align: left; padding: .6rem .8rem; background: #fff; border: 1px solid var(--forest-100); border-top: none; cursor: pointer; font-size: .9rem; }
.np-result:first-child { border-top: 1px solid var(--forest-100); border-radius: .5rem .5rem 0 0; }
.np-result:last-child { border-radius: 0 0 .5rem .5rem; }
.np-result:hover { background: var(--forest-50); }
.np-area { color: var(--forest-400); }
.np-selected { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 1rem; border: 1px solid var(--forest-100); border-radius: .7rem; background: #fff; }
.np-selected[hidden] { display: none; }
.np-selected__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.np-selected button { background: none; border: none; color: var(--forest-600); text-decoration: underline; cursor: pointer; font-size: .85rem; flex-shrink: 0; min-height: 2.25rem; }
.np-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.np-chip { padding: .3rem .8rem; border-radius: 999px; border: 1px solid var(--forest-100); background: #fff; font-size: .8rem; cursor: pointer; }
.np-chip--active { background: var(--forest-700); color: #fff; border-color: var(--forest-700); }
.np-error { color: #b42318; font-size: .85rem; }

/* Payment method selection */
.payment-methods { display: flex; flex-direction: column; gap: .6rem; }
.payment-method { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .75rem; padding: .9rem 1rem; border: 1px solid var(--forest-100); border-radius: .8rem; cursor: pointer; background: #fff; }
.payment-method:has(input:checked) { border-color: var(--forest-700); background: var(--forest-50); }
.payment-method input { margin-top: .25rem; }
.payment-method strong { display: block; font-size: .95rem; }
.payment-method small { display: block; color: var(--forest-400); font-size: .8rem; margin-top: .1rem; word-break: break-word; }

.success-page { text-align: center; padding-top: 3rem; padding-bottom: 3rem; }

/* Reviews */
.review-list { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.5rem; }
.review-card { background: #fff; border-radius: var(--radius); padding: 1rem 1.25rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.review-card__name { font-weight: 600; color: var(--forest-900); margin: 0 0 .35rem; }
.review-card__text { margin: 0; color: #33443c; white-space: pre-line; }
.review-form-toggle summary { cursor: pointer; font-weight: 600; color: var(--forest-700); padding: .5rem 0; }
.review-form { display: flex; flex-direction: column; gap: .75rem; max-width: 32rem; margin-top: .75rem; }
.review-form input, .review-form textarea { padding: .7rem 1rem; border-radius: .7rem; border: 1px solid var(--forest-100); font-size: 1rem; font-family: inherit; }
.review-form textarea { min-height: 6rem; resize: vertical; }

/* Instagram videos */
.instagram-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
@media (min-width: 480px) { .instagram-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 768px) { .instagram-grid { grid-template-columns: repeat(6, 1fr); gap: .75rem; } }
.instagram-item { aspect-ratio: 9 / 16; border-radius: .6rem; overflow: hidden; background: var(--forest-100); }
.instagram-item video { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Advantages */
.advantages-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 640px) { .advantages-grid { grid-template-columns: repeat(4, 1fr); } }
.advantage-card { background: #fff; border-radius: var(--radius); padding: 1.25rem 1rem; text-align: center; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.advantage-card__icon { font-size: 1.75rem; display: block; margin-bottom: .5rem; }
.advantage-card__title { font-weight: 600; color: var(--forest-900); margin: 0 0 .25rem; font-size: .95rem; }
.advantage-card__text { margin: 0; font-size: .8rem; color: var(--forest-400); }

/* FAQ */
.faq-list { display: flex; flex-direction: column; gap: .6rem; max-width: 42rem; }
.faq-item { background: #fff; border-radius: var(--radius); padding: 1rem 1.25rem; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.faq-item summary { cursor: pointer; font-weight: 600; color: var(--forest-900); list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before { content: '+ '; color: var(--forest-600); font-weight: 700; }
.faq-item[open] summary::before { content: '– '; }
.faq-item p { margin: .6rem 0 0; color: #33443c; }

/* Legal / info pages */
.legal-content { max-width: 46rem; margin: 0 auto; }
.legal-content h1 { font-size: 1.6rem; margin-bottom: .5rem; }
.legal-content .legal-updated { color: var(--forest-400); font-size: .85rem; margin-bottom: 2rem; }
.legal-content h2 { font-size: 1.15rem; margin: 2rem 0 .75rem; color: var(--forest-900); }
.legal-content h3 { font-size: 1rem; margin: 1.25rem 0 .5rem; color: var(--forest-900); }
.legal-content p { margin: 0 0 .9rem; color: #33443c; }
.legal-content ul, .legal-content ol { margin: 0 0 .9rem; padding-left: 1.4rem; color: #33443c; }
.legal-content li { margin-bottom: .4rem; }
.legal-content strong { color: var(--forest-900); }
.legal-content .placeholder { background: var(--honey-100); color: #854f0b; padding: 0 .3rem; border-radius: .25rem; }
.legal-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.legal-nav a { font-size: .8rem; padding: .4rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--forest-100); color: var(--forest-700); }
.legal-nav a.active { background: var(--forest-700); color: #fff; border-color: var(--forest-700); }
.success-order-number { font-size: 1.2rem; }

/* Footer */
.site-footer { margin-top: 3rem; background: #fff; border-top: 1px solid var(--forest-100); }
.footer-grid { display: grid; gap: 1.5rem; padding-top: 2.5rem; padding-bottom: 2.5rem; font-size: .9rem; color: #33443c; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(3, 1fr); } }
.footer-logo { font-family: Georgia, serif; font-size: 1.2rem; color: var(--forest-900); }
.footer-title { font-weight: 600; color: var(--forest-900); }
.footer-bottom { text-align: center; padding: 1rem 1.5rem; font-size: .75rem; color: var(--forest-400); border-top: 1px solid var(--forest-100); }
.footer-bottom a { color: var(--forest-600); }
.footer-bottom a:hover { color: var(--forest-900); text-decoration: underline; }
.footer-social { display: flex; justify-content: center; gap: .75rem; margin-bottom: .75rem; }
.footer-social a { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 999px; background: var(--forest-100); color: var(--forest-700); }
.footer-social a:hover { background: var(--forest-700); color: #fff; text-decoration: none; }

/* Contact links (icon buttons) */
.contact-links { display: flex; flex-direction: column; gap: .6rem; margin-bottom: .9rem; }
.contact-link { display: flex; align-items: center; gap: .75rem; padding: .7rem 1rem; background: #fff; border: 1px solid var(--forest-100); border-radius: .8rem; color: var(--forest-900); font-size: .95rem; }
.contact-link:hover { background: var(--forest-50); }
.contact-link--static { cursor: default; }
.contact-link--static:hover { background: #fff; }
.contact-link__icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 999px; background: var(--forest-100); color: var(--forest-700); flex-shrink: 0; }
