:root{--ink:#4b3a30;--brown:#806a5a;--gold:#b9a27c;--cream:#f1ece4;--paper:#faf8f4;--line:#ddd7ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Serif JP",serif;font-size:14px;line-height:1.8}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.header{height:83px;padding:0 4vw;display:flex;align-items:center;gap:28px;background:var(--cream);position:relative;z-index:20}.logo{font:700 32px/1 "Cormorant Garamond",serif;letter-spacing:.04em}.nav{display:flex;gap:21px;margin-left:auto;font-size:13px}.line-button{display:flex;align-items:center;justify-content:center;gap:9px;color:#fff;background:var(--brown);border-radius:6px;padding:10px 28px;font-weight:600}.menu{display:none}.hero{height:643px;background:linear-gradient(var(--cream) 0 64%,var(--paper) 64%);position:relative;overflow:hidden}.hero-image{position:absolute;right:0;top:81px;width:68%;height:491px}.hero-copy{position:absolute;z-index:2;left:8.3%;top:190px}.hero h1{font-size:34px;line-height:1.65;letter-spacing:.08em;font-weight:600}.section{max-width:1140px;margin:auto;padding:120px 40px}.eyebrow{font:700 14px "Cormorant Garamond",serif;letter-spacing:.16em;color:var(--brown);margin:0 0 24px}h2{font-size:32px;line-height:1.6;letter-spacing:.04em;font-weight:600;margin:0 0 28px}.about{display:grid;grid-template-columns:1fr 1.08fr;gap:70px 90px;padding-top:150px}.about-collage{position:relative;height:520px}.about-treatment{position:absolute;width:58%;height:315px;left:0;bottom:0}.about-room{position:absolute;width:58%;height:320px;right:0;top:0}.about-copy p:not(.eyebrow){font-size:13px;margin:0 0 17px}.about-links{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.about-links a,.sub-links a{border:1px solid var(--gold);border-radius:6px;padding:14px 18px;display:grid;grid-template-columns:1fr auto}.about-links small{grid-column:1/-1;font:600 9px "Cormorant Garamond";letter-spacing:.12em}.about-links span{font-size:12px}.voice,.price{max-width:none;background:var(--cream);padding-left:max(40px,calc((100% - 1140px)/2));padding-right:max(40px,calc((100% - 1140px)/2))}.section-head>p:last-child{font-size:13px}.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:52px}.case{background:#fff}.comparison{display:grid;grid-template-columns:1fr 1fr;height:190px}.comparison figure{margin:0;position:relative;overflow:hidden;border-right:1px solid var(--line)}.comparison figcaption{position:absolute;inset:auto 10px 8px;font-size:9px;color:#fff;text-shadow:0 1px 4px #000}.case-body{padding:24px}.case-body small{font:700 10px "Cormorant Garamond";letter-spacing:.15em;color:var(--brown)}.case h3{font-size:16px;margin:8px 0 16px}.case dl{margin:0}.case dl div{display:grid;grid-template-columns:74px 1fr;padding:7px 0;border-top:1px solid var(--line);font-size:10px}.case dd{margin:0}.case blockquote{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line);font-size:10px}.disclaimer{text-align:center;font-size:9px;margin:28px 0}.outline-button{border:1px solid var(--gold);border-radius:6px;padding:12px 24px;display:table;margin:36px auto 0}.price{padding-top:110px}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:920px;margin:52px auto 0}.price-card{background:#fff;padding:44px 56px}.price-card.featured{background:#8b725f;color:white}.price-card>span{display:table;border-radius:100px;background:var(--gold);color:#fff;padding:2px 15px;font-size:11px}.featured>span{background:#fff;color:var(--brown)}.price-card h3{font-size:20px;margin:18px 0 0}.amount{border-bottom:1px solid currentColor;padding-bottom:24px;margin-top:0}.amount b{font-size:33px}.price-card ul{padding:0;list-style:none;font-size:12px;min-height:86px}.price-card a{display:table;margin:20px auto 0;background:var(--brown);color:#fff;border-radius:5px;padding:9px 20px;font-size:11px}.featured a{background:#fff;color:var(--ink)}.sub-links{display:flex;justify-content:center;gap:24px;margin-top:36px}.sub-links a{display:block;font-size:12px}.access{padding-top:130px}.shops{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:52px}.shop{padding:30px;background:#fff;border:1px solid var(--line)}.shop h3{font-size:20px;margin:0 0 20px}.shop dl div{display:grid;grid-template-columns:70px 1fr;border-top:1px solid var(--line);padding:10px 0;font-size:11px}.shop dt{color:var(--brown)}.shop dd{margin:0}.shop .line-button{margin-top:20px}.phone{display:block;text-align:center;border:1px solid #aaa;border-radius:5px;padding:8px;margin-top:10px}.contact{height:600px;background:linear-gradient(#4b2f20aa,#4b2f20aa),url("../images/contact.jpeg") center 45%/cover;color:#fff;display:grid;place-items:center;text-align:center}.contact h2{font-size:32px}.contact p:last-of-type{font-size:13px}.outline-button.light{color:#fff;border-color:#cdbb9d}.footer{max-width:1140px;margin:auto;padding:70px 40px 34px;display:grid;grid-template-columns:300px 1fr;gap:50px}.footer-brand p{font-size:11px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;font-size:12px}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;font-size:9px}.reveal{opacity:0;transform:translateY(18px);transition:.8s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.header{height:68px}.logo{font-size:27px}.nav,.header-cta{display:none}.menu{display:block;margin-left:auto;border:0;background:none;width:38px;height:38px}.menu span{display:block;height:1px;background:var(--ink);margin:8px}.menu[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.nav.open{display:flex;position:absolute;top:68px;left:0;right:0;background:var(--paper);padding:30px;flex-direction:column;align-items:center;box-shadow:0 10px 20px #0001}.hero{height:610px}.hero-image{top:0;width:88%;height:390px}.hero-copy{left:7%;top:390px}.hero h1{font-size:26px}.section{padding:90px 24px}.about{grid-template-columns:1fr;gap:50px}.about-collage{height:390px}.about-copy{max-width:620px}.about-links{grid-template-columns:1fr}.cases{overflow-x:auto;grid-template-columns:repeat(3,300px);padding-bottom:15px}.price-grid,.shops{grid-template-columns:1fr}.sub-links{flex-wrap:wrap}.contact{height:480px;padding:30px}.contact h2{font-size:24px}.footer{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:12px}}
@media(max-width:900px){.access>.outline-button{width:100%;display:flex;align-items:center;justify-content:center}}
@media(max-width:900px){
  .voice>.outline-button,
  .price .price-card>a{box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:center;text-align:center}
}
@media(max-width:520px){body{font-size:13px}.hero{height:540px}.hero-image{width:92%;height:325px}.hero-copy{top:330px}.hero h1{font-size:23px}.section{padding-top:72px;padding-bottom:72px}h2{font-size:25px}.about-collage{height:320px}.about-treatment{height:210px}.about-room{height:220px}.section-head br{display:none}.price-card{padding:34px 24px}.amount b{font-size:28px}.sub-links{display:grid}.shops{gap:18px}.shop{padding:22px}.shop dl div{grid-template-columns:58px 1fr}.contact h2{font-size:21px}.contact br{display:none}.footer-links{grid-template-columns:1fr 1fr}.footer{padding:50px 24px 30px}}

/* Figma FV alignment: node 52:133, desktop 1440px artboard */
.line-icon{display:block;width:24px;height:24px;object-fit:contain;flex:0 0 24px}.line-link{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center}
.header-logo{display:block;width:192px;height:52px;flex:0 0 192px;line-height:1}
.header-logo-image{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
@media(max-width:900px){.header-logo{width:155px;height:42px;flex-basis:155px}}
.footer-logo{display:block;width:215px;height:58px;line-height:1}
.footer-logo-image{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
@media(max-width:900px){.footer-logo{width:180px;height:49px}}
.phone-icon{display:block;width:24px;height:24px;object-fit:contain;flex:0 0 24px}
.about-treatment,.about-room{position:absolute;overflow:hidden}.about-treatment img,.about-room img{width:100%;height:100%;object-fit:cover}
@media(min-width:901px){
  .hero{height:700px;background:linear-gradient(var(--cream) 0 409px,var(--paper) 409px)}
  .hero-image{right:3.889vw;width:66.736vw;height:600px}
  .hero-copy{left:3.889vw;top:272px}
  .hero h1{margin:0;font-size:36px;line-height:1.5;letter-spacing:4px}

  .about{max-width:1440px;padding:150px;grid-template-columns:594px 492px;column-gap:55px;row-gap:64px;align-items:start}
  .about-collage{width:594px;height:auto;min-height:554px;align-self:stretch}
  .about-treatment{left:0;top:auto;bottom:0;width:290px;height:431px}
  .about-treatment img{position:absolute;left:-38.44%;top:.09%;width:198.05%;height:100%;max-width:none;object-fit:fill}
  .about-room{left:309px;right:auto;top:0;width:284px;height:424px}
  .about-room img{position:absolute;left:-26.46%;top:-16.53%;width:130.4%;height:116.56%;max-width:none;object-fit:fill}
  .about-copy{width:492px}
  .about-copy .eyebrow{font-size:20px;line-height:1.045;letter-spacing:2.42px;margin:0 0 40px}
  .about-copy h2{font-size:34px;line-height:1.5;letter-spacing:1px;white-space:nowrap;margin:0 0 32px}
  .about-copy p:not(.eyebrow){width:433px;font-size:16px;line-height:1.5;margin:0 0 24px}
  .about-copy p:nth-of-type(5){font-size:20px;font-weight:600}
  .about-copy p:last-child{margin-bottom:0}
  .about-links{width:1140px;grid-template-columns:repeat(3,1fr);gap:32px}
  .about-links a{padding:16px 24px;gap:4px 6px}
  .about-links small{font-size:10.4px;line-height:1.5;letter-spacing:1.56px}
  .about-links span{font-size:16px;font-weight:600;line-height:1.5;white-space:nowrap}

  .voice{box-sizing:border-box;width:calc(100% - 102px);max-width:none;margin:50px 102px 0 0;padding:100px 48px 100px max(150px,calc((100vw - 1440px)/2 + 150px));background:var(--cream)}
  .voice .section-head{width:1140px}
  .voice .section-head .eyebrow{font-size:20px;line-height:1.3;letter-spacing:2.42px;margin:0 0 20px}
  .voice .section-head h2{font-size:36px;line-height:1.5;letter-spacing:1.92px;margin:0 0 32px}
  .voice .section-head>p:last-child{font-size:16px;line-height:1.5;margin:0}
  .voice .cases{width:1140px;grid-template-columns:repeat(3,372px);gap:12px;margin-top:64px}
  .voice .case{width:372px;border:1px solid var(--line)}
  .voice .comparison{height:190px}
  .voice .comparison{height:auto;aspect-ratio:auto;align-items:start;background:#f7f4ef}
  .voice .comparison figure{display:block;width:auto;height:auto;background:#f7f4ef}
  .voice .comparison img{display:block;width:100%;height:auto;object-fit:contain}
  .voice .comparison figcaption{position:static;color:#746d65;text-shadow:none;font-family:sans-serif;font-size:13px;line-height:1.9;letter-spacing:.32px}
  .voice .case-body{padding:24px 26px;width:100%}
  .voice .case-body small{font-family:sans-serif;font-size:10px;line-height:1.9;letter-spacing:1.6px}
  .voice .case h3{font-family:"Noto Serif JP",serif;font-size:21px;font-weight:400;line-height:1.9;letter-spacing:.32px;margin:6px 0 18px}
  .voice .case dl div{grid-template-columns:66px 1fr;padding:4px 0;font-size:11px;line-height:1.9}
  .voice .case blockquote{margin:18px 0 0;padding:15px;border:0;background:var(--paper);font-size:12px;line-height:1.9}
  .voice .disclaimer{width:1140px;margin:24px 0 0;font-size:12px;line-height:1.75;color:#6e6962}
  .voice .outline-button{margin:64px auto 0;padding:16px 24px;font-size:16px;font-weight:600;line-height:1.5}

  .price{box-sizing:border-box;width:calc(100% - 102px);max-width:none;margin:0 102px 0 0;padding:100px 48px 100px max(150px,calc((100vw - 1440px)/2 + 150px));background:var(--cream)}
  .price .section-head{width:514px}
  .price .section-head .eyebrow{font-size:20px;line-height:1.3;letter-spacing:2.42px;margin:0 0 20px}
  .price .section-head h2{font-size:36px;line-height:1.5;letter-spacing:1.92px;margin:0 0 32px}
  .price .section-head>p:last-child{font-size:16px;line-height:1.3;margin:0;white-space:nowrap}
  .price .price-grid{width:1044px;grid-template-columns:repeat(2,509px);gap:26px;margin:64px 0 0}
  .price .price-card{box-sizing:border-box;width:509px;min-height:535px;padding:50px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line)}
  .price .price-card>span{padding:10px 24px;border-radius:28px;font-size:14px;line-height:19px;letter-spacing:1.6px}
  .price .price-card h3{font-size:25px;line-height:1.9;letter-spacing:.32px;margin:24px 0 0}
  .price .amount{width:100%;font-size:24px;line-height:1.5;letter-spacing:.32px;margin:0;padding:0 0 40px;border-bottom:1px solid currentColor;white-space:nowrap}
  .price .amount b{font-size:40px;line-height:1.5}
  .price .price-card ul{min-height:0;margin:30px 0 0;font-size:16px;line-height:1.5;letter-spacing:1.6px}
  .price .price-card a{margin:48px auto 0;padding:16px 24px;font-size:16px;line-height:1.5;border:1px solid var(--gold)}
  .price .sub-links{width:1044px;gap:32px;margin:64px 0 0;justify-content:center}
  .price .sub-links a{padding:16px 24px;font-size:16px;font-weight:600;line-height:1.5}

  .access{box-sizing:border-box;width:100%;max-width:1440px;margin:0 auto;padding:150px;background:var(--paper)}
  .access .section-head{width:514px}
  .access .section-head .eyebrow{font-size:20px;line-height:1.3;letter-spacing:2.42px;margin:0 0 20px}
  .access .section-head h2{font-size:36px;line-height:1.5;letter-spacing:1.92px;margin:0 0 32px;white-space:nowrap}
  .access .section-head>p:last-child{font-size:16px;line-height:1.3;margin:0}
  .access .shops{width:1050px;grid-template-columns:repeat(2,512px);gap:26px;margin:64px 0 0}
  .access .shop{box-sizing:border-box;width:512px;padding:33px 28px;border:1px solid var(--line)}
  .access .shop h3{font-size:24px;line-height:1.82;letter-spacing:.32px;margin:0 0 28px}
  .access .shop dl{width:454px;margin:0}
  .access .shop dl div{grid-template-columns:56px 1fr;column-gap:29px;padding:16px 0;font-size:16px;line-height:1.425;letter-spacing:.32px}
  .access .shop dl div:first-child{padding-top:0;border-top:0}
  .access .shop dt{font-size:12px}
  .access .shop .address-detail{display:grid;grid-template-columns:96px 1fr;column-gap:16px;margin:0}
  .access .shop .line-button{width:454px;height:53px;margin-top:28px;padding:8px 40px;border-radius:8px;font-size:16px;line-height:1.66;letter-spacing:.56px}
  .access .phone{width:454px;height:53px;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;padding:13px 23px;border-radius:8px;font-size:16px;font-weight:600;line-height:1.3;letter-spacing:.56px}
  .access>.outline-button{margin:64px auto 0;padding:16px 24px;font-size:16px;font-weight:600;line-height:1.5}

  .contact{box-sizing:border-box;width:100%;max-width:none;height:clamp(600px,45vw,860px);margin:0;padding:0 420px;background-image:url("../images/contact-bg.png");background-size:cover;background-position:center top;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center}
  .contact>div{width:600px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .contact .eyebrow{color:var(--paper);font-size:20px;line-height:1.3;letter-spacing:2.42px;margin:0 0 20px}
  .contact h2{font-size:36px;line-height:1.5;letter-spacing:1.92px;white-space:nowrap;margin:0 0 32px}
  .contact p:last-of-type{font-size:16px;line-height:1.5;white-space:nowrap;margin:0}
  .contact .outline-button{margin:64px auto 0;padding:16px 24px;font-size:16px;font-weight:600;line-height:1.5}

  .footer{box-sizing:border-box;width:100%;max-width:1440px;margin:0 auto;padding:80px 150px;display:flex;flex-direction:column;gap:80px;background:var(--paper)}
  .footer-main{width:1140px;display:flex;align-items:flex-start;gap:128px}
  .footer-brand{width:215px;display:flex;flex-direction:column;gap:18px}
  .footer-brand .logo{font-size:32px;line-height:25px;letter-spacing:1.25px}
  .footer-brand p{font-size:14px;line-height:1.63;letter-spacing:.32px;margin:0;white-space:nowrap}
  .footer-links{display:flex;grid-template-columns:none;gap:88px;font-size:16px;font-weight:600;line-height:1.3;letter-spacing:.32px}
  .footer-links>div{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
  .footer-links>div:nth-child(1){width:212px}
  .footer-links>div:nth-child(2){width:98px}
  .footer-links>div:nth-child(3){width:80px}
  .footer-links a{white-space:nowrap}
  .footer-bottom{box-sizing:border-box;width:1140px;grid-column:auto;border-top:1px solid var(--ink);padding-top:26px;display:flex;justify-content:space-between;align-items:flex-start;color:#aaa49d}
  .footer-bottom>div{display:flex;gap:20px}
  .footer-bottom a{font-family:sans-serif;font-size:10px;line-height:1.3;letter-spacing:.32px}
  .footer-bottom small{font-family:sans-serif;font-size:8px;line-height:1.9;letter-spacing:.32px}
}

@media(max-width:900px){
  .footer{display:block;padding:64px 24px;background:var(--paper)}
  .footer-main{display:flex;flex-direction:column;gap:48px}
  .footer-brand{display:flex;flex-direction:column;gap:12px}
  .footer-brand p{margin:0;font-size:12px}
  .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:36px 24px;font-size:13px}
  .footer-links>div{display:flex;flex-direction:column;gap:12px}
  .footer-bottom{margin-top:56px;display:flex;flex-direction:column;gap:20px;border-top:1px solid var(--line);padding-top:24px;color:#aaa49d;font-size:10px}
  .footer-bottom>div{display:flex;flex-wrap:wrap;gap:12px 20px}
}

.about-links small em{font-family:"Tinos",serif;font-style:normal;font-weight:400}
.case dl div:first-child{border-top:0}
.nav-list{display:flex;gap:21px;margin:0;padding:0;list-style:none}.nav-list a{display:block}.theme-message{padding:40px;border:1px solid var(--line);background:#fff;text-align:center}
@media(max-width:900px){.nav-list{display:flex;flex-direction:column;align-items:center;gap:22px}}

/* FVの英字ラベル削除後もキャッチコピーの位置を維持 */
.hero-copy-no-label{padding-top:52px}
@media(min-width:1024px){.hero-copy-no-label{padding-top:67px}}

/* お客様の声：写真全体を切らずに表示（TOP・全画面幅共通） */
.voice .comparison{height:auto;aspect-ratio:auto;align-items:start;background:#f7f4ef}
.voice .comparison figure{width:auto;height:auto;background:#f7f4ef}
.voice .comparison img{display:block;width:100%;height:auto;object-fit:contain}
.voice .comparison figcaption{position:absolute;right:0;bottom:0;left:0;padding:8px 10px;background:rgba(75,58,48,.72);color:#fff;text-align:center;text-shadow:none;font-family:"Tinos",serif;font-size:13px;line-height:1.4;letter-spacing:.06em}
.voice .case-body small{font-family:"Noto Serif JP",serif}
.case-clone{display:none}

@media(max-width:900px){
  .voice{overflow:hidden}
  .voice .cases.auto-flow{display:flex;width:max-content;max-width:none;grid-template-columns:none;gap:16px;overflow:visible;padding-bottom:15px;animation:lusica-cases-flow-left 42s linear infinite;will-change:transform}
  .voice .cases.auto-flow .case{display:block;flex:0 0 300px;width:300px}
  .voice .cases.auto-flow .case-clone{display:block}
}
@keyframes lusica-cases-flow-left{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 8px))}}
@media(max-width:900px) and (hover:hover) and (pointer:fine){
  .voice .cases.auto-flow:hover{animation-play-state:paused}
}
@media(max-width:520px){
  .price .sub-links{width:100%;grid-template-columns:minmax(0,1fr);margin-right:0;margin-left:0}
  .price .sub-links a{box-sizing:border-box;width:100%;min-width:0}
}
.access .phone{display:flex;align-items:center;justify-content:center;gap:10px}
.access .phone .phone-icon{display:block;width:24px;height:24px;flex:0 0 24px;object-fit:contain}
@media(prefers-reduced-motion:reduce){
  .voice .cases.auto-flow{width:auto;overflow-x:auto;animation:none;transform:none}
  .voice .cases.auto-flow .case-clone{display:none}
}

/* ABOUT refresh — Figma node 306:1161 */
.about-visual{display:block;width:100%;overflow:hidden}
.about-visual img{display:block;width:100%;height:auto;object-fit:contain}
.about-heading,.about-body{min-width:0}
@media(min-width:901px){
  .about{display:flex;flex-direction:column;max-width:1440px;padding:150px;gap:64px}
  .about-visual{width:100%;aspect-ratio:1535/1024}
  .about-visual img{width:100%;height:100%;object-fit:cover}
  .about-copy{display:grid;grid-template-columns:492px minmax(0,1fr);gap:32px;width:100%}
  .about-copy .eyebrow{margin:0 0 20px;font-size:20px;line-height:1.045;letter-spacing:2.42px}
  .about-copy h2{margin:0;font-size:36px;line-height:1.5;letter-spacing:1.92px;white-space:nowrap}
  .about-copy .about-body p{width:auto;margin:0 0 20px;font-size:16px;line-height:1.5}
  .about-copy .about-body p:last-child{margin-bottom:0}
  .about-copy .about-body strong{font-size:20px;font-weight:600}
  .about-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;width:100%}
  .about-links a{padding:16px 24px}
  .about-links span{font-size:16px;line-height:1.5}
}
@media(max-width:900px){
  .about{display:flex;flex-direction:column;gap:48px}
  .about-visual{aspect-ratio:2/3}
  .about-visual img{width:100%;height:100%;object-fit:contain}
  .about-copy{display:block;width:100%}
  .about-heading{margin-bottom:32px}
  .about-copy .eyebrow{margin-bottom:20px}
  .about-copy h2{margin-bottom:0}
  .about-copy .about-body p{width:100%;font-size:14px;line-height:1.8}
}
