/* =====================================================================
   ROOTS & BEATS  |  Activity Schedule page
   Loaded ONLY by /activity-schedule/. It reuses the tokens, fonts and
   components of css/style.css and adds nothing global to the rest of
   the site. Every selector below belongs to this page.
   ===================================================================== */

html{ scroll-padding-top:150px; }

/* ---------- hero ---------- */
.sd-hero{
  position:relative; overflow:hidden;
  background:var(--sand-2); border-bottom:1px solid var(--line-soft);
  padding-block:clamp(104px,12vw,168px) clamp(36px,5vw,56px);
}
.sd-hero-wave{
  position:absolute; left:0; right:0; top:clamp(74px,9vw,110px);
  color:rgba(180,82,44,.22); pointer-events:none;
}
.sd-hero-wave svg{ width:100%; height:44px; }
.sd-title{
  font-family:var(--serif); font-weight:500; letter-spacing:-.035em; line-height:1;
  font-size:clamp(2.6rem,8vw,4.6rem); color:var(--ink); margin-top:4px;
}
.sd-intro{
  margin-top:18px; max-width:62ch; color:var(--ink-2);
  font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.6;
}
.sd-facts{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  margin-top:clamp(28px,3.5vw,40px); background:var(--line-soft);
  border:1px solid var(--line-soft);
}
.sd-fact{ background:var(--sand-2); padding:14px 16px; display:flex; flex-direction:column; gap:5px; }
.sd-fact-k{
  font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3);
}
.sd-fact-v{ font-size:.98rem; font-weight:600; color:var(--ink); line-height:1.35; }
.sd-hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(26px,3vw,34px); }
.sd-hero-actions .btn{ flex:1 1 auto; }

