/*
Theme Name: przestrona
Theme URI: https://opencollective.com/przestrona
Author: Bryan Hadaway, Borys Czajkowski - Przestrona.pl
Author URI: https://opencollective.com/przestrona#section-contributorsm https://www.przestrona.pl
Description: Custom made theme base on blankslate
Tags: accessibility-ready, one-column, two-columns, custom-menu, featured-images, microformats, sticky-post, threaded-comments, translation-ready
Version: 9999
Requires at least: 5.2
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v3 or Later
License URI: https://www.gnu.org/licenses/gpl.html
Text Domain: przestrona

przestrona WordPress Theme 2011-2024
przestrona is distributed under the terms of the GNU GPL
*/

:root {
  --main: white;
  --main-alt: white;
  --second: black;
  --second-alt: #2f2f2f;

  --heading-size: 2.25rem;
  --subheading-size: 1.5rem;
  --p-size: 1.125rem;
  --p-small-size: 1rem;

  --tablet-breakpoint: 768px;
  --mobile-breakpoint: 500px;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
html {
  scroll-behavior: smooth;
}
body {
  line-height: 1;
}
a {
  text-decoration-skip-ink: auto;
}
a[href^="tel"] {
  color: inherit;
  text-decoration: none;
}
button {
  outline: 0;
}
ol,
ul {
  /* list-style: none; */
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}
q {
  display: inline;
  font-style: italic;
}
q:before {
  content: '"';
  font-style: normal;
}
q:after {
  content: '"';
  font-style: normal;
}
textarea,
input[type="text"],
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="search"],
input[type="password"] {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}
input[type="search"] {
  -webkit-appearance: textfield;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
th,
td {
  padding: 2px;
}
big {
  font-size: 120%;
}
small,
sup,
sub {
  font-size: 80%;
}
sup {
  vertical-align: super;
}
sub {
  vertical-align: sub;
}
dd {
  margin-left: 20px;
}
kbd,
tt {
  font-family: courier;
  font-size: 12px;
}
ins {
  text-decoration: underline;
}
del,
strike,
s {
  text-decoration: line-through;
}
dt {
  font-weight: bold;
}
address,
cite,
var {
  font-style: italic;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
article.page {
  padding: 4rem 2rem;

  & h2 {
    margin-top: 2rem;
  }

  & .entry-content,
  & header {
    max-width: 700px;
    margin: 0 auto;
  }

  & header,
  & h2 {
    text-align: center;
  }
}
main#content {
  position: relative;
  display: flex;
  flex-direction: column;
  /* Optional: Small bottom padding so the very last card can reach the top of the screen */
  /* padding-bottom: 50vh; */
}
main#content section {
  /* position: sticky;
  top: 0;
  background-color: white;
  min-height: 100vh; 
  position: relative;*/

   /* min-height: 100vh !important; */
  background-color: white !important;
  position: relative;
}main#content footer{
   /* min-height: 100vh !important; */
   position: relative;
}
/* main#content :nth-child(1) {z-index: 10;}
main#content :nth-child(2) {z-index: 11;}
main#content :nth-child(3) {z-index: 12;}
main#content :nth-child(4) {z-index: 13;}
main#content :nth-child(5) {z-index: 14;}
main#content :nth-child(6) {z-index: 15;}
main#content :nth-child(7) {z-index: 16;}
main#content :nth-child(8) {z-index: 17;}
main#content :nth-child(9) {z-index: 18;}
 section.is-tall {
    top: auto; 
    bottom: 0; /* Lets the user scroll to the very end of the text, then sticks */

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.sticky {
}
.bypostauthor {
}
.wp-caption {
}
.wp-caption-text {
}
.gallery-caption {
}
.alignright {
}
.alignleft {
}
.aligncenter {
}
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
  word-break: normal;
}
.screen-reader-text:focus {
  background-color: #f7f7f7;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  -webkit-clip-path: none;
  clip-path: none;
  color: #007acc;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  right: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}
.skip-link {
  left: -9999rem;
  top: 2.5rem;
  z-index: 999999999;
  text-decoration: underline;
}
.skip-link:focus {
  display: block;
  left: 6px;
  top: 7px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  line-height: normal;
  padding: 15px 23px 14px;
  z-index: 100000;
  right: auto;
}
.visually-hidden:not(:focus):not(:active),
.form-allowed-tags:not(:focus):not(:active) {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

body {
  font-size: 16px;
}

#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: transparent;
}

#menu {
  max-width: 93.75rem; /* 1500px layout limit */
  margin: 0 auto;
  padding: 2rem 2rem; /* Aligns with padding guidelines */
  display: flex;
  justify-content: flex-start;
  align-items: center;

  /* Set default state to transparent */
  background: transparent;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px); /* Safari support */

  /* Smoothly animate the change */
  transition:
    background 0.3s ease,
    backdrop-filter 0.3s ease,
    -webkit-backdrop-filter 0.3s ease;
}

