@font-face {
  font-family: "Public Sans";
  src: url("../assets/fonts/public-sans-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../assets/fonts/public-sans-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Public Sans";
  src: url("../assets/fonts/public-sans-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Exact user-supplied Bodoni 72 Bold font from the Figma design. */
@font-face {
  font-family: "Bodoni 72";
  src: url("../assets/fonts/bodoni-72-bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Open-source fallback if the exact font cannot be loaded. */
@font-face {
  font-family: "Bodoni Moda";
  src: url("../assets/fonts/bodoni-moda-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
    /* ==================================================
     Primary colors
     ================================================== */

  --pan-primary-lighter: #d6e1d7;
  --pan-primary-light: #79907a;
  --pan-primary: #204622;
  --pan-primary-dark: #142815;


  /* ==================================================
     Secondary colors
     ================================================== */

  --pan-secondary-light: #fce6e9;
  --pan-secondary: #ebbfc3;
  --pan-secondary-dark: #e5939b;


  /* ==================================================
     Neutral colors
     ================================================== */

  --pan-neutral-0: #ffffff;
  --pan-neutral-200: #eceae8;
  --pan-neutral-400: #c3bdb6;
  --pan-neutral-600: #9a8f83;
  --pan-neutral-700: #6a6157;
  --pan-neutral-900: #38332e;


  /* ==================================================
     System colors
     ================================================== */

  --pan-success: #337b37;
  --pan-warning: #ffc107;
  --pan-error: #d93333;


  /* ==================================================
     Component and semantic colors
     ================================================== */

  --pan-color-heading: var(--pan-primary);
  --pan-color-body: var(--pan-neutral-900);
  --pan-color-muted: var(--pan-neutral-700);
  --pan-color-border: var(--pan-neutral-400);

  --pan-color-background: var(--pan-neutral-0);
  --pan-color-background-light: var(--pan-secondary-light);

  --pan-color-link: var(--pan-primary);
  --pan-color-link-hover: var(--pan-primary-dark);

  --pan-color-button-primary: var(--pan-primary);
  --pan-color-button-primary-hover: var(--pan-primary-dark);
  --pan-color-button-secondary: var(--pan-secondary);
  --pan-color-button-secondary-hover: var(--pan-secondary-dark);

  --pan-header-bg: rgb(38 39 38 / 78%);


  /* ==================================================
     Existing variable aliases
     Keeps current website CSS compatible
     ================================================== */

  --pan-green: var(--pan-primary);
  --pan-pink: var(--pan-secondary);
  --pan-pink-light: var(--pan-secondary-light);
  --pan-white: var(--pan-neutral-0);

  /* Website-wide section/container system */
  --pan-container-max-width: 1440px;
  --pan-container-padding-inline: 120px;
  --pan-section-padding-block: 60px;

  /* Desktop header auto-layout from Figma */
  --pan-desktop-header-max-width: 1440px;
  --pan-desktop-header-height: 73px;
  --pan-desktop-header-gap: 55px;
  --pan-desktop-header-padding-inline: 60px;
  --pan-desktop-header-padding-block: 12px;

  /* Figma typography — font families and shared values */
  --pan-font-display: "Bodoni 72", "Bodoni Moda", Didot, Georgia, serif;
  --pan-font-body: "Public Sans", Arial, sans-serif;
  --pan-font-weight-regular: 400;
  --pan-font-weight-semibold: 600;
  --pan-font-weight-bold: 700;
  --pan-letter-spacing-default: 0;

  /* Figma heading styles — Bodoni 72 Bold / Auto line height */
  --pan-h1-font-size: 64px;
  --pan-h1-line-height: normal;
  --pan-h2-font-size: 42px;
  --pan-h2-line-height: normal;
  --pan-h3-font-size: 32px;
  --pan-h3-line-height: normal;
  --pan-h4-font-size: 28px;
  --pan-h4-line-height: normal;
  --pan-h5-font-size: 20px;
  --pan-h5-line-height: normal;

  /* Figma body styles — Public Sans Regular */
  --pan-body-xl-font-size: 20px;
  --pan-body-xl-line-height: 1.4;
  --pan-body-l-font-size: 18px;
  --pan-body-l-line-height: 1.4;
  --pan-body-m-font-size: 16px;
  --pan-body-m-line-height: 1.5;
  --pan-body-s-font-size: 14px;
  --pan-body-s-line-height: 1.5;
  --pan-body-xs-font-size: 12px;
  --pan-body-xs-line-height: 1.5;

  /* Figma uppercase body styles — Public Sans Bold / Auto line height */
  --pan-body-m-uppercase-font-size: 16px;
  --pan-body-m-uppercase-line-height: normal;
  --pan-body-s-uppercase-font-size: 14px;
  --pan-body-s-uppercase-line-height: normal;
  --pan-body-xs-uppercase-font-size: 12px;
  --pan-body-xs-uppercase-line-height: normal;
}
/* Text colors */

.pan-text-primary {
  color: var(--pan-primary);
}

.pan-text-primary-dark {
  color: var(--pan-primary-dark);
}

.pan-text-secondary {
  color: var(--pan-secondary);
}

.pan-text-dark {
  color: var(--pan-neutral-900);
}

.pan-text-muted {
  color: var(--pan-neutral-700);
}

.pan-text-white {
  color: var(--pan-neutral-0);
}

.pan-text-success {
  color: var(--pan-success);
}

.pan-text-warning {
  color: var(--pan-warning);
}

.pan-text-error {
  color: var(--pan-error);
}


/* Background colors */

.pan-bg-primary-lighter {
  background-color: var(--pan-primary-lighter);
}

.pan-bg-primary-light {
  background-color: var(--pan-primary-light);
}

.pan-bg-primary {
  background-color: var(--pan-primary);
}

.pan-bg-primary-dark {
  background-color: var(--pan-primary-dark);
}

.pan-bg-secondary-light {
  background-color: var(--pan-secondary-light);
}

.pan-bg-secondary {
  background-color: var(--pan-secondary);
}

.pan-bg-secondary-dark {
  background-color: var(--pan-secondary-dark);
}

.pan-bg-white {
  background-color: var(--pan-neutral-0);
}

.pan-bg-neutral {
  background-color: var(--pan-neutral-200);
}

.pan-bg-dark {
  background-color: var(--pan-neutral-900);
}

.pan-bg-success {
  background-color: var(--pan-success);
}

.pan-bg-warning {
  background-color: var(--pan-warning);
}

.pan-bg-error {
  background-color: var(--pan-error);
}

* {
  box-sizing: border-box;
}

html,
body {
  min-width: 0;
}

body {
  margin: 0;
  color: var(--pan-white);
  background: #172a1b;
  font-family: var(--pan-font-body);
  -webkit-font-smoothing: antialiased;
}

a {
  text-decoration: none;
}

/*
 * Global layout boilerplate for every website section:
 * full-width section + centered 1440px container + responsive side padding.
 */
.pan-section {
  width: 100%;
  padding-top: var(--pan-section-padding-block);
  padding-bottom: var(--pan-section-padding-block);
}

.pan-container {
  width: 100%;
  max-width: var(--pan-container-max-width);
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--pan-container-padding-inline);
  padding-left: var(--pan-container-padding-inline);
}

/* Figma typography utility classes */
.pan-display-heading {
  font-family: var(--pan-font-display);
  font-weight: var(--pan-font-weight-bold);
}

.pan-text-h1,
.pan-text-h2,
.pan-text-h3,
.pan-text-h4,
.pan-text-h5 {
  margin: 0;
  font-family: var(--pan-font-display);
  font-weight: var(--pan-font-weight-bold);
  letter-spacing: var(--pan-letter-spacing-default);
}

.pan-text-h1 {
  font-size: var(--pan-h1-font-size);
  line-height: var(--pan-h1-line-height);
}

.pan-text-h2 {
  font-size: var(--pan-h2-font-size);
  line-height: var(--pan-h2-line-height);
}

.pan-text-h3 {
  font-size: var(--pan-h3-font-size);
  line-height: var(--pan-h3-line-height);
}

.pan-text-h4 {
  font-size: var(--pan-h4-font-size);
  line-height: var(--pan-h4-line-height);
}

.pan-text-h5 {
  font-size: var(--pan-h5-font-size);
  line-height: var(--pan-h5-line-height);
}

.pan-text-body-xl,
.pan-text-body-l,
.pan-text-body-m,
.pan-text-body-s,
.pan-text-body-xs,
.pan-text-body-m-uppercase,
.pan-text-body-s-uppercase,
.pan-text-body-xs-uppercase {
  font-family: var(--pan-font-body);
  letter-spacing: var(--pan-letter-spacing-default);
}

.pan-text-body-xl,
.pan-text-body-l,
.pan-text-body-m,
.pan-text-body-s,
.pan-text-body-xs {
  font-weight: var(--pan-font-weight-regular);
}

.pan-text-body-xl {
  font-size: var(--pan-body-xl-font-size);
  line-height: var(--pan-body-xl-line-height);
}

.pan-text-body-l {
  font-size: var(--pan-body-l-font-size);
  line-height: var(--pan-body-l-line-height);
}

.pan-text-body-m {
  font-size: var(--pan-body-m-font-size);
  line-height: var(--pan-body-m-line-height);
}

.pan-text-body-s {
  font-size: var(--pan-body-s-font-size);
  line-height: var(--pan-body-s-line-height);
}

.pan-text-body-xs {
  font-size: var(--pan-body-xs-font-size);
  line-height: var(--pan-body-xs-line-height);
}

.pan-text-body-m-uppercase,
.pan-text-body-s-uppercase,
.pan-text-body-xs-uppercase {
  font-weight: var(--pan-font-weight-bold);
  text-transform: uppercase;
}

.pan-text-body-m-uppercase {
  font-size: var(--pan-body-m-uppercase-font-size);
  line-height: var(--pan-body-m-uppercase-line-height);
}

.pan-text-body-s-uppercase {
  font-size: var(--pan-body-s-uppercase-font-size);
  line-height: var(--pan-body-s-uppercase-line-height);
}

.pan-text-body-xs-uppercase {
  font-size: var(--pan-body-xs-uppercase-font-size);
  line-height: var(--pan-body-xs-uppercase-line-height);
}

/* Demo hero. The header itself can be copied into any page. */
.pan-hero {
  min-height: 430px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(5, 18, 8, .08), rgba(5, 18, 8, .42)),
    url("../assets/images/hero-bg.png") center 26% / cover no-repeat;
}

.pan-hero__content {
  min-height: 430px;
  display: grid;
  place-items: center;
  padding-top: var(--pan-desktop-header-height);
  color: rgba(255, 255, 255, .7);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Exact desktop header */
.pan-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--pan-desktop-header-height);
  background: var(--pan-header-bg);
  color: var(--pan-white);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.pan-header__inner {
  width: 100%;
  max-width: var(--pan-desktop-header-max-width);
  height: var(--pan-desktop-header-height);
  gap: var(--pan-desktop-header-gap);
  margin-right: auto;
  margin-left: auto;
  padding:
    var(--pan-desktop-header-padding-block)
    var(--pan-desktop-header-padding-inline);
}

/* Supplied PAN SVG logo */
.pan-logo {
  width: 73px;
  height: 49px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0;
}

.pan-logo img {
  width: 73px;
  height: 49px;
  display: block;
}

.pan-nav {
  flex-wrap: nowrap;
  gap: 6px;
}

.pan-nav__link.nav-link {
  min-height: 43px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 17px;
  border-radius: 999px;
  color: var(--pan-white);
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-s-font-size);
  font-weight: var(--pan-font-weight-regular);
  line-height: var(--pan-body-s-line-height);
  white-space: nowrap;
  transition: color .18s ease, background-color .18s ease;
}

.pan-nav__link.nav-link:hover,
.pan-nav__link.nav-link:focus-visible {
  color: var(--pan-pink);
}

.pan-nav__link--active.nav-link,
.pan-nav__link--active.nav-link:hover,
.pan-nav__link--active.nav-link:focus-visible {
  padding-right: 16px;
  padding-left: 16px;
  background: var(--pan-pink);
  color: var(--pan-green);
  font-weight: var(--pan-font-weight-bold);
}

.pan-nav__event {
  margin-left: 0;
  padding: 0 8px;
  background: rgba(255, 255, 255, .065);
}

.pan-nav__event .pan-nav__link {
  padding-right: 10px;
  padding-left: 10px;
}

.pan-header__actions {
  flex-shrink: 0;
  gap: 9px;
}

.pan-language {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-right: 54px;
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-m-font-size);
  font-weight: var(--pan-font-weight-regular);
  line-height: var(--pan-body-m-uppercase-line-height);
  white-space: nowrap;
}

.pan-language a {
  color: var(--pan-white);
}

.pan-language a:hover,
.pan-language a:focus-visible {
  color: var(--pan-pink);
}

.pan-button.btn {
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  color: var(--pan-white);
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-xs-uppercase-font-size);
  font-weight: var(--pan-font-weight-bold);
  letter-spacing: var(--pan-letter-spacing-default);
  line-height: var(--pan-body-xs-uppercase-line-height);
  text-transform: uppercase;
  box-shadow: none;
}

.pan-button--contact.btn {
  width: 108px;
  border: 2px solid var(--pan-white);
  background: transparent;
}

.pan-button--contact.btn:hover,
.pan-button--contact.btn:focus-visible {
  border-color: var(--pan-pink);
  background: var(--pan-pink);
  color: var(--pan-green);
}

.pan-button--reserve.btn {
  width: 116px;
  border: 2px solid var(--pan-green);
  background: var(--pan-green);
}

.pan-button--reserve.btn:hover,
.pan-button--reserve.btn:focus-visible {
  border-color: #2c5b2f;
  background: #2c5b2f;
  color: var(--pan-white);
}

/* Tablet/mobile header and full-screen navigation are hidden on desktop. */
.pan-responsive-header,
.pan-menu-overlay {
  display: none;
}

/* Tablet: 768px–1199px */
@media (max-width: 1199.98px) {
  .pan-hero,
  .pan-hero__content {
    min-height: 100vh;
    min-height: 100dvh;
  }

  .pan-header {
    position: absolute;
    height: 72px;
    background: var(--pan-header-bg);
  }

  .pan-header__desktop {
    display: none !important;
  }

  .pan-responsive-header {
    width: 100%;
    height: 72px;
    display: flex;
    padding-right: 32px;
    padding-left: 32px;
  }

  .pan-responsive-header__logo {
    width: 68px;
    flex: 0 0 68px;
  }

  .pan-responsive-header__logo img {
    width: 68px;
    height: auto;
    display: block;
  }

  .pan-responsive-header__actions {
    gap: 14px;
  }

  .pan-button--responsive.btn {
    width: 116px;
  }

  .pan-menu-toggle,
  .pan-menu-close {
    width: 40px;
    height: 40px;
    position: relative;
    flex: 0 0 40px;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: transparent;
    color: var(--pan-white);
    cursor: pointer;
  }

  .pan-menu-toggle__line {
    width: 16px;
    height: 1px;
    position: absolute;
    left: 50%;
    display: block;
    background: currentColor;
    transform: translateX(-50%);
  }

  .pan-menu-toggle__line:nth-child(1) {
    top: 13px;
  }

  .pan-menu-toggle__line:nth-child(2) {
    top: 19px;
  }

  .pan-menu-toggle__line:nth-child(3) {
    top: 25px;
  }

  .pan-menu-toggle:hover,
  .pan-menu-toggle:focus-visible {
    border-color: var(--pan-pink);
    color: var(--pan-pink);
  }

  .pan-menu-overlay {
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    position: fixed;
    z-index: 1080;
    inset: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    padding:
      calc(env(safe-area-inset-top, 0px) + 28px)
      calc(env(safe-area-inset-right, 0px) + 48px)
      calc(env(safe-area-inset-bottom, 0px) + 32px)
      calc(env(safe-area-inset-left, 0px) + 48px);
    background: var(--pan-pink);
    border: 0;
    color: var(--pan-green);
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transition:
      opacity .22s ease,
      visibility .22s ease,
      transform .22s ease;
  }

  .pan-menu-overlay.showing,
  .pan-menu-overlay.show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .pan-menu-overlay.hiding {
    visibility: visible;
  }

  .pan-menu-overlay__top {
    width: 100%;
    flex: 0 0 auto;
  }

  .pan-menu-close {
    border-color: var(--pan-green);
    color: var(--pan-green);
  }

  .pan-menu-close span::before,
  .pan-menu-close span::after {
    width: 15px;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 50%;
    content: "";
    background: currentColor;
  }

  .pan-menu-close span::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .pan-menu-close span::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .pan-menu-close:hover,
  .pan-menu-close:focus-visible {
    background: var(--pan-green);
    color: var(--pan-pink);
  }

  .pan-menu-overlay__reserve.btn {
    width: 154px;
    height: 42px;
  }

  .pan-mobile-nav {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-top: 44px;
  }

  .pan-mobile-nav__link {
    display: block;
    color: var(--pan-green);
    font-family: var(--pan-font-display);
    font-size: var(--pan-h2-font-size);
    font-weight: var(--pan-font-weight-bold);
    letter-spacing: var(--pan-letter-spacing-default);
    line-height: var(--pan-h2-line-height);
    transition: color .18s ease;
  }

  .pan-mobile-nav__link::after {
    width: 104px;
    height: 1px;
    display: block;
    margin-top: 5px;
    content: "";
    background: rgba(32, 70, 34, .14);
  }

  .pan-mobile-nav__link:hover,
  .pan-mobile-nav__link:focus-visible,
  .pan-mobile-nav__link--active {
    color: var(--pan-white);
  }

  .pan-mobile-nav__link--active::after {
    width: 134px;
    background: rgba(255, 255, 255, .34);
  }

  .pan-menu-overlay__footer {
    width: 100%;
    flex: 0 0 auto;
    gap: 38px;
    margin-top: auto;
    padding-top: 32px;
    font-family: var(--pan-font-body);
    font-size: var(--pan-body-xs-font-size);
    font-weight: var(--pan-font-weight-regular);
    line-height: var(--pan-body-xs-line-height);
  }

  .pan-menu-overlay__footer a {
    color: var(--pan-green);
  }

  .pan-menu-overlay__footer a:hover,
  .pan-menu-overlay__footer a:focus-visible {
    color: var(--pan-white);
  }

  .pan-menu-language {
    gap: 4px;
    margin-left: auto;
    white-space: nowrap;
  }

  .pan-menu-language a:last-child {
    color: rgba(32, 70, 34, .42);
  }
}

/* Mobile: up to 767px */
@media (max-width: 767.98px) {
  .pan-header,
  .pan-responsive-header {
    height: 64px;
  }

  .pan-responsive-header {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pan-responsive-header__logo,
  .pan-responsive-header__logo img {
    width: 58px;
  }

  .pan-responsive-header__logo {
    flex-basis: 58px;
  }

  .pan-responsive-header__actions {
    gap: 10px;
  }

  .pan-button--responsive.btn {
    width: 104px;
    height: 38px;
  }

  .pan-menu-toggle {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .pan-menu-toggle__line:nth-child(1) {
    top: 12px;
  }

  .pan-menu-toggle__line:nth-child(2) {
    top: 18px;
  }

  .pan-menu-toggle__line:nth-child(3) {
    top: 24px;
  }

  .pan-menu-overlay {
    padding:
      calc(env(safe-area-inset-top, 0px) + 20px)
      calc(env(safe-area-inset-right, 0px) + 16px)
      calc(env(safe-area-inset-bottom, 0px) + 24px)
      calc(env(safe-area-inset-left, 0px) + 16px);
  }

  .pan-menu-overlay__reserve.btn {
    width: 154px;
    height: 42px;
  }

  .pan-mobile-nav {
    gap: 10px;
    margin-top: 32px;
  }

  .pan-menu-overlay__footer {
    justify-content: flex-start;
    gap: clamp(22px, 8vw, 42px);
    padding-right: 14px;
    padding-left: 14px;
  }

  .pan-menu-language {
    margin-left: auto;
  }
}

/* Keep the menu usable on phones/tablets with limited viewport height. */
@media (max-width: 1199.98px) and (max-height: 700px) {
  .pan-menu-overlay {
    padding-top: calc(env(safe-area-inset-top, 0px) + 16px);
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 16px);
  }

  .pan-mobile-nav {
    gap: 5px;
    margin-top: 18px;
  }

  .pan-mobile-nav__link {
    font-size: var(--pan-h3-font-size);
  }

  .pan-mobile-nav__link::after {
    margin-top: 3px;
  }

  .pan-menu-overlay__footer {
    padding-top: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pan-menu-overlay {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   Responsive footer
   -------------------------------------------------------------------------- */
.pan-footer {
  width: 100%;
  background: var(--pan-green);
  color: var(--pan-green);
}

.pan-footer__accent {
  width: 100%;
  height: 46px;
  background: var(--pan-green);
}

.pan-footer__main {
  background: var(--pan-pink-light);
}

.pan-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 40px;
}

.pan-footer__column,
.pan-footer__column a {
  color: var(--pan-green);
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-xs-font-size);
  font-weight: var(--pan-font-weight-regular);
  line-height: var(--pan-body-xs-line-height);
}

.pan-footer__logo {
  width: 73px;
  height: 49px;
  display: block;
  margin-bottom: 16px;
}

.pan-footer__logo img {
  width: 73px;
  height: 49px;
  display: block;
}

.pan-footer__brand-title,
.pan-footer__heading {
  margin: 0 0 16px;
  color: var(--pan-green);
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-xs-uppercase-font-size);
  font-weight: var(--pan-font-weight-bold);
  letter-spacing: var(--pan-letter-spacing-default);
  line-height: var(--pan-body-xs-uppercase-line-height);
  text-transform: uppercase;
}

.pan-footer__brand-title {
  margin-bottom: 10px;
  text-transform: none;
}

.pan-footer__address {
  margin: 0;
  font-style: normal;
}

.pan-footer__address > span,
.pan-footer__contact-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.pan-footer__contact-list {
  gap: 6px;
  margin-top: 18px;
}

.pan-footer__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: rgba(32, 70, 34, .58);
  list-style: none;
}

.pan-footer__links a {
  color: rgba(32, 70, 34, .58);
  transition: color .18s ease;
}

.pan-footer__address a {
  color: var(--pan-green);
  transition: color .18s ease;
}

.pan-footer__links a:hover,
.pan-footer__links a:focus-visible,
.pan-footer__address a:hover,
.pan-footer__address a:focus-visible {
  color: #2d4e2c;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pan-footer__social {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
}

.pan-social-link {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--pan-green);
  border-radius: 50%;
  color: var(--pan-green);
  transition: opacity .18s ease, transform .18s ease;
}

