/* さとゆめミートアップ /localwork/（旧 /meetup/）— v0.1 2026-09-27 */
:root{
  --red:#D12B38; --red-dk:#a91f2b; --red-bg:#fbf1f2; --red-soft:#f3d5d8;
  --ink:#222; --sub:#666; --line:#e7e2d3; --bg:#fff; --soft:#f6f2e3; --cream:#fefcf4;
  --gray:#b9b9b9; --gray-bg:#f0f0f0; --gray-ink:#8a8a8a;
  --max:1040px; --gutter:20px; --header-h:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{font-family:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;color:var(--ink);background:var(--bg);line-height:1.95;font-size:16px;letter-spacing:.04em;-webkit-font-smoothing:antialiased;word-break:normal;overflow-wrap:anywhere}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.en{font-family:"Barlow","Noto Sans JP",sans-serif;letter-spacing:.28em;text-transform:uppercase;color:var(--red);font-weight:600;font-size:12.5px}
.tagline-en{font-family:"Barlow","Noto Sans JP",sans-serif;font-weight:500;font-size:14px;letter-spacing:.22em;color:rgba(255,255,255,.85);margin:0 0 26px}
.ft-tagline{width:100%;font-family:"Barlow",sans-serif;font-size:12px;letter-spacing:.24em;color:#bbb;margin-top:6px}
.note{font-size:13px;color:var(--sub);line-height:1.8}
.center{text-align:center}
.nw{white-space:nowrap}
br.pc{display:none}
@media (min-width:900px){br.pc{display:inline}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:14px 32px;border-radius:999px;border:0;cursor:pointer;transition:background .2s,transform .1s;line-height:1.4}
.btn:hover{background:var(--red-dk)}
.btn:active{transform:translateY(1px)}
.btn.lg{font-size:17px;padding:18px 44px}
.btn.line{background:#fff;color:var(--red);border:1.5px solid var(--red)}
.btn.line:hover{background:var(--red-bg)}
.btn.disabled,.btn.pending{background:var(--gray);color:#fff;cursor:default;pointer-events:none}
.btn.line.disabled{background:#fff;color:var(--gray-ink);border-color:var(--gray)}
.btn svg{width:16px;height:16px;flex:none}

/* header */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--line);height:var(--header-h)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:100%}
.hd .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.hd .brand .lg{height:38px;width:auto}
.hd .brand .ttl{font-size:15px;font-weight:700;letter-spacing:.04em;border-left:1px solid var(--line);padding-left:12px;line-height:1.3}
.hd .btn{padding:10px 20px;font-size:14px}
br.sp{display:none}
@media (max-width:560px){.hd .brand .lg{height:32px}.hd .brand .ttl{display:none}.hd .btn{padding:9px 14px;font-size:13px;white-space:nowrap}}

/* sections */
section{padding:72px 0}
section.soft{background:var(--soft)}
section.red{background:var(--red-bg)}
.maru,.h2,.hero h1,.now-body h2,.region h3,.point h3,.flow h3,.navi .name,.card h3,.ended p{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
.en{display:block;text-align:center}
.h2{font-size:29px;font-weight:700;line-height:1.5;margin:4px 0 24px;text-align:center;letter-spacing:.14em}
.h2::after{content:"";display:block;width:56px;height:1px;background:var(--red);margin:16px auto 0}
.lead{font-size:16px;color:#333;max-width:880px;margin:0 auto 36px;text-align:center}
@media (max-width:640px){.lead{text-align:left}}
.hero h1 em{font-style:normal;color:var(--red)}
.btn.arrow::after{content:"";width:18px;height:10px;margin-left:6px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h16M12 1l4 4-4 4' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h16M12 1l4 4-4 4' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s}
.btn.arrow:hover::after{transform:translateX(4px)}
.ridge{display:block;width:100%;height:70px;fill:currentColor}
.ridge.to-white{color:#fff;background:var(--soft);margin-top:-1px}
.ridge-wrap{background:var(--soft);line-height:0}
.ridge.to-dark{color:#222}
@media (max-width:640px){.ridge{height:40px}}
@media (max-width:640px){section{padding:52px 0}.h2{font-size:23px}}

/* hero：写真格子（リリースKVと同じ8枚）＋白抜き見出し／下段＝今シーズン */
.hero{padding:0;background:#fff}
.hero-photo{position:relative;overflow:hidden;background:#1d1a17;color:#fff}
.hgrid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:3px}
.hgrid .hp{overflow:hidden}
.hgrid img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,18,10,.58) 0%,rgba(30,19,10,.66) 55%,rgba(24,15,9,.8) 100%)}
.hero-photo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 60% 55% at 50% 45%,rgba(255,190,110,.22),transparent 70%)}
.hero-photo .copy{position:relative;z-index:1;text-align:center;padding:110px var(--gutter) 110px}
.hero-photo .en{color:#fff;opacity:.9}
.hero h1{font-size:42px;line-height:1.6;font-weight:700;margin:14px 0 22px;letter-spacing:.12em;text-wrap:balance;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.hero h1 em{font-style:normal;color:#fff;background:linear-gradient(transparent 70%,rgba(209,43,56,.85) 70%);padding:0 .08em}
.hero .tag{font-size:15px;line-height:2.3;letter-spacing:.14em;color:rgba(255,255,255,.92);max-width:760px;margin:0 auto}
.now-wrap{background:linear-gradient(180deg,transparent 0,transparent 40px,var(--soft) 40px);padding:0 0 20px;margin-top:-40px;position:relative;z-index:2}
.now{margin:0 auto;max-width:1000px;background:#fff;border:1px solid var(--red);border-radius:20px;overflow:hidden;display:grid;grid-template-columns:1.15fr 1fr;box-shadow:0 14px 40px rgba(209,43,56,.10)}
.now-kv{background:#f3f2ef;display:flex;align-items:center;justify-content:center}
.now-kv img{width:100%;height:100%;object-fit:contain}
.now-body{padding:30px 34px 32px;display:flex;flex-direction:column;gap:12px}
.now-label{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--red);font-size:15px}
.now-label span{background:var(--red);color:#fff;padding:3px 12px;border-radius:999px;font-size:13px}
.now-body h2{font-size:19px;line-height:1.45;font-weight:700}
.now-body h2 strong{display:block;font-size:26px;color:var(--red)}
.season{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-weight:700;font-size:14.5px;margin-top:4px}
.season li{display:flex;align-items:flex-start;gap:7px}
.season li .t{flex:1;line-height:1.5}
.season li:first-child{grid-column:1/3}
.season li svg{width:17px;height:17px;color:var(--red);flex:none;margin-top:2px}
.now-note{font-size:14px;color:var(--sub)}
.now-body .cta{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.now-body .btn.lg{font-size:16px;padding:15px 34px}
@media (max-width:860px){.now{grid-template-columns:1fr}.now-kv img{height:auto}.now-body{padding:22px 20px 24px}}
@media (max-width:640px){.hgrid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}.hero-photo .copy{padding:64px var(--gutter) 72px}.now-wrap{margin-top:-32px;padding:0 0 30px;background:linear-gradient(180deg,transparent 0,transparent 32px,var(--soft) 32px)}.hero h1{font-size:24px;letter-spacing:.05em;margin-bottom:14px}.hero h1 .nw{white-space:normal}.hero .tag{font-size:14px;line-height:2.1;letter-spacing:.08em}.tagline-en{font-size:12px;letter-spacing:.16em}.now{border-radius:16px}.now-body h2{font-size:16px}.now-body h2 strong{font-size:22px}.season{grid-template-columns:1fr;font-size:14px}.season li:first-child{grid-column:auto}.hero .tag .nw{white-space:normal}.now-body .cta .btn{flex:1 1 100%}}

/* region cards */
.regions{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.region{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.region .ph{aspect-ratio:3/2;background:var(--red-soft);display:flex;align-items:flex-end;padding:18px 22px;color:var(--red-dk);font-weight:700;font-size:15px;position:relative;overflow:hidden}
.region .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.region .ph.is-map{padding:0;background:#FBF1F2}
.region .ph.is-map img{object-fit:contain}
.region .ph.is-map::after{display:none}
.region .ph.has-img{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.region .ph.has-img span{position:relative;z-index:1}
.region .ph.has-img::after{display:none}
.region .ph.has-img span.credit{position:absolute;right:10px;bottom:8px;font-size:10px;font-weight:400;color:#fff;opacity:.85;z-index:1;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.region .ph.has-img span.credit a{color:#fff}
.region .ph::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;border:14px solid rgba(255,255,255,.45)}
.region .ph.p2{background:#e8bcc1}.region .ph.p3{background:#f6e2e4}.region .ph.p4{background:#efcdd1}
.region .body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:12px;flex:1}
.region h3{font-size:22px;font-weight:700;line-height:1.3}
.region h3 small{display:block;font-size:12.5px;color:var(--sub);font-weight:500;letter-spacing:.06em}
.region .intro{font-size:14px;color:#444;line-height:1.75}
.region ul.mis{list-style:none;display:flex;flex-direction:column;gap:6px}
.region ul.mis li{padding-left:22px;position:relative;font-weight:500;line-height:1.6}
.region ul.mis li::before{content:"";position:absolute;left:0;top:10px;width:12px;height:12px;border-radius:50%;background:var(--red)}
.region .sess{font-size:13.5px;color:var(--sub);border-top:1px dashed var(--line);padding-top:10px}
.region .sess b{color:var(--ink)}
.region .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:4px}
.region .links .btn{padding:10px 18px;font-size:13.5px}
@media (max-width:720px){.regions{grid-template-columns:1fr}.region h3{font-size:20px}.region .ph{aspect-ratio:5/2;padding:14px 20px}.region .ph.is-map{aspect-ratio:3/2}.region .ph.has-img span.credit{top:6px;bottom:auto;right:8px;font-size:9px;max-width:none;white-space:nowrap;text-align:right;line-height:1.3}}

/* schedule */
.sched{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.sched table{width:100%;border-collapse:collapse;font-size:15.5px}
.sched th,.sched td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.sched th{background:var(--soft);font-size:13px;color:var(--sub);font-weight:700;letter-spacing:.04em}
.sched td.no{white-space:nowrap;font-weight:700;color:var(--red);width:84px}
.sched td.date{white-space:nowrap;font-weight:700;width:150px}
.sched tr.part td{background:var(--red-bg);color:var(--red-dk);font-weight:700;font-size:14px;padding:10px 16px}
.sched td.ttl a.go{display:inline-block;margin-left:10px;font-size:12.5px;font-weight:700;color:#fff;background:var(--red);border-radius:999px;padding:2px 12px;text-decoration:none;vertical-align:middle;white-space:nowrap}
.sched td.ttl a.go:hover{opacity:.85}
.sched tr.is-done td.ttl a.go{display:none}
.sched tr.is-done td{color:var(--gray-ink);background:#fafafa}
.sched tr.is-done td.no{color:var(--gray-ink)}
.sched tr.is-done td.date::after{content:"終了";font-size:11px;color:#fff;background:var(--gray);border-radius:4px;padding:1px 6px;margin-left:8px;vertical-align:middle;font-weight:500}
.sched tr.is-next td{background:#fff8f8}
.sched tr.is-next td.no::before{content:"次回";display:inline-block;font-size:11px;color:#fff;background:var(--red);border-radius:4px;padding:1px 7px;margin-right:8px;vertical-align:middle;font-weight:700}
.sched .foot{padding:16px 18px;font-size:13.5px;color:var(--sub);line-height:1.8;background:#fff}
.apply{margin-top:34px;text-align:center}
.apply p{margin-top:12px;font-size:14px;color:var(--sub);max-width:640px;margin-left:auto;margin-right:auto}
.ended{display:none;background:#fff;border:2px solid var(--red);border-radius:14px;padding:22px 24px;margin-bottom:26px;text-align:center}
.ended p{font-weight:700;font-size:17px;margin-bottom:12px}
body.is-season-over .ended{display:block}
body.is-season-over .apply{display:none}
@media (max-width:640px){
  .sched table{font-size:14px}.sched th{display:none}
  .sched tr{display:grid;grid-template-columns:auto 1fr;}
  .sched td{border-bottom:0;padding:6px 14px}
  .sched td.no{grid-column:1;padding-top:12px;width:auto}
  .sched td.date{grid-column:2;padding-top:12px;width:auto}
  .sched td.ttl{grid-column:1/3;padding-top:0;padding-bottom:12px;border-bottom:1px solid var(--line)}
  .sched tr.part{display:block}.sched tr.part td{display:block;border-bottom:1px solid var(--line)}
}

/* about / flow */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.point{background:#fff;border-radius:14px;padding:26px 22px;border:1px solid var(--line)}
.point .ic{width:44px;height:44px;border-radius:50%;background:var(--red-bg);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.point .ic svg{width:22px;height:22px;color:var(--red)}
.point h3{font-size:16.5px;margin-bottom:8px;line-height:1.5}
.point p{font-size:14.5px;color:#444}
@media (max-width:720px){.points{grid-template-columns:1fr}}
.flow{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.flow .step{background:#fff;border-radius:14px;border:1px solid var(--line);padding:24px}
.flow .time{display:inline-block;background:var(--red);color:#fff;font-weight:700;font-size:14px;padding:3px 12px;border-radius:999px;margin-bottom:12px;font-family:"Barlow","Noto Sans JP",sans-serif;letter-spacing:.04em}
.flow h3{font-size:18px;margin-bottom:4px}
.flow .who{font-size:12.5px;color:var(--red);font-weight:700;margin-bottom:8px}
.flow p{font-size:14.5px;color:#444}
@media (max-width:720px){.flow{grid-template-columns:1fr}}

/* navigator */
.navi{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:center;background:#fff;border-radius:16px;border:1px solid var(--line);padding:32px}
.navi img{width:220px;height:220px;border-radius:50%;object-fit:cover}
.navi .name{font-size:22px;font-weight:700;margin-bottom:4px}
.navi .role{font-size:13.5px;color:var(--sub);margin-bottom:14px}
.navi p{font-size:15px;color:#444}
.navi blockquote{margin-top:14px;border-left:4px solid var(--red);padding:4px 0 4px 16px;font-size:15px;color:var(--ink)}
@media (max-width:640px){.navi{grid-template-columns:1fr;text-align:center;padding:26px 20px}.navi img{margin:0 auto;width:170px;height:170px}.navi p:not(.name):not(.role),.navi blockquote{text-align:left}}

/* faq */
.faq{display:flex;flex-direction:column;gap:12px;max-width:820px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 20px}
.faq summary{cursor:pointer;list-style:none;padding:16px 28px 16px 0;font-weight:700;position:relative;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";color:var(--red);margin-right:8px}
.faq summary::after{content:"";position:absolute;right:4px;top:22px;width:9px;height:9px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:26px}
.faq .a{padding:0 0 18px;font-size:15px;color:#444;border-top:1px dashed var(--line);padding-top:12px}
.faq .a::before{content:"A.";color:var(--red);font-weight:700;margin-right:8px}

/* register */
.reg{background:#fff;border-radius:16px;border:1px solid var(--line);padding:32px;max-width:820px}
.reg .pending{background:var(--soft);border:1px dashed var(--gray);border-radius:12px;padding:22px;text-align:center;color:#444}
.reg .pending b{display:block;font-size:17px;margin-bottom:6px}
.reg{text-align:center}
.reg .reg-note{font-size:14px;color:var(--sub);margin-bottom:16px}
.reg iframe{width:100%;border:0;min-height:1150px}
@media (max-width:640px){.reg iframe{min-height:1250px}}
@media (max-width:640px){.reg{padding:22px 18px}}

/* about company / contact */
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.card{background:#fff;border-radius:14px;border:1px solid var(--line);padding:26px}
.card h3{font-size:17px;margin-bottom:10px}
.card p{font-size:15px;color:#444}
.card .links{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}
.card .links .btn{padding:10px 18px;font-size:13.5px}
.contact .tel{font-size:22px;font-weight:700;font-family:"Barlow","Noto Sans JP",sans-serif;letter-spacing:.02em}
.contact a.mail{word-break:break-all}
@media (max-width:720px){.two{grid-template-columns:1fr}}

/* footer */
.ft{background:#222;color:#ddd;padding:36px 0 28px;font-size:13px}
.ft .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.ft .logo img{height:40px;width:auto}
.ft nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.ft a{color:#ddd;text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft .copy{width:100%;color:#999;font-size:12px;margin-top:8px}

/* util */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hidden{display:none!important}

