/*
 * App-style real estate discovery experience.
 * Keeps the existing Kagawa Land Portal color palette and 430px mobile frame.
 * No gradients are used.
 */

:root{
  --app-frame:430px;
  --app-bg:#f6f8f6;
  --app-sheet:#ffffff;
  --app-ink:#17251b;
  --app-muted:#657268;
  --app-line:#dfe6e0;
  --app-green:#008601;
  --app-green-dark:#006b01;
  --app-orange:#FF8C00;
  --app-soft:#edf6ed;
  --app-shadow:0 8px 26px rgba(38,60,42,.10);
  --app-radius:22px;
}

html{background:#e4ebe6}
body{background:#e4ebe6;color:var(--app-ink)}
.site-header,.site-main,.site-footer,.mobile-bottom-nav{width:min(100%,var(--app-frame));margin-inline:auto}
.site-main{background:var(--app-bg);padding-bottom:86px;overflow:hidden}
.site-shell{width:calc(100% - 24px);max-width:none}
.button{border-radius:14px}
.button--primary{background:var(--app-green);color:#fff}
.button--primary:hover{background:var(--app-green-dark)}
.button--accent{background:var(--app-green);color:#fff}
.button--accent:hover{background:var(--app-green-dark)}
.button--outline{border-color:var(--app-green);color:var(--app-green);background:#fff}

/* App screens manage their own top bars. Keep menu DOM available for bottom-nav menu. */
.site-header--app-screen{height:0;min-height:0;overflow:visible;background:transparent;border:0;box-shadow:none}
.site-header--app-screen .site-header__inner{display:none}
.site-header--app-screen .primary-nav.is-open{display:block;position:fixed;z-index:140;left:50%;right:auto;top:0;bottom:74px;width:min(100%,var(--app-frame));transform:translateX(-50%);padding:72px 24px 24px;background:#fff;overflow:auto;box-shadow:var(--app-shadow)}
.site-header--app-screen .primary-nav.is-open::before{content:"メニュー";position:absolute;left:24px;top:24px;font-size:1.4rem;font-weight:900;color:var(--app-ink)}
.site-header--app-screen .primary-nav.is-open ul{margin:0;padding:0;list-style:none}
.site-header--app-screen .primary-nav.is-open li{border-bottom:1px solid var(--app-line)}
.site-header--app-screen .primary-nav.is-open a{display:block;padding:16px 0;color:var(--app-ink);font-weight:800}

/* Home discovery */
.app-discovery{background:var(--app-bg)}
.app-discovery .hero__service-bar{height:32px;background:var(--app-green);color:#fff}
.app-discovery .hero__service-bar .site-shell{width:calc(100% - 16px)}
.app-discovery .hero__service-bar p{margin:0;line-height:32px;font-size:.74rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-discovery__visual{position:relative;height:160px;background:#dce8dc;overflow:hidden}
.app-discovery__image,.app-discovery__visual>img,.app-discovery__map{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.app-discovery__visual::after{content:"";position:absolute;inset:0;background:rgba(14,38,20,.12);pointer-events:none}
.app-search-pill{position:absolute;z-index:4;left:12px;right:12px;top:14px;height:54px;display:grid;grid-template-columns:28px 1fr 44px;align-items:center;gap:8px;padding:0 6px 0 16px;background:#fff;border:1px solid rgba(38,60,42,.12);border-radius:999px;box-shadow:0 7px 20px rgba(38,60,42,.16)}
.app-search-pill>svg{width:24px;height:24px;color:#3d4b41}
.app-search-pill input{min-width:0;width:100%;height:100%;border:0;outline:0;background:transparent;color:var(--app-ink);font-size:.98rem}
.app-search-pill input::placeholder{color:#768179}
.app-search-pill__filter{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:#f1f4f1;color:var(--app-ink)}
.app-search-pill__filter svg{width:22px;height:22px}
.app-search-pill__filter span{position:absolute;right:-1px;top:-3px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--app-green);color:#fff;font-size:.64rem;font-weight:900}
.app-map-action{position:absolute;z-index:4;right:12px;bottom:12px;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 12px;border-radius:999px;background:#fff;color:var(--app-green);font-size:.78rem;font-weight:900;box-shadow:0 4px 14px rgba(38,60,42,.14)}
.app-map-action:hover{text-decoration:none}

.app-sheet{position:relative;background:var(--app-sheet);border-radius:26px 26px 0 0}
.app-sheet__handle{width:42px;height:5px;margin:10px auto 8px;border-radius:999px;background:#d8ddd9}
.app-sheet--home{margin-top:-10px;padding:0 12px 18px;z-index:5}
.app-home-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 0 12px}
.app-home-heading h1{margin:0;font-size:1.48rem;line-height:1.25;letter-spacing:-.02em}
.app-kicker{margin:0 0 3px;color:var(--app-green);font-size:.7rem;font-weight:900;letter-spacing:.08em}
.app-outline-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 13px;border:1.5px solid var(--app-green);border-radius:12px;background:#fff;color:var(--app-green);font-size:.8rem;font-weight:900}
.app-outline-action:hover{text-decoration:none}
.app-filter-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}
.app-filter-row::-webkit-scrollbar{display:none}
.app-filter-row a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid var(--app-line);border-radius:999px;background:#fff;color:var(--app-ink);font-size:.82rem;font-weight:800}
.app-filter-row a:hover{text-decoration:none;border-color:var(--app-green)}
.app-feed-section{padding:16px 0;border-top:1px solid var(--app-line)}
.app-feed-section:first-of-type{border-top:0}
.app-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.app-section-head h2{margin:0;font-size:1.23rem;line-height:1.3}
.app-section-head>a{font-size:.79rem;font-weight:800}

/* Large image-first property feed */
.property-feed{display:grid;gap:16px}
.app-property-card{overflow:hidden;border:1px solid var(--app-line);border-radius:18px;background:#fff;box-shadow:0 3px 14px rgba(38,60,42,.06)}
.app-property-card__media-wrap{position:relative}
.app-property-card__media{position:relative;display:block;width:100%;aspect-ratio:16/10;background:#e5ebe5;overflow:hidden}
.app-property-card__media img{width:100%;height:100%;object-fit:cover}
.app-property-card__status{position:absolute;left:10px;top:10px;padding:5px 8px;border-radius:6px;background:var(--app-green);color:#fff;font-size:.68rem;font-weight:900;line-height:1}
.app-icon-circle{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(38,60,42,.12);border-radius:999px;background:#fff;color:var(--app-ink);box-shadow:0 3px 10px rgba(38,60,42,.12)}
.app-icon-circle svg{width:23px;height:23px}
.app-property-card .app-favorite-button{position:absolute;right:10px;top:10px;z-index:2}
.app-favorite-button.is-favorite{color:var(--app-green)}
.app-favorite-button.is-favorite svg path{fill:currentColor}
.app-property-card__body{display:block;padding:13px 14px 14px;color:var(--app-ink)}
.app-property-card__body:hover{text-decoration:none}
.app-property-card__price-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.app-property-card__price{font-size:1.34rem;line-height:1.2}
.app-property-card__area{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:var(--app-soft);color:var(--app-green);font-size:.68rem;font-weight:900}
.app-property-card__facts{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;color:#334039;font-size:.78rem;font-weight:700}
.app-property-card__facts span+span::before{content:"•";margin-right:10px;color:#89938c}
.app-property-card__title{margin:8px 0 2px;font-size:.98rem;line-height:1.4}
.app-property-card__address,.app-property-card__company{margin:3px 0 0;color:var(--app-muted);font-size:.73rem;line-height:1.5}
.app-property-card__company{font-size:.68rem}

.app-area-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.app-area-list a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 12px;border:1px solid var(--app-line);border-radius:12px;background:#fff;color:var(--app-ink);font-size:.84rem;font-weight:800}
.app-area-list a:first-child{grid-column:1/-1;border-color:#b8d4bc;background:var(--app-soft);color:var(--app-green)}
.app-area-list a:hover{text-decoration:none}
.app-area-list span{color:var(--app-green);font-size:1.2rem}
.app-tool-grid{display:grid;gap:10px}
.app-tool-grid a{display:flex;flex-direction:column;gap:3px;padding:14px;border:1px solid var(--app-line);border-radius:14px;background:#fff;color:var(--app-ink)}
.app-tool-grid a:hover{text-decoration:none;border-color:#b8d4bc}
.app-tool-grid strong{font-size:.92rem}
.app-tool-grid span{color:var(--app-muted);font-size:.74rem}

/* Results / map screen */
.app-results-screen{min-height:100dvh;background:#fff}
.app-results-topbar{position:relative;z-index:20;padding:10px 12px 8px;background:#fff;border-bottom:1px solid var(--app-line)}
.app-search-pill--results{position:relative;left:auto;right:auto;top:auto;height:50px;grid-template-columns:25px 1fr 42px;box-shadow:none;border-color:var(--app-line);padding-left:13px}
.app-view-switch{display:grid;grid-template-columns:1fr 1fr;width:146px;margin:8px 0 0 auto;padding:3px;border-radius:999px;background:#eef2ef}
.app-view-switch a{display:flex;align-items:center;justify-content:center;min-height:34px;border-radius:999px;color:var(--app-muted);font-size:.75rem;font-weight:900}
.app-view-switch a:hover{text-decoration:none}
.app-view-switch a.is-active{background:#fff;color:var(--app-green);box-shadow:0 2px 7px rgba(38,60,42,.10)}
.app-results-map{position:relative;height:310px;background:#dfe7df}
.app-results-map iframe{width:100%;height:100%;border:0}
.app-map-filter-fab{position:absolute;right:12px;bottom:14px;display:grid;place-items:center;width:48px;height:48px;border-radius:999px;background:#fff;color:var(--app-green);box-shadow:var(--app-shadow)}
.app-map-filter-fab svg{width:23px;height:23px}
.app-results-sheet{z-index:5;margin-top:-14px;padding:0 12px 24px;box-shadow:0 -4px 16px rgba(38,60,42,.05)}
.app-results-screen--list .app-results-sheet{margin-top:0;border-radius:0}
.app-results-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0 12px}
.app-results-summary h1{margin:0;font-size:1.18rem;line-height:1.3}
.app-results-summary p{margin:3px 0 0;color:var(--app-muted);font-size:.8rem}
.app-save-search{flex:0 0 auto;min-height:42px;padding:8px 12px;font-size:.78rem}
.app-save-search.is-saved{background:var(--app-green-dark)}
.app-results-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.app-sort,.per-page{display:flex;align-items:center;gap:5px;color:var(--app-muted);font-size:.7rem}
.app-sort select,.per-page select{height:36px;border:1px solid var(--app-line);border-radius:9px;background:#fff;color:var(--app-ink);padding:4px 7px;font-size:.74rem}
.pagination .nav-links{margin-bottom:12px}

/* Full-screen filter form */
.app-filter-screen{min-height:100dvh;background:#fff;padding-bottom:80px}
.app-filter-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:44px 1fr 58px;align-items:center;gap:8px;min-height:66px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--app-line)}
.app-filter-header h1{margin:0;text-align:center;font-size:1.05rem}
.app-filter-reset{justify-self:end;color:var(--app-green);font-size:.78rem;font-weight:900}
.app-filter-form{padding:0 16px}
.app-filter-section{padding:22px 0;border-bottom:1px solid var(--app-line)}
.app-filter-section h2{margin:0;font-size:1.18rem}
.app-filter-section__lead{margin:5px 0 12px;color:var(--app-muted);font-size:.76rem}
.app-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.app-check-card{position:relative;display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border:1px solid var(--app-line);border-radius:12px;background:#fff;color:var(--app-ink);font-size:.8rem;font-weight:800}
.app-check-card input{width:18px;height:18px;accent-color:var(--app-green)}
.app-check-card:has(input:checked){border-color:#9fc7a5;background:var(--app-soft);color:var(--app-green)}
.app-range-row{display:grid;grid-template-columns:1fr 20px 1fr;align-items:end;gap:6px;margin-top:12px}
.app-range-row>span{padding-bottom:12px;text-align:center;color:var(--app-muted)}
.app-range-row label,.app-filter-stack label{display:flex;flex-direction:column;gap:6px;color:var(--app-muted);font-size:.72rem;font-weight:800}
.app-range-row select,.app-filter-stack select,.app-filter-stack input,.app-filter-inline-field select{width:100%;height:46px;border:1px solid #ccd6cd;border-radius:11px;background:#fff;color:var(--app-ink);padding:8px 10px;font:inherit}
.app-filter-stack{display:grid;gap:10px;margin-top:12px}
.app-filter-inline-field{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:10px;margin-top:12px}
.app-filter-inline-field label{font-size:.8rem;font-weight:800}
.app-filter-submit-wrap{position:sticky;bottom:68px;z-index:22;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--app-line)}
.app-filter-submit{min-height:54px}

/* Property detail */
.app-property-detail{background:#fff;padding-bottom:86px}
.app-detail-gallery{position:relative;background:#dfe6e0}
.app-detail-gallery__item{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;border-bottom:4px solid #fff}
.app-detail-gallery__item:not(.is-primary){display:none}
.app-detail-gallery__item img{width:100%;height:100%;object-fit:cover}
.app-detail-top-controls{position:absolute;z-index:10;left:12px;right:12px;top:12px;display:flex;align-items:center;justify-content:space-between}
.app-detail-top-controls__right{display:flex;gap:8px}
.app-detail-status{position:absolute;left:12px;bottom:12px;padding:6px 9px;background:#fff;color:var(--app-ink);font-size:.72rem;font-weight:900}
.app-detail-sheet{margin-top:-16px;z-index:12;padding:0 18px 20px;box-shadow:0 -4px 18px rgba(38,60,42,.06)}
.app-detail-price-map-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.app-detail-price{margin:0;font-size:2rem;line-height:1.05;letter-spacing:-.03em}
.app-mini-map{display:grid;place-items:center;width:76px;height:62px;border:1px solid var(--app-line);border-radius:12px;background:#edf2ef;color:var(--app-green);box-shadow:0 3px 10px rgba(38,60,42,.08)}
.app-mini-map svg{width:30px;height:30px}
.app-detail-facts{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:13px;font-size:.82rem;color:var(--app-ink)}
.app-detail-facts span{white-space:nowrap}
.app-detail-facts strong{font-size:1rem}
.app-detail-title{margin:14px 0 3px;font-size:1.2rem;line-height:1.4}
.app-detail-address{margin:0;color:var(--app-ink);font-size:.92rem;line-height:1.5}
.app-detail-property-name{margin:5px 0 0;color:var(--app-muted);font-size:.72rem}
.app-detail-section{padding:22px 0;border-top:1px solid var(--app-line)}
.app-detail-section:first-of-type{margin-top:20px}
.app-detail-section h2{margin:0 0 12px;font-size:1.14rem}
.app-detail-section .entry-content{font-size:.9rem}
.app-detail-list{margin:0}
.app-detail-list>div{display:grid;grid-template-columns:36% 1fr;gap:12px;padding:11px 0;border-top:1px solid #edf0ed}
.app-detail-list>div:first-child{border-top:0}
.app-detail-list dt{color:var(--app-muted);font-size:.74rem;font-weight:800}
.app-detail-list dd{margin:0;font-size:.82rem;line-height:1.55;word-break:break-word}
.app-detail-list--legal>div{grid-template-columns:42% 1fr}
.map-frame{width:100%;aspect-ratio:4/3;border:0;border-radius:14px;background:#edf2ef;margin-bottom:10px}
.app-detail-contact-card{padding:18px;border:1px solid var(--app-line);border-radius:16px;background:#f8faf8}
.app-detail-contact-card p{color:var(--app-muted);font-size:.82rem}
.app-detail-contact-card .button+.button{margin-top:8px}
.app-detail-sticky-cta{position:fixed;z-index:80;left:50%;bottom:68px;width:min(100%,var(--app-frame));transform:translateX(-50%);padding:10px 12px;background:#fff;border-top:1px solid var(--app-line)}
.app-detail-sticky-cta .button{min-height:52px}

/* Bottom app nav */
.mobile-bottom-nav--app{grid-template-columns:repeat(5,1fr);height:auto;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--app-line);box-shadow:0 -5px 16px rgba(38,60,42,.07)}
.mobile-bottom-nav--app a,.mobile-bottom-nav--app button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:51px;padding:0;border:0;background:transparent;color:#68736b;font:inherit;font-size:.6rem;font-weight:800}
.mobile-bottom-nav--app a:hover{text-decoration:none}
.mobile-bottom-nav--app svg{width:22px;height:22px;color:currentColor}
.mobile-bottom-nav--app .is-active{color:var(--app-green)}

/* Favorites bottom sheet */
.app-drawer[hidden]{display:none!important}
.app-drawer{position:fixed;z-index:160;inset:0;display:flex;align-items:flex-end;justify-content:center}
.app-drawer__backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(18,30,21,.42)}
.app-drawer__panel{position:relative;z-index:2;width:min(100%,var(--app-frame));max-height:78dvh;padding:0 14px 24px;border-radius:24px 24px 0 0;background:#fff;overflow:auto;box-shadow:0 -10px 30px rgba(38,60,42,.16)}
.app-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 12px}
.app-drawer__header h2{margin:0;font-size:1.25rem}
.app-favorites-list{display:grid;gap:10px}
.app-favorite-item{display:grid;grid-template-columns:96px 1fr;gap:12px;min-height:76px;padding:8px;border:1px solid var(--app-line);border-radius:14px;color:var(--app-ink)}
.app-favorite-item:hover{text-decoration:none}
.app-favorite-item__image{width:96px;height:70px;border-radius:10px;background:#e7ece7;overflow:hidden}
.app-favorite-item__image img{width:100%;height:100%;object-fit:cover}
.app-favorite-item__body{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0}
.app-favorite-item__body strong{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-favorite-item__body span{color:var(--app-green);font-size:.82rem;font-weight:900}
.app-favorites-empty{padding:30px 12px;text-align:center;color:var(--app-muted);font-size:.82rem}
body.app-drawer-open{overflow:hidden}

/* Toast */
.app-toast{position:fixed;z-index:220;left:50%;bottom:138px;transform:translateX(-50%);max-width:calc(min(100%,var(--app-frame)) - 32px);padding:9px 14px;border-radius:999px;background:#1d2d21;color:#fff;font-size:.75rem;font-weight:800;box-shadow:0 5px 18px rgba(0,0,0,.18);text-align:center}
.app-toast[hidden]{display:none}

/* Inquiry dialog becomes an app-like action sheet. */
.inquiry-dialog{width:min(100%,var(--app-frame));max-height:92dvh;margin:auto 0 0;border-radius:24px 24px 0 0}
.inquiry-dialog__inner{padding:14px 16px 24px;max-height:92dvh}
.inquiry-dialog__head{position:sticky;top:0;z-index:2;background:#fff;padding:4px 0 10px}
.inquiry-dialog__head h2{font-size:1.2rem}
.wpcf7-submit{background:var(--app-green)}

/* Keep the desktop version intentionally as a centered mobile product frame. */
@media (min-width:481px){
  .site-header,.site-main,.site-footer,.mobile-bottom-nav--app{box-shadow:0 10px 34px rgba(38,60,42,.10)}
}

@media (min-width:720px){
  .site-main{padding-bottom:86px}
  .mobile-bottom-nav--app{display:grid}
  .property-feed{grid-template-columns:1fr}
  .app-check-grid{grid-template-columns:1fr 1fr}
  .app-detail-gallery__item:not(.is-primary){display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* App-screen header/menu corrections and screen-specific chrome. */
.site-header--app-screen .site-header__inner{display:flex;height:0;min-height:0;padding:0}
.site-header--app-screen .site-brand,
.site-header--app-screen .header-actions{display:none}
.site-header--app-screen .primary-nav{display:none}
.site-header--app-screen .primary-nav.is-open{display:block}

.post-type-archive-bukken .site-footer,
.single-bukken .site-footer,
.page-template-page-search .site-footer,
.home .site-footer{display:none}

.single-bukken .mobile-bottom-nav--app,
.page-template-page-search .mobile-bottom-nav--app{display:none}
.single-bukken .app-detail-sticky-cta{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.page-template-page-search .app-filter-submit-wrap{bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.single-bukken .site-main,
.page-template-page-search .site-main{padding-bottom:0}

/* v2.0.1 home refinements */
.app-search-pill--home-sheet{
  position:relative;
  left:auto;
  right:auto;
  top:auto;
  width:100%;
  height:52px;
  margin:2px 0 14px;
  box-shadow:0 4px 14px rgba(38,60,42,.10);
}

.app-sheet--home .app-home-heading{
  padding-top:0;
}

.app-home-links{
  display:grid;
  gap:10px;
}

.app-home-link-button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:54px;
  padding:12px 16px;
  border:1.5px solid var(--app-green);
  border-radius:14px;
  background:#fff;
  color:var(--app-green);
  font-size:.92rem;
  font-weight:900;
  line-height:1.3;
}

.app-home-link-button:hover{
  text-decoration:none;
  background:var(--app-soft);
}

.app-home-link-button span:last-child{
  flex:0 0 auto;
  font-size:1.3rem;
  line-height:1;
}

/* v2.0.2: linked hero carousel + compact three-up column carousel */
.app-hero-slider{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.app-hero-slider__track{
  display:flex;
  width:100%;
  height:100%;
  transform:translate3d(0,0,0);
  transition:transform .45s ease;
  will-change:transform;
}

.app-hero-slider__slide{
  position:relative;
  flex:0 0 100%;
  width:100%;
  height:160px;
  overflow:hidden;
}

.app-hero-slider__link{
  display:block;
  width:100%;
  height:100%;
}

.app-hero-slider .app-discovery__image{
  position:static;
  inset:auto;
  display:block;
  width:100%;
  height:160px;
  object-fit:cover;
}

.app-hero-slider__dots{
  position:absolute;
  z-index:6;
  left:12px;
  bottom:12px;
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
}

.app-hero-slider__dots span{
  display:block;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#aeb8b0;
}

.app-hero-slider__dots span.is-active{
  width:16px;
  background:var(--app-green);
}

.app-column-section{
  overflow:hidden;
}

.app-column-slider{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 16px) / 3);
  gap:8px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 0 4px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.app-column-slider::-webkit-scrollbar{
  display:none;
}

.app-column-card{
  min-width:0;
  scroll-snap-align:start;
}

.app-column-card a{
  display:block;
  color:var(--app-ink);
}

.app-column-card a:hover{
  text-decoration:none;
}

.app-column-card__thumb{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  border:1px solid var(--app-line);
  border-radius:12px;
  background:var(--app-soft);
}

.app-column-card__thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.app-column-card__thumb span{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:6px;
  color:var(--app-green);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.04em;
  text-align:center;
}

.app-column-card h3{
  display:-webkit-box;
  margin:6px 1px 0;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  color:var(--app-ink);
  font-size:.68rem;
  font-weight:800;
  line-height:1.4;
}

.app-column-empty{
  grid-column:1/-1;
  margin:0;
  color:var(--app-muted);
  font-size:.78rem;
}

@media (prefers-reduced-motion:reduce){
  .app-hero-slider__track{transition:none}
  .app-column-slider{scroll-behavior:auto}
}
