/* ===== The Old Poultry Shed — organic / nature glamping palette ===== */
:root, [data-theme='light']{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.1vw, 2.1rem);
  --text-2xl: clamp(2.1rem, 1.4rem + 2.6vw, 3.4rem);

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;

  /* Warm cream surfaces */
  --color-bg:#f4efe4;
  --color-surface:#fbf7ee;
  --color-surface-2:#fffdf8;
  --color-border:#e2d8c4;
  --color-divider:#ece3d2;

  /* Forest text */
  --color-text:#26352a;
  --color-text-muted:#5d6b5a;
  --color-text-faint:#9aa394;

  /* Forest green primary + warm amber accent */
  --color-primary:#2f5d43;
  --color-primary-hover:#244a35;
  --color-primary-active:#1b3727;
  --color-amber:#c5742a;
  --color-amber-soft:#e9bd86;

  --radius-md:.6rem;--radius-lg:1rem;--radius-xl:1.4rem;--radius-full:9999px;
  --transition-interactive:220ms cubic-bezier(.16,1,.3,1);
  --shadow-sm:0 1px 3px rgba(45,40,25,.08);
  --shadow-md:0 8px 26px rgba(45,40,25,.12);
  --shadow-lg:0 22px 60px rgba(40,55,42,.20);

  --font-display:'Zodiak','Georgia',serif;
  --font-body:'Work Sans','Helvetica Neue',sans-serif;
}
[data-theme='dark']{
  --color-bg:#161c17;
  --color-surface:#1d251f;
  --color-surface-2:#222b24;
  --color-border:#33402f;
  --color-divider:#2a342b;
  --color-text:#e7e3d6;
  --color-text-muted:#a6ad9c;
  --color-text-faint:#6c7466;
  --color-primary:#7fb392;
  --color-primary-hover:#95c4a6;
  --color-primary-active:#a9d2b8;
  --color-amber:#e3a566;
  --color-amber-soft:#7a5326;
  --shadow-sm:0 1px 3px rgba(0,0,0,.4);
  --shadow-md:0 8px 26px rgba(0,0,0,.45);
  --shadow-lg:0 22px 60px rgba(0,0,0,.55);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    --color-bg:#161c17;--color-surface:#1d251f;--color-surface-2:#222b24;
    --color-border:#33402f;--color-text:#e7e3d6;--color-text-muted:#a6ad9c;
    --color-primary:#7fb392;--color-amber:#e3a566;
  }
}

/* subtle organic texture wash */
.bg-texture{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(1100px 700px at 18% -8%, oklch(from var(--color-primary) l c h / .10), transparent 60%),
    radial-gradient(900px 600px at 100% 110%, oklch(from var(--color-amber) l c h / .12), transparent 60%);
}

.theme-toggle{
  position:fixed;top:var(--space-5);right:var(--space-5);z-index:60;
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:var(--radius-full);color:var(--color-text);
  background:oklch(from var(--color-surface) l c h / .8);
  border:1px solid var(--color-border);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);
}
.theme-toggle:hover{color:var(--color-primary);transform:translateY(-1px)}

.shell{
  max-width:560px;margin-inline:auto;
  padding:clamp(var(--space-12),9vw,var(--space-24)) var(--space-5) var(--space-16);
}

/* ===== Brand ===== */
.brand{text-align:center;margin-bottom:clamp(var(--space-8),5vw,var(--space-12))}
.brand__crest{
  width:clamp(150px,42vw,200px);margin:0 auto var(--space-5);
}
.brand__crest img{
  width:100%;height:auto;display:block;border-radius:var(--radius-full);
  box-shadow:var(--shadow-md);
}
.brand__name{
  font-family:var(--font-display);font-weight:500;
  font-size:var(--text-2xl);letter-spacing:-.01em;color:var(--color-text);
}
.brand__tag{
  margin-top:var(--space-3);color:var(--color-text-muted);
  font-size:var(--text-sm);letter-spacing:.01em;
}
.brand__intro{
  margin:var(--space-4) auto 0;max-width:46ch;
  color:var(--color-text);font-size:var(--text-base);line-height:1.6;
}
.brand__pills{
  display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;
  margin-top:var(--space-5);
}
.brand__pills li{
  font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:var(--color-primary);background:oklch(from var(--color-primary) l c h / .10);
  border:1px solid oklch(from var(--color-primary) l c h / .18);
  padding:.35rem .7rem;border-radius:var(--radius-full);
}