.shown {
  display: flex !important;
  flex-direction: column;
}

/* This class will be added by JavaScript */
#menu.scrolled {
  /* backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px); 
  background: #000000; 
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.31) 0%,
    rgba(0, 0, 0, 0.15) 100%
  ); */
  background: #383838;
  background: linear-gradient(
    180deg,
    rgba(56, 56, 56, 0.5) 22%,
    rgba(0, 0, 0, 0.05) 100%
  );
}

.menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 2.5rem;
}

.menu a,
.menu li {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.875rem;
  font-weight: 300;
  color: #ffffff;
  text-decoration: none;
  letter-spacing: 0.05em;
}

.menu a:hover {
  font-weight: 500;
}

#hamburger {
  display: none;
  color: #ffffff;
  font-size: 1.5rem;
  cursor: pointer;
}

@media (max-width: 48rem) {
  #menu {
    padding: 1.5rem 2rem;
    justify-content: space-between;
  }

  .menu {
    /* Position the dropdown right below the header */
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;

    /* Set up the flex layout */
    display: flex;
    flex-direction: column;
    gap: 1.5rem;

    /* Styling for the mobile dropdown */
    background: rgba(0, 0, 0, 0.9); /* Dark background for readability */
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border-top: 1px solid rgba(255, 255, 255, 0.05);

    /* The Animation Magic: hide using max-height and opacity */
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    padding: 0 2rem; /* No vertical padding when closed */

    /* Smoothly transition all changing properties */
    transition:
      max-height 0.4s ease-in-out,
      opacity 0.3s ease-in-out,
      visibility 0.3s,
      padding 0.3s ease-in-out;
  }

  .menu.shown {
    /* Expand the menu */
    max-height: 500px; /* Increase this if your menu gets very tall */
    opacity: 1;
    visibility: visible;
    padding: 2rem; /* Add padding back for spacing */
  }

  #hamburger {
    display: block;
    transition: transform 0.3s ease; /* Prepare for icon animation */
  }

  /* Rotate the hamburger slightly when open */
  #hamburger.is-active {
    transform: rotate(90deg);
  }
}

/* ==========================================================================
   Footer Layout
   ========================================================================== */

.site-footer {
  background-color: #000000 !important;
  color: #ffffff;
  width: 100%;
  padding: 6rem 0 3rem 0 !important; /* Generous top padding to float the social icons */
}

.footer-wrapper {
  max-width: 93.75rem; /* 1500px boundary */
  margin: 0 auto;
  padding: 0 4rem;
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

/* ==========================================================================
   Social Icons
   ========================================================================== */

.footer-socials {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

.social-link {
  display: inline-block;
  width: 1.75rem;
  height: 1.75rem;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.social-link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.social-link:hover {
  opacity: 0.8;
  transform: translateY(-2px);
}

/* ==========================================================================
   Bottom Bar (Legal & Copyright)
   ========================================================================== */

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.875rem;
  font-weight: 300; /* Light */
}

.footer-legal-links {
  display: flex;
  gap: 2rem;
}

.footer-legal-links a {
  color: #ffffff;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-legal-links a:hover {
  color: #cccccc;
}

.footer-copyright p {
  margin: 0;
  color: #ffffff;
}

/* ==========================================================================
   Responsive Adaptations
   ========================================================================== */

@media (max-width: 64rem) {
  .site-footer {
    padding: 4rem 0 2rem 0;
  }

  .footer-wrapper {
    padding: 0 2rem;
    gap: 4rem;
  }
}

@media (max-width: 48rem) {
  .footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 1.5rem;
  }

  .footer-legal-links {
    flex-direction: column;
    gap: 1rem;
  }
}

/* Styl karuzeli */
.post-carousel {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.post-item {
  flex: 1 1 calc(33.333% - 20px);
  max-width: calc(33.333% - 20px);
  text-align: center;
}

.post-item img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

.scrollable {
  display: flex;
  align-items: center;
  overflow: hidden;
}

.carousel-wrapper {
  display: flex;
  overflow: hidden;
  width: 100%;
}

.carousel-prev,
.carousel-next {
  background-color: #000;
  color: #fff;
  border: none;
  padding: 10px;
  cursor: pointer;
}

.carousel-prev:hover,
.carousel-next:hover {
  background-color: #333;
}

/* ==========================================================================
   Avenir LT Pro
   ========================================================================== */

/* Light (300) */
@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProLight.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProLightOblique.woff2") format("woff2");
  font-weight: 300;
  font-style: oblique;
  font-display: swap;
}

/* Book (Often used as slightly lighter regular - mapped to 400) */
@font-face {
  font-family: "Avenir LT Pro Book";
  src: url("assets/fonts/AvenirLTProBook.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro Book";
  src: url("assets/fonts/AvenirLTProBookOblique.woff2") format("woff2");
  font-weight: 400;
  font-style: oblique;
  font-display: swap;
}

/* Roman (Standard Regular - 400) */
@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProRoman.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProOblique.woff2") format("woff2");
  font-weight: 400;
  font-style: oblique;
  font-display: swap;
}

/* Medium (500) */
@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProMedium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProMediumOblique.woff2") format("woff2");
  font-weight: 500;
  font-style: oblique;
  font-display: swap;
}

