/* EKIRIP shared design system — visual layer only. */
:root{
  --ek-color-brand:#f2b900;--ek-color-brand-hover:#dca700;--ek-color-brand-soft:#fff6d8;--ek-color-brand-subtle:#fffaeb;
  --ek-color-text:#1f1f1f;--ek-color-text-secondary:#66635d;--ek-color-text-muted:#8a867e;--ek-color-text-inverse:#fff;
  --ek-color-page:#f7f7f5;--ek-color-surface:#fff;--ek-color-surface-subtle:#fbfbf9;--ek-color-surface-dark:#211f1b;
  --ek-color-border:#e5e3dd;--ek-color-border-strong:#d4d0c7;
  --ek-color-event-bg:#fff3cf;--ek-color-event-text:#735300;--ek-color-life-bg:#eef3fa;--ek-color-life-text:#3b5877;
  --ek-color-food-bg:#f6eee7;--ek-color-food-text:#77533a;--ek-color-shop-bg:#eef5ec;--ek-color-shop-text:#466341;
  --ek-radius-xs:6px;--ek-radius-sm:10px;--ek-radius-md:14px;--ek-radius-lg:20px;--ek-radius-pill:999px;
  --ek-shadow-sm:0 1px 2px rgba(32,29,24,.05);--ek-shadow-md:0 8px 24px rgba(32,29,24,.07);--ek-shadow-overlay:0 20px 60px rgba(32,29,24,.16);
  --ek-content-width:1180px;--ek-reading-width:760px;
  --ek-space-1:4px;--ek-space-2:8px;--ek-space-3:12px;--ek-space-4:16px;--ek-space-5:20px;--ek-space-6:24px;--ek-space-8:32px;--ek-space-10:40px;--ek-space-12:48px;--ek-space-16:64px;
  --ek-transition-fast:150ms ease;--ek-transition-base:220ms ease;
  --bg:var(--ek-color-page);--card:var(--ek-color-surface);--text:var(--ek-color-text);--muted:var(--ek-color-text-secondary);--line:var(--ek-color-border);--accent:var(--ek-color-brand);
}
html{background:var(--ek-color-page);color-scheme:light;scroll-behavior:smooth;}
body{background:var(--ek-color-page)!important;color:var(--ek-color-text)!important;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans JP",sans-serif!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
::selection{background:var(--ek-color-brand-soft);color:var(--ek-color-text);}
a,button,input,select,textarea{transition:border-color var(--ek-transition-fast),background-color var(--ek-transition-fast),color var(--ek-transition-fast),box-shadow var(--ek-transition-fast),transform var(--ek-transition-fast);}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(242,185,0,.34)!important;outline-offset:3px!important;}
img{max-width:100%;}