/* ===== Link cards ===== */
.links{display:flex;flex-direction:column;gap:var(--space-5)}
.link-card{
  display:block;text-decoration:none;color:inherit;overflow:hidden;
  background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);
}
.link-card:hover{
  transform:translateY(-3px);box-shadow:var(--shadow-lg);
  border-color:oklch(from var(--color-primary) l c h / .45);
}
.link-card__media{display:block;position:relative;aspect-ratio:4/3;overflow:hidden}
.link-card__media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 600ms cubic-bezier(.16,1,.3,1);
}
.link-card:hover .link-card__media img{transform:scale(1.045)}
/* Booking-card image carousel (auto-fade) */
.lc-carousel{position:absolute;inset:0}
.lc-carousel .lc-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity 900ms ease;
}
.lc-carousel .lc-slide.is-active{opacity:1}
.lc-carousel .lc-slide img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 600ms cubic-bezier(.16,1,.3,1);
}
.link-card:hover .lc-carousel .lc-slide.is-active img{transform:scale(1.045)}
.lc-dots{
  position:absolute;left:0;right:0;bottom:var(--space-3);z-index:3;
  display:flex;gap:7px;justify-content:center;
}
.lc-dots span{
  width:7px;height:7px;border-radius:50%;
  background:oklch(from #fff l c h / .55);
  box-shadow:0 1px 3px oklch(from #000 l c h / .35);
  transition:background 300ms ease, width 300ms ease;
}
.lc-dots span.is-active{background:#fff;width:18px;border-radius:4px}
@media (prefers-reduced-motion: reduce){
  .lc-carousel .lc-slide{transition:none}
}
.link-card__media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top, oklch(from var(--color-text) l c h / .28), transparent 55%);
}
.link-card__body{display:block;padding:var(--space-5) var(--space-5) var(--space-6)}
.link-card__eyebrow{
  display:block;font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--color-amber);margin-bottom:var(--space-2);
}
.link-card__title{
  display:block;font-family:var(--font-display);font-weight:500;
  font-size:var(--text-xl);line-height:1.1;margin-bottom:var(--space-2);
}
.link-card__desc{
  display:block;font-size:var(--text-sm);color:var(--color-text-muted);
  margin-bottom:var(--space-4);
}
.link-card__cta{
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:var(--text-sm);font-weight:600;color:var(--color-surface-2);
  background:var(--color-primary);padding:.6rem 1.1rem;border-radius:var(--radius-full);
}
.link-card:hover .link-card__cta{background:var(--color-primary-hover)}
[data-theme='dark'] .link-card__cta{color:var(--color-bg)}

/* ===== Explore the area ===== */
.area{margin-top:clamp(var(--space-12),7vw,var(--space-20))}
.area__title{
  font-family:var(--font-display);font-weight:500;font-size:var(--text-xl);
  text-align:center;color:var(--color-text);
}
.area__lead{
  max-width:46ch;margin:var(--space-3) auto 0;text-align:center;
  font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6;
}
.area__group{margin-top:clamp(var(--space-8),5vw,var(--space-10))}
.area__subtitle{
  font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-amber);margin-bottom:var(--space-4);
  padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider);
}
.area__list{display:grid;gap:var(--space-3)}
.area__list li{
  display:grid;gap:.2rem;padding:var(--space-4) var(--space-5);
  background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
}
.area__dist{
  font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--color-primary);
}
.area__list strong{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);line-height:1.15;color:var(--color-text)}
.area__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.55}
.area__note{
  margin-top:var(--space-4);text-align:center;
  font-size:var(--text-xs);color:var(--color-text-faint);font-style:italic;
}
.area__more{margin-top:var(--space-4);text-align:center}
.area__more a{
  font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-decoration:none;
}
.area__more a:hover{color:var(--color-amber);text-decoration:underline}