/* Heavy (800) */
@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProHeavy.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProHeavyOblique.woff2") format("woff2");
  font-weight: 800;
  font-style: oblique;
  font-display: swap;
}

/* Black (900) */
@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProBlack.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Avenir LT Pro";
  src: url("assets/fonts/AvenirLTProBlackOblique.woff2") format("woff2");
  font-weight: 900;
  font-style: oblique;
  font-display: swap;
}

/* ==========================================================================
   Libre Baskerville
   ========================================================================== */

/* Regular (400) */
@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Medium (500) */
@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-MediumItalic.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

/* SemiBold (600) */
@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-SemiBoldItalic.woff2") format("woff2");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

/* Bold (700) */
@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-BoldItalic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* Base size for rem calculations */
html {
  font-size: 100%; /* Defaults to 16px in most browsers */
}

body {
  font-size: 16px;
}

/* ==========================================================================
   Typography Base Styles
   ========================================================================== */

p,
li {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 300; /* Regular */
  line-height: 1.35;
  color: #5f5f5f;
  text-wrap: pretty;
}

h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 1.875rem; /* 42px */
  font-weight: 400; /* Regular */
  text-transform: uppercase;
  margin-bottom: 1.75rem;
  line-height: 135%;
}

h3 {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1.25rem; /* 24px */
  font-weight: 300; /* Light */
  text-transform: lowercase;
  font-variant: small-caps;
}
h1 {
  font-family: "Libre Baskerville", serif;
  font-size: 2rem;
  font-weight: 400; /* Bold */
  text-transform: uppercase;
  letter-spacing: 0.05em; /* Adds slight breathability to uppercase serifs */
  margin-bottom: 2rem;
  line-height: 1.2;
}

/* ==========================================================================
   Hero Section Layout
   ========================================================================== */
/* section{
  padding: 0 6rem;
} */

.hero-section {
  position: relative;
  /* min-height: 100vh; */
  display: flex;
  align-items: center;
  background-color: #e0e0e0; /* Fallback */
  overflow: hidden;
}

.bg-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background-color: #808080; /* Grey rectangle placeholder */
  z-index: 1;
  object-position: top;
}

.bg-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Replicating the dark gradient fade behind the text */
.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* background: linear-gradient(to right, rgba(20, 15, 10, 0.9) 0%, rgba(20, 15, 10, 0.6) 50%, transparent 100%); */
  z-index: 2;
}

.section-wrapper {
  max-width: 93.75rem; /* 1500px */
  width: 100%;
  margin: 0 auto;
  padding: 0 2rem;
  position: relative;
  z-index: 3;
}
.hero-section .section-wrapper {
  padding: 175px 2rem;
}

.hero-content {
  max-width: 45rem;
  color: #ffffff;
}

/* ==========================================================================
   Hero Typography & Spacing
   ========================================================================== */

.hero-content h1 {
  /* Basic placeholder styles - waiting on exact h1 definition */
  margin-bottom: 2rem;
}

