/* The selected illustrated calendar concept; isolated from the coupon directory. */
.activities-page { --ticket-paper:#fff; --calendar-ink:#123d35; max-width:1600px; padding:20px clamp(20px,2.6vw,42px) 48px; color:var(--calendar-ink); }
.calendar-concept-hero { position:relative; }
.calendar-concept-hero .journal-breadcrumb { font-size:10px; margin-bottom:0; }
.calendar-concept-hero .leisure-hero-layout { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:10px; min-height:220px; }
.calendar-hero-copy { position:relative; z-index:2; padding:18px 0 24px 24px; }
.calendar-concept-hero h1 { font-size:clamp(34px,3.9vw,62px); line-height:1.4; font-weight:900; letter-spacing:-.055em; }
.calendar-title-mark { position:relative; white-space:nowrap; }
.calendar-title-mark::after { content:''; display:block; position:absolute; width:100%; height:7px; border-radius:50% 35% 45% 50%; background:#f3d582; left:0; bottom:-1px; transform:rotate(-2deg); z-index:-1; }
.calendar-concept-hero p { font-size:clamp(13px,1.25vw,19px); color:var(--calendar-ink); margin-top:15px; line-height:1.85; font-weight:500; max-width:40em; }
.calendar-hero-art { position:relative; width:min(100%,410px); aspect-ratio:1.7; align-self:end; justify-self:end; }
.calendar-hero-art>img { width:100%; height:100%; object-fit:contain; }
.calendar-hero-month { position:absolute; display:flex; align-items:baseline; gap:3px; left:19%; top:38%; color:#493522; transform:rotate(-4deg); line-height:1; }
.calendar-hero-month strong { font-family:'Noto Sans TC',sans-serif; font-size:clamp(28px,4.6vw,70px); font-weight:700; letter-spacing:-.05em; }
.calendar-hero-month>span { font-size:clamp(13px,1.8vw,26px); font-weight:600; }
.activities-page .leisure-toolbar { background:#ffffffed; border:0; border-radius:44px; margin:0 0 20px; padding:10px 13px; gap:9px; flex-wrap:nowrap; }
.activities-page .leisure-search { flex:1 1 300px; padding:11px 16px; border-color:#b9c9c4; min-height:50px; }
.activities-page .leisure-search input { font-size:14px; }
.activities-page .leisure-filters { gap:7px; flex:none; flex-wrap:nowrap; }
.activities-page .leisure-filters button { display:flex; align-items:center; justify-content:center; gap:8px; border-color:#bdcbc5; font-size:13px; font-weight:600; padding:11px 14px; min-height:50px; }
.activities-page .leisure-filters button[aria-pressed=true] { background:#ffdf7e; border-color:#ffdf7e; color:#123d35; }
.activity-type-icon { width:23px; height:23px; flex:none; }
.filter-season .activity-type-icon { color:#df7b89; }.filter-lights .activity-type-icon { color:#df7772; }.filter-culture .activity-type-icon { color:#8d77a5; }.filter-booking .activity-type-icon { color:#d67c94; }.filter-notice .activity-type-icon { color:#438a87; }
.activities-page .activity-workspace { grid-template-columns:minmax(330px,.52fr) minmax(0,1fr); gap:17px; }
.activities-page .activity-calendar { background:#fff; border:0; border-radius:12px; padding:22px 24px 16px; }
.activities-page .calendar-heading { margin-bottom:18px; gap:9px; }
.activities-page .calendar-heading h2 { font-size:clamp(20px,2vw,29px); font-weight:800; color:#123d35; }
.activities-page .calendar-heading button { border-color:#bcc9c4; width:43px; height:43px; }
.activities-page .calendar-weekdays { font-size:14px; padding-block:4px 12px; }
.activities-page .calendar-days { gap:7px 2px; }
.activities-page .calendar-days button { font-size:15px; min-height:45px; padding:10px 0 12px; }
.activities-page .calendar-days button[aria-current=date] { background:#e1eedf; outline:0; }
.activities-page .calendar-days button[aria-pressed=true] { color:#fff; background:#276346; }
.activities-page .calendar-days button[data-kind]::after { height:4px; width:19px; left:calc(50% - 9.5px); }
.activities-page .calendar-days button[aria-current=date]::before { content:''; background:url('/assets/nekotabi/characters/logo-head-64.png') center/contain no-repeat; width:23px; height:22px; position:absolute; bottom:-3px; right:-2px; }
.activities-page .calendar-explainer { font-size:11px; margin-top:15px; line-height:1.85; }
.activities-page .calendar-actions { justify-content:space-between; }
.activities-page .calendar-note { position:relative; border:0; height:128px; padding:0; margin:6px -14px 0; }
.activities-page .calendar-note img { width:100%; height:100%; object-fit:contain; object-position:left bottom; }
.activities-page .calendar-note p { position:absolute; background:#ffe39a; border-radius:45% 48% 42% 40%; right:5%; top:21%; margin:0; padding:15px 17px; transform:rotate(-3deg); font-size:15px; line-height:1.7; font-weight:700; }
.activities-page .calendar-coverage { font-size:10px; margin-top:7px; line-height:1.8; }
.activities-page .activity-results { padding:15px; border-radius:12px; background:#fff; }
.activities-page .activity-results-heading { gap:5px 10px; align-items:center; padding:0 3px; margin-bottom:12px; }
.activities-page .activity-results-heading>div:first-child { display:flex; flex:1 1 100%; align-items:baseline; flex-wrap:wrap; gap:4px 13px; }
.activities-page .activity-results-heading h2 { font-size:17px; line-height:1.8; }
.activities-page .activity-results-heading p { font-size:11px; margin:0; }
.activities-page .activity-selects { gap:12px; }
.activities-page .activity-selects label { font-size:11px; gap:7px; }
.activities-page .activity-selects select { padding:7px 24px 7px 9px; min-height:40px; font-size:11px; max-width:140px; }
.activities-page .activity-new-filter { min-height:35px; margin-left:auto; font-size:11px; }
.activities-page .activity-new-filter input { width:16px; height:16px; }
.activities-page .activity-cards { gap:10px; }
.activities-page .activity-card { border:1px solid #e0e6e2; border-radius:12px; background:#fff; }
.activities-page .activity-main { grid-template-columns:73px minmax(140px,.7fr) minmax(0,1fr); min-height:148px; }
.activities-page .activity-date { padding:16px 5px 9px; gap:0; }
.activities-page .activity-date>span:first-child { font-size:11px; font-weight:600; }
.activities-page .activity-date>strong { font-size:28px; line-height:1.4; font-weight:700; }
.activities-page .activity-date .activity-type-icon { width:25px; height:25px; margin-top:10px; opacity:.8; }
.activities-page .activity-date>span:last-child { margin-top:8px; font-size:9px; }
.activities-page .activity-photo { width:100%; height:100%; min-height:148px; object-fit:cover; border-radius:5px; }
.activities-page .activity-copy { padding:13px 15px 11px; position:relative; }
.activities-page .activity-meta { gap:5px 9px; margin-bottom:6px; font-size:10px; }
.activities-page .leisure-tag { padding:1px 7px; min-height:21px; font-size:9px; }
.activities-page .activity-copy h3 { padding-right:29px; font-size:19px; font-weight:800; line-height:1.5; }
.activities-page .activity-schedule { font-size:11px; margin-top:6px; line-height:1.75; }
.activities-page .activity-detail { font-size:12px; line-height:1.7; margin-top:5px; }
.activities-page .activity-venue { font-size:11px; margin-top:5px; }
.activity-open-arrow { position:absolute; width:30px; height:30px; display:grid; place-items:center; right:10px; top:42px; background:#faf5ef; border-radius:50%; }
.activity-open-arrow svg { width:19px; height:19px; }
.activities-page .activity-read { justify-content:flex-end; color:#276771; font-size:10px; gap:6px; margin-top:8px; text-decoration:underline; text-underline-offset:3px; }
.activities-page .activity-read>svg { width:14px; height:14px; }
.activities-page .activity-media { border-radius:5px; }
.activities-page .activity-media .activity-photo { object-fit:cover; height:100%; min-height:148px; padding-bottom:20px; }
.activities-page .activity-media figcaption { font-size:8px; line-height:1.8; padding:3px 2px; }
.activities-page .activity-evidence { font-size:9px; padding:0 12px; border-top:1px solid #e8eee8; }
.activities-page .activity-evidence a { min-height:35px; }
.activities-page .leisure-crosslink { gap:20px; min-height:110px; padding:12px 25px 10px 16px; background:#ffe59a; margin-top:20px; border-radius:13px; }
.activities-page .leisure-crosslink>img { width:92px; height:92px; object-fit:contain; flex:none; }
.activities-page .leisure-crosslink>span:nth-child(2) { display:grid; gap:6px; margin-right:auto; }
.activities-page .leisure-crosslink strong { font-size:23px; line-height:1.5; }
.activities-page .leisure-crosslink>span:nth-child(2)>span { font-size:13px; line-height:1.7; }
.activities-page .leisure-crosslink>span:last-child { background:#fff; padding:13px 20px; border-radius:30px; font-size:13px; }
@media(min-width:1450px) { .calendar-concept-hero .leisure-hero-layout { min-height:235px; }.activities-page .activity-main { grid-template-columns:85px 235px minmax(0,1fr); }.activities-page .activity-copy h3 { font-size:22px; }.activities-page .activity-copy { padding:15px 18px 12px; }.activities-page .activity-detail { font-size:13px; } }
@media(max-width:1180px) {
  .activities-page .leisure-toolbar { flex-wrap:wrap; border-radius:22px; padding:12px; gap:11px; }
  .activities-page .leisure-search { flex-basis:100%; }
  .activities-page .leisure-filters { flex-wrap:wrap; flex:1; gap:8px; }
  .activities-page .leisure-filters button { flex:1; padding-inline:12px; font-size:12px; min-height:45px; }
  .activities-page .activity-workspace { grid-template-columns:320px minmax(0,1fr); }
  .activities-page .activity-calendar { padding-inline:17px; }
  .activities-page .activity-main { grid-template-columns:58px 130px minmax(0,1fr); }
  .activities-page .activity-copy { padding-inline:12px; }
  .activities-page .activity-copy h3 { font-size:17px; }
  .activities-page .calendar-note p { right:2%; padding:12px; font-size:13px; }
  .calendar-hero-copy { padding-left:10px; }
}
@media(max-width:950px) {
  .calendar-concept-hero .leisure-hero-layout { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
  .calendar-concept-hero h1 { font-size:36px; }
  .activities-page .activity-workspace { grid-template-columns:minmax(0,1fr); }
  .activities-page .activity-calendar { max-width:none; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 32px; padding:24px; }
  .activities-page .calendar-heading,.activities-page .calendar-weekdays,.activities-page .calendar-days { grid-column:1; }
  .activities-page .calendar-heading { grid-row:1; }.activities-page .calendar-weekdays { grid-row:2; }.activities-page .calendar-days { grid-row:3/7; }
  .activities-page .calendar-explainer { grid-column:2; grid-row:1; margin-top:0; align-self:center; }
  .activities-page .calendar-actions { grid-column:2; grid-row:2; }
  .activities-page .calendar-note { display:block; grid-column:2; grid-row:3/6; align-self:center; height:140px; margin:0 -10px; }
  .activities-page .calendar-coverage { grid-column:2; grid-row:6; margin-top:10px; }
  .activities-page .activity-main { grid-template-columns:75px 210px minmax(0,1fr); }
  .activities-page .activity-copy h3 { font-size:20px; }
}
@media(max-width:600px) {
  .activities-page { padding-inline:18px; padding-top:17px; }
  .calendar-concept-hero .journal-breadcrumb { margin-bottom:12px; }
  .calendar-concept-hero .leisure-hero-layout { display:flex; flex-direction:column; gap:0; min-height:0; }
  .calendar-hero-copy { align-self:stretch; padding:8px 4px 0; }
  .calendar-concept-hero h1 { font-size:clamp(29px,7vw,38px); line-height:1.5; max-width:12em; letter-spacing:-.055em; }
  .calendar-title-mark::after { height:5px; }
  .calendar-concept-hero p { font-size:13px; line-height:1.8; max-width:26em; margin-top:11px; }
  .calendar-hero-art { width:min(95%,340px); margin-top:-4px; align-self:flex-end; }
  .calendar-hero-month strong { font-size:44px; }.calendar-hero-month>span { font-size:20px; }
  .activities-page .leisure-toolbar { margin:0 0 18px; padding:10px; border-radius:19px; }
  .activities-page .leisure-search { padding:9px 12px; min-height:45px; }
  .activities-page .leisure-search input { font-size:12px; }
  .activities-page .leisure-filters { gap:7px; }
  .activities-page .leisure-filters button { flex:1 1 calc(33.33% - 7px); min-height:44px; font-size:11px; padding:8px 7px; gap:5px; }
  .activities-page .leisure-filters .activity-type-icon { width:18px; height:18px; }
  .activities-page .activity-calendar { display:block; padding:22px 20px 15px; }
  .activities-page .calendar-heading h2 { font-size:24px; }
  .activities-page .calendar-days { gap:6px 1px; }.activities-page .calendar-days button { font-size:15px; min-height:44px; }
  .activities-page .calendar-note { margin:0 -6px; height:120px; }
  .activities-page .calendar-note p { right:6%; font-size:14px; padding:12px 16px; }
  .activities-page .calendar-coverage { font-size:10px; }
  .activities-page .activity-results { padding:13px 10px; }
  .activities-page .activity-results-heading { margin-bottom:13px; gap:9px; }
  .activities-page .activity-results-heading>div:first-child { display:block; }
  .activities-page .activity-results-heading h2 { font-size:19px; }
  .activities-page .activity-results-heading p { font-size:11px; margin-top:2px; }
  .activities-page .activity-selects { gap:9px; }
  .activities-page .activity-selects select { width:100%; max-width:none; font-size:11px; min-height:44px; }
  .activities-page .activity-new-filter { font-size:11px; margin-left:0; }
  .activities-page .activity-main { grid-template-columns:48px minmax(0,1fr); }
  .activities-page .activity-date { grid-row:1/3; padding:14px 3px; }
  .activities-page .activity-date>strong { font-size:23px; }.activities-page .activity-date .activity-type-icon { width:22px; height:22px; }
  .activities-page .activity-photo { height:auto; min-height:0; aspect-ratio:1.85; border-radius:0; }
  .activities-page .activity-media { aspect-ratio:1.5; border-radius:0; }
  .activities-page .activity-media .activity-photo { height:100%; min-height:0; object-fit:contain; aspect-ratio:1.5; padding-bottom:23px; }
  .activities-page .activity-media figcaption { font-size:9px; }
  .activities-page .activity-copy { padding:12px 13px 13px; }
  .activities-page .activity-copy h3 { font-size:18px; padding-right:25px; }
  .activities-page .activity-detail { font-size:12px; }
  .activities-page .activity-open-arrow { top:43px; width:28px; height:28px; right:9px; }
  .activities-page .activity-evidence { font-size:9px; padding:4px 10px; }
  .activities-page .activity-evidence a { min-height:40px; }
  .activities-page .leisure-crosslink { flex-wrap:wrap; gap:10px 13px; padding:16px; }
  .activities-page .leisure-crosslink>img { width:65px; height:75px; }
  .activities-page .leisure-crosslink>span:nth-child(2) { flex:1; min-width:0; margin:0; }
  .activities-page .leisure-crosslink strong { font-size:18px; }.activities-page .leisure-crosslink>span:nth-child(2)>span { font-size:11px; }
  .activities-page .leisure-crosslink>span:last-child { margin:4px 0 0 auto; font-size:12px; padding:12px 17px; }
}
