/*
 * Five reference-locked portal homepages.
 * This sheet deliberately replaces the former shared home layout while
 * keeping article and fixed-page typography from main.css intact.
 */
:root{--portal-ink:#202529;--portal-muted:#687078;--portal-line:#dde1e5;--portal-paper:#fff}
body{overflow-x:hidden}
.portal-header,.portal-home,.portal-header *,.portal-home *{box-sizing:border-box}
.portal-header a,.portal-home a{text-decoration:none}
.portal-header__wide{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.portal-header{position:relative;z-index:50;background:#fff;color:#222;border-bottom:1px solid #ddd;font-family:"Futura","Avenir Next","Century Gothic","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
.portal-header__utility{font-size:12px;border-bottom:1px solid #eee}
.portal-header__utility .portal-header__wide{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.portal-header__utility nav{display:flex;gap:20px}
.portal-header__utility a{color:inherit}
.portal-header__main{min-height:80px;display:flex;align-items:center;gap:26px}
.portal-header__brand{flex:0 0 auto;display:flex;align-items:center;gap:16px}
.portal-header__brand>p{margin:0;padding-left:16px;border-left:1px solid #ddd;font-size:12px;line-height:1.5}
.portal-logo{display:flex;align-items:center;gap:10px;color:inherit}
.portal-logo__mark{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:23px;font-weight:900}
.portal-logo__copy{display:flex;flex-direction:column;gap:2px;white-space:nowrap}
.portal-logo__copy strong{font-size:20px;line-height:1.1;letter-spacing:.02em}
.portal-logo__copy small{font-size:9px;letter-spacing:.15em;color:#70757a}
.portal-header__search{height:42px;display:flex;min-width:260px;flex:1;max-width:450px;margin-left:auto;border:1px solid #ccd0d4;border-radius:3px;overflow:hidden;background:#fff}
.portal-header__search input{border:0;min-width:0;flex:1;padding:0 14px;background:transparent;font:inherit;font-size:13px;outline:0}
.portal-header__search button{border:0;padding:0 20px;background:#363b40;color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.portal-header__actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.portal-header__primary,.portal-header__secondary{min-height:42px;padding:0 18px;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:13px;font-weight:800}
.portal-header__secondary{border:1px solid #ccd0d4;color:#333;background:#fff}
.portal-header__phone{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}
.portal-header__phone small{font-size:10px;color:#777}.portal-header__phone b{font-size:15px}
.portal-header__nav{border-top:1px solid #eee;background:#fff}
.portal-header__nav .portal-header__wide{min-height:45px;display:flex;align-items:stretch}
.portal-header__nav .menu{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;flex:1}
.portal-header__nav .menu li{display:flex;flex:1}
.portal-header__nav .menu a,.portal-header__all{display:flex;align-items:center;justify-content:center;padding:0 16px;color:#333;border-left:1px solid #eee;font-size:13px;font-weight:700;white-space:nowrap}
.portal-header__nav .menu li:last-child a,.portal-header__all{border-right:1px solid #eee}
.portal-header__all{margin-left:auto}
.portal-header .menu-button{display:none}
.portal-header .mobile-menu{position:absolute;left:0;right:0;top:100%;background:#fff;padding:22px 20px;border-top:1px solid #ddd;box-shadow:0 12px 24px rgba(0,0,0,.14)}
.portal-header .mobile-menu[hidden]{display:none}
.portal-header .mobile-menu__inner{width:min(100%,600px);margin:auto}
.portal-header .mobile-menu ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr}
.portal-header .mobile-menu li a{display:block;padding:12px;border-bottom:1px solid #e7e7e7;color:#222}
.portal-header .mobile-menu .search-form{display:flex;margin-top:16px}
.portal-header .mobile-menu .search-field{min-width:0;flex:1;padding:12px;border:1px solid #ccc}
.portal-header .mobile-menu .search-submit{border:0;background:#333;color:#fff;padding:0 18px}
.portal-header .mobile-menu-cta{display:block;text-align:center;margin-top:14px;padding:14px;color:#fff;background:#333;font-weight:800}

.portal-home{font-family:"Futura","Avenir Next","Century Gothic","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--portal-ink);background:#fff}
.portal-home .wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}
.portal-home img{max-width:100%;height:auto}
.portal-home section{overflow:visible}
.portal-home .home-card-grid{display:grid;gap:24px}
.portal-home .content-card{margin:0;background:#fff;min-width:0}
.portal-home .content-card>a{height:100%;display:block;color:inherit}
.portal-home .card-image{position:relative;overflow:hidden;background:#eee;aspect-ratio:16/10}
.portal-home .card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.portal-home .content-card:hover .card-image img{transform:scale(1.035)}
.portal-home .card-image>span{position:absolute;left:10px;bottom:10px;padding:4px 8px;background:#fff;color:#222;font-size:11px;font-weight:800}
.portal-home .card-copy{padding:16px 0}.portal-home .card-copy h2{margin:0;font-size:16px;line-height:1.65}.portal-home .card-copy p{margin:9px 0 0;color:#656b70;font-size:13px;line-height:1.75}.portal-home .card-copy time{display:block;margin-top:10px;color:#92979b;font-size:10px}
.portal-home .topic-card__visual svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.6}
.portal-home .topic-card__number{font-variant-numeric:tabular-nums}
.portal-home .all-listing-strip__inner{display:flex;align-items:center;gap:32px;color:inherit}
.portal-home .all-listing-strip__inner h2{margin:5px 0;font-size:24px}.portal-home .all-listing-strip__inner p{margin:0}
.portal-home .all-listing-strip__count{margin-left:auto!important;display:flex;align-items:baseline;gap:5px}.portal-home .all-listing-strip__count strong{font-size:48px}.portal-home .all-listing-strip__arrow{font-size:28px}

/* Municipality map: actual MLIT boundary geometry with four working links. */
.portal-home .owari-map{width:100%}
.portal-home .owari-map__head span{display:block;margin-bottom:7px;font-size:11px;font-weight:900;letter-spacing:.16em}
.portal-home .owari-map__head h2{margin:0;font-size:28px;line-height:1.45}.portal-home .owari-map__head p{margin:8px 0 0;font-size:13px;color:#62696f;line-height:1.7}
.portal-home .owari-map__layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);align-items:center;gap:28px;margin-top:20px}
.portal-home .owari-map__canvas{position:relative;min-width:0}.portal-home .owari-map__canvas svg{display:block;width:100%;height:auto;max-height:500px;overflow:visible}
.portal-home .owari-map__context path{fill:#eef0f2;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}
.portal-home .owari-map__focus path{stroke:#fff;stroke-width:4;vector-effect:non-scaling-stroke;transition:filter .2s,transform .2s;transform-box:fill-box;transform-origin:center}
.portal-home .owari-map__region:focus path,.portal-home .owari-map__region:hover path{filter:brightness(.91);transform:translateY(-2px)}
.portal-home .owari-map__label{pointer-events:none}.portal-home .owari-map__label circle{fill:#fff;stroke:rgba(0,0,0,.15);stroke-width:1.5}.portal-home .owari-map__label text{font-size:14px;font-weight:900;fill:#222}
.portal-home .owari-map__source{margin:6px 0 0;font-size:9px;color:#92979b;text-align:right}
.portal-home .owari-map__cities{display:flex;flex-direction:column;border-top:1px solid #d8dde1}
.portal-home .city-guide-card{display:grid;grid-template-columns:34px 1fr auto 26px;align-items:center;gap:7px;padding:16px 6px;color:#24292d;border-bottom:1px solid #d8dde1}
.portal-home .city-guide-card__number{font-size:10px;color:#999}.portal-home .city-guide-card__city{font-size:19px;font-weight:900}.portal-home .city-guide-card strong{font-size:11px}.portal-home .city-guide-card__arrow{font-size:18px;text-align:right}

/* Wedding Park-like: map first, pale pink controls, editorial white space. */
.portal-header--wedding .portal-logo__mark{background:#f5dce5;color:#a63f62;font-family:Georgia,serif;font-style:italic}
.portal-header--wedding .portal-header__primary{background:#b94169;color:#fff}.portal-header--wedding .portal-header__nav a:hover{background:#fff3f7;color:#a33157}
.portal-home--wedding{background:#fff}
.wedding-search-hero{padding:34px 0 38px;background:#fafafa;border-bottom:1px solid #e7e7e7}
.wedding-search-hero__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);gap:28px;align-items:start}
.wedding-area-panel>.owari-map{background:#fff;border:1px solid #dedede;padding:24px}
.wedding-area-panel .owari-map__layout{grid-template-columns:minmax(0,1.25fr) 220px}
.wedding-area-panel .owari-map__region path{fill:#e57a9c}.wedding-area-panel .owari-map__region--inazawa path{fill:#c85279}.wedding-area-panel .owari-map__region--konan path{fill:#efa3ba}.wedding-area-panel .owari-map__region--komaki path{fill:#b9446a}
.wedding-area-panel .city-guide-card:hover{background:#fff3f7;color:#a33157}
.wedding-promo-column{display:flex;flex-direction:column;gap:14px}
.portal-keyword-search{padding:16px;background:#fff;border:1px solid #dedede}.portal-keyword-search label{display:block;margin-bottom:9px;font-size:13px;font-weight:800}.portal-keyword-search>div{height:42px;display:flex;border:1px solid #cfd2d5}.portal-keyword-search input{min-width:0;flex:1;border:0;padding:0 11px;font:inherit}.portal-keyword-search button{border:0;padding:0 18px;background:#555;color:#fff;font-weight:800}
.wedding-promo{position:relative;display:block;overflow:hidden;color:#fff;background:#333}
.wedding-promo--large{height:210px}.wedding-promo--large:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(47,25,33,.75),rgba(47,25,33,.1))}.wedding-promo--large img{width:100%;height:100%;object-fit:cover}.wedding-promo span,.wedding-promo strong{position:absolute;z-index:1;left:22px}.wedding-promo span{top:28px;font-size:11px;letter-spacing:.14em}.wedding-promo strong{top:55px;font-size:22px;line-height:1.5}.wedding-promo--small{min-height:116px;padding:28px 24px;background:linear-gradient(135deg,#d45d84,#97314f)}.wedding-promo--small span,.wedding-promo--small strong{position:static;display:block}.wedding-promo--small strong{margin-top:4px;font-family:Georgia,"Yu Mincho",serif;font-size:20px}
.portal-notices{padding-block:23px}.portal-notices a{display:grid;grid-template-columns:100px 1fr 22px;gap:18px;padding:13px 0;border-bottom:1px solid #e6e6e6;color:#333;font-size:13px}.portal-notices time{color:#a74465;font-weight:800}.portal-notices span{text-align:right}
.wedding-review-section{padding-block:54px 70px}.portal-section-title{position:relative;margin-bottom:27px}.portal-section-title>span{color:#b54167;font-size:10px;font-weight:900;letter-spacing:.18em}.portal-section-title h2{margin:7px 0 0;font-family:Georgia,"Yu Mincho",serif;font-size:30px;font-weight:500}.portal-section-title>a{position:absolute;right:0;bottom:2px;color:#a43a5f;font-size:12px}.wedding-card-grid{grid-template-columns:repeat(3,1fr)}.wedding-card-grid .content-card{border-bottom:1px solid #d9d9d9}
.wedding-condition-section{padding:64px 0;background:#f8f1f3}.wedding-condition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e7d7dc;border:1px solid #e7d7dc}.wedding-condition-grid .topic-card{min-height:150px;display:grid;grid-template-columns:42px 1fr 20px;gap:12px;align-items:center;padding:24px;background:#fff;color:#333}.wedding-condition-grid .topic-card__number{align-self:start;color:#bd6682}.wedding-condition-grid .topic-card__visual{display:none}.wedding-condition-grid h3{margin:0;font-family:Georgia,"Yu Mincho",serif;font-size:20px}.wedding-condition-grid p{margin:8px 0 0;font-size:12px;line-height:1.7;color:#777}
.portal-home--wedding .all-listing-strip{padding:35px 0;background:#54293a;color:#fff}.portal-home--wedding .service-cta{padding:70px 20px}.portal-home--wedding .policy-detail{padding:70px 0;background:#f7f5f4;text-align:center}.portal-home--wedding .policy-detail span{font-size:10px;letter-spacing:.18em;color:#a43a5f}.portal-home--wedding .policy-detail h2{font-family:Georgia,"Yu Mincho",serif;font-size:34px;font-weight:400}.portal-home--wedding .policy-detail p{max-width:680px;margin:auto;line-height:2}

/* Iko-yo-like: utility menu, red category band, busy family portal. */
.portal-header--odekake .portal-header__utility{background:#f6f6f6;color:#666}.portal-header--odekake .portal-logo__mark{border-radius:12px;background:#f24b36;color:#fff}.portal-header--odekake .portal-logo__copy strong{color:#df3b29}.portal-header--odekake .portal-header__search{max-width:520px;border:2px solid #f05a42}.portal-header--odekake .portal-header__search button{background:#f05a42}.portal-header--odekake .portal-header__primary{background:#ff8c25;color:#fff}.portal-header--odekake .portal-header__nav{background:#e94734;border:0}.portal-header--odekake .portal-header__nav a{color:#fff;border-color:rgba(255,255,255,.2)}
.portal-home--odekake{background:#f7f7f7}.odekake-dashboard{display:grid;grid-template-columns:218px 1fr;gap:16px;padding-block:18px}.odekake-service-menu{background:#fff;border:1px solid #ddd}.odekake-service-menu h2{margin:0;padding:14px 16px;background:#f05a42;color:#fff;font-size:15px}.odekake-service-menu nav{display:flex;flex-direction:column}.odekake-service-menu a{display:grid;grid-template-columns:20px 1fr 12px;gap:6px;padding:12px 13px;border-bottom:1px solid #e8e8e8;color:#333;font-size:13px;font-weight:700}.odekake-service-menu a span{color:#f07a37}.odekake-dashboard__main{display:grid;grid-template-rows:auto 1fr;gap:12px}.odekake-dashboard__main .portal-keyword-search{padding:10px 14px}.odekake-dashboard__main .portal-keyword-search label{display:none}.odekake-main-banner{position:relative;min-height:335px;overflow:hidden;color:#fff;background:#555}.odekake-main-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.04) 70%)}.odekake-main-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.odekake-main-banner span,.odekake-main-banner strong,.odekake-main-banner b{position:absolute;z-index:1;left:42px}.odekake-main-banner span{top:68px;font-size:20px;font-weight:800}.odekake-main-banner strong{top:108px;font-size:36px}.odekake-main-banner b{top:176px;padding:11px 24px;background:#f05a42;border-radius:4px}
.odekake-ranking{padding-block:28px}.odekake-band-title{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:10px;border-bottom:3px solid #f05a42}.odekake-band-title>span{color:#f3a228;font-size:24px}.odekake-band-title h2{margin:0;font-size:22px}.odekake-band-title>a{margin-left:auto;color:#d94935;font-size:12px}.odekake-ranking-grid{grid-template-columns:repeat(3,1fr)}.odekake-ranking-grid .content-card{border:1px solid #ddd;padding:8px}.odekake-ranking-grid .content-card:nth-child(n+4){display:none}.odekake-ranking-grid .card-copy{padding:12px 5px 6px}
.odekake-map-section{padding:38px 0;background:#fff;border-block:1px solid #e0e0e0}.odekake-map-section .owari-map{padding:22px;border:1px solid #ddd}.odekake-map-section .owari-map__region path{fill:#f2b13e}.odekake-map-section .owari-map__region--inazawa path{fill:#ef7959}.odekake-map-section .owari-map__region--konan path{fill:#67b99a}.odekake-map-section .owari-map__region--komaki path{fill:#5ba8cf}.odekake-map-section .city-guide-card:hover{background:#fff7e8}
.odekake-category-section{padding:42px 0}.odekake-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.odekake-topic-grid .topic-card{display:grid;grid-template-columns:34px 45px 1fr 12px;align-items:center;gap:10px;padding:18px;background:#fff;border:1px solid #ddd;border-radius:5px;color:#333}.odekake-topic-grid .topic-card__number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f05a42;color:#fff;font-size:11px}.odekake-topic-grid h3{margin:0;font-size:15px}.odekake-topic-grid p{margin:4px 0 0;font-size:11px;color:#777}.portal-home--odekake .all-listing-strip{padding:30px 0;background:#fff3d7;border-block:1px solid #f1d48f}.portal-home--odekake .service-cta{padding:55px 20px;background:#fff}.portal-home--odekake .policy-detail{padding:50px 0;background:#efece7}.portal-home--odekake .policy-detail h2{font-size:29px}.portal-home--odekake .policy-detail p{max-width:750px;line-height:1.9}