.hero-content h3 {
  margin-bottom: 2rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.hero-content p {
  margin-bottom: 3rem;
  line-height: 1.6;
  max-width: 35rem;
  color: #fff;
}

/* ==========================================================================
   Buttons (Using proposed typo)
   ========================================================================== */

.hero-buttons {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.3s ease;
  text-align: center;
  line-height: 135%;
  /* Proposed Button Typography */
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem; /* 16px */
  font-weight: 300; /* Medium */
}

.btn-outline {
  padding: 0.75rem 1.5rem;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background-color: transparent;
}

.btn-outline:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: #ffffff;
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 48rem) {
  .hero-section .section-wrapper {
    padding: 85px 2rem;
  }
  .bg-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 25%;
  }
  .hero-overlay {
    background: linear-gradient(
      to bottom,
      rgba(20, 15, 10, 0.7) 0%,
      rgba(20, 15, 10, 0.6) 100%
    );
  }
  .bg-image#mobile {
    display: block;
  }
  .bg-image#desktop {
    display: none;
  }
  .hero-buttons {
    flex-direction: column;
    gap: 1rem;
  }

  .btn {
    width: 100%;
  }
}

/* ==========================================================================
   About Section Layout
   ========================================================================== */

.about-section {
  width: 100%;
  background-color: #ffffff;
}

img.mirror {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}

.about-section .section-wrapper {
  max-width: 93.75rem; /* 1500px */
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.grid-item {
  display: flex;
  flex-direction: column;
}

.bg-white {
  background-color: #ffffff;
}

.bg-light-grey {
  background-color: #f5f3ef;
}

/* ==========================================================================
   Image Placeholders
   ========================================================================== */

.about-image-container {
  background-color: #808080;
  min-height: 30rem;
}

.placeholder-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   Text & Typography Specifics
   ========================================================================== */

.about-text-container {
  padding: 5rem 4rem;
  justify-content: center;
}

.text-content {
  max-width: 35rem;
  margin: 0 auto;
  width: 100%;
}
/* Contextual spacing and slight color adjustment for h3 in this block */
.about-text-container h3 {
  margin-bottom: 2.5rem;
  color: #4a4a4a;
}

.about-text-container p {
  margin-bottom: 1.5rem;
  line-height: 1.6;
  color: #333333;
}

/* ==========================================================================
   Native Accordion / Details Styling
   ========================================================================== */

.accordions-container {
  margin-top: 3rem;
  padding-left: 0;
}

details {
  border-bottom: 1px solid #e0e0e0;
}

details .icon-open {
  display: none;
}

/* When the details are expanded, show the 'open' icon */
details[open] .icon-open {
  display: inline-block; /* or 'block' depending on your summary display settings */
  width: 1.5rem;
  height: 1.5rem;
  transform: rotate(180deg);
}

/* When the details are expanded, hide the 'closed' icon (arrow-right) */
details[open] .icon-closed {
  display: none;
}

details > summary {
  list-style: none;
}

details > summary::-webkit-details-marker {
  display: none;
}

details ul {
  padding-left: 2rem;

  & li {
    margin-top: 0.5rem;
    line-height: 1.35;
  }
}
/* Accepted Accordion Typography */
summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  cursor: pointer;

  font-family: "Libre Baskerville", serif;
  font-size: 1.25rem; /* 20px */
  font-weight: 400; /* Regular */
  color: #1a1a1a;
  transition: color 0.3s ease;
}

summary:hover {
  color: #555555;
}

.toggle-icon {
  width: 1rem;
  height: 1rem;
  /* background-color: #808080;  */
  border-radius: 50%;
}

.details-content {
  padding: 0 0 1.5rem 0;
}

.membership-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.875rem;
  color: #333333;
}

.membership-logo {
  height: 1.5rem;
  width: auto;
  background-color: #808080;
}

@supports selector(details::details-content) {
  /* details {
		transition: all 0.3s ease-out;
		
		&[open] {			
			padding-bottom: 2rem;
		}
		
		& p {
			margin-bottom: 1rem;
		}
	}
	
	details::details-content {
		transition:	content-visibility 0.3s allow-discrete ease-out;
	} */
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 64rem) {
  .about-text-container {
    padding: 3rem 2rem;
  }
}

@media (max-width: 48rem) {
  .about-grid {
    grid-template-columns: 1fr;
  }

  .about-grid .grid-item:nth-child(1) {
    order: 1;
  }
  .about-grid .grid-item:nth-child(2) {
    order: 2;
  }
  .about-grid .grid-item:nth-child(4) {
    order: 3;
  }
  .about-grid .grid-item:nth-child(3) {
    order: 4;
  }

  .about-image-container {
    min-height: 20rem;
  }
}

/* ==========================================================================
   Services Section Layout
   ========================================================================== */

