/* A travel calendar and a pocket of paper coupons, within the shared cat identity. */
.leisure-page { --ticket-paper:#fffef9; padding-block:26px 55px; max-width:1500px; }
.leisure-page [hidden] { display:none!important; }
.leisure-page :is(button,a,summary,select):focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.leisure-hero .journal-breadcrumb { margin-bottom:8px; color:var(--muted); }
.leisure-hero-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; align-items:center; gap:35px; min-height:260px; }
.leisure-hero h1 { font-size:clamp(34px,3.6vw,53px); letter-spacing:-.045em; line-height:1.45; font-weight:800; }
.leisure-hero p { font-size:15px; line-height:1.95; margin-top:19px; color:var(--muted); }
.leisure-hero-art { height:270px; position:relative; isolation:isolate; }
.leisure-hero-art>img { width:270px; height:270px; object-fit:contain; position:absolute; right:0; bottom:0; z-index:1; }
.month-stamp { position:absolute; left:3px; top:56px; width:150px; height:170px; transform:rotate(-6deg); background:var(--ticket-paper); border:2px solid #bc9c6a; border-radius:6px 6px 14px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--ink); box-shadow:0 5px 0 #c6d3bb; }
.month-stamp::before { content:''; position:absolute; height:16px; width:80px; top:-10px; left:33px; border-inline:6px solid #947852; }
.month-stamp>span { font-size:13px; line-height:1.5; letter-spacing:.15em; }
.month-stamp>strong { font-size:69px; line-height:1.1; font-weight:600; letter-spacing:-.05em; }
.shopping-stamps { position:absolute; z-index:-1; top:26px; right:0; display:grid; gap:14px; transform:rotate(7deg); }
.shopping-stamps span { font-size:14px; line-height:1.5; letter-spacing:.08em; background:var(--yellow); border:1px dashed #ad984f; padding:12px 20px; min-width:140px; text-align:right; }
.shopping-stamps span:nth-child(2) { background:var(--pink); border-color:#ca9fa2; transform:rotate(-9deg); }
.shopping-stamps span:nth-child(3) { background:var(--lilac); border-color:#adc5a1; transform:rotate(-3deg); }
.coupons-page .leisure-hero-art>img { right:80px; }
.leisure-toolbar { margin:26px 0 32px; padding:18px 0; border-block:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.leisure-search { display:flex; align-items:center; gap:13px; background:var(--ticket-paper); border:1px solid #b8c7b3; border-radius:30px; padding:11px 19px; min-height:49px; flex:1 1 310px; }
.leisure-search>svg { width:22px; height:22px; }
.leisure-search input { border:0; outline:none; background:transparent; width:100%; min-width:0; font-size:14px; line-height:1.7; }
.leisure-search:focus-within { outline:2px solid var(--ink); outline-offset:3px; }
.leisure-filters { display:flex; flex-wrap:wrap; gap:8px; }
.leisure-filters button { border:1px solid #b8c7b3; border-radius:28px; min-height:44px; padding:10px 18px; font-size:13px; background:var(--ticket-paper); transition:background .18s,color .18s; }
.leisure-filters button[aria-pressed=true] { background:var(--ink); border-color:var(--ink); color:#fff; }
.leisure-filters button:hover:not([aria-pressed=true]) { background:var(--lilac); }
.activity-workspace { display:grid; grid-template-columns:310px minmax(0,1fr); gap:29px; align-items:start; }
.activity-calendar { background:var(--ticket-paper); padding:23px 20px; border:1px solid var(--line); border-radius:8px; }
.calendar-heading { display:flex; gap:10px; justify-content:space-between; align-items:center; margin-bottom:18px; }
.calendar-heading h2 { font-size:20px; line-height:1.5; font-weight:700; letter-spacing:-.035em; }
.calendar-heading button { display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; width:44px; height:44px; flex:none; }
.calendar-heading button:hover { background:var(--wash); }
.calendar-heading button:first-child svg { transform:rotate(180deg); }
.calendar-heading svg { width:20px; height:20px; }
.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px 0; }
.calendar-weekdays { font-size:12px; text-align:center; margin-bottom:9px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.calendar-weekdays>span:first-child { color:#ae5864; }
.calendar-weekdays>span:last-child { color:#3d7887; }
.calendar-days button { min-height:44px; position:relative; font-size:13px; border-radius:22px; padding:9px 0 12px; }
.calendar-days button:hover { background:var(--wash); }
.calendar-days button[aria-current=date] { outline:1px solid var(--ink); outline-offset:-3px; font-weight:700; }
.calendar-days button[aria-pressed=true] { background:var(--ink); color:#fff; }
.calendar-days button[data-kind]::after { content:''; width:13px; height:3px; position:absolute; bottom:5px; left:calc(50% - 6.5px); border-radius:3px; background:#b36c76; }
.calendar-days button[data-kind=booking]::after { background:#b38e34; }
.calendar-days button[data-kind=lights]::after { background:#b36c76; }
.calendar-days button[data-kind=season]::after { background:#5b8d6f; }
.calendar-days button[data-kind=notice]::after { background:#4a8b9a; }
.calendar-days button[data-kind=culture]::after { background:#8772a2; }
.calendar-days button[aria-pressed=true]::after { background:var(--yellow); }
.calendar-explainer { font-size:11px; line-height:1.85; color:var(--muted); margin-top:17px; }
.calendar-actions { display:flex; flex-wrap:wrap; gap:5px 18px; margin-top:7px; }
.calendar-actions button { font-size:12px; min-height:44px; padding:7px 0; text-decoration:underline; text-underline-offset:4px; }
.calendar-note { border-top:1px solid var(--line); margin-top:16px; padding-top:18px; }
.calendar-note>span { font-size:11px; background:var(--yellow); padding:4px 9px; border-radius:3px; }
.calendar-note p { font-size:18px; font-weight:600; line-height:1.7; margin-top:10px; }
.calendar-coverage { margin-top:18px; color:var(--muted); font-size:10px; line-height:1.85; }
.activity-results { min-width:0; }
.activity-results-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.activity-results-heading h2,.coupon-results-heading h2 { font-size:21px; line-height:1.6; font-weight:700; letter-spacing:-.025em; }
.activity-results-heading p,.coupon-results-heading p { font-size:12px; color:var(--muted); line-height:1.8; margin-top:4px; }
.activity-selects { display:flex; flex-wrap:wrap; gap:10px; }
.activity-selects label { display:flex; align-items:center; gap:8px; font-size:11px; }
.activity-selects select { max-width:155px; background:var(--ticket-paper); border:1px solid var(--line); border-radius:6px; padding:10px 27px 10px 11px; min-height:44px; font-size:12px; }
.activity-new-filter { display:inline-flex; align-items:center; gap:9px; min-height:44px; font-size:12px; cursor:pointer; }
.activity-new-filter input { width:18px; height:18px; accent-color:var(--ink); margin:0; }
.activity-cards { display:grid; gap:16px; }
.activity-card { background:var(--ticket-paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.activity-main { display:grid; grid-template-columns:64px 170px minmax(0,1fr); min-height:174px; }
.activity-date { display:flex; flex-direction:column; justify-content:flex-start; align-items:center; padding:19px 5px 12px; gap:3px; background:#e2eddc; }
.kind-lights .activity-date { background:#f4d9d7; }
.kind-booking .activity-date { background:#f3e4ad; }
.kind-notice .activity-date { background:#dfedf1; }
.kind-culture .activity-date { background:#e8e1f0; }
.activity-date>span:first-child { font-size:11px; }
.activity-date>strong { font-size:29px; line-height:1.4; font-weight:600; }
.activity-date>span:last-child { font-size:9px; line-height:1.8; margin-top:6px; text-align:center; }
.activity-photo { width:100%; height:100%; min-height:174px; object-fit:cover; }
.activity-copy { padding:17px 20px 13px; min-width:0; }
.activity-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:10px; color:var(--muted); margin-bottom:8px; }
.leisure-tag { display:inline-flex; align-items:center; min-height:24px; padding:3px 9px; border-radius:4px; font-size:10px; line-height:1.6; color:var(--ink); background:#e2eddc; }
.tag-lights { background:#f4d9d7; }.tag-booking { background:#f3e4ad; }.tag-notice { background:#dfedf1; }
.tag-culture { background:#e8e1f0; }
.activity-added-badge { background:var(--ink); color:white; padding:3px 7px; border-radius:3px; font-size:10px; }
.activity-venue { font-size:12px; color:var(--muted); line-height:1.8; margin-top:6px; }
.activity-media { margin:0; min-width:0; position:relative; display:flex; align-items:center; background:#f4f3e9; overflow:hidden; }
.activity-media .activity-photo { height:auto; min-height:0; aspect-ratio:1.5; object-fit:contain; padding-bottom:21px; }
.activity-media figcaption { position:absolute; bottom:0; left:0; right:0; text-align:center; font-size:9px; line-height:1.8; padding:4px; background:#fffef9e8; color:#5b6c60; }
.activity-evidence { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 13px; border-top:1px solid var(--line); padding:0 16px; font-size:10px; line-height:1.8; color:var(--muted); }
.activity-evidence a { display:flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.activity-evidence time { white-space:nowrap; }
.activity-copy h3 { font-size:19px; line-height:1.55; font-weight:700; letter-spacing:-.02em; }
.activity-schedule { font-size:12px; line-height:1.8; margin-top:7px; color:var(--ink); }
.activity-detail { font-size:11px; line-height:1.8; margin-top:5px; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.activity-detail:empty { display:none; }
.activity-read { display:flex; align-items:center; gap:9px; font-size:11px; margin-top:11px; }
.activity-read svg { width:16px; height:16px; }
.activity-main:hover h3,.coupon-guide:hover { text-decoration:underline; text-underline-offset:4px; }
.leisure-more { display:flex; margin:25px auto 0; min-height:46px; }
.leisure-empty { text-align:center; padding:30px 20px 42px; }
.leisure-empty img { width:120px; height:120px; object-fit:contain; margin:0 auto 10px; }
.leisure-empty h3 { font-size:20px; line-height:1.6; }
.leisure-empty p { font-size:13px; color:var(--muted); margin:10px 0 20px; }
.leisure-crosslink { display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--yellow); margin-top:38px; padding:24px 30px; border-radius:8px; }
.leisure-crosslink>span:first-child { display:grid; gap:7px; }
.leisure-crosslink strong { font-size:22px; line-height:1.5; }
.leisure-crosslink>span:first-child>span { font-size:13px; line-height:1.8; }
.leisure-crosslink>span:last-child { display:flex; align-items:center; gap:16px; font-size:13px; white-space:nowrap; }
.coupon-toolbar { flex-direction:column; align-items:center; }
.coupon-toolbar .leisure-search { flex:none; width:min(100%,740px); }
.coupon-toolbar .leisure-filters { justify-content:center; }
.coupon-results-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 21px; }
.coupon-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; align-items:start; }
.coupon-ticket { background:var(--ticket-paper); border:1px solid #cad7c3; border-radius:3px; padding:10px; box-shadow:0 3px 0 #d4dfcc; position:relative; min-width:0; }
.coupon-photo { display:block; position:relative; overflow:hidden; border-radius:3px; }
.coupon-photo img { width:100%; aspect-ratio:2.15; object-fit:cover; }
.coupon-photo .leisure-tag { position:absolute; top:10px; left:10px; background:#e1edda; padding:5px 11px; font-size:11px; }
.ticket-drug .coupon-photo .leisure-tag { background:#f4d9d7; }
.ticket-electronics .coupon-photo .leisure-tag { background:#f3e4ad; }
.ticket-department .coupon-photo .leisure-tag { background:#e8e1f0; }
.ticket-travel .coupon-photo .leisure-tag { background:#dfedf1; }
.coupon-copy { padding:14px 9px 0; }
.coupon-copy>h2 { font-size:22px; line-height:1.55; font-weight:700; letter-spacing:-.025em; }
.coupon-copy>p { font-size:13px; line-height:1.8; margin-top:9px; }
.coupon-copy>.coupon-brands { color:var(--muted); font-size:10px; line-height:1.8; min-height:36px; }
.coupon-guide { display:flex; align-items:center; gap:9px; font-size:12px; min-height:44px; margin-top:4px; }
.coupon-guide svg { width:16px; height:16px; }
.coupon-options { border-top:1px dashed #bdcdb5; margin-top:5px; }
.coupon-options>summary { font-size:12px; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; cursor:pointer; list-style:none; }
.coupon-options>summary::-webkit-details-marker { display:none; }
.coupon-options>summary svg { width:16px; height:16px; transform:rotate(90deg); }
.coupon-options[open]>summary svg { transform:rotate(-90deg); }
.coupon-options>p { font-size:12px; color:var(--muted); line-height:1.9; margin:4px 0 12px; }
.coupon-options ul { list-style:none; margin:0; padding:0; }
.coupon-options li { border-top:1px solid var(--line); }
.coupon-options li a { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; font-size:12px; line-height:1.8; }
.coupon-options li a svg { width:15px; height:15px; }
.coupon-options li a:hover { text-decoration:underline; text-underline-offset:4px; }
.coupon-reminder { background:#e1edda; border-radius:9px; padding:22px 25px; margin-top:36px; display:flex; align-items:center; gap:20px; }
.coupon-reminder>img { width:65px; height:65px; object-fit:contain; flex:none; }
.coupon-reminder h2 { font-size:23px; line-height:1.5; }
.coupon-reminder p { font-size:12px; line-height:1.95; margin-top:7px; }
.coupon-reminder>a { min-height:44px; display:flex; gap:12px; align-items:center; white-space:nowrap; font-size:12px; margin-left:auto; }
.coupon-reminder>a svg { width:18px; height:18px; }
.leisure-bottom-links { display:flex; gap:16px; flex-wrap:wrap; margin-top:22px; }
.leisure-bottom-links>a { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:16px 22px; min-height:56px; border:1px solid var(--ink); border-radius:30px; flex:1 1 240px; font-size:14px; }
.leisure-bottom-links>a:first-child { background:var(--yellow); }
.leisure-bottom-links svg { width:20px; height:20px; }
.leisure-data-note { font-size:11px; line-height:1.9; color:var(--muted); margin-top:23px; }
@media(max-width:1150px) {
  .leisure-hero-layout { grid-template-columns:minmax(0,1fr) 315px; }
  .leisure-hero-art>img { width:245px; height:245px; }
  .month-stamp { left:0; width:135px; height:158px; }
  .activity-workspace { grid-template-columns:285px minmax(0,1fr); gap:23px; }
  .activity-calendar { padding:21px 15px; }
  .activity-main { grid-template-columns:57px 125px minmax(0,1fr); }
  .activity-copy { padding:15px; }
  .activity-copy h3 { font-size:17px; }
  .coupon-grid { gap:18px; }
  .coupon-copy { padding-inline:5px; }
  .coupon-copy>h2 { font-size:20px; }
}
@media(max-width:900px) {
  .activity-workspace { grid-template-columns:minmax(0,1fr); }
  .activity-calendar { max-width:540px; width:100%; margin:auto; padding:23px; }
  .calendar-days { gap:6px; }
  .calendar-days button { min-height:46px; }
  .calendar-note { display:none; }
  .calendar-coverage { margin-top:10px; }
  .calendar-explainer br,.calendar-coverage br { display:none; }
  .activity-main { grid-template-columns:64px 190px minmax(0,1fr); }
  .activity-copy h3 { font-size:20px; }
  .coupon-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .coupon-reminder { flex-wrap:wrap; }
  .coupon-reminder>a { margin-left:85px; }
}
@media(max-width:600px) {
  .leisure-page { padding-block:21px 35px; }
  .leisure-hero-layout { display:block; min-height:0; position:relative; padding-bottom:10px; }
  .leisure-hero h1 { font-size:33px; line-height:1.45; letter-spacing:-.04em; }
  .leisure-hero p { font-size:13px; line-height:1.85; margin-top:15px; max-width:240px; }
  .leisure-hero .journal-breadcrumb { margin-bottom:23px; }
  .leisure-hero-art { height:150px; width:210px; margin:0 0 -10px auto; }
  .leisure-hero-art>img { width:166px; height:166px; }
  .month-stamp { top:27px; width:90px; height:110px; left:0; border-width:1px; }
  .month-stamp::before { left:20px; width:48px; border-inline-width:4px; height:12px; top:-7px; }
  .month-stamp>strong { font-size:44px; }.month-stamp>span { font-size:10px; }
  .coupons-page .leisure-hero-art>img { right:52px; }
  .shopping-stamps { top:9px; gap:9px; }
  .shopping-stamps span { min-width:95px; padding:7px 13px; font-size:11px; }
  .leisure-toolbar { margin:20px 0 25px; padding-block:16px; gap:14px; }
  .leisure-search { flex-basis:100%; padding:10px 15px; min-height:47px; }
  .leisure-search input { font-size:13px; }
  .leisure-filters { gap:7px; }
  .leisure-filters button { font-size:12px; padding:10px 13px; }
  .coupon-toolbar .leisure-filters { justify-content:flex-start; width:100%; }
  .calendar-heading h2 { font-size:22px; }
  .activity-calendar { padding:20px 17px; }
  .calendar-days { gap:4px 1px; }
  .activity-results-heading { gap:16px; margin-top:4px; }
  .activity-results-heading h2 { font-size:21px; }
  .activity-selects { width:100%; gap:10px; }
  .activity-selects label { flex:1; flex-direction:column; align-items:flex-start; gap:5px; min-width:0; }
  .activity-selects select { width:100%; max-width:none; }
  .activity-main { grid-template-columns:55px minmax(0,1fr); }
  .activity-date { grid-row:1/3; padding-top:17px; }
  .activity-photo { width:100%; min-height:0; height:auto; aspect-ratio:2.15; }
  .activity-media { aspect-ratio:1.5; }
  .activity-media .activity-photo { aspect-ratio:1.5; height:100%; padding-bottom:23px; }
  .activity-media figcaption { font-size:10px; }
  .activity-evidence { padding:4px 13px; font-size:10px; gap:0 10px; }
  .activity-copy { padding:14px 15px 16px; }
  .activity-copy h3 { font-size:18px; }
  .activity-detail { font-size:12px; }
  .activity-schedule { font-size:12px; }
  .activity-meta { gap:7px; margin-bottom:8px; }
  .leisure-crosslink { padding:23px; display:block; margin-top:28px; }
  .leisure-crosslink strong { font-size:22px; }
  .leisure-crosslink>span:last-child { margin-top:18px; font-size:12px; }
  .coupon-results-heading { align-items:flex-start; margin-bottom:18px; gap:4px; }
  .coupon-results-heading h2 { width:100%; font-size:21px; }
  .coupon-grid { grid-template-columns:minmax(0,1fr); gap:22px; }
  .coupon-ticket { padding:10px; }
  .coupon-copy { padding:13px 9px 0; }
  .coupon-copy>h2 { font-size:23px; }
  .coupon-copy>p { font-size:14px; }
  .coupon-copy>.coupon-brands { min-height:0; font-size:11px; }
  .coupon-options>summary { font-size:13px; min-height:48px; }
  .coupon-options>p,.coupon-options li a { font-size:13px; }
  .coupon-reminder { padding:22px; gap:13px; align-items:flex-start; }
  .coupon-reminder>img { width:45px; height:45px; }
  .coupon-reminder>div { flex:1; min-width:0; }
  .coupon-reminder h2 { font-size:21px; }
  .coupon-reminder p { font-size:12px; }
  .coupon-reminder p br { display:none; }
  .coupon-reminder>a { margin-left:58px; }
  .leisure-bottom-links { gap:12px; }
  .leisure-bottom-links>a { font-size:13px; padding:14px 20px; flex-basis:100%; }
}
@media(max-width:360px) { .leisure-hero h1 { font-size:29px; }.activity-copy { padding-inline:12px; }.calendar-heading h2 { font-size:19px; }.leisure-filters button { padding-inline:11px; } }
html.motion-off .leisure-filters button { transition:none; }
@media(prefers-reduced-motion:reduce) { .leisure-filters button { transition:none; } }
