:root{
--ink:#3a3733;
--sub:#333333;
--line:#e3e8ea;
--bg:#fbfafa;
--paper:#ffffff;
--accent:#6ea3ae;
--accent2:#9ec6cf;
--accent-soft:#cedee3;
--soft:#eaf2f4;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
font-family:"Noto Sans JP",sans-serif;
color:var(--ink);
background:var(--bg);
line-height:1.9;
font-weight:300;
-webkit-font-smoothing:antialiased;
overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.serif{font-family:"Cormorant Garamond",serif}
.mincho{font-family:"Noto Serif JP",serif}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
section{position:relative}
.eyebrow{
font-family:"Cormorant Garamond",serif;
font-size:13px;letter-spacing:.35em;color:var(--accent);
text-transform:uppercase;font-weight:500;
}
.sec-head{ margin-bottom:46px }
.sec-head h2{
font-family:"Cormorant Garamond",serif;
font-size:44px;font-weight:500;letter-spacing:.04em;line-height:1.1;
margin-top:6px;color:var(--ink);
}
.sec-head .ja{ font-size:12px;letter-spacing:.3em;color:var(--sub);margin-top:8px }
header{
position:fixed;top:0;left:0;right:0;z-index:100;
display:flex;align-items:center;justify-content:space-between;
padding:14px 32px;
background:rgba(251,250,247,.78);
backdrop-filter:blur(10px);
border-bottom:1px solid rgba(230,225,216,.6);
transition:padding .3s;
}
.logo{display:flex;align-items:center;gap:11px}
.logo .mark{
width:46px;height:46px;border-radius:50%;
background:radial-gradient(circle at 50% 38%,#ffd27a 0%,#f4a23c 45%,#e07a2c 100%);
position:relative;flex-shrink:0;
box-shadow:0 3px 10px rgba(224,122,44,.25);
}
.logo .mark::before{
content:"";position:absolute;inset:0;border-radius:50%;
background:
radial-gradient(circle at 50% 64%,#fff 0 18%,transparent 19%),
conic-gradient(from 0deg,transparent 0 8deg,rgba(255,255,255,.55) 8deg 10deg,transparent 10deg 38deg,rgba(255,255,255,.55) 38deg 40deg,transparent 40deg);
mix-blend-mode:screen;opacity:.9;
}
.logo .mark::after{
content:"";position:absolute;left:50%;top:62%;transform:translate(-50%,-50%);
width:13px;height:13px;border-radius:50%;border:2px solid #fff;
}
.logo .name{line-height:1.15}
.logo .name b{font-family:"Noto Serif JP",serif;font-weight:500;font-size:20px;letter-spacing:.18em}
.logo .name span{display:block;font-size:9px;letter-spacing:.32em;color:var(--sub)}
.logo-img{height:56px;width:auto;display:block}
.foot-logo .logo-img{height:auto}
nav.main{display:flex;align-items:center;gap:26px}
nav.main a.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;position:relative}
nav.main a.nav-item b{font-family:"Cormorant Garamond",serif;font-size:15px;letter-spacing:.12em;font-weight:500}
nav.main a.nav-item span{font-size:9px;letter-spacing:.18em;color:var(--sub)}
nav.main a.nav-item::after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:1px;background:var(--accent);transition:.3s;transform:translateX(-50%)}
nav.main a.nav-item:hover::after{width:100%}
.actions{display:flex;align-items:center;gap:10px}
.btn{
display:inline-flex;align-items:center;gap:8px;
font-size:12px;letter-spacing:.12em;padding:11px 20px;border-radius:30px;
border:1px solid var(--line);background:var(--paper);transition:background-color .3s,color .3s,border-color .3s;white-space:nowrap;
}
.btn svg{width:15px;height:15px}
.btn.web:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.tel{background:var(--soft);border-color:transparent}
.btn.tel:hover{background:var(--accent);color:#fff}
.burger{display:none;flex-direction:column;gap:5px;width:30px;cursor:pointer;background:none;border:none;padding:6px}
.burger span{height:1.5px;background:var(--ink);transition:.3s}
nav.main .menu-only{display:none}
.hero-gallery{position:absolute;inset:0}
.hero-gallery-mobile{display:none}
@media(max-width:900px){.hero-gallery-desktop{display:none}.hero-gallery-mobile{display:block}}
.hero{position:relative;height:88vh;min-height:560px;margin-top:84px;overflow:hidden;background:#14130f}
.hero-slides{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.hero-slides::-webkit-scrollbar{display:none}
.hero-slide{flex:0 0 100%;min-width:0;height:100%;scroll-snap-align:start;scroll-snap-stop:always}
.hero-slide img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.hero-controls{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:8px}
.hero-dots{display:flex;align-items:center;max-width:calc(100vw - 136px);overflow-x:auto;scrollbar-width:none}
.hero-dot{flex-shrink:0}
.hero-dot{display:grid;place-items:center;width:36px;height:44px;padding:0;border:0;background:transparent;cursor:pointer}
.hero-dot span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);box-shadow:0 1px 4px #0005;transition:background-color .2s,transform .2s}
.hero-dot[aria-current="true"] span{background:#fff;transform:scale(1.3)}
.hero-autoplay{position:absolute;left:calc(100% + 8px);width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#0003;color:#fff;cursor:pointer;font-size:16px}
.hero-autoplay[hidden]{display:none}
.hero-overlay{position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(180deg,rgba(15,14,11,.42),rgba(15,14,11,.58))}
.hero-copy{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;pointer-events:none}
.hero-copy :is(h1,.hero-heading){font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(28px,5.2vw,58px);letter-spacing:.14em;text-shadow:0 6px 30px rgba(0,0,0,.5);line-height:1.45}
.hero-title-mobile{display:none}
@media(max-width:900px){.hero-title-desktop{display:none}.hero-title-mobile{display:inline}}
.hero-copy p{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;letter-spacing:.28em;margin-top:18px;font-size:clamp(15px,2vw,24px);text-shadow:0 2px 14px rgba(0,0,0,.6)}
.hero-scroll{position:absolute;left:50%;bottom:80px;transform:translateX(-50%);z-index:6;color:#fff;font-family:"Cormorant Garamond",serif;letter-spacing:.25em;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.85;pointer-events:none}
.hero-scroll::after{content:"";width:1px;height:46px;background:linear-gradient(#fff,transparent);animation:scrollLine 2.2s ease-in-out infinite}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.1%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:900px){.hero-autoplay{display:none}.hero{height:75svh;min-height:440px}}
.campaign{padding-top:96px;padding-bottom:96px}
.cmp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.cmp-featured{display:grid;grid-template-columns:.82fr 1.18fr;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 32px 70px -44px rgba(0,0,0,.3)}
.cmp-ph{overflow:hidden;min-height:360px}
.cmp-ph img{width:100%;height:100%;object-fit:cover;transition:.9s}
.cmp-featured:hover .cmp-ph img{transform:scale(1.04)}
.cmp-info{padding:48px 46px}
.cmp-badge{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:15px;letter-spacing:.08em;color:var(--accent)}
.cmp-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cmp-deadline{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.06em;color:#b5683c;background:#fbeee3;border:1px solid #f0d6c2;border-radius:30px;padding:5px 13px;font-weight:500}
.cmp-deadline::before{content:"";width:6px;height:6px;border-radius:50%;background:#e07a2c;box-shadow:0 0 0 0 rgba(224,122,44,.5);animation:cmpPulse 1.8s infinite}
@keyframes cmpPulse{0%{box-shadow:0 0 0 0 rgba(224,122,44,.5)}70%{box-shadow:0 0 0 7px rgba(224,122,44,0)}100%{box-shadow:0 0 0 0 rgba(224,122,44,0)}}
.cmp-info time{display:block;font-family:"Cormorant Garamond",serif;color:var(--sub);font-size:13px;margin:8px 0 2px;letter-spacing:.06em}
.cmp-info h3{font-family:"Noto Serif JP",serif;font-weight:600;font-size:clamp(20px,2.4vw,27px);line-height:1.5;margin:6px 0 16px}
.cmp-info>p{font-size:13.5px;color:var(--sub);line-height:2;margin-bottom:22px}
.cmp-detail{list-style:none;border-top:1px solid var(--line);margin-bottom:24px}
.cmp-detail li{font-size:12.5px;color:var(--ink);padding:12px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;line-height:1.7}
.cmp-detail li b{flex:0 0 52px;font-weight:500;color:var(--accent);font-size:11px;letter-spacing:.08em;padding-top:3px}
.cmp-cta{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;text-decoration:none;font-size:13px;letter-spacing:.1em;padding:15px 38px;border-radius:30px;transition:.3s}
.cmp-cta span{transition:.3s}
.cmp-cta:hover{background:var(--accent)}
.cmp-cta:hover span{transform:translateX(5px)}
@media(max-width:780px){.cmp-featured{grid-template-columns:1fr}.cmp-ph{min-height:0;aspect-ratio:4/3}.cmp-info{padding:32px 24px}}
.cmp-card{background:var(--paper);border:1px solid var(--line);transition:.4s}
.cmp-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(0,0,0,.25)}
.cmp-card .ph{aspect-ratio:4/3;overflow:hidden}
.cmp-card .ph img{width:100%;height:100%;object-fit:cover;transition:.6s}
.cmp-card:hover .ph img{transform:scale(1.06)}
.cmp-card .body{padding:18px 18px 22px}
.cmp-card time{font-family:"Cormorant Garamond",serif;font-size:13px;color:var(--accent);letter-spacing:.1em}
.cmp-card h3{font-size:14px;font-weight:400;margin-top:7px;line-height:1.7}
.sec-arrows{position:absolute;top:96px;right:28px;display:flex;gap:8px}
.sec-arrows button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;color:var(--sub);transition:.3s}
.sec-arrows button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.about{position:relative;padding:84px 0 96px;background:url(images/About_image.webp) center/cover;overflow:hidden}
.about::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(244,246,246,.88),rgba(244,246,246,.93))}
.about-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center}
.about-head{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(26px,3.4vw,38px);letter-spacing:.14em;line-height:1.6;color:var(--ink);margin-bottom:12px;text-shadow:0 1px 10px rgba(255,255,255,.6)}
.sp-br{display:none}
.about-brand{font-family:"Noto Serif JP",serif;font-weight:500;letter-spacing:.5em;font-size:21px;color:var(--accent);margin-bottom:42px;padding-left:.5em}
.plan-post{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 auto;text-align:left;box-shadow:0 12px 32px rgba(65,101,110,.12),0 3px 8px rgba(65,101,110,.06)}
.plan-post-header{display:flex;align-items:center;gap:12px;padding:16px 20px}
.plan-post-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--soft);color:var(--accent);font-family:"Noto Serif JP",serif;font-size:17px}
.plan-post-name{font-family:"Noto Serif JP",serif;color:var(--ink);font-size:14px;font-weight:500;letter-spacing:.18em}
.plan-post-photo{display:block;width:100%;height:auto}
.plan-post-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.plan-post-slides::-webkit-scrollbar{display:none}
.plan-post-slide{flex:0 0 100%;min-width:0;aspect-ratio:1;scroll-snap-align:start;scroll-snap-stop:always;background:var(--soft)}
.plan-post-slide .plan-post-photo{height:100%;aspect-ratio:1;object-fit:cover;object-position:center}
.plan-post-dots{display:flex;justify-content:center;flex-wrap:wrap;padding:6px 12px 0}
.plan-post-dot{display:grid;place-items:center;width:32px;height:36px;padding:0;border:0;background:none;cursor:pointer}
.plan-post-dot span{width:6px;height:6px;border-radius:50%;background:var(--accent-soft);transition:background-color .2s,transform .2s}
.plan-post-dot[aria-current="true"] span{background:var(--accent);transform:scale(1.3)}
.plan-post-caption{padding:18px 22px 24px}
.plan-post-icons{display:flex;align-items:center;color:var(--accent);margin-bottom:14px;pointer-events:none}
.plan-post-icons svg{width:22px;height:22px}
.plan-post-save{margin-left:auto}
.about-copy{font-size:13.5px;color:var(--ink);line-height:1.9;text-align:left;margin:0}
.about-inner .label{font-family:"Cormorant Garamond",serif;letter-spacing:.3em;color:var(--accent);font-size:14px;margin-top:24px}
.scene{padding-top:96px;padding-bottom:96px}
.scene-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:stretch;height:min(68vh,580px)}
.scene-grid figure{position:relative;overflow:hidden;cursor:pointer}
.scene-big{height:100%}
.scene-right{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:18px}
.scene-right figure{aspect-ratio:auto;height:100%}
.scene-grid img{width:100%;height:100%;object-fit:cover;transition:.7s}
.scene-grid figure:hover img{transform:scale(1.07)}
.scene-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 18px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.scene-grid figcaption b{font-family:"Cormorant Garamond",serif;font-size:20px;letter-spacing:.05em;display:block}
.scene-grid figcaption span{font-size:11px;letter-spacing:.2em;opacity:.85}
.scene-grid figure.soon{cursor:default}
.scene-grid figure.soon img{filter:saturate(.5) brightness(.8)}
.scene-grid figure.soon:hover img{transform:none}
.soon-badge{position:absolute;top:14px;left:14px;z-index:3;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:12px;letter-spacing:.12em;color:#fff;background:rgba(20,19,15,.5);border:1px solid rgba(255,255,255,.55);border-radius:30px;padding:5px 14px;backdrop-filter:blur(2px)}
.plan{padding-top:56px;padding-bottom:96px}
.plan-teaser{max-width:640px;margin:32px auto 0;text-align:center}
.pt-base{margin-top:24px;margin-bottom:6px}
.pt-label{font-family:"Noto Serif JP",serif;font-size:14px;letter-spacing:.28em;color:var(--sub)}
.pt-price{display:flex;align-items:baseline;justify-content:center;gap:6px;line-height:1;margin:6px 0 2px}
.pt-price b{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(58px,12vw,98px);color:var(--accent);letter-spacing:.01em}
.pt-price i{font-style:normal;font-family:"Noto Serif JP",serif;font-size:clamp(24px,5vw,40px);color:var(--ink)}
.pt-tax{font-size:13px;color:var(--sub);letter-spacing:.08em}
.pt-desc{font-size:15.5px;color:var(--ink);line-height:2;margin:26px 0 0}
.pt-desc strong{font-weight:500;color:var(--accent);border-bottom:2px solid var(--accent-soft);padding-bottom:1px}
.pt-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:28px 0 0}
.pt-chips span{font-size:12.5px;letter-spacing:.04em;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:30px;padding:8px 16px;box-shadow:0 4px 10px rgba(65,101,110,.13)}
.plan-post .pt-base{text-align:center}
.pt-cond{font-size:11.5px;color:var(--sub);line-height:1.9;margin:26px auto 0;max-width:560px}
.pt-btn{display:inline-flex;align-items:center;gap:12px;margin-top:34px;background:var(--ink);color:#fff;text-decoration:none;font-size:14px;letter-spacing:.12em;padding:17px 50px;border-radius:34px;transition:.3s}
.pt-btn span{transition:.3s}
.pt-btn:hover{background:var(--accent)}
.pt-btn:hover span{transform:translateX(5px)}
@media(max-width:540px){.plan-post-header{padding:12px 16px}.plan-post-caption{padding:14px 16px 20px}.pt-desc{font-size:14px}}
.plan-lead{text-align:center;max-width:700px;margin:0 auto 12px;font-size:14px;color:var(--ink);line-height:2}
.plan-lead b{font-family:"Noto Serif JP",serif;font-weight:500;color:var(--accent)}
.plan-cond{text-align:center;max-width:660px;margin:0 auto 54px;font-size:12px;color:var(--sub);line-height:1.9}
.plan-item{display:grid;grid-template-columns:1fr 1.05fr;gap:50px;align-items:center;padding:44px 0;border-top:1px solid var(--line)}
.plan-item:last-of-type{border-bottom:1px solid var(--line)}
.plan-item-photo{aspect-ratio:4/3;overflow:hidden}
.plan-item-photo img{width:100%;height:100%;object-fit:cover;transition:.7s}
.plan-item:hover .plan-item-photo img{transform:scale(1.04)}
.plan-item h3{font-family:"Noto Serif JP",serif;font-weight:500;font-size:25px;letter-spacing:.1em;color:var(--ink);margin-bottom:14px}
.plan-item-body p{font-size:13.5px;color:var(--sub);line-height:2;margin-bottom:26px}
.plan-detail{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:300px;background:none;border:none;border-bottom:1px solid var(--ink);padding:0 2px 12px;cursor:pointer;font-family:inherit;font-size:13px;letter-spacing:.1em;color:var(--ink);transition:.3s}
.plan-detail .pm{font-size:18px;line-height:1;color:var(--accent);transition:.3s}
.plan-detail:hover{color:var(--accent);border-color:var(--accent)}
.plan-detail:hover .pm{transform:rotate(90deg)}
.pmodal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.pmodal.open{display:flex}
.pmodal-bg{position:absolute;inset:0;background:rgba(20,19,15,.55)}
.pmodal-box{position:relative;z-index:2;background:#fff;max-width:560px;width:100%;max-height:86vh;overflow-y:auto;padding:46px 40px;box-shadow:0 30px 80px -18px rgba(0,0,0,.5);animation:pmIn .35s ease}
@keyframes pmIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.pmodal-box h3{font-family:"Noto Serif JP",serif;font-weight:500;font-size:23px;letter-spacing:.08em;margin-bottom:4px}
.pmodal-box .pm-sub{font-family:"Cormorant Garamond",serif;font-size:12px;color:var(--accent);letter-spacing:.2em;margin-bottom:26px}
.pmodal-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border:1px solid var(--line);background:none;border-radius:50%;cursor:pointer;font-size:17px;color:var(--sub);transition:.3s}
.pmodal-close:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.pm-cat{font-size:11px;letter-spacing:.18em;color:var(--accent);margin:26px 0 2px}
.pm-cat:first-of-type{margin-top:0}
.pm-row{display:grid;grid-template-columns:1fr auto;column-gap:18px;row-gap:3px;padding:15px 0;border-bottom:1px solid var(--line)}
.pm-row .nm{grid-column:1;grid-row:1;font-size:14.5px;font-weight:500;color:var(--ink)}
.pm-row .nt{grid-column:1;grid-row:2;font-size:11.5px;color:var(--sub);line-height:1.6}
.pm-row .pr{grid-column:2;grid-row:1/3;align-self:center;text-align:right;white-space:nowrap}
.pm-row .pr b{font-family:"Cormorant Garamond",serif;font-size:21px;font-weight:500;color:var(--ink)}
.pm-row .pr span{display:block;font-size:10.5px;color:var(--sub)}
.pm-note{font-size:11.5px;color:var(--sub);line-height:1.85;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.line-btn{display:inline-flex;align-items:center;gap:14px;font-family:"Cormorant Garamond",serif;letter-spacing:.18em;font-size:15px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:6px;transition:.3s}
.line-btn:hover{gap:22px;color:var(--accent);border-color:var(--accent)}
.flow{padding:96px 0;background:linear-gradient(180deg,var(--bg),var(--soft))}
.flow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.flow-card{background:var(--paper);border:1px solid var(--line)}
.flow-card .ph{aspect-ratio:4/3;overflow:hidden}
.flow-card .ph img{width:100%;height:100%;object-fit:cover}
.flow-card .body{padding:20px 20px 26px}
.flow-card .step{font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.2em;color:var(--accent)}
.flow-card h3{font-size:15px;font-weight:500;margin:6px 0 10px}
.flow-card p{font-size:12.5px;color:var(--sub);line-height:1.95}
.booth{padding-top:96px;padding-bottom:96px}
.booth-main{aspect-ratio:2/1;overflow:hidden;margin-bottom:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.booth-main figure{overflow:hidden;height:100%}
.booth-main img{width:100%;height:100%;object-fit:cover;transition:.8s}
.booth-main figure:hover img{transform:scale(1.03)}
.booth .title-over{font-family:"Cormorant Garamond",serif;font-size:40px;letter-spacing:.05em;margin-bottom:30px}
.np{padding-top:56px;padding-bottom:96px;display:grid;grid-template-columns:minmax(0,1fr);gap:80px}
.np>section{min-width:0}
.news ul{border-top:1px solid var(--line);list-style:none}
.news li a{display:grid;grid-template-columns:120px 110px 1fr;gap:18px;align-items:center;padding:20px 4px;border-bottom:1px solid var(--line);transition:.3s}
.news li a:hover{background:var(--paper);padding-left:14px}
.news time{font-family:"Cormorant Garamond",serif;color:var(--accent);font-size:14px;letter-spacing:.06em}
.news .cat{font-size:10.5px;letter-spacing:.15em;color:var(--sub);border:1px solid #a39a8c;border-radius:20px;padding:4px 0;text-align:center}
.news .ttl{font-size:14px;font-weight:300}
.journal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.journal-grid article .ph{aspect-ratio:1/1;overflow:hidden}
.journal-grid img{width:100%;height:100%;object-fit:cover;transition:.6s}
.journal-grid article:hover img{transform:scale(1.06)}
.journal-grid time{font-family:"Cormorant Garamond",serif;color:var(--accent);font-size:12px;display:block;margin-top:14px}
.journal-grid h3{font-size:13.5px;font-weight:300;margin-top:6px;line-height:1.7}
.more{display:inline-block;margin-top:34px;font-family:"Cormorant Garamond",serif;letter-spacing:.2em;border-bottom:1px solid var(--ink);padding-bottom:5px;transition:.3s}
.more:hover{color:var(--accent);border-color:var(--accent)}
.row-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px}
.access{padding:96px 0;background:var(--soft)}
.access-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:54px;align-items:center}
.access-map iframe{width:100%;height:360px;border:0;filter:grayscale(.3) contrast(.95)}
.access-info dl{display:grid;grid-template-columns:88px 1fr;row-gap:18px;margin-top:28px;font-size:14px}
.access-info dt{color:var(--accent);font-family:"Cormorant Garamond",serif;letter-spacing:.12em}
.access-info dd{color:var(--ink)}
.access-info .gmap{margin-top:30px}
.faq{padding-top:96px;padding-bottom:96px;text-align:center}
.faq-list{max-width:780px;margin:0 auto;text-align:left}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:flex;gap:18px;align-items:center;padding:24px 6px;cursor:pointer;font-size:24px;font-weight:400}
.faq-q .q{font-family:"Cormorant Garamond",serif;color:var(--accent);font-size:20px}
.faq-q .ico{margin-left:auto;width:18px;height:18px;position:relative;flex-shrink:0}
.faq-q .ico::before,.faq-q .ico::after{content:"";position:absolute;background:var(--sub);transition:.3s}
.faq-q .ico::before{top:50%;left:0;width:100%;height:1.5px;transform:translateY(-50%)}
.faq-q .ico::after{left:50%;top:0;height:100%;width:1.5px;transform:translateX(-50%)}
.faq-item.open .ico::after{transform:translateX(-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{padding:0 6px 26px 44px;font-size:16px;color:#333333}
.contact{position:relative;padding:120px 0;text-align:center;color:#fff;overflow:hidden}
.contact .bg{position:absolute;inset:0;background:url(images/FV_IMAGE_01.webp) center/cover;filter:brightness(.45)}
.contact .inner{position:relative;z-index:2}
.contact h2{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(40px,6vw,64px);font-weight:500}
.contact p{letter-spacing:.2em;margin:18px 0 40px;font-weight:300;font-family:"Noto Serif JP",serif}
.contact .cta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.contact .cta a{padding:16px 40px;border:1px solid rgba(255,255,255,.6);border-radius:34px;letter-spacing:.14em;font-size:13px;transition:.3s;backdrop-filter:blur(2px)}
.contact .cta a.fill{background:#fff;color:var(--ink);border-color:#fff}
.contact .cta a:hover{background:var(--accent);border-color:var(--accent);color:#fff}
footer{background:#211f1c;color:#cfc8bd;padding:64px 0 30px}
.foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-logo .name b{color:#fff}
.foot-nav{display:flex;gap:46px;flex-wrap:wrap}
.foot-nav .col b{font-family:"Cormorant Garamond",serif;letter-spacing:.16em;color:#fff;font-size:14px;display:block;margin-bottom:14px}
.foot-nav .col a{display:block;font-size:12.5px;color:#a9a194;margin-bottom:9px;transition:.3s}
.foot-nav .col a:hover{color:#fff}
.copy{text-align:center;margin-top:26px;font-family:"Cormorant Garamond",serif;font-size:11px;letter-spacing:.2em;color:#7d766b}
.mbar{
position:fixed;left:0;right:0;bottom:0;z-index:120;display:none;
grid-template-columns:minmax(0,1fr) minmax(0,140px);align-items:center;gap:10px;
width:auto;min-width:0;max-width:100vw;margin:0;box-sizing:border-box;
padding:10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
background:rgba(251,250,247,.94);backdrop-filter:blur(10px);
border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(0,0,0,.3);
}
.mbar .mbar-note{min-width:0;max-width:100%;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.mbar .mbar-note b{display:block;font-family:"Noto Serif JP",serif;font-weight:500;font-size:12.5px;color:var(--ink);letter-spacing:.04em}
.mbar .mbar-note span{display:block;font-size:10.5px;color:var(--accent);letter-spacing:.04em}
.mbar a.mbar-cta{
width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:7px;
background:var(--ink);color:#fff;font-size:13px;letter-spacing:.1em;
padding:13px 16px;border-radius:30px;white-space:normal;overflow-wrap:anywhere;transition:.3s;
}
.mbar a.mbar-cta:hover{background:var(--accent)}
.mbar a.mbar-cta svg{flex:0 0 15px}
@media(max-width:900px){.mbar{display:grid}body{padding-bottom:var(--mbar-height,calc(140px + env(safe-area-inset-bottom)))}}
@media(max-width:540px){.mbar{grid-template-columns:minmax(0,1fr);gap:6px}.mbar .mbar-note{text-align:center}.mbar a.mbar-cta{padding:10px 12px}}
@media(max-width:900px){
.mbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}
.mbar .mbar-note{grid-column:1/-1;text-align:center}
.mbar a.mbar-cta{height:100%;min-height:44px;padding:10px 8px;font-size:12px;letter-spacing:.02em}
.mbar a.mbar-contact{background:var(--soft);color:var(--ink);border:1px solid var(--accent-soft)}
.mbar a.mbar-contact:hover{background:var(--accent);color:#fff}
}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media(max-width:1080px){
nav.main .nav-item span{display:none}
}
@media(max-width:900px){
nav.main{
position:fixed;top:0;right:0;height:100vh;width:280px;max-width:100%;flex-direction:column;
background:var(--paper);padding:90px 34px;gap:6px;align-items:flex-start;
box-shadow:-20px 0 60px -30px rgba(0,0,0,.3);transition:opacity .2s ease;z-index:99;opacity:0;pointer-events:none;overflow-y:auto;
}
nav.main.open{right:0;opacity:1;pointer-events:auto}
nav.main a.nav-item{flex-direction:row;gap:10px;width:100%;padding:14px 0;border-bottom:1px solid var(--line)}
nav.main a.nav-item span{display:inline;color:var(--sub)}
nav.main .menu-only{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:24px}
nav.main .menu-only .btn{width:100%;justify-content:center}
.actions .btn{display:none}
.burger{display:flex;z-index:101}
body.menu-open .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
}
@media(max-width:1024px){
.sec-head h2{font-size:36px}
.plan{padding-top:84px}
.cmp-grid,.flow-grid,.journal-grid{display:flex;overflow-x:auto;gap:16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:14px}
.cmp-grid>*,.flow-grid>*,.journal-grid>*{flex:0 0 76%;max-width:300px;scroll-snap-align:start}
.sp-br{display:inline}
.about-inner,.access-inner{grid-template-columns:1fr;gap:40px}
.booth-main{aspect-ratio:3/2;grid-template-columns:1fr;grid-template-rows:1fr 1fr}
.hero::before,.hero::after{display:none}
.sec-arrows{display:none}
}
@media(max-width:700px){
.scene-grid{grid-template-columns:1fr;height:auto}
.scene-big{aspect-ratio:16/10;height:auto}
.scene-right{grid-template-columns:1fr 1fr;grid-template-rows:auto}
.scene-right figure{aspect-ratio:1/1;height:auto}
.plan-item{grid-template-columns:1fr;gap:22px}
.plan-item-body{order:2}
.plan-item-photo{order:1}
}
@media(max-width:540px){
.wrap{padding:0 18px}
.campaign,.plan,.np{padding-top:100px}
header{padding:12px 18px}
.hero{padding:96px 0 50px}
.film{padding:20px 12px}
.cmp-grid,.flow-grid,.journal-grid{grid-template-columns:1fr}
.news li a{grid-template-columns:1fr;gap:6px;text-align:left}
.news .cat{width:max-content;padding:4px 14px}
.faq-q{font-size:17px}
.faq-a p{font-size:15px}
.sp-br{display:inline}
.logo .name b{font-size:17px}
.contact .cta{flex-direction:column;padding:0 28px}
.contact .cta a{width:100%}
}
.reveal{opacity:1;transform:none}
section[id]{scroll-margin-top:110px}
.faq-q{width:100%;text-align:left;background:none;border:0;color:inherit;font-family:inherit;line-height:inherit;cursor:pointer}
.faq-item.open .faq-a{max-height:none}
.faq-a[hidden]{display:none}
.faq-a{max-height:none}
a:focus-visible,button:focus-visible{outline:2px solid #6ea3ae;outline-offset:5px}
@media(max-width:900px){nav.main{visibility:hidden}nav.main.open{visibility:visible}body.menu-open{overflow:hidden}}
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}
@media(max-width:600px){.admin-bar header{position:absolute}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:540px){.hero-copy :is(h1,.hero-heading){font-size:26px;letter-spacing:.08em}.hero-copy p{letter-spacing:.1em}.booth-main{aspect-ratio:auto}.booth-main figure{aspect-ratio:3/2}}
.profile { padding-block: 88px; background: var(--soft); }
.profile-inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 80px); align-items: center; max-width: 1040px; }
.profile-photo { padding: 10px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; }
.profile-photo img { display: block; width: 100%; height: auto; border-radius: 4px; }
.profile-copy { min-width: 0; }
.profile-role { margin: 0 0 8px; font-size: 13px; letter-spacing: .12em; color: var(--accent); }
.profile-copy .sec-head { margin-bottom: 30px; }
.profile-copy .sec-head h2 { font-family: "Noto Serif JP", serif; font-size: clamp(22px, 3vw, 30px); line-height: 1.6; letter-spacing: .12em; }
.profile-name { font-family: "Noto Serif JP", serif; font-size: 25px; font-weight: 500; letter-spacing: .1em; padding-bottom: 22px; border-bottom: 1px solid var(--accent-soft); }
.profile-name span { display: block; font-family: "Cormorant Garamond", serif; font-size: 18px; font-weight: 400; letter-spacing: .08em; color: var(--accent); margin-top: 6px; }
.profile-bio { margin-top: 24px; font-size: 14px; line-height: 2.1; overflow-wrap: anywhere; }
.profile-bio p + p { margin-top: 14px; }
@media (max-width: 780px) {
.profile { padding-block: 64px; }
.profile-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
.profile-photo { width: 100%; max-width: 340px; margin-inline: auto; }
.profile-copy { width: 100%; max-width: 540px; margin-inline: auto; }
}
.flow .sec-head::after,
.faq .sec-head::after,
.p-hero::after {
content: "";
display: block;
width: 38px;
height: 1px;
margin: 24px auto 0;
background: var(--accent);
}
.flow { padding-block: 104px; }
.flow-grid { gap: 28px; }
@media(min-width:1025px){.flow-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.flow-card{min-width:0}}
.flow-card {
padding: 10px;
border-radius: 10px;
box-shadow: 0 12px 30px -24px var(--accent);
}
.flow-card .ph { border-radius: 5px; }
.flow-card .body { padding: 22px 14px 20px; }
.flow-card .step {
display: inline-block;
padding-bottom: 6px;
border-bottom: 1px solid var(--accent-soft);
}
.flow-card h3 { margin-top: 14px; }
.booth .title-over { display: flex; align-items: center; gap: 24px; }
.booth .title-over::after {
content: "";
height: 1px;
flex: 1;
background: var(--line);
}
.booth-main { gap: 22px; }
.booth-main figure { border-radius: 8px; }
.news ul { border-top-color: var(--accent-soft); }
.news li a { padding-block: 26px; }
.news .cat { border-color: var(--accent-soft); background: var(--soft); }
.journal-grid article {
padding: 10px 10px 22px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
}
.journal-grid article .ph { border-radius: 4px; }
.journal-grid time, .journal-grid h3 { margin-inline: 8px; }
@media (min-width: 1025px) {
.journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
}
.access-map {
min-width: 0;
padding: 10px;
border: 1px solid var(--accent-soft);
border-radius: 8px;
background: var(--paper);
}
.access-map iframe { display: block; border-radius: 3px; }
.access-info { min-width: 0; }
.access-info dl { padding-top: 24px; border-top: 1px solid var(--accent-soft); }
.access-info dd { min-width: 0; overflow-wrap: anywhere; }
.faq-list { max-width: 840px; }
.faq-item {
margin-bottom: 12px;
padding-inline: 22px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--paper);
}
.faq-item.open { border-color: var(--accent-soft); }
.faq-q { font-size: 19px; gap: 16px; padding-block: 23px; }
.faq-q .q { flex: 0 0 24px; }
.faq-a p { padding-left: 46px; line-height: 2; }
.contact .inner {
width: calc(100% - 56px);
max-width: 900px;
margin-inline: auto;
padding: 48px 24px;
border-block: 1px solid rgba(255, 255, 255, .4);
}
.p-hero { padding-top: 88px; padding-bottom: 64px; }
.reference-about .polaroid {
border-color: var(--line);
border-radius: 8px;
padding: 14px 14px 24px;
box-shadow: 0 16px 40px -26px var(--accent);
}
.reference-about .polaroid img { border-radius: 4px; }
.reference-about .about-copy { margin: 24px 10px 4px; line-height: 2; }
.reference-plans .basebar { margin-inline: auto; }
.reference-plans .pblock-photo { border-radius: 8px; }
.reference-plans .pblock { gap: 48px; padding-block: 72px; }
.reference-plans .ptable { border-top-color: var(--accent-soft); }
.reference-plans .ptable .pr { padding-block: 20px; }
.reference-plans .p-cta { background: var(--soft); }
@media (max-width: 780px) {
.flow-grid, .journal-grid { display: grid; grid-template-columns: minmax(0, 1fr); overflow: visible; }
.flow-grid > *, .journal-grid > * { min-width: 0; max-width: none; width: 100%; }
.row-head { gap: 16px; flex-wrap: wrap; }
.access-inner { grid-template-columns: minmax(0, 1fr); }
.pblock > *, .opt-cols > *, .about-inner > * { min-width: 0; max-width: 100%; }
.foot-top > *, .foot-nav, .foot-nav .col { min-width: 0; max-width: 100%; }
.foot-nav a { overflow-wrap: anywhere; }
.pt-btn { max-width: 100%; padding-inline: 24px; justify-content: center; }
.flow { padding-block: 76px; }
.booth-main { gap: 16px; }
.faq-item { padding-inline: 14px; }
.faq-q { font-size: 16px; gap: 10px; }
.faq-a p { padding-left: 6px; font-size: 14px; }
.contact { padding-block: 80px; }
.contact .inner { width: calc(100% - 36px); padding: 36px 0; }
.contact p { padding-inline: 12px; }
.contact .cta { padding-inline: 16px; }
.p-hero { padding-top: 64px; padding-bottom: 48px; }
.reference-plans .pblock { gap: 26px; padding-block: 48px; }
}
.ori-home-addition{padding-top:40px;padding-bottom:40px;max-width:900px;overflow-wrap:anywhere}
.ori-home-addition h2{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(20px,3vw,28px);margin-bottom:20px;line-height:1.7}
.ori-home-addition p{font-size:14px;line-height:2;margin:0 0 1em}
.news li .news-row{display:grid;grid-template-columns:120px 110px minmax(0,1fr);gap:18px;align-items:center;padding:26px 4px;border-bottom:1px solid var(--line)}
.news li div.news-row{cursor:default}
.news-categories{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.news .news-categories .cat,.news-meta .news-categories .cat{display:inline-block;max-width:100%;padding:4px 12px;overflow-wrap:anywhere;line-height:1.7}
.news .ttl{overflow-wrap:anywhere}
.news-index{padding-bottom:96px;min-height:35vh}
.news-detail{max-width:900px;padding-bottom:96px}
.news-article-heading{border-block:1px solid var(--line);padding-block:26px;margin-bottom:36px}
.news-meta{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:18px}
.news-meta time{font-family:"Cormorant Garamond",serif;color:var(--accent);font-size:14px;letter-spacing:.06em}
.news-meta .cat{padding:4px 18px;font-size:10.5px;letter-spacing:.15em;border:1px solid var(--accent-soft);background:var(--soft);border-radius:20px}
.news-article-heading h1{font-family:"Noto Serif JP",serif;font-size:clamp(23px,3vw,34px);font-weight:500;line-height:1.7;overflow-wrap:anywhere}
.news-content{font-size:15px;line-height:2.1;overflow-wrap:anywhere;display:flow-root}
.news-content p,.news-content figure,.news-content ul,.news-content ol,.news-content blockquote{margin-bottom:1.6em}
.news-content h2,.news-content h3,.news-content h4{margin:1.8em 0 .8em;font-family:"Noto Serif JP",serif;line-height:1.6}
.news-content ul,.news-content ol{padding-left:1.5em;border:0}
.news-content ul{list-style:disc}
.news-content a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.news-content img{max-width:100%;height:auto}.news-content iframe,.news-content video{max-width:100%}
.news-content blockquote{padding:16px 24px;border-left:2px solid var(--accent);background:var(--soft)}
.news-content table{width:100%;border-collapse:collapse}.news-content td,.news-content th{padding:10px;border:1px solid var(--line)}
.news-content pre{overflow:auto;max-width:100%}
.news-back{display:inline-block;margin-top:48px;padding-bottom:8px;border-bottom:1px solid var(--accent-soft);font-size:13px;letter-spacing:.08em}
.reference-news .nav-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:40px}
.reference-news .page-numbers{padding:8px 14px;border:1px solid var(--line);border-radius:4px}
.reference-news .page-numbers.current{background:var(--soft)}
@media(max-width:540px){.news li .news-row{grid-template-columns:1fr;gap:8px;padding:22px 4px}.news-index,.news-detail{padding-bottom:64px}.news-meta{gap:16px}.news-content{font-size:14px}}
.journal-grid .blog-card-link,.journal-grid .blog-card-static{display:block;height:100%;min-width:0}
.journal-grid h3{overflow-wrap:anywhere}
.blog-photo-placeholder{display:grid;place-items:center;width:100%;height:100%;background:var(--soft);color:var(--accent);font-family:"Cormorant Garamond",serif;font-size:32px;letter-spacing:.08em}
.blog-featured{margin-bottom:36px}.blog-featured img{width:100%;height:auto;border-radius:8px}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
.blog-grid>article{width:100%;min-width:0;max-width:none}
@media(max-width:1024px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.blog-grid{grid-template-columns:minmax(0,1fr)}}