/* ===== Gallery ===== */
.gallery{margin-top:clamp(var(--space-10),6vw,var(--space-16))}
/* Break out of the narrow shell so the photo grid has room */
.gallery{
  width:min(1100px,94vw);
  margin-left:50%;transform:translateX(-50%);
}
.gallery__title{
  font-family:var(--font-display);font-weight:500;font-size:var(--text-xl);
  text-align:center;margin-bottom:var(--space-2);color:var(--color-text);
}
.gallery__lead{
  text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);
  max-width:52ch;margin:0 auto var(--space-5);line-height:1.55;
}
.gallery__filters{
  display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;
  margin-bottom:var(--space-5);
}
.gfilter{
  font:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;
  color:var(--color-text);background:var(--color-surface);
  border:1px solid var(--color-border);border-radius:var(--radius-full);
  padding:.45rem 1.05rem;transition:all 180ms ease;
}
.gfilter:hover{border-color:var(--color-primary)}
.gfilter.is-active{
  background:var(--color-primary);color:#fff;border-color:var(--color-primary);
}
.gallery__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);
}
@media(min-width:900px){.gallery__grid{grid-template-columns:repeat(4,1fr)}}
.ph{
  margin:0;padding:0;border:1px solid var(--color-border);cursor:pointer;
  overflow:hidden;border-radius:var(--radius-lg);background:var(--color-surface);
  aspect-ratio:4/3;display:block;
}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.ph:hover img{transform:scale(1.06)}
.ph:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.ph[hidden]{display:none}

/* ===== Lightbox ===== */
.lightbox{
  position:fixed;inset:0;z-index:1000;display:none;
  background:oklch(0.16 0.02 150 / .94);
  align-items:center;justify-content:center;
}
.lightbox.open{display:flex}
.lightbox__img{
  max-width:92vw;max-height:82vh;object-fit:contain;
  border-radius:var(--radius-md);box-shadow:var(--shadow-lg);
}
.lightbox__cap{
  position:absolute;bottom:max(env(safe-area-inset-bottom),18px);left:0;right:0;
  text-align:center;color:#fff;font-size:var(--text-sm);
  text-shadow:0 1px 4px rgba(0,0,0,.6);padding:0 1rem;
}
.lightbox__count{
  position:absolute;top:max(env(safe-area-inset-top),18px);left:0;right:0;
  text-align:center;color:rgba(255,255,255,.8);font-size:var(--text-xs);letter-spacing:.05em;
}
.lb-btn{
  position:absolute;display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:var(--radius-full);cursor:pointer;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);
  color:#fff;transition:background 160ms ease;
}
.lb-btn:hover{background:rgba(255,255,255,.28)}
.lb-close{top:14px;right:14px}
.lb-prev{left:max(14px,2vw);top:50%;transform:translateY(-50%)}
.lb-next{right:max(14px,2vw);top:50%;transform:translateY(-50%)}
@media(max-width:560px){
  .lb-prev{left:10px}.lb-next{right:10px}
  .lb-btn{width:42px;height:42px}
}

/* ===== Why ===== */
.why{margin-top:clamp(var(--space-10),6vw,var(--space-16))}
.why ul{display:grid;gap:var(--space-4)}
.why li{
  display:grid;grid-template-columns:auto 1fr;column-gap:var(--space-4);row-gap:.1rem;
  align-items:start;padding:var(--space-4) var(--space-5);
  background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
}
.why svg{width:26px;height:26px;color:var(--color-primary);grid-row:span 2;margin-top:.15rem}
.why strong{font-size:var(--text-base);font-weight:600}
.why span{grid-column:2;font-size:var(--text-sm);color:var(--color-text-muted)}

/* ===== Footer ===== */
.foot{text-align:center;margin-top:clamp(var(--space-12),7vw,var(--space-20))}
.foot__handle{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text)}
.foot__social{display:flex;justify-content:center;margin-top:var(--space-3)}
.foot__social a{
  display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-full);
  color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface);
}
.foot__social a:hover{color:var(--color-amber);border-color:var(--color-amber);transform:translateY(-2px)}
.foot__fine{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--color-text-faint)}

@media (max-width:380px){
  .why li{grid-template-columns:1fr}
  .why svg{grid-row:auto;margin-bottom:var(--space-1)}
  .why span{grid-column:1}
}
