@font-face{font-family:Pretendard;font-weight:400;font-display:swap;src:url(../fonts/Pretendard-Regular.otf)}
@font-face{font-family:Pretendard;font-weight:600;font-display:swap;src:url(../fonts/Pretendard-SemiBold.otf)}
@font-face{font-family:Pretendard;font-weight:700;font-display:swap;src:url(../fonts/Pretendard-Bold.otf)}
:root{--cream:#f7f3ec;--navy:#1c2733;--mint:#7cc4b5;--sub:rgba(28,39,51,.62);--line:rgba(28,39,51,.1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:Pretendard,sans-serif;background:var(--cream);color:var(--navy);line-height:1.65;letter-spacing:-.01em;overflow-x:hidden;word-break:keep-all}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;color:#fff;overflow:hidden;background:var(--navy)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,26,35,.55) 0%,rgba(18,26,35,.35) 30%,rgba(18,26,35,.62) 55%,rgba(18,26,35,.9) 100%)}
.hero-in{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;padding:calc(22px + env(safe-area-inset-top)) 26px calc(26px + env(safe-area-inset-bottom))}
.logo{height:34px;width:auto}
.hero-copy{margin:auto 0}
.eyebrow{font-size:11px;letter-spacing:.32em;color:var(--mint);font-weight:600;margin-bottom:18px}
.slogan{font-size:clamp(27px,8vw,34px);font-weight:700;line-height:1.35;letter-spacing:-.03em;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.promise{margin-top:18px;font-size:15px;line-height:1.75;color:rgba(255,255,255,.86)}
.hero-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cta{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border-radius:16px;font-weight:600;font-size:16px}
.cta.call{background:#fff;color:var(--navy)}
.cta.book{background:var(--mint);color:var(--navy)}
.icons{display:flex;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
.icons a{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10.5px;color:rgba(255,255,255,.8);flex:1;text-align:center;line-height:1.3}
.icons a svg{width:22px;height:22px}
/* sections */
.sec{padding:88px 24px}
.sec.alt{background:#efe9df}
.sec.dark{background:var(--navy);color:#fff}
.label{font-size:11px;letter-spacing:.34em;font-weight:600;color:#4f9e8f;margin-bottom:12px}
.dark .label{color:var(--mint)}
h2{font-size:27px;font-weight:700;letter-spacing:-.03em;margin-bottom:36px;line-height:1.3}
.promises{list-style:none;display:grid;gap:14px}
.pc{background:#fff;border-radius:22px;padding:28px 24px;box-shadow:0 8px 30px rgba(28,39,51,.06)}
.pc .num{display:block;font-size:44px;line-height:1;color:var(--mint);margin-bottom:16px;font-weight:400}
.pc h3{font-size:18px;font-weight:700;line-height:1.45;margin-bottom:12px}
.pc p{font-size:14.5px;color:var(--sub)}
.care{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.care li{border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:26px 18px;display:flex;flex-direction:column;gap:18px;font-weight:600;font-size:16px}
.care svg{width:38px;height:38px;color:var(--mint);stroke-width:1.3}
.gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 8px;scroll-padding:0 24px;scrollbar-width:none}
.gallery::-webkit-scrollbar{display:none}
.gallery figure{flex:0 0 78%;scroll-snap-align:start;position:relative;border-radius:22px;overflow:hidden}
.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gallery figcaption{position:absolute;left:16px;bottom:14px;color:#fff;font-size:13px;font-weight:600;background:rgba(28,39,51,.45);backdrop-filter:blur(6px);padding:5px 12px;border-radius:99px}
.visit .way-main{font-size:20px;font-weight:700}
.visit .addr{color:var(--sub);margin-top:4px;font-size:15px}
.btn{display:inline-flex;align-items:center;gap:8px;margin-top:20px;height:50px;padding:0 20px;border-radius:14px;background:var(--navy);color:#fff;font-weight:600;font-size:15px}
.hours{margin-top:44px;background:#fff;border-radius:22px;padding:24px}
.mini{font-size:13px;color:var(--sub);font-weight:600;margin-bottom:8px}
.htable{width:100%;border-collapse:collapse;font-size:15px}
.htable th{text-align:left;font-weight:600;padding:12px 0;width:34%;border-bottom:1px solid var(--line)}
.htable td{text-align:right;padding:12px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.htable b{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;background:#e2f2ee;color:#2f7d6f;padding:2px 8px;border-radius:99px;vertical-align:1px}
.closed-days{margin-top:14px;font-weight:600;color:#c0553f;font-size:14.5px;white-space:pre-line}
.posts{list-style:none;display:grid;gap:12px}
.posts a{display:grid;grid-template-columns:1fr auto;gap:10px 14px;align-items:end;background:#fff;border-radius:20px;padding:22px;box-shadow:0 8px 30px rgba(28,39,51,.06)}
.posts .tag{grid-column:1/-1;font-size:10.5px;letter-spacing:.26em;color:#4f9e8f;font-weight:600}
.posts strong{font-size:16.5px;line-height:1.5;font-weight:600}
.posts i{font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:15px}
/* footer */
.foot{background:var(--navy);color:rgba(255,255,255,.82);padding:64px 24px calc(120px + env(safe-area-inset-bottom));font-size:14.5px}
.mascot{width:108px;height:108px;object-fit:cover;border-radius:28px;margin-bottom:28px}
.foot-logo{height:28px;width:auto;margin-bottom:22px}
.foot .tel a{font-size:20px;font-weight:700;color:#fff}
.foot-t{margin-top:18px}
.foot-t th,.foot-t td{border-color:rgba(255,255,255,.12)}
.foot-t b{background:rgba(124,196,181,.18);color:var(--mint)}
.foot .closed-days{color:#f0a48f}
.foot-icons{margin-top:30px}
/* sticky bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(247,243,236,.72);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .35s ease}
.bar.show{transform:none}
.bar a{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;border-radius:14px;font-weight:600;font-size:15.5px}
.b-call{background:var(--navy);color:#fff}
.b-book{background:var(--mint);color:var(--navy)}
/* fade */
.js .fade{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .fade.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .fade{opacity:1;transform:none;transition:none}.bar{transition:none}}
@media (max-width:360px){.sec{padding:76px 20px}.hero-in{padding-left:22px;padding-right:22px}.gallery{margin:0 -20px;padding:0 20px 8px}.icons a{font-size:9.5px}}
@media (min-width:700px){body{max-width:480px;margin:0 auto;box-shadow:0 0 40px rgba(0,0,0,.08)}.bar{max-width:480px;margin:0 auto}}

/* ===== flashy +30% (2026-10-26) — mint only on buttons & title underline ===== */
.eyebrow,.label,.dark .label,.posts .tag{color:rgba(28,39,51,.55)}
.dark .label{color:rgba(255,255,255,.6)}
h2{position:relative;padding-bottom:16px}
h2::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;border-radius:3px;background:var(--mint)}
.slogan{letter-spacing:-.035em}
.js .slogan{animation:rise 1.6s cubic-bezier(.2,.7,.2,1) .2s both}
.js .promise{animation:rise 1.6s cubic-bezier(.2,.7,.2,1) .7s both}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.js .fade{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.sec{position:relative;overflow:hidden}
.sec:not(.dark):not(.alt){background:linear-gradient(180deg,#f9f6f0 0%,var(--cream) 100%)}
.sec.alt{background:linear-gradient(180deg,#f1ebe1 0%,#ece5d9 100%)}
.sec.dark{background:linear-gradient(165deg,#223040 0%,var(--navy) 60%,#18222c 100%)}
.sec>*{position:relative}
.pc{position:relative;border:1px solid rgba(28,39,51,.06);box-shadow:0 1px 2px rgba(28,39,51,.04),0 12px 32px rgba(28,39,51,.07);transition:transform .25s ease,box-shadow .25s ease}
.pc:active,.pc:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(28,39,51,.05),0 18px 40px rgba(28,39,51,.1)}
.pc .num{color:var(--navy);opacity:.85;font-size:40px}
.pc::before{content:"";position:absolute;top:28px;right:24px;width:30px;height:30px;background:var(--navy);opacity:.55;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.pc:nth-child(1){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M8.5 12.3l2.4 2.4 4.6-5'/%3E%3C/svg%3E")}
.pc:nth-child(2){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12s3.5-6 9-6 9 6 9 6-3.5 6-9 6-9-6-9-6z'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3C/svg%3E")}
.pc:nth-child(3){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4v6a3 3 0 0 0 3 3h9'/%3E%3Cpath d='M15 10l3 3-3 3'/%3E%3Cpath d='M6 13v7'/%3E%3C/svg%3E")}
.pc:nth-child(4){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v7a2.5 2.5 0 0 1-2.5 2.5H10l-4 4v-4h0a2 2 0 0 1-2-2z'/%3E%3Cpath d='M8.5 9h7M8.5 12h4.5'/%3E%3C/svg%3E")}

.care li{background:rgba(255,255,255,.04);transition:background .25s ease}
.care li:active,.care li:hover{background:rgba(255,255,255,.08)}
.care svg{color:rgba(255,255,255,.88)}
.gallery{gap:14px;padding-bottom:22px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.gallery figure{flex-basis:80%;border-radius:24px;box-shadow:0 14px 34px rgba(28,39,51,.16);scroll-snap-stop:always;transition:transform .3s ease}
.gallery figure:active{transform:scale(.985)}
.gallery figure:last-child{margin-right:24px}
.hours{box-shadow:0 1px 2px rgba(28,39,51,.04),0 12px 32px rgba(28,39,51,.07)}
.posts a{border:1px solid rgba(28,39,51,.06);transition:transform .25s ease,box-shadow .25s ease}
.posts a:active,.posts a:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(28,39,51,.1)}
.cta,.bar a,.btn{transition:transform .15s ease}
.cta:active,.bar a:active,.btn:active{transform:scale(.97)}
.btn{background:var(--mint);color:var(--navy)}
@media (prefers-reduced-motion:reduce){.js .slogan,.js .promise{animation:none}.pc,.posts a,.gallery figure,.cta,.bar a,.btn{transition:none}}
.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}

.care-links{display:flex;flex-direction:column;gap:8px;margin-top:-6px}.care-links small{font-size:12px;font-weight:600;color:var(--mint);letter-spacing:.02em}.care-links a{font-size:13px;font-weight:500;line-height:1.45;color:rgba(255,255,255,.82);text-decoration:none;border-top:1px solid rgba(255,255,255,.12);padding-top:8px}.care-links a:hover{color:#fff}

.gallery.tour{display:flex!important;grid-template-columns:none!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -20px;padding:0 20px 6px;scrollbar-width:none}.gallery.tour::-webkit-scrollbar{display:none}.gallery.tour figure{flex:0 0 84%;scroll-snap-align:center;margin:0}.gallery.tour img{width:100%;height:auto;aspect-ratio:4/3;max-height:55vh;object-fit:cover;border-radius:16px;display:block}.gallery.tour figcaption{font-size:13px;margin-top:8px;opacity:.85}.gallery.tour figcaption b{color:var(--mint);margin-right:4px}.tour-hint{font-size:12px;opacity:.6;margin-top:8px;text-align:right}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:12px}
.faq-item{background:#fff;border-radius:18px;box-shadow:0 1px 2px rgba(20,40,70,.05),0 8px 24px rgba(20,40,70,.07);padding:0 20px;overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 28px 18px 0;font-weight:600;font-size:16px;line-height:1.5;position:relative;color:#1f2f4a}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";position:absolute;right:4px;top:50%;width:8px;height:8px;border-right:2px solid #6cc4b0;border-bottom:2px solid #6cc4b0;transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-a{padding:0 0 18px;border-top:1px solid #eef0f2;padding-top:14px}
.faq-a p{margin:0 0 6px;font-size:15px;line-height:1.7;color:#4a5566}

.promise-head{position:relative;min-height:230px;margin-bottom:8px}.promise-head .label,.promise-head h2,.promise-head .director-cap{position:relative;z-index:1}.director{position:absolute;right:-20px;top:-28px;width:58%;max-width:300px;height:262px;margin:0;z-index:0;pointer-events:none}.director img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;display:block;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 45%),linear-gradient(to bottom,#000 60%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0%,#000 45%),linear-gradient(to bottom,#000 60%,transparent 100%);mask-composite:intersect;opacity:.92}.director-cap{margin-top:14px;font-size:13px;font-weight:600;color:var(--sub);letter-spacing:.02em}.director-cap::before{content:"";display:inline-block;width:14px;height:1px;background:var(--mint);vertical-align:middle;margin-right:8px}
.director{right:-6px}.director img{-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 42%,#000 52%,rgba(0,0,0,.6) 72%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 42%,#000 52%,rgba(0,0,0,.6) 72%,transparent 100%);-webkit-mask-composite:source-over;mask-composite:add;opacity:.95}
.director{top:-36px;height:290px}.director img{object-position:50% 20%;-webkit-mask-image:radial-gradient(ellipse 48% 47% at 50% 50%,#000 45%,rgba(0,0,0,.55) 70%,transparent 96%);mask-image:radial-gradient(ellipse 48% 47% at 50% 50%,#000 45%,rgba(0,0,0,.55) 70%,transparent 96%)}
.director img{object-position:50% 0}
.director{top:-40px;height:300px}.director img{object-position:50% 50%;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 58%,rgba(0,0,0,.6) 80%,transparent 99%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 58%,rgba(0,0,0,.6) 80%,transparent 99%)}
.director{top:-44px;height:auto;width:56%;max-width:240px;aspect-ratio:480/661}.director img{object-fit:fill;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 60%,rgba(0,0,0,.55) 80%,transparent 99%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 60%,rgba(0,0,0,.55) 80%,transparent 99%)}
.director{top:-26px;right:-4px;width:58%;max-width:250px;height:auto;aspect-ratio:1/1}.director img{object-fit:cover;-webkit-mask-image:radial-gradient(circle closest-side at 50% 50%,#000 70%,rgba(0,0,0,.5) 87%,transparent 100%);mask-image:radial-gradient(circle closest-side at 50% 50%,#000 70%,rgba(0,0,0,.5) 87%,transparent 100%)}
.director{top:4px}
