:root{
  
  --ink:        #1a1512;
  --ink-2:      #3d342e;
  --ink-3:      #6b5f56;
  --line:       #e4dcd2;
  --line-2:     #f0eae2;
  --bg:         #ffffff;
  --bg-tint:    #faf6f1;
  --bg-dark:    #1a1512;
  --wood:       #b4723c;
  --wood-dark:  #965c2c;
  --wood-light: #d9a06a;
  --brand:      #7b2436;   
  --ivory:      #ddcdb2;   

  
  --wrap:       1180px;
  --radius:     14px;
  --radius-lg:  22px;
  --header-h:   72px;

  --shadow-sm:  0 1px 2px rgba(26,21,18,.06), 0 2px 8px rgba(26,21,18,.05);
  --shadow:     0 4px 12px rgba(26,21,18,.07), 0 16px 40px rgba(26,21,18,.08);
  --shadow-lg:  0 10px 30px rgba(26,21,18,.10), 0 30px 70px rgba(26,21,18,.12);

  --ease:       cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont,
              "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  font-size:17px;
  line-height:1.72;
  color:var(--ink-2);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
  overflow-wrap:break-word;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }

h1,h2,h3,h4{ color:var(--ink); line-height:1.3; letter-spacing:-.02em; margin:0; font-weight:800; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:20px; }
.wrap--narrow{ max-width:860px; }

.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;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:12px 20px;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--wood); outline-offset:3px; border-radius:4px; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 24px; border:1px solid transparent; border-radius:999px;
  font-weight:700; font-size:15px; letter-spacing:-.01em;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease),
             background-color .18s var(--ease), color .18s var(--ease);
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; fill:currentColor; flex:none; }
.btn--lg{ padding:16px 30px; font-size:16.5px; }
.btn--block{ width:100%; }
.btn--primary{ background:var(--wood); color:#fff; box-shadow:0 6px 18px rgba(180,114,60,.3); }
.btn--primary:hover{ background:var(--wood-dark); transform:translateY(-2px); box-shadow:0 10px 26px rgba(180,114,60,.38); }
.btn--outline{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.4); backdrop-filter:blur(4px); }
.btn--outline:hover{ background:rgba(255,255,255,.16); border-color:#fff; transform:translateY(-2px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--ink); }

.header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.header.is-stuck{ border-bottom-color:var(--line-2); box-shadow:0 2px 20px rgba(26,21,18,.06); }

.header__inner{ position:relative; max-width:none; padding-inline:64px; display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:20px; }

.header--over .header__inner{ align-items:center; height:auto; padding:0 64px; }
.header--over.is-stuck{ padding-top:0; }
.header--over.is-stuck .header__inner{ height:var(--header-h); padding:0 64px; }

@media (max-width:720px){
  
  .header__inner{ padding-inline:20px; }
  .header--over .header__inner{ padding:0 20px; }
  .header--over.is-stuck .header__inner{ padding:0 20px; }
}

.hnav{
  position:absolute; left:50%; top:50%; translate:-50% -50%;
  display:flex; align-items:center; gap:40px;
}
.hnav a{
  font-size:17.5px; font-weight:600; color:var(--ink-2); letter-spacing:-.01em;
  transition:color .2s var(--ease);
}
.hnav a:hover{ color:var(--wood); }

.header--over:not(.is-stuck) .hnav a{ color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.header--over:not(.is-stuck) .hnav a:hover{ color:var(--wood-light); }
@media (max-width:1100px){ .hnav{ display:none; } }

.menu__btn{
  width:52px; height:52px; flex:none; border:0; background:transparent; cursor:pointer;
  display:flex; flex-direction:column; gap:7px; align-items:center; justify-content:center;
  border-radius:10px; padding:0;
}
.menu__btn span{
  display:block; width:30px; height:2.8px; background:var(--ivory); border-radius:3px;
  transition:transform .26s var(--ease), opacity .2s var(--ease), background .2s var(--ease);
}
.header--over:not(.is-stuck) .menu__btn span{ box-shadow:0 1px 7px rgba(0,0,0,.5); }
.menu__btn.is-open span:nth-child(1){ transform:translateY(9.8px) rotate(45deg); }
.menu__btn.is-open span:nth-child(2){ opacity:0; }
.menu__btn.is-open span:nth-child(3){ transform:translateY(-9.8px) rotate(-45deg); }

.menu{
  position:absolute; top:100%; right:64px; margin-top:6px;
  min-width:252px; display:flex; flex-direction:column; padding:10px;
  background:var(--bg-dark); border:1px solid rgba(255,255,255,.1); border-radius:14px;
  box-shadow:0 22px 60px rgba(26,21,18,.4);
  transform:translateY(-10px); opacity:0; pointer-events:none;
  transition:opacity .22s var(--ease), transform .22s var(--ease);
}
.menu.is-open{ transform:none; opacity:1; pointer-events:auto; }
.menu a{
  padding:13px 16px; border-radius:9px;
  font-size:16px; font-weight:600; color:rgba(255,255,255,.78);
  transition:background .18s var(--ease), color .18s var(--ease);
}
.menu a:hover{ background:rgba(255,255,255,.08); color:var(--wood-light); }
@media (max-width:720px){
  .menu{ right:20px; left:20px; min-width:0; }
}

.header--over{
  position:fixed; left:0; right:0;
  padding-top:44px;
  background:transparent; backdrop-filter:none;
}

.header--over .logo__text strong{
  text-shadow:0 0 3px rgba(255,255,255,.95), 0 0 9px rgba(255,255,255,.9), 0 0 20px rgba(255,255,255,.75);
}
.header--over .logo__mark{ filter:drop-shadow(0 0 7px rgba(255,255,255,.85)); }
.header--over.is-stuck{
  background:rgba(255,255,255,.92); backdrop-filter:saturate(180%) blur(14px);
}
.header--over.is-stuck .logo__text strong{ text-shadow:none; }
.header--over.is-stuck .logo__mark{ filter:none; }

.header--over ~ #main .hero{ min-height:100vh; min-height:100svh; }

.logo{ display:flex; align-items:center; gap:11px; flex:none; }
.logo__mark{
  width:34px; height:34px; flex:none;
  display:grid; place-items:center;
  color:var(--brand);
}
.logo__mark svg{ display:block; width:100%; height:100%; }
.logo__text{ display:flex; flex-direction:column; line-height:1.16; }

.logo__text strong{
  font-size:27px; font-weight:800; color:var(--ink);
  letter-spacing:.09em; line-height:1.1;
}
.logo__text strong i{
  font-style:normal; color:var(--brand);
  margin-inline:1px; font-weight:700;
}
.logo__text em{
  font-style:normal; font-size:11.5px; color:var(--ink-3);
  letter-spacing:.02em; margin-top:3px;
}

.nav{ display:flex; align-items:center; gap:4px; }
.nav a{
  padding:9px 13px; border-radius:9px; font-size:15px; font-weight:600; color:var(--ink-2);
  transition:color .18s var(--ease), background-color .18s var(--ease);
}
.nav a:hover{ color:var(--wood); background:var(--bg-tint); }
.nav a.is-current{ color:var(--wood); background:var(--bg-tint); }
.nav--simple{ gap:0; }

.nav__tel{
  margin-left:14px; font-size:16px; font-weight:800; color:var(--ink) !important;
  letter-spacing:-.01em; padding:9px 4px !important;
}
.nav__tel:hover{ color:var(--wood) !important; background:transparent !important; }

.nav__cta{
  margin-left:8px; background:var(--wood) !important; color:#fff !important;
  padding:11px 20px !important; border-radius:999px !important; font-weight:700 !important;
  box-shadow:0 4px 14px rgba(180,114,60,.3);
}
.nav__cta:hover{ background:var(--wood-dark) !important; }

.hamburger{
  display:none; width:44px; height:44px; border:0; background:transparent;
  flex-direction:column; gap:5px; align-items:center; justify-content:center; border-radius:10px;
}
.hamburger span{ display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; transition:transform .25s var(--ease), opacity .2s; }
.hamburger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.is-open span:nth-child(2){ opacity:0; }
.hamburger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:1040px){
  .hamburger{ display:flex; }
  .nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border-bottom:1px solid var(--line);
    padding:10px 20px 22px; box-shadow:var(--shadow);
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .22s var(--ease), transform .22s var(--ease);
    max-height:calc(100dvh - 120px); overflow:auto;
  }
  .nav.is-open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav a{ padding:14px 10px; font-size:16px; border-bottom:1px solid var(--line-2); border-radius:0; }
  .nav__cta{ margin:14px 0 0 !important; text-align:center; border-bottom:0 !important; }
}