/* Shared archive shell */
body.ek-page .wrap{width:min(100%,var(--ek-content-width));max-width:var(--ek-content-width);padding:28px 24px 72px;}
body.ek-page .top{min-height:52px;margin-bottom:48px;padding-bottom:12px;border-bottom:1px solid var(--ek-color-border);}
body.ek-page .brand{display:inline-flex;align-items:center;gap:8px;color:var(--ek-color-text);font-size:19px;font-weight:800;letter-spacing:-.02em;}
body.ek-page .brand::before{content:"";width:10px;height:24px;border-radius:3px;background:var(--ek-color-brand);}
body.ek-page :is(.home,.btn){min-height:44px;padding:9px 15px;border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-pill);background:var(--ek-color-surface);color:var(--ek-color-text);font-size:13px;font-weight:700;box-shadow:none;}
body.ek-page :is(.home,.btn):hover{border-color:var(--ek-color-border-strong);background:var(--ek-color-surface-subtle);}
body.ek-page .hero{margin:0 0 48px;padding:0;background:transparent;border:0;box-shadow:none;}
body.ek-page .hero h1,body.ek-page>*>header h1{margin:0 0 12px;color:var(--ek-color-text);font-size:clamp(32px,4vw,44px);line-height:1.3;font-weight:780;letter-spacing:-.025em;}
body.ek-page .lead{max-width:760px;color:var(--ek-color-text-secondary);font-size:16px;line-height:1.85;}
body.ek-page .count{color:var(--ek-color-text-muted);font-size:13px;font-weight:600;}
body.ek-page :is(.crumbs,.breadcrumb){color:var(--ek-color-text-muted);font-size:12px;}
body.ek-page :is(.category-nav,.season-tag-list,.station-theme-links){gap:8px;}
body.ek-page :is(.category-nav,.season-tag-list,.station-theme-links) a{min-height:44px;padding:8px 14px;border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-pill);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);font-size:13px;font-weight:650;}
body.ek-page :is(.category-nav,.season-tag-list,.station-theme-links) a:hover{border-color:var(--ek-color-border-strong);background:var(--ek-color-brand-subtle);color:var(--ek-color-text);}
body.ek-page :is(.category-nav,.season-tag-list) a.active{border-color:#ead28a;background:var(--ek-color-brand-soft);color:#5f4800;box-shadow:none;}
body.ek-page :is(.range-nav,.stations){display:flex;flex-wrap:wrap;gap:8px;}
body.ek-page :is(.range-nav,.stations) a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-pill);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);text-decoration:none;font-size:13px;font-weight:650;}
body.ek-page .range-nav a.active{border-color:#ead28a;background:var(--ek-color-brand-soft);color:#5f4800;}

/* Archive sections and cards */
body.ek-page :is(.notes-popular,.notes-season-tags,.station-featured-notes,.station-category-links){margin:0 0 56px;padding:0;border:0;background:transparent;border-radius:0;box-shadow:none;}
body.ek-page :is(.notes-popular,.notes-season-tags,.station-featured-notes,.station-category-links)>h2,
body.ek-page .section>h2{margin:0 0 18px;color:var(--ek-color-text);font-size:clamp(22px,2.4vw,28px);line-height:1.4;font-weight:760;letter-spacing:-.015em;}
body.ek-page :is(.grid,.featured-grid){gap:14px;}
body.ek-page :is(.card,.featured-card,.popular-card){border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-md);background:var(--ek-color-surface);box-shadow:none;}
body.ek-page :is(.card,.featured-card,.popular-card):hover{border-color:var(--ek-color-border-strong);box-shadow:var(--ek-shadow-sm);transform:translateY(-1px);}
body.ek-page .card{padding:18px;}
body.ek-page :is(.title,.featured-title,.popular-title){color:var(--ek-color-text);font-weight:740;letter-spacing:-.01em;}
body.ek-page .title{font-size:19px;line-height:1.5;}
body.ek-page :is(.excerpt,.popular-excerpt){color:var(--ek-color-text-secondary);line-height:1.75;}
body.ek-page :is(.meta,.featured-meta,.popular-meta){color:var(--ek-color-text-muted);font-size:12px;font-weight:550;}
body.ek-page .chip{min-height:26px;padding:4px 9px;border:0;border-radius:var(--ek-radius-pill);background:var(--ek-color-life-bg);color:var(--ek-color-life-text);font-size:12px;font-weight:700;}
body.ek-page .popular-thumb{border-color:var(--ek-color-border);background:#f0efeb;}
body.ek-page .popular-meta span{padding:0;border:0;background:transparent;}
body.ek-page .pagination{gap:8px;margin-top:40px;}
body.ek-page .pagination :is(a,span){min-width:44px;min-height:44px;padding:8px 14px;border:1px solid var(--ek-color-border);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);}
body.ek-page .pagination span{border-color:var(--ek-color-brand);background:var(--ek-color-brand);color:#211f1b;}
body.ek-page .empty{padding:24px;border:0;border-radius:var(--ek-radius-md);background:var(--ek-color-surface-subtle);color:var(--ek-color-text-secondary);}

/* Stations */
body.ek-stations .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
body.ek-stations .card{min-height:112px;padding:16px;}
body.ek-stations .name{font-size:18px;font-weight:760;}
body.ek-stations .meta,body.ek-stations .count{color:var(--ek-color-text-muted);font-size:12px;line-height:1.55;}
body.ek-stations .card:hover{border-color:#ead28a;background:var(--ek-color-brand-subtle);}

/* Station landing */
body.ek-station .hero{position:relative;padding-left:20px;}
body.ek-station .hero::before{content:"";position:absolute;left:0;top:4px;width:4px;height:52px;border-radius:4px;background:var(--ek-color-brand);}
body.ek-station .kicker{color:var(--ek-color-text-muted);}
body.ek-station .chip{background:var(--ek-color-surface-subtle);color:var(--ek-color-text-secondary);}
body.ek-station .stats{gap:16px;margin-top:18px;}
body.ek-station .stat{padding:0;border:0;background:transparent;color:var(--ek-color-text-secondary);font-size:12px;}
body.ek-station .stat+ .stat{padding-left:16px;border-left:1px solid var(--ek-color-border);}
body.ek-station .section{margin-top:64px;}
body.ek-station .panel{padding:20px;border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-md);background:var(--ek-color-surface);}
body.ek-station .tags li{border:0;background:var(--ek-color-surface-subtle);color:var(--ek-color-text-secondary);}
body.ek-events .event-thumb{border-color:var(--ek-color-border);border-radius:var(--ek-radius-sm);background:#f0efeb;}
body.ek-area .stations{margin:24px 0 48px;}

/* Home and selected-station application */
body.ek-home .app{width:min(100%,var(--ek-content-width));max-width:var(--ek-content-width);}
body.ek-home .topbar{background:rgba(255,255,255,.96);border-color:var(--ek-color-border);box-shadow:none;}
body.ek-home .topbar-inner{padding-left:20px;padding-right:20px;}
body.ek-home #stationBtn{min-height:44px;border-color:transparent;background:var(--ek-color-brand);color:#211f1b;box-shadow:none;}
body.ek-home #stationBtn:hover{background:var(--ek-color-brand-hover);}
body.ek-home #myListBtn,body.ek-home #nearbyEventsBtn{border-color:var(--ek-color-border);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);}
body.ek-home .home-seo,body.ek-home .station-page{max-width:var(--ek-content-width);}
body.ek-home .home-note-search{margin:28px 0 40px;padding:0;border:0;background:transparent;box-shadow:none;}
body.ek-home .home-note-search h2{font-size:clamp(25px,3vw,34px);}
body.ek-home .home-note-search-input{height:54px;border-color:var(--ek-color-border-strong);background:var(--ek-color-surface);box-shadow:none;}
body.ek-home .home-note-search-input:focus{border-color:var(--ek-color-brand);box-shadow:0 0 0 3px rgba(242,185,0,.18);}
body.ek-home .home-note-search-submit{height:54px;border-color:var(--ek-color-surface-dark);background:var(--ek-color-surface-dark);box-shadow:none;}
body.ek-home .home-latest-notes{padding:0;border:0;background:transparent;box-shadow:none;}
body.ek-home .home-popular-grid{gap:14px;}
body.ek-home .home-popular-card{border-color:var(--ek-color-border);border-radius:var(--ek-radius-md);background:var(--ek-color-surface);}
body.ek-home .home-popular-thumb{border-color:var(--ek-color-border);background:#f0efeb;}
body.ek-home .home-popular-thumb img{object-fit:contain;background:#f0efeb;}
body.ek-home .home-popular-title{color:var(--ek-color-text);font-weight:740;}
body.ek-home .note-card-kicker{background:var(--ek-color-life-bg);color:var(--ek-color-life-text);}
body.ek-home .note-card-kicker--event{background:var(--ek-color-event-bg);color:var(--ek-color-event-text);}
body.ek-home .note-card-kicker--gourmet{background:var(--ek-color-food-bg);color:var(--ek-color-food-text);border:0;}
body.ek-home .note-card-kicker--shop{background:var(--ek-color-shop-bg);color:var(--ek-color-shop-text);border:0;}
body.ek-home :is(.home-media-section,.station-portal,.station-main section,.station-sidebar .side-block,.note-search-inline,.feed-tools){border-color:var(--ek-color-border);background:var(--ek-color-surface);box-shadow:none;}
body.ek-home .station-hero{border:0;background:var(--ek-color-surface);box-shadow:none;}
body.ek-home :is(.station-portal,.station-main section){margin-bottom:40px;}
body.ek-home .tab.active,body.ek-home .tab.primary{border-color:#ead28a;background:var(--ek-color-brand-soft);color:#5f4800;}

/* Forms and overlays */
body.ek-home .modal{background:rgba(32,29,24,.3);backdrop-filter:blur(3px);}
body.ek-home .modal .panel{border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-lg);background:var(--ek-color-surface);box-shadow:var(--ek-shadow-overlay);}
body.ek-home :is(input,textarea,select){border-color:var(--ek-color-border-strong);background:var(--ek-color-surface);color:var(--ek-color-text);}
body.ek-home :is(input,textarea,select):focus{border-color:var(--ek-color-brand);box-shadow:0 0 0 3px rgba(242,185,0,.18);outline:0;}
body.ek-home .panel :is(.tab.primary,.smallBtn.primary){border-color:var(--ek-color-brand);background:var(--ek-color-brand);color:#211f1b;}

/* Article reader */
body.ek-note .wrap{width:min(100%,calc(var(--ek-reading-width) + 48px));max-width:calc(var(--ek-reading-width) + 48px);padding:32px 24px 72px;}
body.ek-note>.wrap>.card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;}
body.ek-note h1{margin:24px 0 16px;color:var(--ek-color-text);font-size:clamp(30px,5vw,46px);line-height:1.36;font-weight:780;letter-spacing:-.025em;}
body.ek-note .breadcrumb{margin-bottom:20px;color:var(--ek-color-text-muted);}
body.ek-note .back{border-color:var(--ek-color-border);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);box-shadow:none;}
body.ek-note .back.primary{border-color:#ead28a;background:var(--ek-color-brand-subtle);color:#654c00;}
body.ek-note .meta{color:var(--ek-color-text-muted);}
body.ek-note .note-context{margin:18px 0;padding:0;border:0;background:transparent;}
body.ek-note .note-context-title{color:var(--ek-color-text-muted);font-size:12px;}
body.ek-note .note-context-list{gap:6px;}
body.ek-note .note-context-list li{min-height:26px;padding:3px 8px;border:0;background:var(--ek-color-surface-subtle);color:var(--ek-color-text-secondary);font-size:12px;}
body.ek-note .note-wishlist-btn{border-color:var(--ek-color-brand);border-radius:var(--ek-radius-sm);background:var(--ek-color-brand);color:#211f1b;box-shadow:none;}
body.ek-note .note-share{padding:12px 0;border:0;border-top:1px solid var(--ek-color-border);border-bottom:1px solid var(--ek-color-border);border-radius:0;background:transparent;}
body.ek-note .note-share-btn.primary{border-color:var(--ek-color-surface-dark);background:var(--ek-color-surface-dark);}
body.ek-note .article-toc{margin:32px 0 44px;padding:20px 22px;border:0;border-left:3px solid var(--ek-color-brand);border-radius:0 var(--ek-radius-sm) var(--ek-radius-sm) 0;background:var(--ek-color-surface-subtle);}
body.ek-note .article-toc a::before{background:transparent;color:var(--ek-color-text-muted);}
body.ek-note .ekirip-note-content{color:#2a2926;font-size:16.5px;line-height:1.85;}
body.ek-note .ekirip-note-content p{margin:0 0 1.4em;line-height:1.85;}
body.ek-note .ekirip-note-content{max-width:100%;overflow-wrap:anywhere;word-break:normal;}
body.ek-note .ekirip-note-content h2{margin:68px 0 24px;padding:0 0 10px;border:0;border-bottom:1px solid var(--ek-color-border);background:transparent;color:var(--ek-color-text);font-size:clamp(25px,4vw,30px);line-height:1.45;}
body.ek-note .ekirip-note-content h2::before{content:none!important;}
body.ek-note .ekirip-note-content h3{margin:44px 0 16px;color:var(--ek-color-text);font-size:clamp(20px,3vw,23px);line-height:1.5;}
body.ek-note .ekirip-note-content :is(table){width:100%;border-color:var(--ek-color-border);font-size:14px;line-height:1.55;}
body.ek-note .ekirip-note-content :is(.ekirip-table-wrap,table){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
body.ek-note .ekirip-note-content :is(th,td){padding:12px 14px;border-color:var(--ek-color-border);}
body.ek-note .ekirip-note-content th{background:var(--ek-color-surface-subtle);}
body.ek-note :is(.related-notes,.article-internal-links,.editorial-trust,.author-profile){border-color:var(--ek-color-border);background:var(--ek-color-surface-subtle);box-shadow:none;}
body.ek-note .ekirip-note-content :is(.ekirip-editor-picks,.ekirip-stay-guide,.ekirip-heat-guide,.ekirip-affiliate-guide){border-color:var(--ek-color-border);background:var(--ek-color-surface-subtle);box-shadow:none;}
body.ek-note .ekirip-note-content :is(.ekirip-stay-card,.ekirip-product-card){border-color:var(--ek-color-border);border-radius:var(--ek-radius-md);box-shadow:none;}
body.ek-note .ekirip-affiliate-link{border-color:var(--ek-color-brand)!important;background:var(--ek-color-brand)!important;color:#211f1b!important;box-shadow:none!important;}
body.ek-note .review-modal{background:rgba(32,29,24,.3);backdrop-filter:blur(3px);}
body.ek-note .review-panel{border-color:var(--ek-color-border);box-shadow:var(--ek-shadow-overlay);}

/* Legal and contact pages */
body.ek-legal :is(.legal-wrap,main){width:min(100%,860px);max-width:860px;margin:0 auto;padding:36px 20px 72px;}
body.ek-legal :is(.legal-card,main>article){padding:36px;border:1px solid var(--ek-color-border);border-radius:var(--ek-radius-md);background:var(--ek-color-surface);box-shadow:none;}
body.ek-legal :is(.legal-card,main>article) h1{color:var(--ek-color-text);font-size:clamp(28px,4vw,36px);line-height:1.4;letter-spacing:-.02em;}
body.ek-legal :is(.legal-card,main>article) h2{margin-top:40px;color:var(--ek-color-text);font-size:21px;}
body.ek-legal :is(.legal-card,main>article) :is(p,li){color:#373530;font-size:15px;line-height:1.85;}
body.ek-legal :is(.legal-lead,.legal-updated,.legal-note,.lead,.updated){color:var(--ek-color-text-muted)!important;}
body.ek-legal :is(.legal-contact){border-color:var(--ek-color-border);background:var(--ek-color-brand-subtle);}
body.ek-legal :is(.legal-nav) a{min-height:44px;border-color:var(--ek-color-border);background:var(--ek-color-surface);color:var(--ek-color-text-secondary);}

/* Footer */
.ekirip-site-footer{margin-top:48px!important;padding:0!important;border-top:1px solid var(--ek-color-border)!important;background:var(--ek-color-surface)!important;color:var(--ek-color-text-secondary)!important;}
.ekirip-site-footer__inner{width:min(100%,var(--ek-content-width));max-width:var(--ek-content-width);padding:36px 20px!important;}
.ekirip-site-footer__links{gap:12px 24px!important;}
.ekirip-site-footer a{color:var(--ek-color-text-secondary)!important;text-underline-offset:3px;}

@media(max-width:760px){
  body.ek-page .wrap{padding:20px 16px 56px;}
  body.ek-page .top{margin-bottom:36px;}
  body.ek-page .hero{margin-bottom:40px;}
  body.ek-page .hero h1,body.ek-page>*>header h1{font-size:28px;}
  body.ek-page .lead{font-size:15px;line-height:1.8;}
  body.ek-page :is(.notes-popular,.notes-season-tags,.station-featured-notes,.station-category-links){margin-bottom:44px;}
  body.ek-page .card{padding:16px;}
  body.ek-page .title{font-size:18px;line-height:1.52;}
  body.ek-page .excerpt{font-size:14px;line-height:1.72;}
  body.ek-stations .grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.ek-station .section{margin-top:48px;}
  body.ek-home .topbar-inner{padding-left:16px;padding-right:16px;}
  body.ek-home .home-seo,body.ek-home .station-page{padding-left:16px;padding-right:16px;}
  body.ek-home .home-note-search{margin:24px 0 36px;padding:0;}
  body.ek-home .home-latest-notes{padding:0;}
  body.ek-home .home-popular-grid{gap:12px;}
  body.ek-home .home-popular-card{grid-template-columns:42% minmax(0,1fr);min-height:112px;border-radius:var(--ek-radius-md);}
  body.ek-home .home-popular-thumb{align-self:center;width:100%;height:auto;min-height:0;aspect-ratio:16/9;border-right:1px solid var(--ek-color-border);border-radius:0;}
  body.ek-home .home-popular-thumb img{object-fit:contain;background:#f0efeb;}
  body.ek-home .home-popular-body{padding:10px 12px;}
  body.ek-home .home-popular-title{font-size:17px;line-height:1.45;-webkit-line-clamp:3;}
  body.ek-home .note-card-meta-row{font-size:11px;}
  body.ek-note .wrap{padding:22px 18px 56px;}
  body.ek-note h1{font-size:30px;line-height:1.4;}
  body.ek-note .topline{align-items:flex-start;}
  body.ek-note .article-toc ul{grid-template-columns:1fr;}
  body.ek-note .ekirip-note-content{font-size:16px;}
  body.ek-note .ekirip-note-content h2{margin-top:56px;font-size:25px;}
  body.ek-note .related-notes{padding:18px 0;border-left:0;border-right:0;border-radius:0;background:transparent;}
  body.ek-legal :is(.legal-wrap,main){padding:20px 16px 56px;}
  body.ek-legal :is(.legal-card,main>article){padding:24px 18px;}
  .ekirip-site-footer__links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));text-align:left!important;}
}
@media(max-width:380px){
  body.ek-page .wrap{padding-left:14px;padding-right:14px;}
  body.ek-stations .grid{grid-template-columns:1fr;}
  body.ek-home .home-seo,body.ek-home .station-page{padding-left:14px;padding-right:14px;}
  body.ek-home .home-popular-card{grid-template-columns:40% minmax(0,1fr);}
  body.ek-home .home-popular-title{font-size:16px;}
  body.ek-note .wrap{padding-left:16px;padding-right:16px;}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}}
