:root{--teal:#087f7a;--ink:#173f40;--muted:#617674;--mint:#edf5f1;--gold:#f2c14e;--line:#dce7e1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#e8eeeb;color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;font-size:16px;line-height:1.75}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e4ac28;outline-offset:3px}a{color:inherit}button{touch-action:manipulation}img{display:block;max-width:100%}.app{max-width:600px;margin:auto;background:#fff;min-height:100vh;box-shadow:0 0 65px #2b514112;padding-bottom:80px;overflow:hidden}.preview{text-align:center;background:#e5eeea;font-size:10px;letter-spacing:.02em;padding:5px 8px;color:#526863}.preview span{margin-left:8px}header{padding:16px 24px 13px;display:flex;align-items:center;justify-content:space-between;background:#f8fbf9}.brand{text-decoration:none;display:block;width:185px}.brand svg{display:block;width:170px;height:45px}.brand small{font-size:9px;display:block;letter-spacing:.02em;margin-top:2px}.icon-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#fff}.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.location{padding:10px 24px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);font-size:12px;background:#fff}.location .icon{width:17px;height:17px;color:var(--teal)}.location button{margin-left:auto;font-size:11px;text-decoration:underline;min-height:32px;white-space:nowrap}.location b{font-size:18px;margin-left:5px}.hero{background:#f4f8f6;position:relative;padding-top:30px}.hero-copy{position:relative;z-index:1;padding:0 30px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.15em;color:var(--teal);display:block}.hero .eyebrow{letter-spacing:.08em;font-size:12px}.hero h1{font-size:clamp(27px,6.7vw,38px);line-height:1.5;letter-spacing:.01em;margin:12px 0}.hero em{font-style:normal;position:relative;z-index:0}.hero em:after{content:'';height:9px;background:#f2c14e91;position:absolute;bottom:4px;left:0;right:0;z-index:-1;border-radius:4px}.hero p{font-size:14px;line-height:1.85;margin:10px 0}.hero-art{width:100%;margin-top:-60px}.hero-search{position:relative;padding:0 28px 20px;margin-top:-15px}.primary{background:var(--teal);color:white;border-radius:13px;min-height:54px;padding:12px 18px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:700;width:100%;box-shadow:0 4px 9px #087f7a13}.primary>span:last-child{margin-left:auto}.primary .icon{width:21px}.primary:hover{background:#076c68}.hero-search p{font-size:11px;color:var(--muted);text-align:center;margin:9px 0 0}.hero-search p span{margin:0 9px}.section{padding:36px 26px}.section h2{font-size:22px;line-height:1.55;margin:5px 0 0;letter-spacing:.01em}.section h3{line-height:1.65}.section-head{display:flex;justify-content:space-between;align-items:center}.section-desc{font-size:13px;color:var(--muted);margin:8px 0 20px}.yellow-dot{display:inline-block;margin-left:9px;width:8px;height:8px;border-radius:50%;background:var(--gold);vertical-align:middle}.sample{font-size:10px;color:#687771;border:1px solid var(--line);border-radius:4px;padding:2px 5px}.tabs{display:flex;gap:7px;overflow:auto;margin-bottom:7px;padding-bottom:7px;scrollbar-width:none}.tabs button{font-size:12px;min-height:40px;padding:7px 12px;border-radius:99px;background:#f2f5f3;white-space:nowrap}.tabs [aria-selected=true]{background:var(--ink);color:#fff}.news-row{padding:17px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}.news-main{flex:1;text-align:left;padding:0}.news-meta{display:flex;gap:8px;font-size:10px;color:var(--muted);align-items:center}.tag{background:#e4f3ee;color:#08726d;border-radius:4px;padding:2px 7px;font-weight:700}.tag.gold{background:#fff4d5;color:#856414}.news-main h3{font-size:14px;line-height:1.7;margin:7px 0 0}.save-btn{flex-shrink:0;width:40px;height:44px;color:#74908a}.save-btn.saved{color:var(--teal)}.save-btn.saved .icon{fill:#cde9df}.full{width:100%;margin-top:22px}.outline{min-height:48px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-weight:700;background:#fff}.outline span{margin-left:14px}.tinted{background:#f4f8f6}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.category{background:#fff;border:1px solid #e1eae5;border-radius:15px;overflow:hidden;padding:8px 8px 12px;text-align:center;position:relative}.category:hover{border-color:var(--teal);transform:translateY(-1px)}.category img{width:100%;height:112px;object-fit:contain}.category strong{display:block;font-size:13px;line-height:1.5;margin-top:4px}.category small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.category b{position:absolute;right:9px;bottom:15px;color:#8bad9f;font-size:16px}.illustrated img{width:100px;height:95px;object-fit:contain;margin-left:8px}.illustrated h2{font-size:21px}.illustrated .section-desc{margin-bottom:15px}.region-box{border:1px solid var(--line);border-radius:16px;padding:22px;text-align:center;background:#fafcfb}.region-box>.icon{color:var(--teal);width:30px;height:30px}.region-box h3{font-size:16px;margin:7px 0}.region-box p{font-size:13px;color:var(--muted);margin:8px 0 20px}.deadline{background:#fffbf1}.quiet-state{background:white;border:1px solid #efe7ce;border-radius:12px;padding:18px;display:flex;gap:12px;align-items:center}.quiet-state h3{font-size:14px;margin:0}.quiet-state p{font-size:12px;color:var(--muted);margin:4px 0 0}.quiet-state>.icon{color:#b48b27;flex-shrink:0}.chips{display:flex;gap:9px;flex-wrap:wrap}.chips button{border:1px solid var(--line);border-radius:9px;padding:10px 15px;background:#fff;min-height:44px;font-size:13px}.chips button.selected{border-color:var(--teal);background:#e3f2ec;color:var(--teal)}.text-link{font-size:13px;color:var(--teal);padding:13px 0;min-height:44px;text-decoration:underline;text-underline-offset:4px}.guides{display:grid;grid-template-columns:1fr 1fr;gap:14px}.guide{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;text-align:left;padding:0 0 13px}.guide img{width:100%;aspect-ratio:16/9;object-fit:cover}.guide>span{display:block;font-size:10px;color:var(--teal);margin:12px 13px 0}.guide h3{font-size:13px;margin:5px 13px 7px}.guide b{font-size:11px;color:var(--teal);margin:0 13px}.membership{padding-top:38px;padding-bottom:18px}.member-inner{background:#edf6f0;border-radius:20px;padding:27px 23px;position:relative;overflow:hidden}.pill{display:inline-block;font-size:10px;letter-spacing:.03em;background:#fff3ca;color:#655522;padding:4px 10px;border-radius:99px}.membership h2{font-size:25px;margin:15px 0 12px}.membership p{font-size:13px;color:#58716a;margin-bottom:0}.membership img{width:72%;margin:5px auto 0}.membership ul{list-style:none;padding:0;margin:5px 0 20px}.membership li{font-size:12px;margin:7px 0}.membership li:before{content:'✓';color:var(--teal);margin-right:9px;font-weight:bold}.trust{text-align:center;padding-top:25px;padding-bottom:12px}.trust img{width:145px;margin:0 auto 10px}.trust h2{font-size:20px}.trust p{font-size:12px;color:var(--muted)}footer{background:#f4f8f6;text-align:center}footer>img{width:100%;margin-top:-10px}.footer-content{padding:7px 28px 25px}.footer-content strong{font-size:27px;font-weight:900}.footer-content p{font-size:11px;margin:3px 0 20px}.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:0 15px}.footer-links button{font-size:10px;min-height:34px;padding:3px 0}.footer-content small{display:block;font-size:9px;line-height:1.8;color:#73867e;margin-top:15px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:600px;background:#ffffffef;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 8px max(8px,env(safe-area-inset-bottom));z-index:10}.bottom-nav button{position:relative;font-size:10px;color:#698179;display:flex;align-items:center;flex-direction:column;gap:3px;min-height:51px}.bottom-nav button.active{color:var(--teal);font-weight:bold}.bottom-nav .active:after{content:'';position:absolute;bottom:-1px;width:20px;height:3px;border-radius:5px;background:var(--teal)}#saved-count{position:absolute;top:-4px;right:28%;font-size:9px;background:#f2c14e;border-radius:50%;min-width:15px;line-height:15px;color:var(--ink)}#saved-count:empty{display:none}dialog{border:0;border-radius:23px 23px 0 0;width:min(600px,100%);max-width:100%;max-height:88dvh;margin:auto auto 0;padding:0 24px 28px;color:var(--ink);box-shadow:0 -15px 50px #102c3522}dialog::backdrop{background:#16383270;backdrop-filter:blur(3px)}.modal-head{position:sticky;top:0;background:white;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 12px;z-index:1}.modal-head h2{font-size:19px;margin:0}.modal-head button{font-size:26px;flex-shrink:0}.modal-copy{font-size:14px;line-height:1.9;color:#526d64}.modal-illustration{max-width:190px;margin:15px auto}.field{display:block;font-size:13px;font-weight:700;margin:17px 0 6px}input,select{width:100%;background:#f7faf8;border:1px solid #cfded5;padding:12px;border-radius:10px;font-size:16px;color:var(--ink)}.helper{font-size:11px;color:var(--muted);margin:8px 0 18px}.modal-actions{display:flex;gap:10px;margin-top:22px}.modal-actions button{flex:1}.modal-card{padding:16px;border:1px solid var(--line);border-radius:12px;margin:12px 0}.modal-card h3{margin:0 0 8px;font-size:16px}.modal-card p{font-size:13px;color:var(--muted)}.article-body{font-size:14px;line-height:1.95}.article-body h3{font-size:17px;margin:22px 0 8px}.article-body ul{padding-left:20px}.article-body a{color:var(--teal)}.empty{text-align:center;font-size:14px;color:var(--muted)}#toast{position:fixed;bottom:94px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:11px 20px;border-radius:99px;font-size:12px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;width:max-content}#toast.show{opacity:1}@media(max-width:380px){.section{padding:29px 20px}.hero-copy{padding:0 24px}.hero h1{font-size:27px}.category img{height:92px}.section h2{font-size:20px}.illustrated img{width:80px}.illustrated h2{font-size:18px}.category strong{font-size:12px}.tabs button{padding:6px 10px;font-size:11px}.membership h2{font-size:23px}.preview{font-size:9px}.preview span{margin-left:4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Compact hero and illustrated guide banners */
.hero{padding-top:22px}.hero h1{line-height:1.4;margin:10px 0}.hero p{margin:8px 0}.hero-art{margin-top:-25%}.hero-search{margin-top:-19px;padding-bottom:17px}
.guides{grid-template-columns:1fr;gap:14px}.guide{position:relative;min-height:210px;isolation:isolate;padding:25px 20px;display:flex;flex-direction:column;justify-content:center;background:#f5f9f5}.guide img{position:absolute;inset:0 0 0 auto;width:min(100%,400px);height:100%;aspect-ratio:auto;object-fit:cover;z-index:-2}.guide:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f9f5 0%,#f5f9f5f5 25%,#f5f9f500 65%);z-index:-1}.guide>span{margin:0 0 8px;font-size:11px;width:52%;font-weight:700}.guide h3{margin:0 0 14px;font-size:20px;line-height:1.65;width:55%;text-wrap:balance}.guide b{margin:0;font-size:12px}.guide:hover{border-color:var(--teal)}
@media(max-width:440px){.hero-copy{padding:0 24px}.hero h1{font-size:28px}.hero-art{margin-top:-25%}.guide{min-height:190px;padding:20px 16px}.guide h3{font-size:16px;width:56%}.guide>span{font-size:10px}}

.policy-news{background:#fffaf0;border-bottom:1px solid #eee5ce}.policy-label{font-size:10px;white-space:nowrap;background:#f6e7bb;border-radius:5px;padding:4px 8px}.policy-news .tabs [aria-pressed=true]{background:var(--ink);color:white}.policy-empty{font-size:13px;color:var(--muted);background:white;border:1px solid #ede5d2;padding:18px;border-radius:12px;margin:8px 0 15px}.policy-explainer{font-size:12px;color:#61716a}.policy-explainer summary{cursor:pointer;min-height:40px;padding:8px 0}.policy-item{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;margin:10px 0}.policy-item h3{font-size:17px;margin:8px 0}.policy-item p{font-size:13px}.policy-item small{font-size:11px;color:var(--muted)}.policy-item a{font-size:12px;color:var(--teal)}
