@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;600;700&display=swap");

:root{
  --bg:#EDF1E8;
  --card:#FBFAF3;
  --muted:#6c644f;
  --accent:#4d5b2e;
  --maxw:1100px;
}
*{box-sizing:border-box}
html{overflow-y:scroll}
body{font-family: "Zen Maru Gothic", "Noto Sans JP", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif; background:var(--bg); color:#1f1a14; margin:0}
.container{max-width:var(--maxw); margin:0 auto; padding:24px}
.site-header{background:var(--card); border-bottom:1px solid #e4e7dc}
.site-header .container{display:flex; align-items:center; gap:18px}
.brand{font-weight:700; color:var(--accent); text-decoration:none}
.main-nav a{margin-left:12px; color:var(--muted); text-decoration:none}
.card{background:var(--card); padding:18px; border-radius:8px; box-shadow:0 1px 0 rgba(45,34,18,0.04); margin-bottom:16px}
.hero{padding:36px; text-align:center}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px}
.listing{display:block; border-radius:6px; overflow:hidden; text-decoration:none; color:inherit; border:1px solid #e2e4d9}
.listing .thumb{height:140px; background:#ddd}
.listing .body{padding:10px}
.listing h4{margin:0 0 6px 0}
.messages{min-height:120px; max-height:420px; overflow:auto}
.two-col{display:flex; gap:12px}
.site-footer{padding:24px 0 18px; color:var(--muted)}
.footer-top{display:flex; flex-direction:column; gap:24px; align-items:flex-start}
.footer-brand{display:flex; flex-direction:column; align-items:flex-start; gap:10px; color:#6b7280; flex:0 0 200px}
.footer-logo{width:44px; height:44px}
.footer-brand small{font-size:12px; color:#6b7280}
.footer-social{display:flex; gap:10px}
.footer-social a{display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:999px; background:#f3eadb; color:#6b4f2b; transition:transform .2s ease, background .2s ease, color .2s ease}
.footer-social a:hover{transform:translateY(-1px); background:#e9dbc6; color:#4b3120}
@media(min-width:900px){.footer-top{flex-direction:row; align-items:flex-start; justify-content:space-between}}
.footer-links{width:100%; flex:1}
.footer-grid{display:grid; grid-template-columns:repeat(5,minmax(140px,1fr)); gap:16px; margin-top:4px}
.btn{padding:8px 12px; border-radius:6px; border:1px solid #e2e4d9; background:var(--card)}
.btn.primary{background:var(--accent); color:#fff; border-color:transparent}
.btn-primary{background:var(--brand-brown); color:#fff; border-radius:8px; padding:10px 16px; font-weight:600; border:1px solid var(--brand-brown)}
.btn-secondary{background:#fff; color:var(--brand-brown); border-radius:8px; padding:10px 16px; font-weight:600; border:1px solid var(--brand-brown)}
.btn-ghost{background:transparent; color:var(--brand-brown); border-radius:8px; padding:8px 12px; font-weight:600; border:1px solid transparent}
.breadcrumb{letter-spacing:.02em}
.breadcrumb-link{color:#6b7280; text-decoration:none}
.breadcrumb-link:hover{color:var(--brand-brown)}
.hero-bleed{width:100vw; margin-left:calc(50% - 50vw)}
.hero-wide{position:relative; min-height:360px; background-image:url('/assets/img/listings/P202500590南伊勢町相賀浦/img03.jpg'); background-size:cover; background-position:center}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.1))}
.hero-wide-inner{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:40px 24px}
.hero-copy{max-width:520px}
@media(max-width:700px){.hero-wide{min-height:300px}}
.kpi-card{background:linear-gradient(135deg, #fef8f0 0%, #f2e6d4 100%); border:1px solid #dbc8b1; border-radius:16px; padding:16px; text-align:center; box-shadow:0 10px 20px rgba(107,79,43,.12)}
.kpi-card .text-xs{font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:#7d6a58}
.kpi-card .text-lg{font-size:22px; font-weight:700; color:#3a2717; word-break:break-word; overflow-wrap:anywhere}
.kpi-metric{display:flex; align-items:baseline; justify-content:center; gap:6px}
.kpi-metric .kpi-value{font-size:40px; font-weight:700; color:#3a2717}
.kpi-metric .kpi-suffix{font-size:12px; color:#8b7b64}
.kpi-inline{display:flex; align-items:baseline; justify-content:center; gap:4px; color:#3a2717; white-space:nowrap; flex-wrap:nowrap}
.kpi-inline .kpi-value{font-size:34px; font-weight:700; line-height:1}
.kpi-inline .kpi-unit{font-size:11px; color:#7d6a58; letter-spacing:.02em; white-space:nowrap}
.kpi-card.kpi-center{display:flex; flex-direction:column; justify-content:center}
.section-card{background:var(--card); border-radius:14px; padding:20px; box-shadow:0 10px 30px rgba(77,91,46,.12)}
.sidebar-card{background:var(--card); border-radius:12px; padding:16px; border:1px solid #dde1d5}
.tag-pill{display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:10px; font-size:12px; font-weight:600; border:1px solid var(--tag-border, #e2e4d9); background:var(--tag-bg, #f3f4f6); color:var(--tag-text, #374151)}
.tag-pill.is-compact{font-size:11px; padding:3px 8px}
.listing-map{position:relative; height:420px; border-radius:16px; background:radial-gradient(circle at 40% 35%, #f7f5ee 0%, #efece2 45%, #e1e6dc 100%); border:1px solid #dde1d5; overflow:hidden}
.listing-map::before{content:""; position:absolute; inset:16px; border-radius:12px; background:linear-gradient(135deg, rgba(255,255,255,.6), rgba(227,231,216,.6)); border:1px dashed #d7d2c5}
.listing-map-base{position:absolute; inset:0; z-index:0}
.listing-map-pins{position:absolute; inset:0; z-index:2}
.map-island{position:absolute; background:rgba(197,208,191,.65); border:1px solid rgba(167,178,160,.8); box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.map-hokkaido{width:120px; height:90px; border-radius:38px; top:36px; left:66%}
.map-honshu{width:280px; height:150px; border-radius:60px; top:140px; left:40%; transform:rotate(-10deg)}
.map-shikoku{width:90px; height:50px; border-radius:30px; top:250px; left:52%}
.map-kyushu{width:130px; height:90px; border-radius:50px; top:260px; left:28%}
.map-okinawa{width:70px; height:40px; border-radius:24px; top:350px; left:20%}
.japan-map{position:absolute; inset:40px; width:calc(100% - 80px); height:calc(100% - 80px)}
.japan-map path{fill:rgba(197,208,191,.7); stroke:rgba(167,178,160,.9); stroke-width:6; vector-effect:non-scaling-stroke}
.kanban-board{display:flex; gap:16px; overflow-x:auto; padding-bottom:8px; align-items:flex-start}
.kanban-board::-webkit-scrollbar{height:8px}
.kanban-board::-webkit-scrollbar-thumb{background:#d7d2c5; border-radius:999px}
.kanban-board::-webkit-scrollbar-track{background:transparent}
.kanban-column{background:#faf9f5; border:1px solid #e6e1d8; border-radius:16px; padding:12px; min-height:220px; min-width:240px; flex:0 0 240px; display:flex; flex-direction:column}
.kanban-title{font-weight:600; color:#6B4F2B; font-size:14px; margin-bottom:8px}
.kanban-count{font-size:12px; color:#6B4F2B; background:#f3efe4; border-radius:999px; padding:2px 8px; margin-left:auto}
.kanban-items{display:flex; flex-direction:column; gap:10px}
.kanban-card{background:#fff; border:1px solid #e7e2d8; border-radius:12px; padding:10px; cursor:grab}
.kanban-card:active{cursor:grabbing}
.like-btn,.follow-btn{border:1px solid #e6e1d8; border-radius:999px; padding:4px 10px; background:#fff; font-size:12px}
.like-btn.is-active{background:#ffe8e0; border-color:#f4b6a5; color:#7a2e1c}
.follow-btn.is-active{background:#eef6f2; border-color:#9cc6b1; color:#2f5b4a}
.gallery-main{position:relative}
.gallery-nav{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.9); border:1px solid #e6e1d8; border-radius:999px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; font-size:18px}
.gallery-nav.prev{left:10px}
.gallery-nav.next{right:10px}
.gallery-zoom{cursor:zoom-in}
.gallery-modal{position:fixed; inset:0; background:rgba(12,14,18,.8); display:flex; align-items:center; justify-content:center; z-index:80; padding:24px}
.gallery-modal.hidden{display:none}
.gallery-modal-content{position:relative; max-width:960px; width:100%; background:#111; border-radius:16px; padding:16px; display:flex; align-items:center; justify-content:center}
.gallery-modal-content img{max-width:100%; max-height:80vh; object-fit:contain; border-radius:12px}
.gallery-modal-close{position:absolute; top:12px; right:12px; background:#fff; border-radius:999px; padding:6px 12px; font-size:12px}
.gallery-modal-nav{position:absolute; top:50%; transform:translateY(-50%); background:#fff; border-radius:999px; width:36px; height:36px; font-size:18px}
.gallery-modal-nav.prev{left:12px}
.gallery-modal-nav.next{right:12px}
.modal-overlay{position:fixed; inset:0; background:rgba(15,20,24,.55); display:flex; align-items:center; justify-content:center; padding:24px; z-index:50}
.modal-content{background:#fff; border-radius:16px; padding:24px; width:100%; max-height:90vh; overflow:auto; box-shadow:0 30px 80px rgba(0,0,0,.25)}
.listing-pin{position:absolute; display:flex; align-items:center; gap:6px; transform:translate(-50%, -50%); font-size:11px; color:#5c4632}
.listing-pin::before{content:""; width:8px; height:8px; border-radius:999px; background:#6B4F2B; box-shadow:0 0 0 3px rgba(107,79,43,.2)}
.listing-pin span{background:#fff; border:1px solid #d7d2c5; padding:3px 6px; border-radius:999px; font-weight:600; white-space:nowrap}
.listing-pin.is-small span{display:none}
.listing-pin.is-small:hover span{display:inline-flex; position:relative; top:-6px}
.data-table{width:100%; border-collapse:collapse; font-size:.9rem}
.data-table th{background:#eef1e5; color:var(--accent); text-align:left; padding:10px}
.data-table td{padding:10px; border-bottom:1px solid #dde1d5}
.data-table tbody tr:hover{background:#f7f7f0}
.status-chip{display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:600}
.status-published{background:#2f8f4e; color:#fff}
.status-pending{background:#f59e0b; color:#fff}
.status-draft{background:#94a3b8; color:#fff}
.toast{position:fixed; bottom:16px; right:16px; background:#2b251c; color:#fff; padding:10px 14px; border-radius:10px; box-shadow:0 12px 30px rgba(0,0,0,.2); z-index:50}
.trial-price-box{margin-top:10px; padding:12px 14px; border:2px solid #A67C52; border-radius:12px; background:#fff6eb; box-shadow:0 10px 24px rgba(107,79,43,.2)}
.trial-price-box .label{font-size:12px; color:#6b7280}
.trial-price-box .value{font-size:20px; font-weight:700; color:#6B4F2B}
.site-footer p.text-xs.text-gray-500{font-size:10px; color:#9aa0a6}
.btn-orange-lg{display:inline-flex; align-items:center; justify-content:center; padding:12px 28px; border-radius:999px; background:linear-gradient(135deg,#f08a2b,#f6b24f); color:#fff; font-weight:700; box-shadow:0 12px 28px rgba(240,138,43,.35); transition:transform .2s ease, box-shadow .2s ease}
.btn-orange-lg:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(240,138,43,.4)}
.btn-line{display:inline-flex; align-items:center; justify-content:center; padding:10px 22px; border-radius:999px; background:#06c755; color:#fff; font-weight:700; box-shadow:0 10px 24px rgba(6,199,85,.3); transition:transform .2s ease, box-shadow .2s ease}
.btn-line:hover{transform:translateY(-2px); box-shadow:0 14px 28px rgba(6,199,85,.35)}
.footer-col{min-width:0}
@media(max-width:1200px){.footer-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:960px){.footer-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:720px){.footer-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer-title{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#7b7f87; margin-bottom:6px}
.footer-col a{display:block; margin-top:4px}
.collapsible-block{position:relative}
.collapsible-content{position:relative; padding-bottom:56px}
.collapsible-content.is-collapsed{display:none}
.collapsible-preview{max-height:520px; overflow:hidden}
.permissions-preview{max-height:420px}
.collapsible-preview.is-expanded{max-height:none; overflow:visible}
.collapsible-fade{position:absolute; left:0; right:0; bottom:48px; height:120px; background:linear-gradient(to bottom, rgba(251,250,243,0), rgba(251,250,243,0.8) 55%, rgba(251,250,243,1)); pointer-events:none}
.collapsible-preview.is-expanded + .collapsible-fade{opacity:0}
.collapsible-actions{position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:flex-end; padding-top:8px}
.kanban-block .collapsible-content{padding-bottom:0}
.kanban-block .collapsible-actions{position:static; margin-top:12px}
.kanban-block .collapsible-fade{display:none}
.permissions-block .collapsible-preview{max-height:none; overflow:visible}
.permissions-block .collapsible-fade{display:none}
.permissions-block .collapsible-actions{position:static; margin-top:12px}
.footer-language{margin-top:12px}
.footer-language-links{display:flex; gap:12px; flex-wrap:wrap}
.video-hero{position:relative; border-radius:24px; overflow:hidden; min-height:320px; display:flex; align-items:center; padding:32px; background:#111}
.video-hero iframe{position:absolute; inset:-20% 0 0 0; width:100%; height:140%; pointer-events:none}
.video-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.35));}
.video-hero .hero-content{position:relative; z-index:2; max-width:520px; color:#fff}
.video-hero .hero-content h1{font-size:28px; font-weight:700; margin-bottom:8px}
.video-hero .hero-content p{font-size:14px; color:rgba(255,255,255,.85)}
.video-hero.hero-bleed{border-radius:0; min-height:540px; padding:72px 6vw; background:transparent}
.video-hero.hero-bleed iframe{inset:-35% -12% -20% -12%; width:124%; height:160%}
@media(max-width:900px){.video-hero.hero-bleed{min-height:460px; padding:56px 6vw}}
@media(max-width:700px){.video-hero.hero-bleed{min-height:380px; padding:40px 6vw}}
.clamp-2{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.chat-stack{display:flex; flex-direction:column; gap:12px}
.chat-message{display:flex; flex-direction:column; align-self:flex-start; max-width:72%}
.chat-message.is-mine{align-self:flex-end; text-align:right}
.chat-bubble{position:relative; background:#f7f5ee; border-radius:18px; padding:12px 14px; border:1px solid #e2e5d9}
.chat-message .chat-bubble::after{content:""; position:absolute; left:-6px; top:14px; border-width:6px 6px 6px 0; border-style:solid; border-color:transparent #f7f5ee transparent transparent}
.chat-message .chat-bubble::before{content:""; position:absolute; left:-7px; top:14px; border-width:6px 6px 6px 0; border-style:solid; border-color:transparent #e2e5d9 transparent transparent}
.chat-message.is-mine .chat-bubble{background:var(--accent); color:#fff; border-color:var(--accent)}
.chat-message.is-mine .chat-bubble::after{left:auto; right:-6px; border-width:6px 0 6px 6px; border-color:transparent transparent transparent var(--accent)}
.chat-message.is-mine .chat-bubble::before{left:auto; right:-7px; border-width:6px 0 6px 6px; border-color:transparent transparent transparent var(--accent)}
.chat-meta{font-size:11px; color:#6b7280; margin-top:6px}

.menu-overlay{position:fixed; inset:0; background:rgba(15,15,15,.35); display:none; z-index:60}
.menu-overlay.is-open{display:block}
.menu-panel{position:absolute; top:0; right:0; height:100%; width:min(420px, 100%); background:#fff; padding:24px; box-shadow:-20px 0 50px rgba(0,0,0,.15); overflow:auto}
.menu-close{width:36px; height:36px; border-radius:999px; border:1px solid #e5e7eb; display:flex; align-items:center; justify-content:center; background:#fff}
.menu-card{border-radius:16px; border:1px solid #f0f2f4; padding:16px; background:#fafafa}
.menu-link{display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #f1f3f5; color:#1f2937; text-decoration:none}
.menu-link:last-child{border-bottom:none}
.menu-link span{font-size:14px}
.account-icon{display:inline-flex; align-items:center; justify-content:center; border-radius:999px; border:1px solid #e5e7eb; padding:2px; background:#fff}
.account-icon img{object-fit:cover; object-position:center}
.footer-links{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; align-items:start}
@media(max-width:900px){.footer-links{grid-template-columns:repeat(2, minmax(0, 1fr))}}
@media(max-width:600px){.footer-links{grid-template-columns:1fr}}
.thread-item{display:flex; gap:10px; padding:12px; border-radius:12px; border:1px solid #f1f3f5; background:#fff}
.thread-item.active{border-color:#d6c7b0; box-shadow:0 8px 20px rgba(77,91,46,.08)}
.thread-avatar{height:40px; width:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff}
.verified-icon{display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:999px; background:#2f8f4e; color:#fff; font-size:10px; font-weight:700}
.pager{display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:center}
.pager button{border:1px solid #e2e4d9; background:#fff; color:#4b5563; padding:6px 10px; border-radius:999px; font-size:12px; min-width:32px; cursor:pointer}
.pager button.active{background:var(--brand-brown); color:#fff; border-color:var(--brand-brown)}
.pager button:disabled{opacity:.5; cursor:not-allowed}
.income-chart{position:relative; background:#f7f5ee; border-radius:16px; padding:16px; border:1px solid #e2e4d9}
.chart-tooltip{position:absolute; top:0; left:0; background:#1f2937; color:#fff; font-size:12px; padding:6px 10px; border-radius:999px; opacity:0; transform:translate(var(--tx, 0), var(--ty, 0)) translateY(6px); transition:opacity .2s ease, transform .2s ease; z-index:5; pointer-events:none; white-space:nowrap}
.chart-tooltip.is-visible{opacity:1; transform:translate(var(--tx, 0), var(--ty, 0)) translateY(0)}
.chart-point{fill:#6B4F2B; cursor:pointer}
.testimonial-avatar{width:36px; height:36px; border-radius:999px; object-fit:cover; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.15)}
.review-avatar{width:32px; height:32px; border-radius:999px; object-fit:cover; border:1px solid #eee}
@media(max-width:700px){.two-col{flex-direction:column}.site-header .container{flex-direction:column; align-items:flex-start}}