.hero{
  
  position:relative;
  min-height:calc(100vh - var(--header-h));    
  min-height:calc(100svh - var(--header-h));   
  display:flex; align-items:flex-end; isolation:isolate;
}
.hero__bg{ position:absolute; inset:0; z-index:-1; overflow:hidden; }

.hero__bg img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:center 62%;
  opacity:0; transition:opacity 1.4s var(--ease);
}
.hero__bg img.is-on{ opacity:1; }

@media (prefers-reduced-motion:reduce){
  .hero__bg img{ transition:none; }
}
.hero__bg::after{
  content:""; position:absolute; inset:0;
  
  background:linear-gradient(100deg, rgba(20,15,12,.86) 0%, rgba(20,15,12,.55) 34%, rgba(20,15,12,.14) 68%, rgba(20,15,12,.06) 100%);
}

.hero__inner{
  max-width:none;
  padding-block:0 clamp(64px, 9vh, 104px);
  padding-inline:clamp(64px, 9vh, 104px) 20px;
  color:#fff;
}
@media (max-width:720px){
  .hero__inner{ padding-inline:20px; }
}

.hero__eyebrow{
  font-size:15px; font-weight:800; letter-spacing:.26em;
  color:var(--wood-light); margin-bottom:20px;
}
.hero__title{
  color:#fff; font-size:clamp(32px, 5.4vw, 58px); font-weight:900; line-height:1.22; letter-spacing:-.035em;
  margin-bottom:20px;
}
.hero__title span{ color:var(--wood-light); }
.hero__lead{ font-size:clamp(15.5px, 1.9vw, 18.5px); color:rgba(255,255,255,.84); max-width:620px; margin-bottom:34px; }

.hero__cta{ display:grid; grid-template-columns:repeat(2, minmax(0, 232px)); gap:12px; }
.hero__cta .btn{ width:100%; padding-inline:16px; }

@media (max-width:520px){
  
  .hero__cta{ grid-template-columns:minmax(0,252px); justify-content:center; }
  .hero__cta .btn{ padding-block:14px; font-size:16px; }
}
.hero__note{
  margin-top:22px; font-size:14.5px; font-weight:600;
  color:rgba(255,255,255,.72); padding-left:15px; position:relative;
}
.hero__note::before{
  content:""; position:absolute; left:0; top:8px;
  width:5px; height:5px; border-radius:50%; background:var(--wood-light);
}