/* ---------- sticky day selector ---------- */
.sd-nav{
  position:sticky; top:74px; z-index:60;
  background:rgba(248,243,234,.93); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.sd-nav .shell{ padding-inline:0; }
.sd-chips{
  display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x proximity;
  padding:10px var(--gutter); margin:0; list-style:none;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.sd-chips::-webkit-scrollbar{ display:none; }
.sd-chip{
  display:flex; flex-direction:column; gap:1px; scroll-snap-align:center;
  padding:9px 13px; min-width:92px; border:1px solid var(--line); border-radius:3px;
  background:var(--paper); color:var(--ink-2); text-decoration:none;
  transition:border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
}
.sd-chip:hover{ border-color:var(--ink-3); }
.sd-chip-day{ font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.sd-chip-date{ font-size:.94rem; font-weight:600; color:var(--ink); line-height:1.15; }
.sd-chip-label{ font-size:.68rem; color:var(--ink-3); white-space:nowrap; }
.sd-chip.is-current{ border-color:var(--terracotta); background:var(--terracotta-s); }
.sd-chip.is-current .sd-chip-day,.sd-chip.is-current .sd-chip-label{ color:var(--terracotta-d); }
.sd-chip-after .sd-chip-date{ font-family:var(--serif); }

/* ---------- legend ---------- */
.sd-legend-wrap{ padding-block:clamp(26px,3.4vw,38px); border-bottom:1px solid var(--line-soft); }
.sd-legend-h{
  font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:14px;
}
.sd-legend{ display:flex; flex-wrap:wrap; gap:8px 10px; list-style:none; margin:0; padding:0; }

/* ---------- category chip (shared by legend and activities) ---------- */
.sd-cat{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 9px; border-radius:2px; border:1px solid var(--line-soft);
  background:var(--paper); color:var(--ink-2);
  font-size:.7rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  white-space:nowrap;
}
.sd-cat svg{ width:14px; height:14px; flex:none; }
.sd-cat-meal{ color:#7A5B2E; border-color:rgba(122,91,46,.28); background:rgba(122,91,46,.06); }
.sd-cat-workshop{ color:var(--terracotta-d); border-color:rgba(180,82,44,.28); background:var(--terracotta-s); }
.sd-cat-cultural{ color:#8A3B62; border-color:rgba(138,59,98,.26); background:rgba(138,59,98,.06); }
.sd-cat-reflection{ color:var(--sea); border-color:rgba(23,71,92,.25); background:rgba(23,71,92,.05); }
.sd-cat-travel{ color:#4A4038; border-color:var(--line); background:var(--sand-2); }
.sd-cat-public{ color:#8F3F20; border-color:rgba(143,63,32,.3); background:rgba(143,63,32,.07); }
.sd-cat-environment{ color:#1E6B72; border-color:rgba(30,107,114,.28); background:rgba(30,107,114,.06); }
.sd-cat-youthpass{ color:var(--olive); border-color:rgba(94,107,75,.34); background:rgba(94,107,75,.08); }
.sd-cat-free{ color:var(--ink-3); border-color:var(--line-soft); background:var(--sand); }
.sd-cat-break{ color:var(--ink-3); border-color:var(--line-soft); background:var(--sand); }
.sd-cat-info{ color:var(--sea-deep); border-color:rgba(18,53,68,.28); background:var(--sea-soft); }

/* ---------- day section ---------- */
.sd-days{ padding-block:clamp(36px,5vw,60px) clamp(60px,8vw,110px); }
.sd-day{ padding-top:clamp(30px,4vw,46px); }
.sd-day + .sd-day{ border-top:1px solid var(--line-soft); margin-top:clamp(30px,4vw,44px); }
.sd-day-head{ max-width:70ch; }
.sd-day-kicker{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 14px; }
.sd-day-num{
  font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--terracotta); padding:4px 9px; border:1px solid rgba(180,82,44,.3); border-radius:2px;
}
.sd-day-date{ font-size:.85rem; font-weight:600; letter-spacing:.04em; color:var(--ink-3); }
.sd-day-theme{
  margin-top:12px; font-family:var(--serif); font-weight:500; letter-spacing:-.025em; line-height:1.14;
  font-size:clamp(1.55rem,3.4vw,2.25rem); color:var(--ink);
}
.sd-day-flag{
  margin-top:14px; padding:12px 16px; border-left:3px solid var(--terracotta);
  background:var(--terracotta-s); color:var(--ink-2); font-size:.95rem; line-height:1.55;
}
.sd-day.is-special .sd-day-num{ background:var(--terracotta); color:#FFF6EF; border-color:var(--terracotta); }

/* ---------- activity list ---------- */
.sd-list{ list-style:none; margin:clamp(22px,3vw,32px) 0 0; padding:0; }
.sd-item{
  position:relative; padding:18px 0 18px 26px;
  border-top:1px solid var(--line-soft);
}
.sd-item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--line-soft);
}
.sd-item::after{
  content:""; position:absolute; left:-3.5px; top:25px; width:8px; height:8px; border-radius:50%;
  background:var(--sand); border:1.5px solid var(--line);
}
.sd-item:first-child{ border-top:0; }
.sd-item:first-child::before{ top:14px; }
.sd-item:last-child::before{ bottom:auto; height:26px; }
.sd-item[data-cat="public"]::after,
.sd-item[data-cat="environment"]::after,
.sd-item[data-cat="youthpass"]::after{ border-color:var(--terracotta); }
.sd-time{ font-size:.82rem; font-weight:700; letter-spacing:.09em; color:var(--terracotta); }
.sd-main{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 12px; margin-top:6px; }
.sd-title-h,.sd-title{ }
h3.sd-title{
  font-size:1.08rem; font-weight:600; letter-spacing:-.01em; color:var(--ink); line-height:1.3;
}
.sd-detail{ margin-top:10px; max-width:68ch; }
.sd-detail p{ color:var(--ink-2); font-size:.96rem; line-height:1.62; margin-top:9px; }
.sd-detail p:first-child{ margin-top:0; }
.sd-bullets{ list-style:none; margin:10px 0 0; padding:0; display:grid; gap:7px; }
.sd-bullets li{ position:relative; padding-left:19px; font-size:.94rem; color:var(--ink-2); line-height:1.55; }
.sd-bullets li::before{
  content:""; position:absolute; left:2px; top:.62em; width:8px; height:1.5px; background:var(--terracotta); opacity:.75;
}

/* ---------- contingency note ---------- */
.sd-note{
  margin-top:24px; padding:18px 20px;
  background:var(--sea-soft); border:1px solid rgba(23,71,92,.18); border-left:3px solid var(--sea);
}
.sd-note-title{
  font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sea);
  margin-bottom:8px;
}
.sd-note p{ color:var(--ink-2); font-size:.93rem; line-height:1.6; margin-top:8px; }
.sd-note .sd-bullets li::before{ background:var(--sea); }

/* ---------- after the exchange ---------- */
.sd-after{
  margin-top:clamp(46px,6vw,72px); padding:clamp(28px,4vw,48px);
  background:var(--sea-deep); color:var(--sand); border-left:3px solid var(--terracotta);
}
.sd-after .eyebrow{ color:#E0A183; }
.sd-after-h{
  font-family:var(--serif); font-weight:500; letter-spacing:-.025em; line-height:1.12;
  font-size:clamp(1.5rem,3.2vw,2.15rem); color:#FDF8EF; margin-bottom:16px;
}
.sd-after p{ color:rgba(248,243,234,.8); font-size:.98rem; line-height:1.62; max-width:64ch; }
.sd-after-list{ margin-top:18px; }
.sd-after-list li{ color:rgba(248,243,234,.8); }
.sd-after-list li::before{ background:#E0A183; opacity:1; }

/* ---------- breakpoints ---------- */
@media (min-width:600px){
  .sd-facts{ grid-template-columns:repeat(3,1fr); }
  .sd-hero-actions .btn{ flex:0 0 auto; }
}
@media (min-width:760px){
  .sd-item{
    display:grid; grid-template-columns:112px 1fr; column-gap:24px; padding-left:0;
    align-items:start;
  }
  .sd-item::before{ left:124px; }
  .sd-item::after{ left:120px; top:22px; }
  .sd-time{ text-align:right; padding-top:1px; }
  .sd-main{ margin-top:0; }
  .sd-detail{ grid-column:2; }
}
@media (min-width:900px){
  .sd-nav{ top:86px; }
  .sd-day-head{ display:grid; grid-template-columns:auto 1fr; gap:6px 26px; align-items:baseline; }
  .sd-day-kicker{ flex-direction:column; align-items:flex-start; gap:8px; }
  .sd-day-theme{ margin-top:0; }
  .sd-day-flag{ grid-column:2; }
  .sd-list{ padding-left:0; }
}
@media (max-width:599px){
  .sd-hero{ padding-block:96px 32px; }
  .sd-intro{ font-size:1rem; }
  .sd-hero-actions .btn{ width:100%; }
  .sd-chip{ min-width:86px; }
  .sd-day-theme{ font-size:1.5rem; }
  .sd-detail p,.sd-bullets li{ font-size:.94rem; }
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){
  .sd-chip,.sd-cat{ transition:none; }
}

/* ---------- print ---------- */
@media print{
  .site-header,.nav-mobile,.sd-nav,.sd-hero-actions,.sd-legend-wrap,
  .apply-bar,.site-footer .footer-logos,.to-top,.skip-link{ display:none !important; }
  html{ scroll-padding-top:0; }
  body{ background:#fff; color:#000; }
  .sd-hero{ background:#fff; border-bottom:1px solid #999; padding-block:0 18px; }
  .sd-hero-wave{ display:none; }
  .sd-title{ font-size:26pt; }
  .sd-intro{ font-size:10pt; }
  .sd-facts{ border-color:#999; background:#999; }
  .sd-fact{ background:#fff; padding:6px 8px; }
  .sd-days{ padding-block:0; }
  .sd-day{ break-inside:auto; page-break-inside:auto; padding-top:16pt; }
  .sd-day-head{ break-after:avoid; page-break-after:avoid; }
  .sd-item{ break-inside:avoid; page-break-inside:avoid; padding:8pt 0 8pt 0; }
  .sd-item::before,.sd-item::after{ display:none; }
  .sd-time{ color:#000; font-size:9pt; }
  h3.sd-title{ font-size:11pt; }
  .sd-detail p,.sd-bullets li{ font-size:9.5pt; color:#000; }
  .sd-cat{ border-color:#999; background:#fff; color:#000; }
  .sd-day-flag{ background:#f2f2f2; border-left-color:#000; color:#000; }
  .sd-note{ background:#f2f2f2; border-color:#999; border-left-color:#000; }
  .sd-note p,.sd-note-title{ color:#000; }
  .sd-after{ background:#fff; color:#000; border:1px solid #999; border-left:3px solid #000; break-inside:avoid; }
  .sd-after-h,.sd-after p,.sd-after-list li,.sd-after .eyebrow{ color:#000; }
  .sd-after-list li::before,.sd-bullets li::before{ background:#000; }
  .site-footer{ background:#fff; color:#000; padding-top:12pt; }
  .footer-title,.footer-sub,.footer-meta p,.footer-bottom p{ color:#000; }
}

/* ---- phones (portrait and landscape): no text under 12px ---- */
@media (max-width:599px), (max-width:932px) and (max-height:500px){
  .sd-fact-k,.sd-chip-day,.sd-chip-label,.sd-legend-h,.sd-cat span,.sd-day-num{ font-size:.75rem; }
}