.pan-social-link:hover,
.pan-social-link:focus-visible {
  opacity: .7;
  transform: translateY(-2px);
}

.pan-social-link__icon {
  display: block;
  object-fit: contain;
}

.pan-social-link--instagram {
  border: 0;
}

.pan-social-link--instagram .pan-social-link__icon {
  width: 32px;
  height: 32px;
}

.pan-social-link__icon--facebook {
  width: 10px;
  height: 20px;
}

.pan-social-link__icon--tiktok {
  width: 18px;
  height: 20px;
}

.pan-footer__divider {
  width: 100%;
  height: 1px;
  margin-top: 28px;
  margin-bottom: 28px;
  background: var(--pan-green);
}

.pan-footer__copyright {
  margin: 0;
  color: var(--pan-green);
  font-family: var(--pan-font-body);
  font-size: var(--pan-body-xs-uppercase-font-size);
  font-weight: var(--pan-font-weight-bold);
  line-height: var(--pan-body-xs-uppercase-line-height);
  text-transform: uppercase;
}

/* Tablet container and two-column footer */
@media (max-width: 1199.98px) {
  :root {
    --pan-container-padding-inline: 48px;
  }

  .pan-footer__accent {
    height: 32px;
  }

  .pan-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px 64px;
  }
}

/* Mobile container and stacked footer */
@media (max-width: 767.98px) {
  :root {
    --pan-container-padding-inline: 16px;
  }

  .pan-footer__accent {
    height: 24px;
  }

  .pan-footer__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }

  .pan-footer__column,
  .pan-footer__address > span,
  .pan-footer__contact-list {
    align-items: center;
    text-align: center;
  }

  .pan-footer__logo {
    margin-right: auto;
    margin-left: auto;
  }

  .pan-footer__social {
    justify-content: center;
    margin-top: 48px;
  }

  .pan-footer__copyright {
    text-align: center;
  }
}