.hero__stats{ display:flex; flex-wrap:wrap; gap:14px 48px; padding-top:28px; border-top:1px solid rgba(255,255,255,.16); }
.hero__stats li{ display:flex; flex-direction:column; }
.hero__stats strong{ font-size:clamp(26px, 3.4vw, 36px); font-weight:900; color:#fff; letter-spacing:-.03em; line-height:1.1; }
.hero__stats strong span{ color:var(--wood-light); }
.hero__stats em{ font-style:normal; font-size:13.5px; color:rgba(255,255,255,.62); margin-top:4px; }

.hero__scroll{
  position:absolute; left:50%; bottom:22px; translate:-50% 0; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:rgba(255,255,255,.66); text-shadow:0 2px 10px rgba(0,0,0,.5);
  animation:heroScrollSway 2.6s ease-in-out infinite;
}
.hero__scroll:hover{ color:#fff; }
.hero__scroll b{ font-size:15px; font-weight:700; letter-spacing:.26em; margin-left:.26em; }
.hero__scroll i{
  position:relative; display:block; width:1px; height:40px;
  background:rgba(255,255,255,.22); overflow:hidden;
}
.hero__scroll i::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(rgba(255,255,255,.12), var(--wood-light));
  animation:heroScrollTrickle 2.1s cubic-bezier(.65,.05,.36,1) infinite;
}

@keyframes heroScrollTrickle{
  0%   { transform:scaleY(0); transform-origin:center top; }
  42%  { transform:scaleY(1); transform-origin:center top; }
  58%  { transform:scaleY(1); transform-origin:center bottom; }
  100% { transform:scaleY(0); transform-origin:center bottom; }
}
@keyframes heroScrollSway{
  0%, 100% { transform:translateY(-4px); opacity:.62; }
  50%      { transform:translateY(8px);  opacity:1; }
}
@media (prefers-reduced-motion:reduce){
  .hero__scroll{ animation:none; }
  .hero__scroll i::after{ animation:none; opacity:.6; }
}
@media (max-width:860px){
  .hero__scroll{ display:none; }
  .br-pc{ display:none; }
  .hero__bg img{ object-position:center 78%; }
  .hero__bg::after{
    background:linear-gradient(170deg, rgba(20,15,12,.90) 0%, rgba(20,15,12,.80) 55%, rgba(20,15,12,.52) 100%);
  }
  .hero__cta .btn{ flex:1 1 100%; }
}

.trustbar{ background:var(--ink); color:#fff; }
.trustbar__inner{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:rgba(255,255,255,.1); border-inline:1px solid rgba(255,255,255,.1);
}
.trustbar__inner > div{ background:var(--ink); padding:26px 22px; display:flex; flex-direction:column; gap:4px; }
.trustbar strong{ font-size:15.5px; color:#fff; font-weight:700; }
.trustbar span{ font-size:13.5px; color:rgba(255,255,255,.56); line-height:1.5; }
@media (max-width:860px){ .trustbar__inner{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .trustbar__inner{ grid-template-columns:1fr; } }

.section{ padding-block:clamp(74px, 10vw, 132px); }
.section--tint{ background:var(--bg-tint); }
.section--dark{ background:var(--bg-dark); color:rgba(255,255,255,.76); }

.section--dark + .section--dark{ border-top:1px solid rgba(255,255,255,.1); }
.section--dark h2,.section--dark h3{ color:#fff; }

.sec-head{ max-width:680px; margin:0 auto clamp(42px, 5.5vw, 66px); text-align:center; }

.sec-head__eyebrow{ font-size:18.5px; font-weight:800; letter-spacing:.26em; color:var(--wood); margin-bottom:18px; }
.sec-head__title{ font-size:clamp(25px, 3.3vw, 37px); font-weight:800; letter-spacing:-.035em; line-height:1.3; margin-bottom:16px; }
.sec-head__desc{ font-size:17.5px; line-height:2; color:var(--ink-3); }
.sec-head--light .sec-head__desc{ color:rgba(255,255,255,.6); }
.sec-head--light .sec-head__eyebrow{ color:var(--wood-light); }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

.sym-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sym{
  position:relative; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:30px 26px 28px;
  transition:border-color .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);
}
.sym:hover{ border-color:var(--wood-light); transform:translateY(-4px); box-shadow:var(--shadow); }
.sym__num{
  display:block; font-size:12px; font-weight:800; letter-spacing:.12em;
  color:var(--wood); margin-bottom:14px;
}

.sym__img{
  margin:-30px -26px 18px; border-radius:var(--radius) var(--radius) 0 0;
  overflow:hidden; background:var(--bg-tint); aspect-ratio:16/10;
}
.sym__img img{ width:100%; height:100%; object-fit:cover; display:block; }

.sym h3{ font-size:20.5px; margin-bottom:10px; letter-spacing:-.03em; }
.sym p{ font-size:16px; color:var(--ink-3); line-height:1.68; }
@media (max-width:960px){ .sym-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .sym-grid{ grid-template-columns:1fr; } }

.svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.svc{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.svc:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.svc__img{ aspect-ratio:16/9; overflow:hidden; background:var(--line-2); }
.svc__img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.svc:hover .svc__img img{ transform:scale(1.05); }
.svc__body{ padding:28px 26px 30px; display:flex; flex-direction:column; flex:1; }
.svc__body h3{ font-size:22.5px; margin-bottom:11px; letter-spacing:-.03em; }
.svc__body > p{ font-size:16px; color:var(--ink-3); line-height:1.7; margin-bottom:20px; }
.svc__list{ margin-top:auto; border-top:1px solid var(--line-2); padding-top:18px; display:flex; flex-direction:column; gap:9px; }
.svc__list li{ position:relative; padding-left:20px; font-size:15.5px; color:var(--ink-2); font-weight:500; }
.svc__list li::before{
  content:""; position:absolute; left:2px; top:9px; width:7px; height:7px;
  border-radius:50%; background:var(--wood-light);
}
@media (max-width:960px){ .svc-grid{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; } }

.ba-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.ba{ margin:0; }
.ba__stage{
  position:relative; aspect-ratio:16/9; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow); user-select:none; touch-action:pan-y; cursor:ew-resize; background:#eee;
}
.ba__stage img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba__beforeWrap{ position:absolute; inset:0; width:50%; overflow:hidden; }
.ba__beforeWrap img{ width:auto; height:100%; max-width:none; }
.ba__handle{
  position:absolute; top:0; bottom:0; left:50%; width:3px; translate:-50% 0;
  background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.12);
}
.ba__handle span{
  position:absolute; top:50%; left:50%; translate:-50% -50%;
  width:46px; height:46px; border-radius:50%; background:#fff;
  box-shadow:0 4px 16px rgba(0,0,0,.28); display:grid; place-items:center;
}
.ba__handle span::before{
  content:"‹ ›"; font-size:19px; font-weight:800; color:var(--ink); letter-spacing:-2px;
}
.ba__tag{
  position:absolute; top:14px; z-index:3;
  padding:5px 13px; border-radius:999px; font-size:12px; font-weight:700; letter-spacing:-.01em;
  background:rgba(26,21,18,.72); color:#fff; backdrop-filter:blur(4px);
}
.ba__tag--l{ left:14px; }
.ba__tag--r{ right:14px; background:rgba(180,114,60,.9); }
.ba figcaption{ padding-top:18px; display:flex; flex-direction:column; gap:3px; }
.ba figcaption strong{ font-size:17.5px; color:var(--ink); font-weight:700; letter-spacing:-.02em; }
.ba figcaption span{ font-size:15px; color:var(--ink-3); }
@media (max-width:860px){ .ba-grid{ grid-template-columns:1fr; } }

#process .wrap{ max-width:1420px; }
.proc{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; counter-reset:step; }
.proc__item{ display:flex; flex-direction:column; gap:20px; }
.proc__img{ aspect-ratio:4/3.3; border-radius:var(--radius); overflow:hidden; background:#2a231e; }
.proc__img img{ width:100%; height:100%; object-fit:cover; }

.proc__txt{ text-align:center; }
.proc__step{ display:block; font-size:14.5px; font-weight:800; letter-spacing:.18em; color:var(--wood-light); margin-bottom:9px; }
.proc__txt h3{ font-size:19px; margin-bottom:10px; letter-spacing:-.03em; }

.proc__txt p{ font-size:15.8px; color:rgba(255,255,255,.6); line-height:1.7; text-wrap:balance; }
.proc__txt h3{ text-wrap:balance; }
@media (max-width:1000px){ .proc{ grid-template-columns:repeat(2,1fr); gap:32px 22px; } }
@media (max-width:560px){ .proc{ grid-template-columns:1fr; } }

.filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.filters__btn{
  padding:9px 20px; border-radius:999px; border:1px solid var(--line);
  background:#fff; color:var(--ink-2); font-size:14.5px; font-weight:600;
  transition:all .18s var(--ease);
}
.filters__btn:hover{ border-color:var(--wood-light); color:var(--wood); }
.filters__btn.is-on{ background:var(--ink); border-color:var(--ink); color:#fff; }

.gal{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.gal__item{
  position:relative; margin:0; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  cursor:zoom-in; background:var(--line-2);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.gal__item img{ width:100%; height:100%; object-fit:cover; transition:transform .55s var(--ease); }
.gal__item:hover img{ transform:scale(1.07); }
.gal__item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:28px 16px 14px;
  background:linear-gradient(to top, rgba(20,15,12,.82), transparent);
  color:#fff; font-size:13.5px; font-weight:600; letter-spacing:-.01em;
  opacity:0; transform:translateY(8px); transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.gal__item:hover figcaption, .gal__item:focus-within figcaption{ opacity:1; transform:none; }
.gal__item.is-hidden{ display:none; }
.gal__more{ margin-top:22px; font-size:15px; color:var(--ink-3); }
.gal__more a{ color:var(--wood); font-weight:700; }
@media (max-width:1000px){ .gal{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .gal{ grid-template-columns:repeat(2,1fr); gap:10px; } }

.price-table{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.price-table table{ width:100%; border-collapse:collapse; }
.price-table th, .price-table td{ padding:18px 22px; text-align:left; font-size:15.5px; border-bottom:1px solid var(--line-2); }
.price-table thead th{
  background:var(--ink); color:#fff; font-size:13.5px; font-weight:700;
  letter-spacing:.02em; border-bottom:0;
}
.price-table tbody th{ color:var(--ink); font-weight:700; width:28%; }
.price-table tbody td{ color:var(--ink-3); }
.price-table tbody td:last-child{ text-align:right; color:var(--ink); white-space:nowrap; }
.price-table tbody td b{ color:var(--wood); font-size:17px; font-weight:800; }
.price-table tbody tr:last-child th, .price-table tbody tr:last-child td{ border-bottom:0; }
.price-table tbody tr:hover{ background:var(--bg-tint); }

.price-range{
  max-width:680px; margin:0 auto; padding:26px 28px;
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  text-align:center; font-size:18.5px; font-weight:600; color:var(--ink-2); line-height:1.5;
}
.price-range b{ color:var(--wood); font-size:25px; font-weight:800; letter-spacing:-.02em; }
.price-range span{
  display:block; margin-top:13px;
  font-size:17.5px; font-weight:500; color:var(--ink-3);
}
@media (max-width:640px){
  .price-range{ padding:20px 18px; font-size:16.5px; }
  .price-range b{ font-size:22px; }
}

.price-note{ margin-top:72px; display:flex; flex-direction:column; gap:34px; }
.price-note li{ position:relative; padding-left:20px; font-size:17px; line-height:2.2; color:var(--ink-3); }
.price-note li::before{ content:"·"; position:absolute; left:5px; top:1px; font-weight:900; color:var(--wood); }
.price-note b{ color:var(--ink-2); }

@media (max-width:640px){
  .price-table th, .price-table td{ padding:14px 14px; font-size:14px; }
  .price-table tbody th{ width:auto; }
  .price-table thead{ display:none; }
  .price-table tbody tr{ display:grid; grid-template-columns:1fr auto; gap:0 10px; padding:14px 16px; border-bottom:1px solid var(--line-2); }
  .price-table tbody th, .price-table tbody td{ padding:0; border:0; }
  .price-table tbody th{ grid-column:1; font-size:15px; }
  .price-table tbody td:first-of-type{ grid-column:1; font-size:13.5px; }
  .price-table tbody td:last-child{ grid-column:2; grid-row:1 / span 2; align-self:center; }
}

.rev-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rev{
  margin:0; background:var(--bg-tint); border:1px solid var(--line);
  border-radius:var(--radius); padding:28px 26px;
  display:flex; flex-direction:column; gap:14px;
}
.rev__stars{ color:var(--wood); letter-spacing:2px; font-size:15px; }
.rev p{ font-size:15.5px; color:var(--ink-2); line-height:1.75; flex:1; }
.rev footer{ display:flex; flex-direction:column; gap:2px; padding-top:14px; border-top:1px solid var(--line); }
.rev footer strong{ font-size:14.5px; color:var(--ink); font-weight:700; }
.rev footer span{ font-size:13px; color:var(--ink-3); }
@media (max-width:900px){ .rev-grid{ grid-template-columns:1fr; } }

.faq{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__item summary{
  list-style:none; cursor:pointer;
  display:grid; grid-template-columns:34px 1fr 16px; align-items:start; gap:16px;
  padding:30px 4px;
  font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-.025em; line-height:1.55;
  transition:color .2s var(--ease);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary:hover{ color:var(--wood); }
.faq__item summary::before{
  content:"Q"; font-size:16px; font-weight:800; color:var(--wood);
  letter-spacing:.04em; line-height:1.75;
}

.faq__item summary::after{
  content:""; width:16px; height:16px; margin-top:7px;
  background:
    linear-gradient(var(--wood), var(--wood)) center/16px 1.8px no-repeat,
    linear-gradient(var(--wood), var(--wood)) center/1.8px 16px no-repeat;
  transition:rotate .3s var(--ease), background-size .3s var(--ease);
}
.faq__item[open] summary{ color:var(--wood); }
.faq__item[open] summary::after{
  rotate:180deg;
  background-size:16px 1.8px, 1.8px 0;
}

.faq__a{
  display:grid; grid-template-columns:34px 1fr; gap:16px;
  padding:0 32px 32px 4px; animation:faqIn .32s var(--ease);
}
.faq__a::before{
  content:"A"; font-size:16px; font-weight:800; color:var(--ink-3);
  letter-spacing:.04em; line-height:1.9;
}
.faq__a p{ font-size:16.5px; color:var(--ink-3); line-height:1.9; }
@keyframes faqIn{
  from{ opacity:0; transform:translateY(-6px); }
  to  { opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce){ .faq__a{ animation:none; } }
@media (max-width:640px){
  .faq__item summary{ grid-template-columns:26px 1fr 14px; gap:11px; padding:24px 2px; font-size:16.5px; }
  .faq__item summary::before{ font-size:14.5px; }
  .faq__a{ grid-template-columns:26px 1fr; gap:11px; padding:0 0 26px 2px; }
  .faq__a::before{ font-size:14.5px; }
  .faq__a p{ font-size:15.5px; line-height:1.82; }
}

.areas__list{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:center;
}
.areas__list li{
  font-size:16px; font-weight:600; color:var(--ink-2); background:var(--bg-tint);
  border:1px solid var(--line); border-radius:999px; padding:12px 26px;
}
@media (max-width:640px){
  .areas__list{ gap:9px; }
  .areas__list li{ font-size:14.5px; padding:10px 18px; }
}
}
}

.contact{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px, 5vw, 70px); align-items:start; }
.contact__title{ font-size:clamp(26px, 3.4vw, 38px); font-weight:900; letter-spacing:-.035em; margin:0 0 18px; color:#fff; }
.contact__desc{ font-size:16px; color:rgba(255,255,255,.62); margin-bottom:34px; }

.contact__list{ display:flex; flex-direction:column; }
.contact__list li{
  display:grid; grid-template-columns:92px 1fr; gap:16px; align-items:baseline;
  padding:16px 0; border-top:1px solid rgba(255,255,255,.12);
}
.contact__list li:last-child{ border-bottom:1px solid rgba(255,255,255,.12); }
.contact__label{ font-size:13px; color:rgba(255,255,255,.45); font-weight:600; letter-spacing:.02em; }
.contact__value{ font-size:16.5px; color:#fff; font-weight:600; letter-spacing:-.01em; }
a.contact__value:hover{ color:var(--wood-light); }

.contact__note{
  margin-top:30px; padding:22px 24px; border-radius:var(--radius);
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.12);
}
.contact__note strong{
  display:block; font-size:15px; color:var(--wood-light);
  font-weight:700; letter-spacing:-.01em; margin-bottom:8px;
}
.contact__note p{ font-size:14.3px; color:rgba(255,255,255,.6); line-height:1.75; }

.reach{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  max-width:860px; margin:0 auto;
}
.reach__card{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:38px 26px 32px; border-radius:var(--radius-lg);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  transition:transform .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease);
}
.reach__card:hover{
  transform:translateY(-3px);
  border-color:var(--wood-light); background:rgba(255,255,255,.08);
}
.reach__card--call{ background:var(--wood); border-color:var(--wood); }
.reach__card--call:hover{ background:var(--wood-dark); border-color:var(--wood-dark); }

.reach__icon{
  display:grid; place-items:center; width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,.12); margin-bottom:18px;
}
.reach__icon svg{ width:21px; height:21px; fill:#fff; }

.reach__en{
  font-size:12.5px; font-weight:800; letter-spacing:.24em;
  color:var(--wood-light);
}
.reach__card--call .reach__en{ color:rgba(255,255,255,.72); }

.reach__big{
  display:block; margin:10px 0 7px;
  font-size:clamp(24px, 3vw, 31px); font-weight:800; letter-spacing:-.02em; color:#fff;
}
.reach__ko{ font-size:14.5px; color:rgba(255,255,255,.6); line-height:1.6; }
.reach__card--call .reach__ko{ color:rgba(255,255,255,.78); }

.reach__meta{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:14px 20px;
  max-width:760px; margin:38px auto 0; padding-top:30px;
  border-top:1px solid rgba(255,255,255,.14);
}
.reach__meta li{ display:flex; flex-direction:column; align-items:center; gap:11px; }
.reach__meta b{ font-size:17.5px; font-weight:700; color:#fff; letter-spacing:-.01em; line-height:1.6; }

}

@media (max-width:720px){
  .reach{ grid-template-columns:1fr; gap:12px; }
  .reach__card{ padding:30px 20px 26px; }
  .reach__meta{ gap:18px 10px; margin-top:30px; padding-top:24px; }
  .reach__meta .reach__en{ font-size:11px; letter-spacing:.14em; }
  .reach__meta b{ font-size:15.5px; }
}

.callbox{
  background:#fff; border-radius:var(--radius-lg);
  padding:clamp(28px, 3.6vw, 40px); box-shadow:var(--shadow-lg);
  
  color:var(--ink);
}

.section--dark .callbox__title{
  font-size:clamp(20px, 2.4vw, 25px); letter-spacing:-.035em;
  margin-bottom:12px; color:var(--ink);
}
.callbox__lead{ font-size:16px; line-height:1.72; color:var(--ink-3); margin-bottom:26px; }

.callbox__call, .callbox__sms{
  display:flex; align-items:center; gap:14px;
  border-radius:14px; padding:17px 20px; margin-bottom:11px;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease);
}
.callbox__call{ background:var(--wood); color:#fff; box-shadow:0 6px 18px rgba(180,114,60,.3); }
.callbox__call:hover{ background:var(--wood-dark); transform:translateY(-2px); }
.callbox__sms{ background:var(--bg-tint); color:var(--ink); border:1px solid var(--line); }
.callbox__sms:hover{ border-color:var(--wood-light); transform:translateY(-2px); }

.callbox__call svg, .callbox__sms svg{ width:23px; height:23px; fill:currentColor; flex:none; }
.callbox__call span, .callbox__sms span{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.callbox__call b{ font-size:21px; font-weight:800; letter-spacing:-.02em; }
.callbox__sms b{ font-size:16.5px; font-weight:700; }
.callbox__call em, .callbox__sms em{ font-style:normal; font-size:12.8px; opacity:.72; }

.callbox__hint{ margin-top:18px; font-size:14.5px; line-height:1.7; color:var(--ink-3); text-align:center; }

@media (max-width:560px){
  .callbox__call b{ font-size:19px; }
  .callbox__call, .callbox__sms{ padding:15px 16px; gap:11px; }
}

.form{ background:#fff; border-radius:var(--radius-lg); padding:clamp(26px, 3.4vw, 38px); box-shadow:var(--shadow-lg); }
.form__title{ font-size:21px; margin-bottom:22px; letter-spacing:-.03em; }
.form__row{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.form__row label{ font-size:14px; font-weight:700; color:var(--ink); }
.form__row label b{ color:var(--wood); }
.form input, .form select, .form textarea{
  width:100%; padding:13px 15px; border:1px solid var(--line); border-radius:10px;
  font:inherit; font-size:15.5px; color:var(--ink); background:#fff;
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.form textarea{ resize:vertical; min-height:110px; line-height:1.65; }
.form input:focus, .form select:focus, .form textarea:focus{
  outline:none; border-color:var(--wood); box-shadow:0 0 0 3px rgba(180,114,60,.14);
}
.form input.is-err, .form textarea.is-err{ border-color:#d64545; box-shadow:0 0 0 3px rgba(214,69,69,.12); }
.form__check{ display:flex; align-items:flex-start; gap:9px; margin:4px 0 20px; font-size:13.8px; color:var(--ink-3); cursor:pointer; }
.form__check input{ width:17px; height:17px; flex:none; margin-top:3px; accent-color:var(--wood); }
.form__check a{ color:var(--wood); text-decoration:underline; text-underline-offset:2px; }
.form__hint{ margin-top:12px; font-size:13px; color:var(--ink-3); text-align:center; }
.form__status{ margin-top:12px; font-size:14px; font-weight:600; text-align:center; min-height:20px; }
.form__status.is-ok{ color:#2f7d4f; }
.form__status.is-err{ color:#d64545; }

@media (max-width:900px){ .contact{ grid-template-columns:1fr; } }

.footer{ background:var(--bg-tint); color:var(--ink-3); font-size:14px; border-top:1px solid var(--line); }
.footer__inner{ max-width:none; padding-inline:64px; }
@media (max-width:720px){ .footer__inner{ padding-inline:20px; } }

.footer__top{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:center; gap:0; padding-block:72px;
}

.logo--footer .logo__mark{ color:var(--brand); width:34px; height:34px; }
.logo--footer .logo__text strong{ color:var(--ink); font-size:33px; letter-spacing:.11em; }
.logo--footer .logo__text i{ color:var(--brand); font-style:normal; }
.footer__tagline{ margin-top:16px; font-size:16.5px; line-height:1.6; color:var(--ink-3); }

.footer__biz{
  display:flex; flex-direction:column; gap:12px; margin-top:30px;
  font-style:normal; font-size:15.6px; line-height:1.5; color:var(--ink-3);
}
.footer__biz span{ display:grid; grid-template-columns:4.1em 1fr; align-items:baseline; gap:1.3em; }

.footer__biz i{ font-style:normal; color:var(--ink-3); white-space:nowrap; word-spacing:1.48em; }
.footer__biz b{ color:var(--ink); font-weight:600; }
.footer__biz a{ color:var(--ink); font-weight:700; font-size:17px; letter-spacing:.01em; white-space:nowrap; }
.footer__biz a:hover{ color:var(--brand); }

.footer__copy{ margin-top:12px; font-size:13.8px; line-height:1.5; letter-spacing:.02em; color:var(--ink-3); opacity:.78; }

.footer__nav{
  display:grid; grid-template-columns:repeat(3,minmax(116px,1fr)); gap:30px 22px;
  padding-left:56px;
}
.footer__nav a{
  display:flex; flex-direction:column; align-items:center; gap:11px;
  font-size:14.6px; font-weight:600; color:var(--ink-2); text-align:center;
  transition:color .2s var(--ease);
}
.footer__nav a::before{
  content:""; width:30px; height:30px; background-color:var(--wood);
  -webkit-mask:var(--ico) center / contain no-repeat;
          mask:var(--ico) center / contain no-repeat;
  transition:background-color .2s var(--ease);
}
.footer__nav a:hover{ color:var(--wood-dark); }
.footer__nav a:hover::before{ background-color:var(--wood-dark); }
.footer__nav a[data-ico="service"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2L21 7.6 12 12 3 7.6z'/%3E%3Cpath d='M3 12.2l9 4.4 9-4.4'/%3E%3Cpath d='M3 16.6L12 21l9-4.4'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="symptom"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.6 12.2 6.4 20.4a2.1 2.1 0 1 1-3-3l8.2-8.2'/%3E%3Cpath d='M17.3 14.8 21.4 10.7'/%3E%3Cpath d='M20.5 11.6 19.3 10.4a3.2 3.2 0 0 1-.9-2.2v-.8L15.8 4.8a5.3 5.3 0 0 0-3.8-1.6H9.2l.9.8a5.9 5.9 0 0 1 1.8 4.2v1.5l1.9 1.9h2.4z'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="restore"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 11L12 4l8.5 7'/%3E%3Cpath d='M5.6 10.2V20h12.8v-9.8'/%3E%3Cpath d='M9.8 20v-5.2h4.4V20'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="cases"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.2'/%3E%3Ccircle cx='8.4' cy='9.6' r='1.5'/%3E%3Cpath d='M3.6 16.4l4.6-4 3.4 3 3.3-2.8 5.5 4.6'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="process"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.6' y='4.4' width='16.8' height='15.2' rx='2.2'/%3E%3Cpath d='M3.6 9h16.8'/%3E%3Cpath d='M7.4 12.4h2M7.4 16h2M14.6 12.4h2M14.6 16h2'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="price"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.6'/%3E%3Cpath d='M8 8.6l1.8 6.8L12 10.8l2.2 4.6L16 8.6'/%3E%3Cpath d='M7 11.6h10M7 13.8h10'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="faq"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.4 4.6H3.6v11.2h4.2V20l4.6-4.2h8z'/%3E%3Cpath d='M8.2 10.2h.01M12 10.2h.01M15.8 10.2h.01'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="gallery"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.4' y='3.4' width='7.2' height='7.2' rx='1.7'/%3E%3Crect x='13.4' y='3.4' width='7.2' height='7.2' rx='1.7'/%3E%3Crect x='3.4' y='13.4' width='7.2' height='7.2' rx='1.7'/%3E%3Crect x='13.4' y='13.4' width='7.2' height='7.2' rx='1.7'/%3E%3C/svg%3E"); }
.footer__nav a[data-ico="area"]{ --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.2s6.8-6.4 6.8-11A6.8 6.8 0 1 0 5.2 10.2c0 4.6 6.8 11 6.8 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }

@media (max-width:1060px){
  .footer__top{ grid-template-columns:1fr; gap:46px; padding-block:56px; }
  .footer__nav{ padding-left:0; padding-top:44px; border-top:1px solid var(--line); }
}
@media (max-width:720px){
  .footer__nav{ grid-template-columns:repeat(3,1fr); gap:26px 12px; }
  .footer__nav a{ font-size:13.4px; }
  .footer__nav a::before{ width:26px; height:26px; }
}

.pagehead{
  padding-block:clamp(44px, 6vw, 72px);
  text-align:center;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--bg-tint), #fff);
}
.crumb{ display:flex; align-items:center; justify-content:center; gap:10px; font-size:15px; font-weight:500; color:var(--ink-3); margin-bottom:22px; }
.crumb a{ color:var(--ink-3); }
.crumb a:hover{ color:var(--wood); }
.crumb span{ color:var(--line-2); }
.crumb b{ color:var(--ink-2); font-weight:600; }
.pagehead__title{
  font-size:clamp(28px, 4vw, 44px); font-weight:800;
  letter-spacing:-.04em; line-height:1.25; color:var(--ink); margin-bottom:16px;
}
.pagehead__desc{ font-size:17.5px; line-height:1.75; color:var(--ink-3); max-width:640px; margin-inline:auto; }
.pagehead + .section{ padding-top:clamp(50px, 6vw, 80px); }

#price{ padding-bottom:clamp(48px, 6vw, 84px); }

.sec-more{ margin-top:clamp(74px, 10vw, 132px); text-align:center; }

.morelink{
  display:inline-flex; align-items:center; gap:9px;
  
  padding:15px 30px 14px; border-radius:999px;
  border:1.5px solid var(--line); background:#fff;
  font-size:17px; font-weight:700; color:var(--ink);
  transition:color .2s var(--ease), border-color .2s var(--ease),
             background .2s var(--ease), gap .2s var(--ease);
}
.morelink svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.morelink:hover{ color:var(--wood); border-color:var(--wood-light); gap:14px; }
.section--dark .morelink{
  color:#fff; background:transparent; border-color:rgba(255,255,255,.4);
}
.section--dark .morelink:hover{
  color:var(--wood-light); background:rgba(255,255,255,.06); border-color:var(--wood-light);
}

.limits{ display:flex; flex-direction:column; gap:1px; background:var(--line); border-block:1px solid var(--line); }

.limits li{ display:grid; grid-template-columns:280px 1fr; gap:30px; padding:30px 2px; align-items:center; background:var(--bg-tint); }

.limits strong{ text-align:center; font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-.02em; line-height:1.5; }
.limits span{ font-size:16.8px; line-height:1.8; color:var(--ink-3); }
@media (max-width:720px){
  .limits li{ grid-template-columns:1fr; gap:10px; padding:22px 2px; }
  .limits strong{ text-align:left; }  
}

.hcases{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px 26px; }
.hcase{ display:flex; flex-direction:column; color:inherit; text-align:center; }
.hcase__thumb{
  display:block; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  background:var(--line-2); margin-bottom:16px;
}
.hcase__thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .55s var(--ease);
}
.hcase:hover .hcase__thumb img{ transform:scale(1.045); }
.hcase__meta{ font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--wood); margin-bottom:9px; }
.hcase__title{
  font-size:16.5px; font-weight:700; letter-spacing:-.025em; line-height:1.5; color:var(--ink);
  text-wrap:balance; transition:color .2s var(--ease);
}
.hcase:hover .hcase__title{ color:var(--wood); }
@media (max-width:900px){ .hcases{ grid-template-columns:repeat(2,1fr); gap:24px; } }

@media (max-width:560px){ .hcases{ grid-template-columns:repeat(2,1fr); gap:22px 12px; } }

@media (min-width:561px){ .hcases .hcase:nth-child(10){ display:none; } }
@media (max-width:560px){
  .hcase__meta{ font-size:11.5px; margin-bottom:6px; }
  .hcase__title{ font-size:13.5px; line-height:1.45; }
}

.pager{
  display:flex; justify-content:center; align-items:center; gap:8px;
  margin-top:clamp(40px, 5vw, 60px);
}
.pager__num, .pager__arrow{
  display:grid; place-items:center; min-width:42px; height:42px; padding:0 12px;
  border:1px solid var(--line); border-radius:10px; background:#fff;
  font-size:16px; font-weight:700; color:var(--ink-2);
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.pager__num:hover, .pager__arrow:hover{ border-color:var(--wood-light); color:var(--wood); }
.pager__num.is-on{ background:var(--wood); border-color:var(--wood); color:#fff; }
.pager__arrow{ font-size:20px; line-height:1; }
.pager__arrow.is-off{ color:var(--line); border-color:var(--line-2); background:transparent; }

.caseList{ display:flex; flex-direction:column; gap:1px; background:var(--line); border-block:1px solid var(--line); }
.caseCard{ background:#fff; }
.caseCard__link{
  display:grid; grid-template-columns:270px minmax(0,1fr); gap:34px; align-items:center;
  padding:26px 2px; color:inherit; transition:background .25s var(--ease);
}
.caseCard__link:hover{ background:var(--bg-tint); }
.caseCard__thumb{ display:block; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden; background:var(--line-2); }
.caseCard__thumb img{ width:100%; height:100%; object-fit:cover; object-position:50% 68%; transition:transform .55s var(--ease); }
.caseCard__link:hover .caseCard__thumb img{ transform:scale(1.05); }
.caseCard__meta{ display:block; font-size:13px; font-weight:600; letter-spacing:-.01em; color:var(--wood); margin-bottom:10px; }
.caseCard__title{ font-size:20px; font-weight:700; letter-spacing:-.03em; line-height:1.45; color:var(--ink); margin:0 0 10px; }
.caseCard__desc{ display:block; font-size:15.5px; line-height:1.75; color:var(--ink-3); }
.caseCard__more{
  display:inline-block; margin-top:17px; font-size:14px; font-weight:700; color:var(--ink);
  padding-bottom:5px; border-bottom:1.5px solid var(--line-2);
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.caseCard__link:hover .caseCard__more{ color:var(--wood); border-color:var(--wood); }
.caseList__empty{ background:#fff; margin:0; padding:44px 2px; text-align:center; color:var(--ink-3); font-size:15.5px; }
@media (max-width:720px){
  .caseCard__link{ grid-template-columns:1fr; gap:18px; padding:22px 2px; }
  .caseCard__title{ font-size:18.5px; }
}

.postmeta{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(144px, 1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; margin:0 0 clamp(34px, 4vw, 48px);
}
.postmeta > div{ background:var(--bg-tint); padding:18px 20px; }
.postmeta dt{ font-size:12.5px; font-weight:700; color:var(--ink-3); margin-bottom:7px; }
.postmeta dd{ margin:0; font-size:15.5px; font-weight:600; letter-spacing:-.02em; color:var(--ink); }
.post__body p{ font-size:17px; line-height:1.9; color:var(--ink-2); margin:0 0 18px; }
.post__photos{ display:flex; flex-direction:column; gap:clamp(34px, 4.5vw, 52px); margin-top:clamp(42px, 5vw, 62px); }
.casefig.gal__item{ aspect-ratio:auto; border-radius:0; overflow:visible; background:none; }
.casefig img{ width:100%; height:auto; object-fit:contain; border-radius:var(--radius); background:var(--line-2); }
.casefig:hover img{ transform:none; }
.casefig__step{
  display:inline-block; margin-bottom:13px; padding:6px 14px; border-radius:999px;
  background:var(--ink); color:#fff; font-size:12px; font-weight:700; letter-spacing:-.01em;
}
.casefig figcaption{
  position:static; opacity:1; transform:none; background:none;
  padding:14px 2px 0; color:var(--ink-3); font-size:15px; font-weight:500; line-height:1.7;
}
.post__back{ margin-top:clamp(44px, 5vw, 66px); text-align:center; }

.form__hp{
  position:absolute; left:-9999px; width:1px; height:1px;
  overflow:hidden; opacity:0;
}

.dock{
  position:fixed; right:0; top:50%; transform:translateY(-50%);
  z-index:95; display:none; align-items:center;
  opacity:0; visibility:hidden;
  transition:opacity .3s var(--ease), visibility .3s var(--ease);
}
.dock.is-on{ opacity:1; visibility:visible; }

.dock__tabs{ display:flex; flex-direction:column; gap:1px; }
.dock__tabs .dock__tab{ min-height:168px; justify-content:center; }
.dock__tab{
  flex:none; border:0; cursor:pointer; font-family:inherit;
  background:var(--wood); color:#fff;
  padding:20px 11px; border-radius:12px 0 0 12px;
  text-decoration:none;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:13.5px; font-weight:700; letter-spacing:.01em;
  box-shadow:-4px 4px 18px rgba(26,21,18,.18);
  transition:background .2s var(--ease);
}
.dock__tabs .dock__tab:first-child{ border-radius:12px 0 0 0; }
.dock__tabs .dock__tab:last-child{ border-radius:0 0 0 12px; }

.dock__tab--cases{ background:var(--wood-dark); }
.dock__tab--cases:hover{ background:var(--ink); }
.dock__tab:hover{ background:var(--wood-dark); padding-right:15px; }
.dock__tab svg{ width:21px; height:21px; fill:currentColor; flex:none; }
.dock__tab span{ writing-mode:vertical-rl; }

.dock__tab{ position:relative; }
.dock__tab--cases::before{ content:none; }
.dock__tab::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  box-shadow:0 0 0 0 rgba(180,114,60,.55);
  animation:dockPulse 3.2s ease-out infinite;
  pointer-events:none;
}
.dock__tab svg{ animation:dockNudge 3.2s ease-in-out infinite; }
.dock__tab:hover::before, .dock__tab:hover svg{ animation:none; }
@keyframes dockPulse{
  0%   { box-shadow:0 0 0 0 rgba(180,114,60,.5); }
  55%  { box-shadow:0 0 0 13px rgba(180,114,60,0); }
  100% { box-shadow:0 0 0 0 rgba(180,114,60,0); }
}
@keyframes dockNudge{
  0%, 82%, 100% { transform:scale(1); }
  88%           { transform:scale(1.16); }
}
@media (prefers-reduced-motion:reduce){
  .dock__tab::before, .dock__tab svg{ animation:none; }
}

.dock__panel{
  order:-1;                       
  width:270px; background:#fff;
  border:1px solid var(--line); border-right:0;
  border-radius:14px 0 0 14px; padding:20px 20px 18px;
  box-shadow:-6px 6px 28px rgba(26,21,18,.14);
}
.dock__panel[hidden]{ display:none; }
.dock__lead{ font-size:14.5px; color:var(--ink-3); line-height:1.66; margin-bottom:14px; }
.dock__lead b{ color:var(--ink-2); }
.dock__call{
  display:flex; align-items:center; justify-content:center; gap:7px;
  background:var(--wood); color:#fff; border-radius:10px;
  padding:12px 10px; font-size:16.5px; font-weight:800; letter-spacing:-.01em;
}
.dock__call:hover{ background:var(--wood-dark); }
.dock__call svg{ width:17px; height:17px; fill:currentColor; }
.dock__sms, .dock__more{
  display:block; text-align:center; margin-top:8px;
  border:1px solid var(--line); border-radius:10px;
  padding:10px; font-size:13.6px; font-weight:600; color:var(--ink-2);
}
.dock__sms:hover, .dock__more:hover{ border-color:var(--wood-light); color:var(--wood); }

.totop{
  position:fixed; right:18px; bottom:18px; z-index:95;
  width:42px; height:42px; border-radius:50%; cursor:pointer;
  border:1px solid var(--line); background:#fff; color:var(--ink-2);
  display:none; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm);
  opacity:0; visibility:hidden;
  transition:opacity .3s var(--ease), visibility .3s var(--ease),
             border-color .2s var(--ease), color .2s var(--ease);
}
.totop.is-on{ opacity:1; visibility:visible; }
.totop:hover{ border-color:var(--wood-light); color:var(--wood); }
.totop svg{ width:18px; height:18px; fill:currentColor; }

@media (min-width:861px){ .dock{ display:flex; } .totop{ display:flex; } }

.lb{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(14,10,8,.94); backdrop-filter:blur(6px);
  align-items:center; justify-content:center; padding:56px 20px;
}
.lb.is-open{ display:flex; }
.lb__fig{ margin:0; max-width:min(1200px, 94vw); max-height:88vh; display:flex; flex-direction:column; gap:14px; }
.lb__fig img{ max-width:100%; max-height:78vh; object-fit:contain; border-radius:8px; }
.lb__fig figcaption{ color:rgba(255,255,255,.76); font-size:14.5px; text-align:center; }
.lb__close{
  position:absolute; top:16px; right:20px; width:46px; height:46px; border:0; border-radius:50%;
  background:rgba(255,255,255,.1); color:#fff; font-size:30px; line-height:1;
}
.lb__close:hover{ background:rgba(255,255,255,.2); }
.lb__nav{
  position:absolute; top:50%; translate:0 -50%; width:52px; height:52px; border:0; border-radius:50%;
  background:rgba(255,255,255,.1); color:#fff; font-size:32px; line-height:1;
}
.lb__nav:hover{ background:rgba(255,255,255,.2); }
.lb__nav--prev{ left:18px; }
.lb__nav--next{ right:18px; }
@media (max-width:640px){ .lb__nav{ width:42px; height:42px; font-size:26px; } .lb__nav--prev{ left:8px; } .lb__nav--next{ right:8px; } }

body.no-scroll{ overflow:hidden; }

.nf{ text-align:center; padding-block:clamp(30px, 6vw, 70px); }
.nf__code{
  font-size:clamp(64px, 11vw, 112px); font-weight:900; line-height:1;
  letter-spacing:-.05em; color:var(--line); margin-bottom:18px;
}
.nf__title{ font-size:clamp(24px, 3.4vw, 34px); font-weight:900; letter-spacing:-.035em; margin-bottom:16px; }
.nf__desc{ font-size:16.5px; color:var(--ink-3); margin-bottom:34px; }
.nf__cta{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

.doc{ padding-block:8px 20px; }
.doc__title{ font-size:clamp(26px, 3.4vw, 36px); font-weight:900; letter-spacing:-.035em; margin-bottom:16px; }
.doc__lead{ font-size:16.5px; color:var(--ink-3); padding-bottom:28px; border-bottom:1px solid var(--line); }
.doc h2{
  font-size:19px; font-weight:800; letter-spacing:-.03em;
  margin:36px 0 12px; padding-top:4px;
}
.doc p{ font-size:15.5px; color:var(--ink-2); line-height:1.8; margin-bottom:10px; }
.doc ul{ display:flex; flex-direction:column; gap:7px; margin:10px 0 14px; }
.doc li{ position:relative; padding-left:18px; font-size:15.3px; color:var(--ink-2); line-height:1.75; }
.doc li::before{ content:""; position:absolute; left:3px; top:11px; width:5px; height:5px; border-radius:50%; background:var(--wood-light); }
.doc b{ color:var(--ink); font-weight:700; }
.doc a{ color:var(--wood); text-decoration:underline; text-underline-offset:2px; }
.doc__date{ margin-top:34px; padding-top:20px; border-top:1px solid var(--line); font-size:14px; color:var(--ink-3); }
.doc__back{ margin-top:28px; }

@media (max-width:720px){
  .hero__inner{ padding-block:0 clamp(34px, 5.5vh, 56px); }
}

@media (max-width:560px){

  
  .sec-head{ margin-bottom:clamp(30px, 7vw, 44px); }
  .sec-head__eyebrow{ font-size:15px; letter-spacing:.2em; margin-bottom:12px; }
  .sec-head__title{ font-size:22.5px; line-height:1.38; margin-bottom:12px; }
  .sec-head__desc{ font-size:15.2px; line-height:1.78; }

  
  
  .reach__card--call .reach__big{ display:none; }
  .reach__card--call .reach__ko{
    font-size:18px; font-weight:800; color:#fff; line-height:1.35;
  }
  
  .reach__card:not(.reach__card--call) .reach__ko{ display:none; }
  
  .reach{ align-items:stretch; }
  .reach__card{ justify-content:center; min-height:166px; }
  .reach{ gap:11px; }
  .reach__card{ padding:22px 12px; }
  .reach__icon{ width:42px; height:42px; }
  .reach__icon svg{ width:19px; height:19px; }
  .reach__en{ font-size:11px; letter-spacing:.17em; }
  .reach__big{ font-size:18px; line-height:1.35; }
  .reach__ko{ font-size:13px; line-height:1.55; }

  
  .reach__meta{ gap:22px 10px; }
  .reach__meta li{ gap:7px; }
  .reach__meta .reach__en{ font-size:10.5px; letter-spacing:.13em; }
  .reach__meta b{ font-size:14px; line-height:1.45; }
}

@media (max-width:720px){
  .logo{ gap:9px; }
  .logo__mark{ width:28px; height:28px; }
  .logo__text strong{ font-size:21.5px; letter-spacing:.07em; }
  .menu__btn span{ width:27px; height:2.6px; }
}

@media (max-width:560px){
  .logo--footer .logo__mark{ width:28px; height:28px; }
  .logo--footer .logo__text strong{ font-size:25px; letter-spacing:.09em; }
  .footer__tagline{ font-size:14px; margin-top:12px; }
  .footer__biz{ font-size:13.6px; gap:9px; margin-top:22px; }
  .footer__biz span{ grid-template-columns:4.1em 1fr; gap:1em; }
  .footer__biz a{ font-size:15px; }
  .footer__copy{ font-size:12.2px; margin-top:9px; }
  .footer__top{ padding-block:44px; }
}

@media (max-width:560px){
  .caseList{
    display:grid; grid-template-columns:repeat(2,1fr); gap:22px 12px;
    background:transparent; border-block:0;
  }
  .caseCard__link{ grid-template-columns:1fr; gap:10px; padding:0; }
  .caseCard__link:hover{ background:transparent; }
  
  .caseCard__date{ display:none; }
  .caseCard__link{ text-align:center; }
  .caseCard__meta{ font-size:11.5px; margin-bottom:5px; }
  .caseCard__title{ font-size:13.5px; line-height:1.45; margin:0; }
  .caseCard__desc{ display:none; }
  .caseCard__more{ display:none; }
}

@media (max-width:860px){
  
  .dock{ display:flex; top:auto; bottom:7%; transform:none; }
  .dock__tab--cases{ display:none; }
  .dock__tabs .dock__tab{ min-height:132px; }
  .dock__tabs .dock__tab:first-child{ border-radius:12px 0 0 12px; }
  .dock__tabs .dock__tab:last-child{ border-radius:12px 0 0 12px; }
  .dock__tab{ padding-block:16px; font-size:13.5px; }
  .dock__tab svg{ width:18px; height:18px; }
  .dock__panel{ max-width:min(300px, calc(100vw - 72px)); }
}

@media (max-width:720px){
  .limits li{ padding:20px 18px; }
  .faq__item summary{ padding:22px 16px; }
  .faq__a{ padding:0 16px 24px; }
}

@media (max-width:720px){
  .header--over,
  .header--over.is-stuck{ padding-top:16px; }
  .header--over .header__inner,
  .header--over.is-stuck .header__inner{ height:56px; }   
}

.header--over,
.header--over.is-stuck{ padding-top:20px; }
.header--over .header__inner,
.header--over.is-stuck .header__inner{ height:52px; }
