@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Serif+JP:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&display=swap');

:root { --ink:#171b1c; --muted:#667174; --line:#e6e9e9; --paper:#fff; --soft:#f6f8f8; --aqua:#007d94; --navy:#063d4b; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans","Noto Sans JP",sans-serif; font-size:15px; line-height:1.8; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.container { width:min(var(--max),calc(100% - 40px)); margin:auto; }
.serif { font-family:"Noto Serif JP",serif; }
.eyebrow { color:var(--aqua); font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.label { display:inline-flex; align-items:center; min-height:25px; border:1px solid var(--line); color:var(--muted); padding:0 9px; font-size:.69rem; letter-spacing:.08em; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:0 23px; border:1px solid var(--ink); background:var(--ink); color:#fff; font-size:.82rem; font-weight:500; letter-spacing:.06em; transition:.2s ease; }
.button:hover { background:#fff; color:var(--ink); }
.button.button-aqua { border-color:var(--aqua); background:var(--aqua); }
.button.button-aqua:hover { border-color:var(--navy); background:var(--navy); color:#fff; }
.button.light { border-color:#fff; background:#fff; color:var(--ink); }
.button.arrow::after { content:"→"; font-size:1rem; }
.button.outline { background:transparent; color:var(--ink); }
.button.outline:hover { background:var(--ink); color:#fff; }

header { height:76px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); position:sticky; top:0; z-index:30; }
.nav { height:100%; display:flex; align-items:center; justify-content:space-between; }
.brand { font-family:"Noto Serif JP",serif; font-size:1.17rem; letter-spacing:.08em; line-height:1.22; }
.brand small { display:block; color:var(--aqua); font-family:"DM Sans",sans-serif; font-size:.53rem; font-weight:600; letter-spacing:.18em; }
.nav-links { display:flex; align-items:center; gap:25px; font-size:.76rem; font-weight:500; }
.nav-links a:hover { color:var(--aqua); }
.nav-cta { display:flex; height:76px; margin-right:calc((100vw - min(var(--max),calc(100vw - 40px)))/-2); }
.nav-cta a { display:grid; place-items:center; width:112px; padding:0 9px; border-left:1px solid var(--line); font-size:.7rem; line-height:1.35; text-align:center; }
.nav-cta a:last-child { background:var(--navy); color:white; }
.header-social { width:36px; height:36px; display:grid; place-items:center; color:var(--navy); transition:color .2s; }
.header-socials { display:flex; align-items:center; gap:2px; }
.header-social:hover { color:var(--aqua); }
.header-social svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.header-social .instagram-dot { fill:currentColor; stroke:none; }
.header-social--line { color:#06c755; }
.header-social--line svg { width:21px; height:21px; }
.header-social--line .line-bubble { fill:currentColor; stroke:none; }
.header-social--line text { fill:#fff; stroke:none; font-family:Arial,sans-serif; font-size:5px; font-weight:700; letter-spacing:-.25px; }
@media (max-width:850px) { .header-socials { margin-left:auto; margin-right:8px; } .header-social { margin:0; } }

.hero { min-height:min(710px,calc(100vh - 76px)); display:grid; grid-template-columns:1.05fr .95fr; }
.hero-copy { display:flex; flex-direction:column; justify-content:flex-end; padding:80px max(20px,calc((100vw - var(--max))/2)) 92px max(20px,calc((100vw - var(--max))/2)); }
.hero h1 { max-width:660px; margin:17px 0 24px; font-family:"Noto Serif JP",serif; font-size:clamp(2.35rem,4vw,4.7rem); font-weight:500; letter-spacing:.04em; line-height:1.34; }
.hero p { max-width:600px; color:#4e585b; margin:0 0 34px; }
.hero-image { min-height:440px; background:linear-gradient(90deg,rgba(0,0,0,.04),rgba(0,0,0,0)),url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1500&q=85') center/cover; }
.news-section { padding:76px 0 0; }
.news-list { border-top:1px solid var(--line); }
.news-list a { display:grid; grid-template-columns:126px 1fr; gap:24px; align-items:center; min-height:66px; border-bottom:1px solid var(--line); color:var(--ink); font-size:.86rem; transition:color .2s,background .2s; }
.news-list a:hover { color:var(--aqua); background:var(--soft); }
.news-list time { color:var(--muted); font-family:"DM Sans",sans-serif; font-size:.72rem; letter-spacing:.08em; }
.news-archive { max-width:860px; }
.news-entry { padding:34px 0 36px; border-bottom:1px solid var(--line); }
.news-entry:first-child { border-top:1px solid var(--line); }
.news-entry-meta { display:flex; align-items:center; gap:14px; margin-bottom:11px; }
.news-entry time { color:var(--muted); font-family:"DM Sans",sans-serif; font-size:.76rem; letter-spacing:.08em; }
.news-entry h2 { margin:0 0 8px; font-family:"Noto Serif JP",serif; font-size:1.35rem; font-weight:500; letter-spacing:.02em; }
.news-entry p { margin:0; color:var(--muted); font-size:.86rem; }

section { padding:108px 0; }
.section-header { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:42px; }
h2 { margin:10px 0 0; font-family:"Noto Serif JP",serif; font-size:clamp(1.75rem,3vw,2.8rem); font-weight:500; letter-spacing:.04em; line-height:1.45; }
.section-header p { max-width:400px; margin:0; color:var(--muted); font-size:.88rem; }
.purpose { border-top:1px solid var(--line); }
.purpose-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.purpose-card { min-height:250px; padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; transition:background .2s; }
.purpose-card:first-child { border-left:1px solid var(--line); }
.purpose-card:hover { background:var(--soft); }
.purpose-card .number { color:var(--aqua); font-size:.7rem; letter-spacing:.1em; }
.purpose-card h3 { margin:0; font-family:"Noto Serif JP",serif; font-size:1.5rem; font-weight:500; }
.purpose-card p { margin:5px 0 0; color:var(--muted); font-size:.78rem; line-height:1.65; }
.purpose-card .link { margin-top:20px; font-size:.75rem; font-weight:600; }
.purpose-card .link::after { content:" →"; color:var(--aqua); }

.feature { background:var(--soft); }
.feature-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:54px; align-items:stretch; }
.feature-image { min-height:480px; background:url('https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=1400&q=85') center/cover; }
.feature-copy { padding:38px 0; display:flex; flex-direction:column; justify-content:center; }
.feature-copy h2 { max-width:500px; }
.feature-copy p { color:var(--muted); max-width:470px; }
.steps { margin:27px 0 35px; border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:45px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
.step span { color:var(--aqua); font-size:.7rem; }
.step strong { font-size:.9rem; font-weight:500; }

.property-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.property-categories { display:grid; grid-template-columns:repeat(7,1fr); margin:0 0 42px; border-top:1px solid var(--line); }
.property-categories a { display:flex; align-items:center; justify-content:center; min-height:62px; padding:0 12px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--muted); font-family:"Noto Serif JP",serif; font-size:.84rem; text-align:center; transition:background .2s,color .2s; }
.property-categories a:first-child { border-left:1px solid var(--line); }
.property-categories a:hover { background:var(--soft); color:var(--aqua); }
.properties-section { padding-top:84px; }
.property-filter { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:38px; border-bottom:1px solid var(--line); }
.property-filter a { min-height:42px; display:inline-flex; align-items:center; padding:0 15px; border:1px solid var(--line); color:var(--muted); font-size:.76rem; transition:background .2s,color .2s,border-color .2s; }
.property-filter a:hover,.property-filter a.is-active { border-color:var(--navy); background:var(--navy); color:#fff; }
.listing-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin:42px 0 28px; }
.listing-heading h2 { margin-top:7px; }
.listing-heading p { margin:0; color:var(--muted); font-size:.78rem; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px 20px; }
.listing-card { border:1px solid var(--line); background:var(--paper); }
.listing-card[hidden] { display:none; }
.listing-card--clickable { cursor:pointer; transition:border-color .2s,transform .2s; }
.listing-card--clickable:hover { border-color:var(--aqua); transform:translateY(-2px); }
.listing-image { aspect-ratio:4/3; background:center/cover; }
.listing-image--condo { background-image:url('https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=900&q=85'); }
.listing-image--ginowan { background-image:url('images/ginowan-nozato-exterior.jpg'); }
.listing-image--condo-alt { background-image:url('https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=900&q=85'); }
.listing-image--house { background-image:url('https://images.unsplash.com/photo-1600585152915-d208bec867a1?auto=format&fit=crop&w=900&q=85'); }
.listing-image--land { background-image:url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=900&q=85'); }
.listing-image--land-alt { background-image:url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=900&q=85'); }
.listing-image--rent { background-image:url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=900&q=85'); }
.listing-image--office { background-image:url('https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=900&q=85'); }
.listing-body { padding:18px 18px 20px; }
.listing-body h3 { margin:10px 0 5px; font-family:"Noto Serif JP",serif; font-size:1.08rem; font-weight:500; line-height:1.55; }
.listing-body p { min-height:44px; margin:0; color:var(--muted); font-size:.76rem; line-height:1.65; }
.listing-body strong { display:block; margin:8px 0 16px; font-family:"Noto Serif JP",serif; font-size:1.35rem; font-weight:500; }
.listing-body a { display:flex; justify-content:space-between; align-items:center; padding-top:13px; border-top:1px solid var(--line); color:var(--aqua); font-size:.76rem; font-weight:600; }
.listing-body a span { font-size:1rem; }
.empty-listing { max-width:720px; padding:66px 20px; margin:auto; text-align:center; }
.empty-listing h2 { margin:9px 0 13px; font-size:1.6rem; }
.empty-listing p { max-width:500px; margin:0 auto 24px; color:var(--muted); font-size:.84rem; }
.listing-note { margin:42px 0 0; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:.72rem; }
@media (max-width:850px) { .listing-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .properties-section { padding-top:64px; } .property-filter { flex-wrap:nowrap; overflow-x:auto; margin-right:-16px; padding-right:16px; padding-bottom:22px; } .property-filter a { flex:0 0 auto; } .listing-heading { display:block; margin-top:30px; } .listing-heading p { margin-top:11px; } .listing-grid { grid-template-columns:1fr; } .listing-body h3 { font-size:1.12rem; } }

/* Property detail */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; padding:21px 0 0; color:var(--muted); font-size:.7rem; }
.breadcrumb a:hover { color:var(--aqua); }
.property-detail-hero { padding:28px 0 0; }
.detail-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.detail-id,.detail-update { color:var(--muted); font-size:.7rem; }
.detail-id { margin-left:12px; }
.detail-update { margin:0; }
.detail-title { max-width:960px; margin:10px 0 28px; font-family:"Noto Serif JP",serif; font-size:clamp(1.85rem,3.4vw,3.3rem); font-weight:500; letter-spacing:.04em; line-height:1.45; }
.detail-gallery { position:relative; }
.detail-gallery-main,.detail-gallery-thumb { position:relative; overflow:hidden; background-color:#dce5e5; background-position:center; background-size:cover; }
.detail-floorplan-media { min-height:0; }
.detail-gallery-main { min-height:0; aspect-ratio:4/3; background-size:cover; background-repeat:no-repeat; }
.detail-gallery-main::after,.detail-gallery-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(6,61,75,.08),transparent 55%); }
.detail-gallery-main span { position:absolute; z-index:1; left:18px; bottom:15px; color:#fff; font-size:.61rem; font-weight:600; letter-spacing:.16em; }
.detail-gallery-thumbs { display:grid; grid-template-columns:repeat(7,1fr); gap:9px; margin-top:10px; }
.detail-gallery-thumb { min-height:80px; padding:0; border:1px solid transparent; cursor:pointer; appearance:none; transition:border-color .2s,opacity .2s; }
.detail-gallery-thumb::after { background:rgba(6,31,43,.18); }
.detail-gallery-thumb:hover,.detail-gallery-thumb.is-active { border-color:var(--aqua); }
.detail-gallery-thumb:not(.is-active) { opacity:.7; }
.detail-gallery-note { margin:8px 0 0; color:var(--muted); font-size:.66rem; }
.property-detail-content { padding:74px 0 104px; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 328px; gap:64px; align-items:start; }
.detail-summary { padding-bottom:44px; border-bottom:1px solid var(--line); }
.detail-price-row { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.detail-price { margin:2px 0 0; font-family:"Noto Serif JP",serif; font-size:clamp(2rem,3.1vw,3rem); font-weight:500; letter-spacing:.02em; line-height:1.3; }
.detail-status { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border:1px solid var(--line); color:var(--muted); font-size:.67rem; white-space:nowrap; }
.detail-keyfacts { display:grid; grid-template-columns:repeat(2,1fr); margin:32px 0 0; border-top:1px solid var(--line); }
.detail-keyfacts div { padding:17px 19px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.detail-keyfacts div:nth-child(odd) { border-left:1px solid var(--line); }
.detail-keyfacts dt { color:var(--muted); font-size:.68rem; }
.detail-keyfacts dd { margin:3px 0 0; font-family:"Noto Serif JP",serif; font-size:.95rem; line-height:1.55; }
.detail-section { padding:72px 0; border-bottom:1px solid var(--line); }
.detail-section-heading { margin-bottom:28px; }
.detail-section-heading h2 { margin-top:7px; font-size:clamp(1.5rem,2.5vw,2.1rem); }
.detail-lead { max-width:670px; margin:0; color:var(--muted); font-size:.88rem; }
.detail-points { display:grid; grid-template-columns:repeat(3,1fr); margin-top:32px; border-top:1px solid var(--line); }
.detail-points article { min-height:190px; padding:22px 19px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.detail-points article:first-child { border-left:1px solid var(--line); }
.detail-points span { color:var(--aqua); font-size:.7rem; letter-spacing:.08em; }
.detail-points h3 { margin:19px 0 5px; font-family:"Noto Serif JP",serif; font-size:1.05rem; font-weight:500; }
.detail-points p { margin:0; color:var(--muted); font-size:.73rem; line-height:1.75; }
.detail-floorplan { margin:0; }
.detail-floorplan-media { display:inline-block; max-width:100%; border:1px solid var(--line); background:#fafcfc; }
.detail-floorplan-media img { display:block; max-width:100%; max-height:520px; object-fit:contain; }
.detail-floorplan-placeholder { width:100%; min-height:420px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px; text-align:center; background:linear-gradient(135deg,#eff8f7,#fff 55%,#f1f7f7); }
.detail-floorplan-placeholder span { color:var(--aqua); font-size:.68rem; font-weight:600; letter-spacing:.17em; }
.detail-floorplan-placeholder strong { margin-top:12px; font-family:"Noto Serif JP",serif; font-size:2rem; font-weight:500; }
.detail-floorplan-placeholder p,.detail-floorplan figcaption { margin:7px 0 0; color:var(--muted); font-size:.72rem; line-height:1.7; }
.detail-floorplan figcaption { padding-top:10px; }
.detail-specs { margin:0; border-top:1px solid var(--line); }
.detail-specs div { display:grid; grid-template-columns:180px 1fr; border-right:1px solid var(--line); border-bottom:1px solid var(--line); border-left:1px solid var(--line); }
.detail-specs dt,.detail-specs dd { margin:0; min-height:58px; display:flex; align-items:center; padding:12px 18px; }
.detail-specs dt { background:var(--soft); color:var(--muted); border-right:1px solid var(--line); font-size:.72rem; }
.detail-specs dd { font-size:.78rem; }
.detail-map-placeholder { min-height:250px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; border:1px solid var(--line); background:linear-gradient(135deg,#e5efef 0%,#f8fbfb 50%,#e6eeee 100%); }
.detail-map-placeholder span { color:var(--aqua); font-size:.68rem; font-weight:600; letter-spacing:.17em; }
.detail-map-placeholder p { margin:5px 0 2px; font-family:"Noto Serif JP",serif; font-size:1.2rem; }
.detail-map-placeholder small { color:var(--muted); font-size:.68rem; line-height:1.7; }
.detail-disclosure { margin-top:36px; padding:22px 24px; background:var(--soft); color:var(--muted); }
.detail-disclosure strong { color:var(--ink); font-size:.78rem; }
.detail-disclosure p { margin:6px 0 0; font-size:.7rem; line-height:1.85; }
.detail-aside { position:sticky; top:98px; }
.detail-contact-card { padding:29px; border:1px solid var(--line); background:var(--paper); }
.detail-contact-card h2 { margin-top:8px; font-size:1.65rem; line-height:1.55; }
.detail-contact-card p { margin:14px 0 22px; color:var(--muted); font-size:.77rem; line-height:1.75; }
.detail-contact-card .button { width:100%; }
.detail-phone { display:block; margin-top:22px; padding-top:19px; border-top:1px solid var(--line); color:var(--navy); font-family:"Noto Serif JP",serif; font-size:1.24rem; letter-spacing:.02em; line-height:1.4; }
.detail-phone span,.detail-phone small { display:block; color:var(--muted); font-family:"DM Sans","Noto Sans JP",sans-serif; font-size:.67rem; letter-spacing:0; }
.detail-phone small { margin-top:3px; }
.detail-back-link { display:inline-block; margin-top:19px; color:var(--muted); font-size:.74rem; }
.detail-back-link:hover { color:var(--aqua); }
.related-listings { padding-top:0; border-top:1px solid var(--line); }
.related-listings .section-header { margin-top:104px; }

@media (max-width:850px) { .detail-gallery-main { min-height:400px; } .detail-gallery-thumb { min-height:65px; } .detail-layout { grid-template-columns:minmax(0,1fr) 270px; gap:32px; } .detail-points { grid-template-columns:1fr; } .detail-points article,.detail-points article:first-child { min-height:0; border-left:1px solid var(--line); } .detail-points article { padding:20px; } .detail-points h3 { margin-top:10px; } .detail-contact-card { padding:22px; } }
@media (max-width:560px) { .breadcrumb { padding-top:15px; font-size:.64rem; } .property-detail-hero { padding-top:22px; } .detail-intro { align-items:flex-start; } .detail-id { display:block; margin:6px 0 0; } .detail-update { max-width:125px; text-align:right; line-height:1.5; } .detail-title { margin:10px 0 20px; font-size:1.75rem; } .detail-gallery-main { min-height:auto; aspect-ratio:1.2/1; } .detail-gallery-thumbs { gap:6px; margin-top:7px; } .detail-gallery-thumb { min-height:54px; } .detail-gallery-note { margin-top:7px; font-size:.62rem; line-height:1.65; } .property-detail-content { padding:50px 0 72px; } .detail-layout { grid-template-columns:1fr; gap:36px; } .detail-price-row { align-items:flex-start; } .detail-price { font-size:2rem; } .detail-status { margin-top:7px; padding:0 7px; font-size:.61rem; } .detail-keyfacts { grid-template-columns:1fr; margin-top:24px; } .detail-keyfacts div,.detail-keyfacts div:nth-child(odd) { border-left:1px solid var(--line); } .detail-keyfacts div { padding:14px 16px; } .detail-keyfacts dd { font-size:.9rem; } .detail-section { padding:54px 0; } .detail-section-heading { margin-bottom:21px; } .detail-section-heading h2 { font-size:1.45rem; } .detail-lead { font-size:.82rem; } .detail-points { margin-top:24px; } .detail-points article { padding:18px; } .detail-floorplan-media,.detail-floorplan-placeholder { min-height:300px; } .detail-floorplan-placeholder strong { font-size:1.6rem; } .detail-specs div { grid-template-columns:110px minmax(0,1fr); } .detail-specs dt,.detail-specs dd { min-height:52px; padding:9px 12px; font-size:.68rem; } .detail-map-placeholder { min-height:205px; padding:22px; } .detail-map-placeholder p { font-size:1.06rem; } .detail-disclosure { margin-top:27px; padding:18px; } .detail-disclosure p { font-size:.65rem; } .detail-aside { position:static; } .detail-contact-card { padding:24px 20px; } .detail-contact-card h2 { font-size:1.48rem; } .detail-contact-card p { font-size:.76rem; } .detail-back-link { display:none; } .related-listings .section-header { margin-top:72px; } .related-listings .section-header .button { display:none; } .property-detail-dock a:first-child { background:#fff; color:var(--ink); } }
.detail-gallery-main { min-height:0; aspect-ratio:4/3; background-size:cover; background-repeat:no-repeat; }
@media (max-width:850px) { .detail-gallery-main { min-height:0; } }
@media (max-width:560px) { .detail-gallery-main { min-height:0; aspect-ratio:4/3; } }
.property-card { display:block; border-bottom:1px solid var(--line); transition:color .2s; }
.property-card:hover { color:var(--aqua); }
.property-image { aspect-ratio:4/3; background:#e8eeee center/cover; }
.property-card:nth-child(1) .property-image { background-image:url('https://images.unsplash.com/photo-1600585152915-d208bec867a1?auto=format&fit=crop&w=900&q=85'); }
.property-card:nth-child(2) .property-image { background-image:url('https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=900&q=85'); }
.property-card:nth-child(3) .property-image { background-image:url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=900&q=85'); }
.property-meta { padding:16px 0 20px; }
.property-meta h3 { font-size:1rem; margin:6px 0; font-weight:500; }
.property-meta p { color:var(--muted); font-size:.76rem; margin:0; }
.property-price { font-family:"Noto Serif JP",serif; font-size:1.28rem; }
.property-detail-link { display:block; margin-top:11px; color:var(--aqua); font-size:.72rem; font-weight:600; }
.legal-section { padding-top:82px; }
.legal-content { max-width:860px; }
.legal-updated { margin:0 0 22px; color:var(--muted); font-size:.72rem; }
.legal-intro { padding:24px; border:1px solid var(--line); background:var(--soft); }
.legal-intro p { margin:0; font-size:.86rem; line-height:1.9; }
.legal-block { padding:38px 0; border-bottom:1px solid var(--line); }
.legal-block h2 { margin:0 0 14px; font-size:1.35rem; }
.legal-block p,.legal-block li { color:var(--muted); font-size:.82rem; line-height:1.9; }
.legal-block p { margin:0; }
.legal-block ul { margin:13px 0 0; padding-left:1.4em; }
.legal-block a { color:var(--aqua); text-decoration:underline; text-underline-offset:3px; }
.legal-contact { border-bottom:0; }
.legal-contact p + p { margin-top:15px; }
.legal-notice { margin:28px 0 0; padding:18px 20px; background:var(--soft); color:var(--muted); font-size:.7rem; line-height:1.8; }

.data-section { background:var(--navy); color:#fff; }
.data-section .eyebrow { color:#8ed5df; }
.data-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.25); }
.data-card { min-height:228px; padding:28px; border-right:1px solid rgba(255,255,255,.25); border-bottom:1px solid rgba(255,255,255,.25); }
.data-card:first-child { border-left:1px solid rgba(255,255,255,.25); }
.data-card h3 { margin:20px 0 8px; font-family:"Noto Serif JP",serif; font-weight:500; font-size:1.28rem; }
.data-card p { margin:0; color:#c3d9dc; font-size:.78rem; line-height:1.7; }
.data-icon { color:#8ed5df; font-size:1.2rem; }

.area-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.area-list a { padding:24px 0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); font-family:"Noto Serif JP",serif; font-size:1.1rem; }
.area-list a:nth-child(3n+1) { border-left:1px solid var(--line); padding-left:22px; }
.area-list a:not(:nth-child(3n+1)) { padding-left:22px; }
.area-list a::after { content:" →"; float:right; margin-right:22px; color:var(--aqua); font-family:"DM Sans",sans-serif; }

.contact-band { padding:80px 0; background:var(--soft); }
.contact-band .container { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.contact-band h2 { margin:0; }
footer { padding:48px 0 28px; border-top:1px solid var(--line); }
.footer-top { display:flex; justify-content:space-between; gap:35px; padding-bottom:44px; }
.footer-links { display:flex; gap:28px; flex-wrap:wrap; font-size:.77rem; }
.company-details { color:var(--muted); font-size:.76rem; }
.copyright { padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:.65rem; }
.mobile-dock { display:none; }
.mobile-search { display:none; }

.page-hero { min-height:340px; background:var(--soft); display:flex; align-items:end; padding:72px 0; }
.page-hero p { color:var(--muted); max-width:500px; margin:16px 0 0; }
.content-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.content-card { padding:28px; border:1px solid var(--line); min-height:220px; }
.content-card h3 { margin:18px 0 7px; font-family:"Noto Serif JP",serif; font-size:1.25rem; font-weight:500; }
.content-card p { color:var(--muted); font-size:.8rem; margin:0; }
.content-card--link { display:flex; flex-direction:column; transition:background .2s,border-color .2s; }
.content-card--link:hover { border-color:var(--aqua); background:var(--soft); }
.content-card-link { margin-top:auto; padding-top:22px; color:var(--aqua); font-size:.75rem; font-weight:600; }
.form-wrap { max-width:760px; margin:auto; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label { display:block; font-size:.78rem; font-weight:500; }
input,select,textarea { width:100%; border:1px solid var(--line); border-radius:0; padding:13px; margin-top:7px; font:inherit; font-size:.9rem; background:white; }
textarea { min-height:160px; resize:vertical; }
.full { grid-column:1/-1; }

@media (max-width:850px) { .nav-links { display:none; } .nav-cta { margin-right:0; } .nav-cta a { width:80px; } .hero { grid-template-columns:1fr; } .hero-image { min-height:310px; order:-1; } .hero-copy { padding:50px 20px 62px; } .purpose-grid,.property-grid,.data-grid,.area-list,.content-grid { grid-template-columns:1fr 1fr; } .property-categories { grid-template-columns:repeat(4,1fr); } .property-categories a:nth-child(5) { border-left:1px solid var(--line); } .purpose-card:nth-child(3) { border-left:1px solid var(--line); } .data-card:nth-child(3) { border-left:1px solid rgba(255,255,255,.25); } .area-list a:nth-child(3n+1) { border-left:0; padding-left:0; } .area-list a:nth-child(2n+1) { border-left:1px solid var(--line); padding-left:22px; } .feature-grid { grid-template-columns:1fr; gap:0; } .feature-image { min-height:380px; } }
@media (max-width:560px) { html { -webkit-text-size-adjust:100%; } body { padding-bottom:calc(76px + env(safe-area-inset-bottom)); } .container { width:min(100% - 32px,var(--max)); } header { height:64px; } .brand { font-size:1rem; } .nav-cta { height:64px; } .nav-cta a { display:none; } .nav-cta a:last-child { display:grid; width:72px; font-size:.62rem; } .hero { min-height:auto; } .hero-image { min-height:265px; } .hero-copy { padding:38px 16px 48px; } .hero h1 { font-size:2.15rem; margin-top:13px; } .hero p { font-size:.86rem; } .news-section { padding-top:56px; } .news-list a { grid-template-columns:1fr; gap:2px; align-content:center; min-height:76px; padding:12px 0; font-size:.83rem; } .news-entry { padding:26px 0; } .news-entry h2 { font-size:1.16rem; line-height:1.55; } section { padding:72px 0; } .section-header { display:block; margin-bottom:30px; } .section-header p { margin-top:15px; } .purpose-grid,.property-grid,.data-grid,.area-list,.content-grid,.form-grid { grid-template-columns:1fr; } .property-categories { grid-template-columns:1fr 1fr; margin-bottom:30px; } .property-categories a { min-height:58px; font-size:.8rem; } .property-categories a:nth-child(odd) { border-left:1px solid var(--line); } .purpose-card,.purpose-card:nth-child(3),.data-card,.data-card:nth-child(3),.area-list a,.area-list a:nth-child(2n+1) { border-left:1px solid var(--line); } .purpose-card { min-height:175px; } .feature-image { min-height:290px; margin:0 -16px; } .feature-copy { padding:0; } .data-card { border-left-color:rgba(255,255,255,.25); min-height:180px; } .area-list a,.area-list a:nth-child(3n+1),.area-list a:nth-child(2n+1) { padding-left:18px; } .property-grid { row-gap:32px; } .property-meta { padding-bottom:0; } .contact-band { padding:55px 0; } .contact-band .container { display:block; } .contact-band .button { margin-top:25px; } .footer-top { display:block; } .footer-links { margin-top:25px; gap:15px; } .mobile-search { display:block; padding:16px 0 0; } .mobile-search-panel { padding:28px 20px 20px; background:var(--soft); border:1px solid var(--line); } .mobile-search h2 { margin-top:7px; font-size:1.72rem; } .mobile-search p { margin:6px 0 18px; color:var(--muted); font-size:.82rem; } .mobile-search-links { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); margin-bottom:14px; background:var(--paper); } .mobile-search-links a { min-height:52px; display:grid; place-items:center; border-right:1px solid var(--line); font-size:.78rem; font-weight:600; } .mobile-search-links a:last-child { border-right:0; } .mobile-full { width:100%; min-height:56px; } input,select,textarea { min-height:52px; font-size:16px; } .mobile-dock { position:fixed; display:grid; grid-template-columns:1fr 1fr; z-index:50; bottom:0; left:0; right:0; height:calc(64px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); background:#fff; border-top:1px solid var(--line); } .mobile-dock a { display:grid; place-items:center; font-size:.75rem; font-weight:600; } .mobile-dock a:last-child { background:var(--navy); color:#fff; } .page-hero { min-height:280px; padding:48px 0; } }