.services-section {
  padding: 6rem 0;
  background-color: #ffffff;
}

.services-section .section-wrapper {
  max-width: 93.75rem; /* 1500px */
  width: 100%;
  margin: 0 auto;
  padding: 0 2rem;
}

.services-header {
  text-align: center;
  margin-bottom: 4rem;
}

.services-header h3 {
  color: #4a4a4a;
  letter-spacing: 0.1em;
}

/* ==========================================================================
   Slider Structure (Static)
   ========================================================================== */

.slider-container {
  display: flex;
  align-items: center;
  gap: 2rem;
  position: relative;
}

.slider-arrow {
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  flex-shrink: 0;
  transition: opacity 0.3s ease;
}

.slider-arrow:hover {
  opacity: 0.6;
}

.arrow-icon-placeholder {
  width: 2rem;
  height: 4rem;
  /* background-color: #808080; */
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

.slider-viewport {
  overflow: hidden;
}

.slider-track {
  display: flex;
  gap: 2rem;
  flex: 1;
}

/* ==========================================================================
   Card Styling
   ========================================================================== */

.service-card {
  flex: 1;
  min-width: 18rem; /* Ensures cards don't shrink too small before wrapping */
  display: flex;
  flex-direction: column;
}

.card-image-placeholder {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background-color: #808080;
  margin-bottom: 1.5rem;
}

.card-content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.card-heading {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1.125rem; /* 18px */
  font-weight: 500; /* Medium */
  color: #1a1a1a;
  margin-bottom: 1rem;
  line-height: 1.4;
}

.card-list {
  list-style-type: none; /* Removing default discs to use custom centered dots */
  padding: 0;
  margin: 0 0 2rem 0;
  flex: 1; /* Pushes the button to the bottom if cards have unequal text */
}

.card-list li {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: #333333;
  line-height: 1.4;
  margin-bottom: 0.25rem;
  position: relative;
  padding-left: 0.75rem;
}

/* Creating the centered dot bullet based on design */
.card-list li::before {
  content: "·";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
}

.card-btn {
  align-self: flex-start;
  color: #1a1a1a;
  border-color: #1a1a1a;
  padding: 0.75rem 1.5rem;
  cursor: pointer;
}

.card-btn:hover {
  background-color: #1a1a1a;
  color: #ffffff;
}

/* ==========================================================================
   Native Popover Styling
   ========================================================================== */

.service-popover {
  margin: auto;
  padding: 3rem;
  max-width: 40rem;
  border: none;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  color: #333333;
}

/* Backdrop styling for native popovers */
.service-popover::backdrop {
  background: rgba(26, 26, 26, 0.6);
  backdrop-filter: blur(4px);
}

.close-popover {
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  background: none;
  border: none;
  font-size: 2rem;
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 300;
  cursor: pointer;
  color: #808080;
  transition: color 0.3s ease;
}

.close-popover:hover {
  color: #1a1a1a;
}

.popover-heading {
  font-family: "Libre Baskerville", serif;
  font-size: 1.5rem; /* 24px */
  font-weight: 400;
  margin-bottom: 1.5rem;
  color: #1a1a1a;
  padding-right: 2rem; /* Avoid overlap with close button */
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 48rem) {
  .card-heading {
    text-align: center;
  }
  .arrow-icon-placeholder,
  .slider-arrow,
  .slider-arrow > img,
  .arrow-icon-placeholder > img {
    height: 1.75rem;
    width: auto;
    padding: 0 !important;
  }
  .slider-track > article {
    min-width: 100% !important;
  }

  .slider-track {
    /* flex-wrap: wrap; Allows cards to wrap on smaller screens without JS */
  }

  .service-card {
    /* min-width: calc(50% - 1rem); 2 columns on tablet */
  }

  .slider-arrow {
    /* display: none; Hide arrows on wrap view */
  }
}

@media (max-width: 48rem) {
  .service-card {
    min-width: 100%; /* 1 column on mobile */
  }

  .service-popover {
    padding: 2rem;
    width: 90%;
  }
}

/* ==========================================================================
   Consultation Section Layout
   ========================================================================== */

.consultation-section {
  padding: 6rem 0;
  background-color: #f6f5f3;
  position: relative;
}

.consultation-section h2 {
  color: #fff;
}

.consultation-header {
  text-align: center;
  margin-bottom: 4rem;
}

.consultation-header h3 {
  letter-spacing: 0.1em;
  color: #fff;
}

/* ==========================================================================
   3-Column Grid
   ========================================================================== */

.consultation-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 Columns on desktop */
  gap: 3rem;
  max-width: 93.75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.consultation-item {
  text-align: start;
  display: flex;
  flex-direction: column;
  align-items: start;
}

.number {
  font-family: "Libre Baskerville", serif;
  font-size: 2.5rem;
  font-weight: 300;
  margin-bottom: 1.5rem;
  display: block;
  color: #fff;
}

.consultation-item h4 {
  font-family: "Avenir", sans-serif;
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  min-height: 3.5rem; /* Ensures alignment if titles have varying lengths */
  color: #fff;
}

.consultation-item p {
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.35;
  color: #fff;
}

/* ==========================================================================
   Responsive Adjustment
   ========================================================================== */

@media (max-width: 64rem) {
  .consultation-grid {
    grid-template-columns: 1fr; /* Stack to 1 column on smaller screens */
    gap: 4rem;
  }
}

/* Section Container */
.testimonials-section {
  padding: 6rem 0rem;
  background-color: #ffffff;
}

.testimonials-header {
  text-align: center;
  margin-bottom: 4rem;
}

/* Slider Grid Layout */
.testimonials-slider {
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.testimonials-track {
  display: grid;
  gap: 2rem;
}
.testimonial-card {
  /* min-width: 300px; */
  min-width: calc(25% - 2rem);
}
/* Testimonial Card */
.testimonial-card h4 {
  font-family: "Avenir Pro", sans-serif;
  font-weight: 400;
  font-size: 1.25rem;
  margin: 0;
}

.testimonial-card h5 {
  font-family: "LibreBaskerville", serif;
  font-size: 1.625rem;
  font-weight: 400;
  margin: 0.5rem 0 1.5rem 0;
}

.testimonial-card p {
  margin-bottom: 1.5rem;
}

.testimonial-card .date {
  font-size: 0.875rem;
  color: #666;
}

/* Navigation Arrows */
.slider-arrow {
  background: none;
  border: none;
  cursor: pointer;
  padding: 1rem;
}

/* Responsive adjustment */
@media (max-width: 1000px) {
  .testimonial-card {
    min-width: calc(50% - 2rem);
  }
}
@media (max-width: 768px) {
  .testimonial-card {
    min-width: 100%;
  }
}
/* ==========================================================================
   Stationary Consultations Section Layout
   ========================================================================== */

.stationary-section {
  width: 100%;
  background-color: #ffffff;
}

.stationary-section .section-wrapper {
  max-width: 93.75rem; /* 1500px boundaries */
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.stationary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.grid-item {
  display: flex;
  flex-direction: column;
}

/* ==========================================================================
   Image Container Specifics
   ========================================================================== */

.stationary-image-container {
  min-height: 35rem;
}

.placeholder-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   Typography & Info Layout Alignment
   ========================================================================== */

.stationary-text-container {
  padding: 6rem 4rem;
  justify-content: center;
}

.stationary-text-container .text-content {
  max-width: 35rem;
  width: 100%;
  margin: 0 auto;
}

.stationary-text-container h2 {
  margin-bottom: 1rem;
  color: #1a1a1a;
}

.stationary-text-container h3 {
  margin-bottom: 4rem;
  color: #4a4a4a;
  letter-spacing: 0.1em;
}

/* ==========================================================================
   Clinic Contact List Elements
   ========================================================================== */

.clinic-list {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}

.clinic-item {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.clinic-detail {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem;
  color: #333333;
}

.clinic-detail.title-row {
  margin-bottom: 0.25rem;
}

.clinic-detail strong {
  font-weight: 500;
  color: #1a1a1a;
}

.clinic-detail a {
  color: #333333;
  text-decoration: none;
  transition: color 0.3s ease;
}

.clinic-detail a:hover {
  color: #000000;
}

.contact-icon {
  width: 1.25rem;
  height: 1.25rem;
  object-fit: contain;
  flex-shrink: 0;
}

/* ==========================================================================
   Responsive Adaptations
   ========================================================================== */

@media (max-width: 64rem) {
  .stationary-text-container {
    padding: 4rem 2rem;
  }

  .stationary-text-container h3 {
    margin-bottom: 2.5rem;
  }

  .clinic-list {
    gap: 2.5rem;
  }
}

@media (max-width: 48rem) {
  .stationary-grid {
    grid-template-columns: 1fr;
  }

  /* Ensuring the information block reads first on portable screens */
  .stationary-grid .grid-item:nth-child(1) {
    order: 1;
  }
  .stationary-grid .grid-item:nth-child(2) {
    order: 2;
  }

  .stationary-image-container {
    min-height: 22rem;
  }
}

/* ==========================================================================
   Booking Section Layout
   ========================================================================== */

.booking-section {
  width: 100%;
  background-color: #ffffff;
}

.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 93.75rem; /* 1500px boundary */
  margin: 0 auto;
}

.grid-item {
  display: flex;
  flex-direction: column;
}

/* ==========================================================================
   Image Container Specifics
   ========================================================================== */

.booking-image-container {
  min-height: 40rem;
}

.booking-image-container .placeholder-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   Form Container & Typography
   ========================================================================== */

.booking-form-container {
  padding: 6rem 4rem;
  justify-content: center;
}

.form-content {
  max-width: 40rem;
  width: 100%;
  margin: 0 auto;
}

.form-content h2 {
  margin-bottom: 1rem;
}

.form-content h3 {
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 300; /* Light */
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  color: #4a4a4a;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.price-highlight {
  font-weight: 500; /* Medium */
  color: #1a1a1a;
  min-width: 8ch;
}

/* ==========================================================================
   Form Elements Styling
   ========================================================================== */

.booking-form {
  display: flex;
  margin-top: 5rem;
  flex-direction: column;
  gap: 2.5rem;
}

.form-row.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.input-group {
  display: flex;
  flex-direction: column;
}

/* Minimalist Input Styling */
.input-group label {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1.25rem;
  color: #333333;
  margin-bottom: 0.5rem;
}

.input-group input[type="text"],
.input-group input[type="email"],
.input-group input[type="tel"] {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem;
  padding: 0.5rem 0;
  border: none;
  border-bottom: 1px solid #cccccc;
  background: transparent;
  outline: none;
  color: #1a1a1a;
  transition: border-color 0.3s ease;
}

.input-group input:focus {
  border-bottom-color: #1a1a1a;
}

/* ==========================================================================
   Action Row (File Upload & Submit)
   ========================================================================== */

.action-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end; /* Aligns bottom borders */
  gap: 2rem;
}

.file-group {
  flex: 1;
}

.file-input-wrapper {
  border-bottom: 1px solid #cccccc;
  padding: 0.25rem 0;
}

.custom-file-input {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.875rem;
  color: #666666;
  width: 100%;
}

/* Customizing the default "Choose File" button visually */
.custom-file-input::file-selector-button {
  border: none;
  background: transparent;
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 500;
  color: #1a1a1a;
  padding: 0;
  margin-right: 1rem;
  cursor: pointer;
}

.btn-submit {
  background-color: #000000;
  color: #ffffff;
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  padding: 1rem 3rem;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
  flex-shrink: 0; /* Prevents button from squishing */
}

.btn-submit:hover {
  background-color: #333333;
}

/* ==========================================================================
   Form Footer
   ========================================================================== */

.form-footer {
  text-align: right; /* Aligned to right as seen in design */
  margin-top: 1rem;
}

.form-footer p {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.625rem; /* 10px */
  color: #808080;
  margin: 0;
}

.form-footer a {
  color: #808080;
  text-decoration: underline;
}

.form-footer a:hover {
  color: #1a1a1a;
}

/* ==========================================================================
   Responsive Adaptations
   ========================================================================== */

@media (max-width: 64rem) {
  .booking-form-container {
    padding: 4rem 2rem;
  }

  .action-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 2.5rem;
  }

  .file-group {
    width: 100%;
  }

  .btn-submit {
    width: 100%;
  }

  .form-footer {
    text-align: center;
  }
}

@media (max-width: 48rem) {
  .booking-grid {
    grid-template-columns: 1fr;
  }

  /* Ensure image is above form on mobile */
  .booking-grid .grid-item:nth-child(1) {
    order: 1;
  }
  .booking-grid .grid-item:nth-child(2) {
    order: 2;
  }

  .booking-image-container {
    min-height: 20rem;
  }

  .form-row.two-col {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   Blog Section Layout
   ========================================================================== */

.blog-section {
  padding: 6rem 0;
  /* background-color: #f6f5f3; */
  width: 100%;
}

.blog-header {
  text-align: center;
  margin-bottom: 4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.blog-header h2 {
  color: #1a1a1a;
  margin: 0;
}

/* Updated Link Styling */
.blog-link {
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 300; /* Light */
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4a4a4a;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color 0.3s ease;
}

.blog-link:hover {
  color: #000000;
}

/* ==========================================================================
   Slider / Grid Layout
   ========================================================================== */

.blog-slider {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  max-width: 93.75rem; /* 1500px boundary */
  margin: 0 auto;
  padding: 0 2rem;
}

.blog-track {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  width: 100%;
}

/* ==========================================================================
   Blog Card Styling
   ========================================================================== */

.blog-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.card-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card-content {
  display: flex;
  flex-direction: column;
}

.blog-card-link {
  text-decoration: none;
}

.tag {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.75rem;
  color: #666666;
  margin-bottom: 0.5rem;
}

.post-title {
  font-family: "Libre Baskerville", serif;
  font-size: 1.25rem;
  color: #1a1a1a;
  margin: 0 0 1rem 0;
  font-weight: 400;
}

.post-excerpt {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.875rem;
  color: #333333;
  line-height: 1.5;
  margin: 0 0 1.5rem 0;
}

.post-meta {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.post-meta .author {
  font-family: "Avenir LT Pro", sans-serif;
  font-weight: 500; /* Medium */
  font-size: 0.75rem;
  color: #1a1a1a;
}

.post-meta .date {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 0.75rem;
  color: #999999;
}

/* ==========================================================================
   Responsive Adaptations
   ========================================================================== */

@media (max-width: 64rem) {
  .blog-track {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 48rem) {
  article {
    word-wrap: break-word;
  }
  .blog-slider {
    padding: 0 1rem;
  }
  .blog-track {
    grid-template-columns: 1fr;
  }
  .slider-arrow {
    /* display: none; Hide arrows on mobile, assume touch swipe */
  }
}

/* Archive Header Styles */
.blog-archive-wrapper {
  max-width: 93.75rem; /* Matches your 1500px container */
  margin: 0 auto;
  padding: 8rem 4rem 4rem 4rem; /* Top padding to account for fixed header */
}

.blog-archive-header {
  text-align: center;
  margin-bottom: 4rem;
}

/* Grid Layout for Cards */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.5rem;
}

/* Fix title link color inside the card */
.blog-card .post-title a {
  color: inherit;
  text-decoration: none;
}

/* Responsive adjustments */
@media (max-width: 64rem) {
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 48rem) {
  .blog-archive-wrapper {
    padding: 6rem 2rem 2rem 2rem;
  }
  .blog-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Single Post Layout & Typography
   ========================================================================== */

.single-post-section {
  width: 100%;
  padding: 10rem 0 6rem 0; /* Heavy top padding to clear the transparent absolute header */
  background-color: #f6f5f3; /* Matches the site's base color */
}

.single-post-section .section-wrapper {
  max-width: 93.75rem; /* 1500px */
  margin: 0 auto;
  padding: 0 4rem;
}

.single-article {
  max-width: 50rem; /* Constrains line length for optimal readability (approx 800px) */
  margin: 0 auto;
}

/* --- Header & Meta --- */

.single-post-header {
  text-align: center;
  margin-bottom: 4rem;
}

.single-post-header h1.entry-title {
  font-family: "Libre Baskerville", serif;
  font-size: 3.5rem; /* 56px */
  font-weight: 600; /* Bold */
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: #1a1a1a;
  margin: 0 0 1rem 0;
}

.single-post-meta {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: #5f5f5f;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* --- Content Typography (Targets elements generated by WordPress editor) --- */

.single-post-content h3 {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1.5rem; /* 24px */
  font-weight: 300; /* Light */
  text-transform: uppercase;
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: #1a1a1a;
}

/* --- Responsive Adjustments --- */

@media (max-width: 64rem) {
  .single-post-header h1.entry-title {
    font-size: 2.5rem;
  }
}

@media (max-width: 48rem) {
  .single-post-section {
    padding: 8rem 0 4rem 0;
  }
  .single-post-section .section-wrapper {
    padding: 0 2rem;
  }
  .single-post-header h1.entry-title {
    font-size: 2rem;
  }
  .single-post-content h2 {
    font-size: 1.75rem;
  }
  .single-post-content h3 {
    font-size: 1.25rem;
  }
}

.back-to-posts-container {
  text-align: center;
  margin-top: 5rem;
  padding-top: 2.5rem;
  border-top: 1px solid #e5e5e5;
}

.back-link {
  font-family: "Avenir LT Pro", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: #5f5f5f;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-underline-offset: 5px;
  transition: color 0.3s ease;
}

.back-link:hover {
  color: #1a1a1a;
}
