/* Main stylesheet
   Primary:#132A33 · Accent:#7F9C96 · BG:#F6F4EE */

/* ── Variables ── */
:root {
  --c-primary:    #132A33;
  --c-p90:        rgba(19,42,51,.9);
  --c-p60:        rgba(19,42,51,.6);
  --c-p40:        rgba(19,42,51,.4);
  --c-p15:        rgba(19,42,51,.15);
  --c-p06:        rgba(19,42,51,.06);
  --c-p03:        rgba(19,42,51,.03);
  --c-accent:     #7F9C96;
  --c-accent-h:   #5E7B76;
  --c-accent-l:   #C9D6D2;
  --c-accent-20:  rgba(127,156,150,.2);
  --c-bg:         #F6F4EE;
  --c-surface:    #EEF1EE;
  --c-surface2:   #DCE5E2;
  --c-white:      #FFFFFF;
  --c-line:       rgba(19,42,51,.1);
  --c-line2:      rgba(19,42,51,.18);

  --f-d:    'Marcellus', serif;                       /* 디스플레이 */
  --f-h:    'Noto Sans KR','Apple SD Gothic Neo',sans-serif; /* 제목 */
  --f-b:    'Manrope','Noto Sans KR',sans-serif;      /* 본문 */
  --f-l:    'Manrope','Noto Sans KR',sans-serif;      /* 레이블 */

  --max-w:   1280px;
  --px:      clamp(1.25rem,5vw,4rem);
  --py:      clamp(5rem,10vw,7.5rem);
  --gap:     1px; /* 그리드 라인 갭 */
  --nav-h:   64px;

  --r0:      0px;
  --r-img:   0px;
  --r-pill:  0px;

  --ease:    cubic-bezier(0.16,1,0.3,1);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  font-size:16px;
  overflow-x:hidden;
  overflow-x:clip;
}
body{
  font-family:var(--f-b);background:var(--c-bg);color:var(--c-primary);
  line-height:1.75;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overflow-x:clip;
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:pretty;
  max-width:100%;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font:inherit}
ul,ol{list-style:none}

/* ── Layout ── */
.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--px)}
.py{padding-top:var(--py);padding-bottom:var(--py)}
.bt{border-top:1px solid var(--c-line)}
.bg-default{background:var(--c-bg)}
.bg-surface{background:var(--c-surface)}
.bg-alt{background:var(--c-surface2)}
.bg-dark{background:var(--c-primary);color:var(--c-white)}

/* ── Label Caps (LUMINA system) ── */
.label{
  font-family:var(--f-l);font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;line-height:1;
  color:var(--c-accent);
}
.label-muted{color:var(--c-p60)}
.label-white{color:rgba(255,255,255,.55)}

/* ── Typography ── */
.t-d{font-family:var(--f-d);letter-spacing:-.01em;font-weight:400}
h1,h2,h3,h4{font-family:var(--f-h);line-height:1.28;font-weight:700}
h1{font-size:clamp(1.9rem,4.5vw,3.25rem)}
h2{font-size:clamp(1.5rem,3vw,2.125rem)}
h3{font-size:clamp(1.0rem,2vw,1.25rem)}
p{line-height:1.8}
.t-muted{color:var(--c-p60)}
.t-small{font-size:.875rem;line-height:1.65}

h1,h2,h3,h4,
p,
li,
.t-muted,
.t-small,
.svc-title,
.svc-desc,
.review-card-quote,
.review-card-focus,
.review-signal-title,
.review-signal-desc,
.review-keyword-text,
.review-keywords-desc,
.review-keywords-note,
.trust-value,
.access-val,
.feat-desc,
.faq-question span,
.faq-answer,
.cta-sub,
.hero-lead,
.hero-note strong,
.hero-note p,
.about-quote,
.about-badge-text,
.sub-hero-content p,
.footer-desc,
.footer-nav a,
.footer-legal{
  word-break:keep-all;
  overflow-wrap:normal;
}

h1,h2,h3,
.hero-h1,
.cta-title,
.review-signal-title,
.svc-title,
.feat-title,
.faq-question span{
  text-wrap:balance;
}

p,
.svc-desc,
.review-card-quote,
.review-card-focus,
.review-signal-desc,
.review-keywords-desc,
.review-keywords-note,
.access-val,
.cta-sub,
.hero-lead,
.faq-answer,
.t-muted{
  text-wrap:pretty;
}

/* ── Nav ── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;height:64px;
  background:var(--c-bg);border-bottom:1px solid var(--c-line);
  transition:background .3s ease,box-shadow .3s ease;
}
.nav.is-scrolled{
  background:rgba(246,244,238,.96);
  backdrop-filter:blur(16px);
  box-shadow:0 1px 0 var(--c-line2);
}
.nav__in{
  max-width:var(--max-w);margin:0 auto;padding:0 var(--px);
  height:100%;display:flex;align-items:center;justify-content:space-between;
}
.nav__logo{
  display:flex;align-items:center;gap:.625rem;min-width:0;
  color:var(--c-primary);
}
.nav__logo-text{
  display:flex;flex-direction:column;min-width:0;line-height:1;
}
.nav__logo-en{
  font-family:var(--f-d);font-size:1rem;letter-spacing:.02em;font-weight:400;
}
.nav__logo-ko{
  font-family:var(--f-h);font-size:.72rem;font-weight:600;
  letter-spacing:.01em;color:var(--c-p60);margin-top:.18rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav__links{display:none}
@media(min-width:768px){
  .nav__links{
    display:flex;gap:2.5rem;align-items:center;
  }
  .nav__links a{
    font-family:var(--f-l);font-size:11px;font-weight:600;
    letter-spacing:.12em;text-transform:uppercase;color:var(--c-p60);
    transition:color .25s ease;
  }
  .nav__links a:hover{color:var(--c-primary)}
}
.nav__cta{
  font-family:var(--f-l);font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--c-accent);display:flex;align-items:center;gap:.4rem;
  transition:color .25s ease;
  white-space:nowrap;
}
.nav__cta:hover{color:var(--c-accent-h)}
/* ── Hero ── */
.hero{
  --hero-top-gap: calc(var(--nav-h) + 1.8rem);
  position:relative;
  overflow:hidden;
  min-height:clamp(680px,90svh,960px);
  padding:var(--hero-top-gap) 0 5rem;
  background:#102127;
}
.hero-bg-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
  pointer-events:none;
}
.hero-bg-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  pointer-events:none;
}
.hero-bg-video::-webkit-media-controls,
.hero-bg-video::-webkit-media-controls-start-playback-button{
  display:none !important;
  -webkit-appearance:none;
}
.hero-bg-cover{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(7,16,20,.36) 0%, rgba(7,16,20,.36) 100%),
    url('/assets/images/hero/main.webp') center/cover no-repeat;
  opacity:1;
  transition:opacity .7s ease;
}
.hero-bg-media.is-playing .hero-bg-cover{
  opacity:0;
}
.hero-mineral{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(7,16,20,.58) 0%, rgba(7,16,20,.52) 45%, rgba(7,16,20,.62) 100%),
    linear-gradient(120deg, transparent 0 58%, rgba(255,255,255,.18) 58% 100%);
}
.hero-shell{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(1.5rem,3vw,2.75rem);
  align-items:end;
}
.hero-copy{
  max-width:620px;
  padding:clamp(1.2rem,2.2vw,1.9rem);
  background:linear-gradient(160deg, rgba(7,16,20,.52) 0%, rgba(7,16,20,.24) 100%);
  border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(8px);
  box-shadow:0 28px 50px rgba(0,0,0,.22);
}
.hero-chip{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:.5rem 1rem;
  border-radius:0;
  background:rgba(7,16,20,.42);
  border:1px solid rgba(255,255,255,.24);
  color:#d8ece7;
  font-family:var(--f-l);
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:1.4rem;
}
.hero-h1{
  font-family:var(--f-h);
  font-size:clamp(2.35rem,5.4vw,5.2rem);
  font-weight:800;
  color:#fff;
  line-height:1.02;
  letter-spacing:-.045em;
  margin-bottom:1rem;
}
.hero-lead{
  font-size:clamp(1rem,1.5vw,1.08rem);
  line-height:1.9;
  color:rgba(255,255,255,.84);
  margin-bottom:1.4rem;
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-bottom:2rem;
}
.hero-meta__item{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:.45rem .9rem;
  border-radius:0;
  background:rgba(7,16,20,.45);
  border:1px solid rgba(255,255,255,.22);
  font-family:var(--f-l);
  font-size:.78rem;
  font-weight:600;
  color:#fff;
}
.hero-cta-wrap{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}
.hero-notes-desktop{
  position:relative;
  display:grid;
  gap:.85rem;
  max-width:280px;
  width:100%;
  justify-self:end;
  align-self:end;
}
.hero-note{
  position:absolute;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(19,42,51,.08);
  backdrop-filter:blur(14px);
  border-radius:0;
  box-shadow:0 18px 40px rgba(19,42,51,.08);
}
.hero-note--top{
  top:1.25rem;
  left:-1rem;
  padding:.9rem 1rem;
  max-width:190px;
}
.hero-note--top strong{
  display:block;
  margin-top:.35rem;
  line-height:1.4;
  font-size:.95rem;
  color:var(--c-primary);
}
.hero-note--bottom{
  right:-1rem;
  bottom:1.25rem;
  padding:.85rem 1rem;
  max-width:230px;
}
.hero-note--bottom p{
  margin-top:.3rem;
  font-size:.82rem;
  line-height:1.4;
  color:var(--c-primary);
  font-weight:600;
  letter-spacing:-.01em;
}
.hero-notes-desktop .hero-note{
  position:static;
  margin:0;
  max-width:none;
  padding:.95rem 1rem;
}
.hero-notes-desktop .hero-note--top,
.hero-notes-desktop .hero-note--bottom{
  left:auto;
  right:auto;
  top:auto;
  bottom:auto;
}
.hero-notes-mobile{display:none}
@media(max-width:480px){
  .hero .hero-cta-wrap{grid-template-columns:1fr}
}
@media(max-width:1024px){
  .hero-shell{grid-template-columns:1fr}
  .hero-notes-desktop{
    max-width:none;
    justify-self:stretch;
  }
  .hero-copy{max-width:none}
}
@media(max-width:767px){
  .hero{
    --hero-video-h:clamp(240px,46vh,360px);
    --hero-top-gap: calc(var(--nav-h) + .75rem);
    padding:var(--hero-top-gap) 0 2.75rem;
    background:linear-gradient(180deg,#F6F4EE 0%,#EEF1EE 100%);
    min-height:0;
  }
  .hero-bg-media{
    top:calc(var(--nav-h) + .25rem);
    left:0;
    right:0;
    height:var(--hero-video-h);
    bottom:auto;
    border-radius:0;
    border:none;
  }
  .hero-bg-video{
    width:100%;
    height:100%;
    border-radius:0;
  }
  .hero-bg-cover{
    border-radius:0;
  }
  .hero-mineral{
    top:calc(var(--nav-h) + .25rem);
    left:0;
    right:0;
    height:var(--hero-video-h);
    bottom:auto;
    border-radius:0;
    background:
      linear-gradient(180deg, rgba(7,16,20,.38) 0%, rgba(7,16,20,.34) 55%, rgba(7,16,20,.45) 100%),
      linear-gradient(120deg, transparent 0 58%, rgba(255,255,255,.16) 58% 100%);
  }
  .hero-shell{
    display:flex;
    flex-direction:column;
    gap:1rem;
    padding-top:calc(var(--hero-video-h) + 1.45rem);
  }
  .hero-copy{
    order:2;
    max-width:none;
    padding:1.2rem 1rem 1.05rem;
    background:rgba(255,255,255,.82);
    border:1px solid var(--c-line);
    box-shadow:none;
    backdrop-filter:none;
  }
  .hero-chip{
    margin-bottom:.85rem;
    font-size:10px;
    letter-spacing:.1em;
    background:rgba(255,255,255,.78);
    border-color:var(--c-line);
    color:var(--c-accent-h);
  }
  .hero-h1{
    font-size:clamp(2.1rem,11vw,2.7rem);
    line-height:1.07;
    margin-bottom:.85rem;
    color:var(--c-primary);
  }
  .hero-lead{
    margin-bottom:1rem;
    font-size:1rem;
    line-height:1.7;
    color:var(--c-p60);
  }
  .hero-lead br{display:none}
  .hero-meta{
    display:grid;
    gap:.55rem;
    margin-bottom:1rem;
  }
  .hero-meta__item{
    width:100%;
    min-height:0;
    padding:.6rem .75rem;
    font-size:.84rem;
    background:#fff;
    border-color:var(--c-line);
    color:var(--c-primary);
  }
  .hero-cta-wrap{
    width:100%;
    max-width:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.6rem;
  }
  .hero-cta-wrap .btn{
    width:100%;
    min-height:52px;
    padding:.85rem .75rem;
    font-size:.95rem;
    font-weight:700;
    letter-spacing:0;
    text-transform:none;
  }
  .hero-notes-mobile{
    order:3;
    display:grid;
    gap:.65rem;
    margin-top:.2rem;
  }
  .hero-notes-mobile .hero-note{
    position:static;
    margin:0;
    max-width:none;
    padding:.95rem .95rem .9rem;
    background:linear-gradient(145deg,#fff 0%,#f7faf8 100%);
    border:1px solid var(--c-line);
    border-left:3px solid var(--c-accent);
    box-shadow:none;
    backdrop-filter:none;
  }
  .hero-notes-mobile .hero-note--bottom{
    border-left-color:rgba(19,42,51,.3);
  }
  .hero-notes-mobile .label{
    font-size:.71rem;
    letter-spacing:.05em;
    text-transform:none;
    color:var(--c-accent-h);
    font-weight:700;
  }
  .hero-notes-mobile .hero-note strong,
  .hero-notes-mobile .hero-note p{
    display:block;
    margin-top:.38rem;
    font-size:.93rem;
    line-height:1.5;
    color:var(--c-primary);
    letter-spacing:-.01em;
  }
  .hero-notes-mobile .hero-note p{
    font-weight:600;
  }
  .hero-notes-mobile br{
    display:none;
  }
}

/* ── Trust Strip ── */
.trust-strip{
  background:
    radial-gradient(circle at top left, rgba(127,156,150,.18), transparent 34%),
    linear-gradient(135deg, #132A33 0%, #1E4048 100%);
  padding:0
}
.trust-inner{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--px);
}
.trust-item{
  padding:1.625rem 1.5rem;
  border-right:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.07);
  display:flex;align-items:flex-start;gap:.75rem;
}
.trust-item:nth-child(2n){border-right:none}
.trust-item:nth-last-child(-n+2){border-bottom:none}
.trust-icon{font-size:1rem;color:var(--c-accent);flex-shrink:0;margin-top:.15rem}
.trust-label{
  font-family:var(--f-l);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--c-accent);display:block;margin-bottom:.3rem;
}
.trust-value{font-size:.8125rem;color:rgba(255,255,255,.6);line-height:1.45}
@media(max-width:767px){
  .trust-item{padding:1.25rem 1rem}
}

/* ── Section Head ── */
.sh{margin-bottom:clamp(2.5rem,5vw,4rem)}
.sh__kicker{display:block;margin-bottom:1rem}
.sh__line{
  display:block;width:48px;height:1px;
  background:var(--c-accent);margin:1.25rem 0;
}
.sh-line{
  display:block;width:48px;height:1px;
  background:var(--c-accent);margin:1.25rem 0;
}
.sh--center{text-align:center}
.sh-center{text-align:center}
.sh--center .sh__line{margin:1.25rem auto}
.sh-center .sh-line{margin:1.25rem auto}
.sh__desc{font-size:.9375rem;color:var(--c-p60);max-width:480px;line-height:1.8}
.sh--center .sh__desc{margin:0 auto}
.sh-center .sh__desc{margin:0 auto}

/* ── About ── */
.about-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,6vw,6rem);align-items:center;
}
@media(max-width:767px){.about-grid{grid-template-columns:1fr;gap:2rem}}
.about-img{
  aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-img);
  background:var(--c-surface);position:relative;
}
.about-img img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-img)}
.about-badge{
  position:absolute;bottom:1.5rem;left:1.5rem;
  background:rgba(250,247,244,.92);backdrop-filter:blur(8px);
  border:1px solid var(--c-line);padding:1rem 1.25rem;
  max-width:220px;
}
.about-badge .label{margin-bottom:.4rem;display:block}
.about-badge-text{font-family:var(--f-d);font-style:italic;font-size:1.0625rem;color:var(--c-primary);line-height:1.4}
.about-quote{
  font-family:var(--f-d);font-style:italic;
  font-size:clamp(1rem,2vw,1.25rem);
  line-height:1.75;color:var(--c-p60);
  border-left:2px solid var(--c-accent);
  padding-left:1.5rem;margin:1.75rem 0;
}

/* ── Process (3-step LUMINA) ── */
.process-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  position:relative;
}
.process-grid::before{
  content:'';position:absolute;top:28px;left:0;right:0;
  height:1px;background:var(--c-line2);z-index:0;
}
.process-card{
  background:var(--c-bg);padding:2.5rem 2rem;
  border:1px solid var(--c-line);border-right:none;
  position:relative;z-index:1;
  transition:background .3s ease,box-shadow .5s ease;
}
.process-card:last-child{border-right:1px solid var(--c-line)}
.process-card:hover,.process-card.is-active{
  background:var(--c-white);
  box-shadow:0 16px 48px var(--c-p06);
}
.process-num{
  width:56px;height:56px;background:var(--c-primary);color:var(--c-white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:1.125rem;font-weight:400;
  margin-bottom:1.75rem;flex-shrink:0;position:relative;z-index:1;
}
.process-num--outline{
  background:transparent;color:var(--c-primary);
  border:1px solid var(--c-line2);
}
.process-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:1.5rem;
  font-family:var(--f-l);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-p40);
}
.process-tag .material-symbols-outlined{font-size:14px}
@media(max-width:767px){
  .process-grid{grid-template-columns:1fr}
  .process-grid::before{display:none}
  .process-card{border-right:1px solid var(--c-line);border-bottom:none}
  .process-card:last-child{border-bottom:1px solid var(--c-line)}
}

/* ── Services Grid (1px line grid) ── */
.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1rem;border:none;background:none;
}
@media(max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.services-grid{grid-template-columns:1fr}}
.services-grid--compact2{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}
.services-grid--compact2 > *{
  min-width:0;
}
.services-grid--compact2 .svc-body{
  padding:1.15rem 1rem 1.3rem;
  text-align:center;
  align-items:center;
}
.services-grid--compact2 .svc-title{
  font-size:.95rem;
  margin-bottom:.45rem;
  width:100%;
}
.services-grid--compact2 .svc-desc{
  font-size:.8rem;
  line-height:1.55;
  width:100%;
  overflow-wrap:anywhere;
}
.services-grid--compact2 .svc-tag{
  margin-bottom:.35rem;
}
.services-grid--compact2 .svc-body p[style*="font-size:1.7rem"]{
  font-size:1.25rem !important;
}
@media(max-width:900px){
  .services-grid--compact2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:540px){
  .services-grid--compact2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
  }
  .services-grid--compact2 .svc-body{
    padding:.9rem .75rem 1rem;
  }
  .services-grid--compact2 .svc-title{
    font-size:.87rem;
  }
  .services-grid--compact2 .svc-desc{
    font-size:.74rem;
  }
}
.svc-card{
  background:var(--c-white);display:flex;flex-direction:column;
  transition:background .3s ease, box-shadow .3s ease, transform .3s var(--ease);
  border:1px solid rgba(19,42,51,.08);
  border-radius:var(--r0);
  overflow:hidden;
}
.svc-card:hover{background:var(--c-white);box-shadow:0 20px 40px rgba(19,42,51,.08);transform:translateY(-2px)}
.svc-img{aspect-ratio:4/3;overflow:hidden;background:var(--c-surface)}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.svc-card:hover .svc-img img{transform:scale(1.05)}
.svc-body{padding:1.5rem 1.75rem 2rem;flex:1;display:flex;flex-direction:column}
.svc-tag{display:block;margin-bottom:.5rem}
.svc-title{font-family:var(--f-h);font-size:1.0625rem;font-weight:700;margin-bottom:.6rem}
.svc-desc{font-size:.875rem;color:var(--c-p60);line-height:1.65;flex:1}

/* ── Review Section ── */
.review-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1.25rem;
}
@media(max-width:1024px){.review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.review-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}}
.review-signal{
  padding:1.05rem .95rem;
  border:1px solid rgba(19,42,51,.08);
  border-radius:var(--r0);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.78));
  min-height:136px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:.35rem;
  min-width:0;
}
.review-signal-count{
  display:block;
  margin-bottom:.35rem;
  font-family:var(--f-d);
  font-size:clamp(1.45rem,3vw,2rem);
  color:var(--c-primary);
  line-height:1;
  font-style:normal;
}
.review-signal-title{
  font-size:.9rem;
  line-height:1.35;
  margin-bottom:.2rem;
}
.review-signal-desc{
  font-size:.77rem;
  color:var(--c-p60);
  line-height:1.52;
  overflow-wrap:anywhere;
}
@media(max-width:767px){
  .review-signal{
    padding:.9rem .8rem;
    min-height:124px;
  }
  .review-signal-count{
    font-size:1.35rem;
  }
  .review-signal-title{
    font-size:.84rem;
  }
  .review-signal-desc{
    font-size:.72rem;
  }
}

.review-grid{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);
  gap:1.25rem;
  align-items:start;
}
@media(max-width:980px){.review-grid{grid-template-columns:1fr}}
.review-cards{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
.review-card{
  padding:1.5rem 1.5rem 1.6rem;
  border:1px solid rgba(19,42,51,.08);
  border-radius:var(--r0);
  background:var(--c-white);
  box-shadow:none;
}
.review-card-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  min-height:30px;
  border:1px solid var(--c-line2);
  font-family:var(--f-l);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--c-primary);
  margin-bottom:1rem;
}
.review-card-quote{
  font-family:var(--f-h);
  font-size:1rem;
  font-weight:600;
  line-height:1.8;
  color:var(--c-primary);
  margin-bottom:1rem;
}
.review-card-focus{
  font-size:.84rem;
  color:var(--c-p60);
  padding-top:.9rem;
  border-top:1px solid var(--c-line);
  margin-bottom:1rem;
}
.review-card-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.review-card-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:.4rem .7rem;
  border-radius:var(--r-pill);
  background:var(--c-surface);
  border:1px solid var(--c-line);
  font-size:.72rem;
  font-weight:600;
  color:var(--c-primary);
}

.review-keywords{
  padding:1.5rem;
  border-radius:var(--r0);
  background:linear-gradient(180deg, rgba(19,42,51,.98) 0%, rgba(30,64,72,.96) 100%);
  color:var(--c-white);
  position:sticky;top:92px;
}
@media(max-width:980px){.review-keywords{position:static}}
.review-keywords h3{
  margin-top:.9rem;margin-bottom:.75rem;
  color:var(--c-white);
}
.review-keywords-desc,
.review-keywords-note{
  font-size:.875rem;line-height:1.7;
  color:rgba(255,255,255,.68);
}
.review-keywords-note{
  margin-top:1rem;font-size:.75rem;
  color:rgba(255,255,255,.46);
}
.review-keyword-list{
  display:grid;
  grid-template-columns:1fr;
  gap:.5rem;
  margin-top:.95rem;
}
.review-keyword{
  display:grid;
  grid-template-columns:30px 1fr auto;
  align-items:center;
  gap:.5rem;
  padding:.62rem .65rem;border-radius:0;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08);
  min-width:0;
}
.review-keyword-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.12);
  font-family:var(--f-l);
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--c-accent-l);
}
.review-keyword-text{
  font-size:.78rem;font-weight:600;color:var(--c-white);
  line-height:1.35;
  min-width:0;
  overflow-wrap:anywhere;
}
.review-keyword-count{
  min-width:2rem;text-align:right;
  font-family:var(--f-d);font-size:.95rem;font-weight:400;
  color:var(--c-accent-l);
}
/* ── Features Grid ── */
.feat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1rem;border:none;
}
@media(max-width:767px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
.feat-item{
  padding:2rem 1.75rem;
  border:1px solid rgba(19,42,51,.08);
  border-radius:var(--r0);
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(6px);
  transition:background .3s ease,box-shadow .3s ease,transform .3s var(--ease);
}
.feat-item:hover{background:var(--c-white);box-shadow:0 16px 36px var(--c-p06);transform:translateY(-2px)}
.feat-num{
  font-family:var(--f-d);font-size:.8125rem;font-style:italic;
  color:var(--c-accent);letter-spacing:.12em;
  display:block;margin-bottom:.875rem;
}
.feat-title{font-family:var(--f-h);font-size:.9375rem;font-weight:700;margin-bottom:.5rem}
.feat-desc{font-size:.8125rem;color:var(--c-p60);line-height:1.65}

/* ── Stats Bar ── */
.stats{background:var(--c-surface);border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.stats__in{
  display:flex;max-width:var(--max-w);margin:0 auto;padding:0 var(--px);
}
.stat{
  flex:1;padding:2rem 1.5rem;border-right:1px solid var(--c-line);text-align:center;
}
.stat:last-child{border-right:none}
.stat__n{
  font-family:var(--f-d);font-size:clamp(2rem,3.5vw,2.75rem);
  font-weight:400;color:var(--c-accent);font-style:italic;
  letter-spacing:-.02em;display:block;margin-bottom:.3rem;
}
.stat__l{
  font-family:var(--f-l);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-p60);
}
@media(max-width:767px){
  .stats__in{flex-wrap:wrap}
  .stat{flex:0 0 50%;border-bottom:1px solid var(--c-line)}
  .stat:nth-child(2n){border-right:none}
}

/* ── Access (오시는 길) ── */
.access-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4rem);align-items:start;
}
@media(max-width:767px){.access-grid{grid-template-columns:1fr}}
.map-wrap,
.access__map{
  border:1px solid var(--c-line);overflow:hidden;border-radius:var(--r-img);
  background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;
}
.map-wrap iframe,
.access__map iframe{display:block;width:100%;height:400px;border:none}
@media(max-width:767px){
  .map-wrap iframe,
  .access__map iframe{height:260px}
}
.map-actions{
  display:flex;gap:.75rem;flex-wrap:wrap;
  padding:1rem;border-top:1px solid var(--c-line);
  background:rgba(255,255,255,.9);
}
.map-actions .btn{
  flex:1;min-width:160px;padding:.9rem 1.25rem;
}
@media(max-width:767px){
  .map-actions{padding:.875rem}
  .map-actions .btn{width:100%}
}
.access-item{
  display:flex;gap:.875rem;
  padding:1.25rem 0;border-bottom:1px solid var(--c-line);
}
.access-item:first-child{padding-top:0}
.access-item:last-child{border-bottom:none}
.access-icon{color:var(--c-accent);flex-shrink:0;margin-top:.1rem;font-size:1.125rem}
.access-lbl{
  font-family:var(--f-l);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  display:block;margin-bottom:.375rem;
}
.access-val{font-size:.9rem;color:var(--c-p60);line-height:1.65}
.access-link{color:var(--c-accent);font-weight:600;transition:color .2s ease}
.access-link:hover{color:var(--c-accent-h)}

/* ── Subpage Extended Info ── */
.sub-price-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}
.sub-price-item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:.8rem;
  align-items:center;
  border:1px solid rgba(19,42,51,.1);
  background:#fff;
  padding:.95rem 1rem;
  min-width:0;
}
.sub-price-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid rgba(127,156,150,.4);
  background:rgba(127,156,150,.09);
  font-family:var(--f-l);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-accent-h);
}
.sub-price-item h3{
  font-size:.98rem;
  line-height:1.48;
  margin:0;
  min-width:0;
  overflow-wrap:anywhere;
}
.sub-price-value{
  font-family:var(--f-d);
  font-size:1.16rem;
  color:var(--c-primary);
  white-space:nowrap;
}

.sub-reservation-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.9rem;
}
.sub-reservation-card{
  border:1px solid rgba(19,42,51,.1);
  background:linear-gradient(160deg,#fff 0%,#f7faf8 100%);
  padding:1.15rem 1rem 1.2rem;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.sub-reservation-kicker{
  display:inline-flex;
  margin-bottom:.55rem;
  font-family:var(--f-l);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-accent-h);
}
.sub-reservation-card h3{
  font-size:1.04rem;
  line-height:1.45;
  margin-bottom:.55rem;
  min-width:0;
  overflow-wrap:anywhere;
}
.sub-reservation-card p{
  font-size:.92rem;
  line-height:1.65;
  color:var(--c-p60);
  min-width:0;
  overflow-wrap:anywhere;
}
.sub-reservation-review{
  margin-top:1rem;
  display:inline-flex;
  align-self:flex-start;
  padding:.3rem .6rem;
  border:1px solid rgba(127,156,150,.42);
  background:rgba(127,156,150,.08);
  font-family:var(--f-l);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--c-accent-h);
}

.sub-brand-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:1rem;
  align-items:start;
}
.sub-brand-story{
  border:1px solid rgba(19,42,51,.12);
  background:#fff;
  padding:1.4rem 1.2rem;
}
.sub-brand-name{
  display:block;
  font-family:var(--f-h);
  font-size:1.1rem;
  font-weight:800;
  line-height:1.35;
}
.sub-brand-specialty{
  margin-top:.55rem;
  margin-bottom:.95rem;
  font-size:.85rem;
  color:var(--c-accent-h);
  font-weight:600;
  letter-spacing:.01em;
}
.sub-brand-story p{
  font-size:.96rem;
  line-height:1.72;
  color:var(--c-p60);
}
.sub-brand-story p + p{
  margin-top:.72rem;
}
.sub-brand-points{
  display:grid;
  grid-template-columns:1fr;
  gap:.7rem;
}
.sub-brand-point{
  border:1px solid rgba(19,42,51,.12);
  background:#fff;
  padding:.95rem .9rem;
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  min-width:0;
}
.sub-brand-point-index{
  display:inline-flex;
  font-family:var(--f-l);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--c-accent-h);
  margin-top:.22rem;
  flex-shrink:0;
}
.sub-brand-point p{
  font-size:.91rem;
  line-height:1.62;
  color:var(--c-primary);
  min-width:0;
  overflow-wrap:anywhere;
}

.sub-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}
.sub-meta-card{
  border:1px solid rgba(19,42,51,.1);
  background:linear-gradient(180deg,#fff 0%,#f8faf9 100%);
  padding:1rem;
  min-width:0;
}
.sub-meta-card h3{
  font-size:1.02rem;
  margin-bottom:.7rem;
  line-height:1.4;
}
.sub-meta-list{
  display:grid;
  gap:.45rem;
}
.sub-meta-list li{
  position:relative;
  padding-left:.95rem;
  font-size:.91rem;
  line-height:1.66;
  color:var(--c-p60);
  overflow-wrap:anywhere;
}
.sub-meta-list li::before{
  content:'·';
  position:absolute;
  left:0;
  top:0;
  color:var(--c-accent);
}
.sub-keyword-list{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.sub-keyword-chip{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:.38rem .72rem;
  border:1px solid rgba(127,156,150,.36);
  background:rgba(127,156,150,.08);
  font-size:.82rem;
  font-weight:600;
  line-height:1.36;
  color:var(--c-primary);
  max-width:100%;
  overflow-wrap:anywhere;
}

@media(max-width:980px){
  .sub-price-list{
    grid-template-columns:1fr;
  }
  .sub-reservation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-brand-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:767px){
  .sub-price-item{
    grid-template-columns:auto minmax(0,1fr);
    gap:.65rem;
    padding:.9rem .85rem;
  }
  .sub-price-value{
    grid-column:2;
    justify-self:start;
  }
  .sub-price-item h3{
    font-size:.86rem;
  }
  .sub-price-value{
    font-size:1rem;
  }
  .sub-reservation-grid{
    grid-template-columns:1fr;
  }
  .sub-reservation-card{
    padding:1rem .88rem 1.05rem;
  }
  .sub-brand-story{
    padding:1.05rem .9rem;
  }
  .sub-brand-point{
    padding:.85rem .78rem;
  }
  .sub-meta-grid{
    grid-template-columns:1fr;
  }
  .sub-meta-card{
    padding:.95rem .85rem;
  }
}

/* ── FAQ ── */
.faq-list{border-top:1px solid var(--c-line)}
.faq-item{border-bottom:1px solid var(--c-line)}
.faq-question{
  width:100%;background:none;border:none;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.375rem 0;cursor:pointer;text-align:left;
  font-family:var(--f-h);font-size:1.02rem;font-weight:700;color:var(--c-primary);
  transition:color .2s ease;
}
.faq-question:hover,.faq-item.open .faq-question{color:var(--c-accent)}
.faq-icon{
  flex-shrink:0;width:22px;height:22px;
  border:1px solid var(--c-line2);display:flex;align-items:center;justify-content:center;
  font-size:.9rem;color:var(--c-p60);
  transition:all .35s var(--ease);
}
.faq-item.open .faq-icon{background:var(--c-accent);border-color:var(--c-accent);color:#fff;transform:rotate(45deg)}
.faq-answer{
  overflow:hidden;max-height:0;
  transition:max-height .45s cubic-bezier(0.16,1,0.3,1),padding .35s ease;
  font-size:.98rem;color:var(--c-p60);line-height:1.8;
}
.faq-answer.open{max-height:400px;padding-bottom:1.375rem}

/* ── CTA Section ── */
.cta-sec{
  background:var(--c-primary);padding:var(--py) var(--px);
  text-align:center;position:relative;overflow:hidden;
}
.cta-sec::before{
  content:'';position:absolute;inset:0;
  background:url('/assets/images/hero/main.webp') center/cover;
  opacity:.05;
}
.cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
.cta-title{font-family:var(--f-h);font-size:clamp(1.5rem,3vw,2.25rem);color:#fff;margin-bottom:1rem;font-weight:700}
.cta-sub{font-size:.9375rem;color:rgba(255,255,255,.55);margin-bottom:2.5rem;line-height:1.8}
.cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
@media(max-width:480px){
  .cta-btns{flex-direction:column;align-items:stretch}
  .cta-btns .btn{justify-content:center}
}

@media(max-width:767px){
  h1{line-height:1.14}
  h2{line-height:1.22}
  h3{line-height:1.32}
  p,
  .t-muted,
  .svc-desc,
  .review-card-quote,
  .review-card-focus,
  .review-signal-desc,
  .review-keywords-desc,
  .review-keywords-note,
  .access-val,
  .faq-answer,
  .cta-sub,
  .hero-lead{
    line-height:1.72;
  }
  .hero-meta{
    row-gap:.5rem;
  }
  .hero-meta__item,
  .review-card-tag,
  .sub-tag{
    line-height:1.45;
  }
  .footer-legal{
    line-height:1.85;
  }
}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--f-l);font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  padding:1rem 2.25rem;min-height:48px;
  border:none;cursor:pointer;
  transition:all .3s var(--ease);white-space:nowrap;
}
.btn-primary{
  background:var(--c-accent);color:#fff;border-radius:var(--r-pill);
}
.btn-primary:hover{background:var(--c-accent-h);transform:translateY(-3px);box-shadow:0 10px 28px var(--c-accent-20)}
.btn-dark{
  background:var(--c-primary);color:#fff;border-radius:var(--r-pill);
}
.btn-dark:hover{background:#21414A;transform:translateY(-3px);box-shadow:0 10px 28px rgba(19,42,51,.22)}
.btn-outline{
  background:transparent;color:var(--c-primary);
  border:1px solid var(--c-primary);border-radius:var(--r0);
}
.btn-outline:hover{background:var(--c-primary);color:#fff}
.btn-outline-w{
  background:transparent;color:#fff;
  border:1px solid rgba(255,255,255,.35);border-radius:var(--r0);
}
.btn-outline-w:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-naver{
  background:#03C75A;color:#fff;border-radius:var(--r-pill);
  gap:.5rem;
}
.btn-naver:hover{background:#02a84b;transform:translateY(-3px);box-shadow:0 10px 28px rgba(3,199,90,.3)}

/* ── Float CTA ── */
.float-cta{
  position:fixed;bottom:28px;right:20px;z-index:200;
  flex-direction:column;gap:10px;display:none;
  opacity:0;transition:opacity .4s ease;
}
.float-cta.is-visible{opacity:1}
.float-cta a{
  display:flex;align-items:center;gap:8px;
  padding:.875rem 1.25rem;border-radius:var(--r-pill);
  font-family:var(--f-l);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:#fff;
  box-shadow:0 6px 24px rgba(19,42,51,.22);
  transition:transform .25s var(--ease),box-shadow .25s ease;
  min-height:48px;
}
.float-cta a:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(19,42,51,.26)}
.float-cta .fcta-call{background:var(--c-accent);position:relative}
.float-cta .fcta-call::before{
  content:'';position:absolute;inset:-5px;border-radius:var(--r-pill);
  border:2px solid var(--c-accent);
  animation:pulseCTA 2.2s ease-in-out infinite;
}
@keyframes pulseCTA{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.5);opacity:0}}
.float-cta .fcta-sms{background:var(--c-primary)}

/* ── Back to Top ── */
.back-top{
  position:fixed;bottom:110px;right:20px;z-index:150;
  width:38px;height:38px;background:var(--c-primary);color:#fff;
  border:none;display:flex;align-items:center;justify-content:center;
  font-size:.9rem;opacity:0;pointer-events:none;
  transition:opacity .3s ease,transform .3s var(--ease),background .2s ease;
}
.back-top.is-visible{opacity:1;pointer-events:auto}
.back-top:hover{transform:translateY(-4px);background:var(--c-accent)}

/* ── Mobile Sticky Bottom Bar ── */
#mobile-sticky-bar{display:none}

/* ── Cursor ── */
#cursor-dot,#cursor-ring{
  position:fixed;pointer-events:none;border-radius:50%;z-index:9999;top:0;left:0;
}
#cursor-dot{width:5px;height:5px;background:var(--c-accent);margin:-2.5px 0 0 -2.5px}
#cursor-ring{
  width:30px;height:30px;border:1px solid var(--c-accent);
  margin:-15px 0 0 -15px;opacity:.4;
  transition:width .18s ease,height .18s ease,opacity .18s ease;
}
#cursor-ring.is-hover{width:46px;height:46px;margin:-23px 0 0 -23px;opacity:.65}
@media(hover:none){#cursor-dot,#cursor-ring{display:none}}

/* ── Sub-hero (서브페이지) ── */
.sub-hero{
  min-height:clamp(500px,72vh,700px);
  background:var(--c-primary);
  display:flex;
  align-items:flex-end;
  padding:calc(var(--nav-h) + 2rem) 0 4rem;
  position:relative;overflow:hidden;
}
.sub-hero-bg{
  position:absolute;inset:0;background:url('/assets/images/hero/main.webp') center/cover;
  opacity:.38;filter:saturate(.78);
}
.sub-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(19,42,51,.48) 0%,rgba(19,42,51,.74) 52%,rgba(19,42,51,.93) 100%);
}
.sub-hero .container{position:relative;z-index:2}
.sub-hero-shell{
  display:grid;
  grid-template-columns:1fr;
  max-width:800px;
  gap:0;
  align-items:end;
}
.sub-hero-content{color:#fff;max-width:800px}
.sub-hero-media{display:none}
.sub-hero-media img{display:none}
.sub-hero-title{
  font-family:var(--f-h);
  font-size:clamp(2.4rem,5.5vw,4.1rem);
  line-height:1.06;
  font-weight:800;
  letter-spacing:-.025em;
  margin:0 0 .75rem;
}
.sub-hero-desc{
  font-size:clamp(1rem,1.3vw,1.12rem);
  color:rgba(255,255,255,.85);
  line-height:1.78;
  max-width:64ch;
}
.sub-breadcrumb{
  font-family:var(--f-l);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.4);display:flex;gap:.5rem;align-items:center;margin-bottom:.875rem;
}
.sub-breadcrumb a{color:rgba(255,255,255,.4)}
.sub-breadcrumb a:hover{color:var(--c-accent)}
.sub-tag{
  display:inline-block;
  font-family:var(--f-l);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--c-accent);border:1px solid rgba(127,156,150,.45);
  padding:.35rem .8rem;margin-bottom:.875rem;border-radius:0;
}
.sub-hero-actions{
  margin-top:1.5rem;
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}
.sub-hero-actions .btn{
  min-height:44px;
  padding:.85rem 1.4rem;
}
.sub-hero-media{
  width:100%;
  justify-self:end;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
  overflow:hidden;
  box-shadow:0 28px 60px rgba(6,15,18,.32);
}
.sub-hero-media img{
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

.sub-hero-strip{
  background:var(--c-surface);
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
}
.sub-hero-strip-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--c-line);
}
.sub-hero-strip-item{
  background:var(--c-bg);
  padding:1.25rem 1rem;
  text-align:center;
}
.sub-hero-strip-value{
  display:block;
  font-family:var(--f-d);
  font-size:clamp(1.3rem,2.4vw,2rem);
  line-height:1;
  letter-spacing:-.02em;
  color:var(--c-primary);
}
.sub-hero-strip-label{
  display:block;
  margin-top:.4rem;
  font-family:var(--f-l);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--c-p60);
}

.sub-declare{
  background:var(--c-primary);
  padding:clamp(3.5rem,9vw,6.5rem) 0;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  position:relative;
  overflow:hidden;
}
.sub-declare::before{
  content:'\201C';
  position:absolute;
  top:-.15em;
  left:50%;
  transform:translateX(-50%);
  font-family:var(--f-d);
  font-size:clamp(9rem,20vw,18rem);
  line-height:1;
  color:rgba(255,255,255,.04);
  pointer-events:none;
  user-select:none;
}
.sub-declare-text{
  position:relative;
  max-width:820px;
  margin:0 auto;
  text-align:center;
  font-family:var(--f-h);
  font-size:clamp(1.25rem,2.8vw,2.15rem);
  font-weight:300;
  line-height:1.62;
  letter-spacing:-.015em;
  color:rgba(255,255,255,.88);
  white-space:pre-line;
}
.sub-declare-text strong{
  font-weight:700;
  color:var(--c-accent-l);
}

/* ── Sub-page Price Rows ── */
.price-rows{
  border-top:2px solid var(--c-primary);
  margin-top:1.75rem;
}
.price-row{
  display:grid;
  grid-template-columns:6.5rem 1fr 2fr auto;
  gap:1.25rem 1.75rem;
  align-items:center;
  padding:1.1rem 0;
  border-bottom:1px solid rgba(19,42,51,.09);
  transition:background .18s ease,padding-left .18s ease;
}
.price-row:hover{
  background:rgba(127,156,150,.06);
  padding-left:.75rem;
}
.price-row-tag{
  font-family:var(--f-l);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--c-accent-h);
  white-space:nowrap;
}
.price-row-name{
  font-size:1rem;
  font-weight:600;
  color:var(--c-primary);
  line-height:1.4;
}
.price-row-desc{
  font-size:.875rem;
  color:var(--c-p60);
  line-height:1.58;
}
.price-row-price{
  font-family:var(--f-d);
  font-size:1.45rem;
  color:var(--c-primary);
  white-space:nowrap;
  text-align:right;
  line-height:1;
}
@media(max-width:767px){
  .price-row{
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
    gap:.3rem .75rem;
    padding:.95rem 0;
    align-items:start;
  }
  .price-row-tag{
    grid-column:1;
    grid-row:1;
    font-size:.58rem;
  }
  .price-row-name{
    grid-column:1;
    grid-row:2;
    font-size:.97rem;
  }
  .price-row-desc{
    display:none;
  }
  .price-row-price{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    font-size:1.2rem;
  }
}
@media(max-width:980px) and (min-width:768px){
  .price-row{
    grid-template-columns:5.5rem 1fr auto;
    gap:1rem 1.25rem;
  }
  .price-row-desc{display:none}
}

.sub-framework-grid{
  margin-top:1.65rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.9rem;
}
.sub-framework-card{
  border:1px solid rgba(19,42,51,.12);
  background:linear-gradient(170deg,#ffffff 0%,#f8faf9 100%);
  padding:1.3rem 1.15rem 1.35rem;
  box-shadow:0 10px 24px rgba(19,42,51,.08);
}
.sub-framework-step{
  display:inline-flex;
  margin-bottom:.58rem;
  font-family:var(--f-l);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-accent-h);
  border-bottom:1px solid rgba(127,156,150,.42);
  padding-bottom:.16rem;
}
.sub-framework-card h3{
  font-size:1.04rem;
  line-height:1.42;
  margin-bottom:.52rem;
}
.sub-framework-card p{
  font-size:.93rem;
  line-height:1.68;
  color:var(--c-p60);
}

.sub-summary-grid{
  margin-top:2rem;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2rem 2.5rem;
  background:transparent;
}
.sub-summary-card{
  position:relative;
  overflow:visible;
  background:transparent;
  border:none;
  border-top:2px solid var(--c-accent);
  padding:1.3rem 0 0;
  box-shadow:none;
  transition:border-color .25s ease;
}
.sub-summary-card::before{display:none}
.sub-summary-card:hover{
  transform:none;
  border-color:var(--c-accent-h);
  box-shadow:none;
}
.sub-summary-card:hover::before{transform:none}
.sub-summary-num{
  display:block;
  width:auto;
  height:auto;
  margin-bottom:.35rem;
  font-family:var(--f-d);
  font-size:2.25rem;
  font-weight:400;
  letter-spacing:-.01em;
  text-transform:none;
  line-height:1;
  color:var(--c-accent-l);
  border:none;
  background:none;
}
.sub-summary-card h3{
  font-size:1.06rem;
  line-height:1.44;
  margin-bottom:.45rem;
  font-weight:700;
}
.sub-summary-card p{
  font-size:.91rem;
  color:var(--c-p60);
  line-height:1.7;
}

.sub-detail{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.25rem,4vw,2.5rem);
  align-items:start;
}
.sub-detail.is-reverse .sub-detail-copy{order:2}
.sub-detail.is-reverse .sub-check-grid{order:1}
.sub-detail-copy{
  position:relative;
  border:1px solid rgba(19,42,51,.1);
  background:linear-gradient(160deg,#ffffff 0%,#f8faf9 100%);
  padding:1.45rem 1.25rem 1.5rem;
  box-shadow:0 10px 26px rgba(19,42,51,.08);
  overflow:hidden;
}
.sub-detail-copy::before{
  content:'';
  position:absolute;
  top:0;left:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--c-accent),rgba(127,156,150,.08));
}
.sub-detail-step{
  display:inline-flex;
  margin-top:.95rem;
  margin-bottom:.85rem;
  padding:.42rem .62rem;
  border:1px solid rgba(127,156,150,.4);
  font-family:var(--f-l);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--c-accent-h);
  background:rgba(127,156,150,.1);
}
.sub-check-grid{
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid rgba(19,42,51,.1);
}
.sub-check-item{
  display:grid;
  grid-template-columns:2.75rem 1fr;
  gap:.875rem;
  align-items:start;
  padding:1.05rem 0;
  border-bottom:1px solid rgba(19,42,51,.07);
  border-left:none;
  border-right:none;
  border-top:none;
  background:transparent;
  position:static;
  min-width:0;
  transition:background .18s ease,padding-left .18s ease;
}
.sub-check-item::before{display:none}
.sub-check-item:hover{
  background:rgba(127,156,150,.06);
  padding-left:.5rem;
  transform:none;
  box-shadow:none;
  border-color:rgba(19,42,51,.07);
}
.sub-check-index{
  display:block;
  font-family:var(--f-d);
  font-size:1.75rem;
  font-weight:400;
  line-height:1;
  letter-spacing:0;
  text-transform:none;
  color:var(--c-accent-l);
  border:none;
  padding:0;
  margin:0;
  padding-top:.08rem;
  flex-shrink:0;
}
.sub-check-item p{
  font-size:.96rem;
  line-height:1.74;
  color:var(--c-primary);
  overflow-wrap:anywhere;
  align-self:center;
}

/* ── Subpage Variant + Tone System ── */
.sub-page .sub-hero-desc,
.sub-page .sub-detail-copy p,
.sub-page .sub-check-item p,
.sub-page .faq-answer,
.sub-page .t-muted{
  word-break:keep-all;
}
.sub-page .t-muted{
  font-size:clamp(.98rem,1.2vw,1.08rem);
  line-height:1.78;
}
.sub-page .faq-answer{
  line-height:1.78;
}

/* ── Sub-page FAQ overrides ── */
.sub-page .faq-list{
  border-top:2px solid var(--c-primary);
}
.sub-page .faq-item{
  border-bottom:1px solid rgba(19,42,51,.1);
}
.sub-page .faq-question{
  display:grid;
  grid-template-columns:2.75rem 1fr 1.5rem;
  gap:.75rem;
  align-items:center;
  padding:1.2rem 0;
  font-size:.98rem;
}
.sub-page .faq-question::before{
  content:attr(data-num);
  font-family:var(--f-d);
  font-size:1.2rem;
  font-weight:400;
  color:var(--c-accent-l);
  line-height:1;
}
.sub-page .faq-question:hover,
.sub-page .faq-item.open .faq-question{color:var(--c-accent)}
.sub-page .faq-icon{
  width:16px;height:16px;
  border:none;
  background:none;
  position:relative;
  flex-shrink:0;
  justify-self:end;
}
.sub-page .faq-icon::before,
.sub-page .faq-icon::after{
  content:'';
  position:absolute;
  background:var(--c-primary);
  transition:transform .25s var(--ease),opacity .2s ease;
}
.sub-page .faq-icon::before{
  width:100%;height:1px;
  top:50%;transform:translateY(-50%);
}
.sub-page .faq-icon::after{
  width:1px;height:100%;
  left:50%;transform:translateX(-50%);
}
.sub-page .faq-item.open .faq-icon{
  background:none;border:none;transform:none;
}
.sub-page .faq-item.open .faq-icon::after{
  opacity:0;
  transform:translateX(-50%) rotate(90deg);
}
.sub-page .faq-answer{
  padding-left:3.5rem;
  font-size:.95rem;
  line-height:1.8;
}
.sub-page .faq-answer.open{
  max-height:600px;
}

/* Tone: light */
.sub-tone-light .sub-hero-title,
.sub-tone-light .sub-detail-copy .sh h2,
.sub-tone-light .sub-summary-card h3{
  font-weight:700;
}
.sub-tone-light .sub-detail-copy p,
.sub-tone-light .sub-check-item p,
.sub-tone-light .faq-answer,
.sub-tone-light .t-muted{
  font-weight:400;
}

/* Tone: balanced */
.sub-tone-balanced .sub-hero-title,
.sub-tone-balanced .sub-detail-copy .sh h2,
.sub-tone-balanced .sub-summary-card h3{
  font-weight:700;
}
.sub-tone-balanced .sub-detail-copy p,
.sub-tone-balanced .sub-check-item p,
.sub-tone-balanced .faq-answer,
.sub-tone-balanced .t-muted{
  font-weight:500;
}

/* Tone: strong */
.sub-tone-strong .sub-hero-title,
.sub-tone-strong .sub-detail-copy .sh h2,
.sub-tone-strong .sub-summary-card h3{
  font-weight:800;
  letter-spacing:-.025em;
}
.sub-tone-strong .sub-detail-copy p,
.sub-tone-strong .sub-check-item p,
.sub-tone-strong .faq-answer,
.sub-tone-strong .t-muted{
  font-weight:500;
}

/* Variant: magazine */
@media(min-width:981px){
  .sub-cat-local .sub-framework-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .sub-cat-service .sub-framework-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-cat-segment .sub-framework-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .sub-cat-segment .sub-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-cat-longtail .sub-framework-grid{
    grid-template-columns:1fr;
  }
  .sub-cat-longtail .sub-price-list{
    grid-template-columns:1fr;
  }

  .sub-variant-magazine .sub-hero-shell--magazine{
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    align-items:center;
  }
  .sub-variant-magazine .sub-hero-media{
    box-shadow:0 34px 70px rgba(6,15,18,.3);
  }
  .sub-variant-magazine .sub-summary-grid--magazine{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.75rem 2.25rem;
    background:transparent;
  }
  .sub-variant-magazine .sub-summary-grid--magazine .sub-summary-card{
    border-radius:0;
    border:none;
    border-top:2px solid var(--c-accent);
    padding:1.25rem 0 0;
    box-shadow:none;
  }
  .sub-variant-magazine .sub-summary-grid--magazine .sub-summary-num{
    width:auto;
    height:auto;
    font-size:2.25rem;
  }
  .sub-variant-magazine .sub-detail--magazine{
    grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  }
  .sub-variant-magazine .sub-check-grid--magazine{
    grid-template-columns:1fr;
  }
  .sub-variant-magazine .sub-check-item{
    padding:1.05rem 1rem 1.1rem 2.7rem;
  }
  .sub-variant-magazine .access-grid--magazine{
    grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);
  }
}

/* Variant: contrast */
@media(min-width:981px){
  .sub-variant-contrast .sub-hero-shell--contrast{
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    align-items:center;
  }
  .sub-variant-contrast .sub-hero-shell--contrast .sub-hero-content{
    order:2;
    max-width:640px;
    justify-self:end;
  }
  .sub-variant-contrast .sub-hero-shell--contrast .sub-hero-media{
    order:1;
    justify-self:start;
    border-color:rgba(255,255,255,.22);
    box-shadow:0 36px 76px rgba(6,15,18,.34);
  }
  .sub-variant-contrast .sub-hero-strip-grid--contrast{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-variant-contrast .sub-summary-grid--contrast{
    grid-template-columns:1fr;
    gap:1.5rem;
    background:transparent;
  }
  .sub-variant-contrast .sub-summary-grid--contrast .sub-summary-card{
    display:grid;
    grid-template-columns:4rem minmax(0,1fr);
    align-items:start;
    gap:1.25rem;
    border-top:none;
    border-left:2px solid var(--c-accent);
    padding:0 0 0 1.25rem;
  }
  .sub-variant-contrast .sub-summary-grid--contrast .sub-summary-num{
    width:auto;
    height:auto;
    margin-top:0;
    font-size:1.75rem;
  }
  .sub-variant-contrast .sub-detail--contrast{
    grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  }
  .sub-variant-contrast .sub-check-grid--contrast{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.9rem;
  }
  .sub-variant-contrast .faq-list--contrast{
    border-top:2px solid rgba(19,42,51,.14);
  }
  .sub-variant-contrast .faq-item{
    border-bottom:1px solid rgba(19,42,51,.14);
  }
}

/* Variant: split (refined default) */
@media(min-width:981px){
  .sub-variant-split .sub-detail--split{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .sub-variant-split .sub-check-grid--split{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* ── Guide Layout ── */
.guide-authority-grid{
  margin-top:1.75rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--c-line);
}
.guide-authority-item{
  background:linear-gradient(180deg,#fff 0%,#f8faf9 100%);
  border:1px solid rgba(19,42,51,.08);
  padding:1.25rem 1.1rem 1.3rem;
}
.guide-authority-kicker{
  display:inline-flex;
  margin-bottom:.55rem;
  font-family:var(--f-l);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-accent-h);
  border-bottom:1px solid rgba(127,156,150,.46);
  padding-bottom:.15rem;
}
.guide-authority-item p{
  font-size:.84rem;
  line-height:1.6;
  color:var(--c-primary);
  font-weight:500;
}
.guide-timeline-grid{
  margin-top:1.75rem;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--c-line);
}
.guide-time-card{
  position:relative;
  background:#fff;
  border:1px solid rgba(19,42,51,.09);
  padding:1.2rem 1rem 1.25rem;
  overflow:hidden;
}
.guide-time-card::before{
  content:'';
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--c-accent),rgba(127,156,150,.14));
}
.guide-time-period{
  display:inline-flex;
  margin-bottom:.5rem;
  padding:.28rem .46rem;
  background:rgba(127,156,150,.1);
  border:1px solid rgba(127,156,150,.34);
  font-family:var(--f-l);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--c-accent-h);
  text-transform:uppercase;
}
.guide-time-card h3{
  font-size:.95rem;
  line-height:1.4;
  margin-bottom:.4rem;
}
.guide-time-card p{
  font-size:.82rem;
  line-height:1.6;
  color:var(--c-p60);
}
.guide-block{
  border:1px solid rgba(19,42,51,.12);
  background:linear-gradient(180deg,#ffffff 0%,#f8faf9 100%);
  box-shadow:0 12px 30px rgba(19,42,51,.08);
  padding:1.5rem 1.35rem 1.45rem;
}
.guide-block-head{
  margin-bottom:1rem;
}
.guide-block-step{
  display:inline-flex;
  margin-bottom:.55rem;
  font-family:var(--f-l);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--c-accent-h);
}
.guide-block h2{
  font-size:clamp(1.1rem,2.2vw,1.4rem);
  line-height:1.3;
  margin-bottom:.45rem;
}
.guide-block-head p{
  font-size:.9rem;
  line-height:1.72;
  color:var(--c-p60);
}
.guide-point-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.guide-point{
  border:1px solid rgba(19,42,51,.12);
  background:#fff;
  padding:.95rem .85rem;
}
.guide-point-num{
  display:block;
  margin-bottom:.38rem;
  font-family:var(--f-l);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-accent);
}
.guide-point p{
  font-size:.83rem;
  line-height:1.6;
  color:var(--c-primary);
}

.main-return-banner{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(19,42,51,.14);
  background:linear-gradient(135deg,#ffffff 0%,#f2f6f4 100%);
  box-shadow:0 14px 34px rgba(19,42,51,.08);
}
.main-return-banner::after{
  content:'';
  position:absolute;
  right:-80px;
  top:-70px;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(127,156,150,.18) 0%,rgba(127,156,150,0) 66%);
  pointer-events:none;
}
.main-return-banner .cta-btns{
  position:relative;
  z-index:1;
  gap:.55rem;
}
.main-return-banner .cta-btns .btn{
  min-height:42px;
  padding:.78rem 1rem;
  letter-spacing:.08em;
}

@media(max-width:767px){
  .sub-hero{
    min-height:clamp(420px,62vh,540px);
    padding:calc(var(--nav-h) + 1.5rem) 0 2.75rem;
  }
  .sub-hero-title{
    font-size:clamp(2rem,9vw,2.75rem);
    line-height:1.1;
    margin-bottom:.65rem;
  }
  .sub-hero-desc{
    font-size:.94rem;
    line-height:1.72;
    color:rgba(255,255,255,.82);
  }
  .sub-breadcrumb{display:none}
  .sub-hero-actions .btn{
    flex:1 1 auto;
    justify-content:center;
    min-height:42px;
    padding:.75rem 1rem;
  }
  .sub-hero-strip-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-summary-grid{
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .sub-framework-grid{
    grid-template-columns:1fr;
    gap:.75rem;
  }
  .sub-framework-card{
    padding:1.05rem .92rem 1.1rem;
  }
  .sub-framework-card h3{
    font-size:.98rem;
  }
  .sub-framework-card p{
    font-size:.89rem;
    line-height:1.66;
  }
  .sub-variant-contrast .sub-summary-grid--contrast{
    grid-template-columns:1fr;
    gap:.8rem;
  }
  .sub-detail{
    grid-template-columns:1fr;
  }
  .sub-detail-copy{
    padding:1.25rem 1rem 1.3rem;
  }
  .sub-detail.is-reverse .sub-detail-copy,
  .sub-detail.is-reverse .sub-check-grid{
    order:initial;
  }
  .sub-check-item{
    padding:.92rem 0;
    grid-template-columns:2.25rem 1fr;
    gap:.65rem;
  }
  .sub-check-index{
    font-size:1.45rem;
  }
  .guide-authority-grid{
    grid-template-columns:1fr;
  }
  .guide-timeline-grid{
    grid-template-columns:1fr;
  }
  .guide-block{
    padding:1.2rem 1rem 1.2rem;
  }
  .guide-point-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:980px) and (min-width:768px){
  .sub-hero-shell{
    grid-template-columns:1fr;
    align-items:start;
  }
  .sub-hero-media{
    max-width:620px;
    justify-self:start;
  }
  .sub-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-framework-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-cat-longtail .sub-framework-grid{
    grid-template-columns:1fr;
  }
  .sub-variant-contrast .sub-summary-grid--contrast{
    grid-template-columns:1fr;
    gap:.85rem;
  }
  .sub-detail{
    grid-template-columns:1fr;
  }
  .sub-variant-magazine .sub-check-grid--magazine{
    grid-template-columns:1fr;
  }
  .guide-authority-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .guide-timeline-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .guide-point-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* ── Scroll Progress ── */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;background:var(--c-accent);
  z-index:999;transform-origin:left;
  transform:scaleX(0);transition:none;width:100%;
}

/* ── Related Cards ── */
.related-grid{
  margin-top:1.5rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--c-line);
}
.related-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  background:#fff;
  padding:1.15rem 1.1rem 1.2rem;
  transition:background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);
}
.related-card:hover{
  background:var(--c-surface);
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(19,42,51,.1);
}
.related-card-tag{
  display:inline-flex;
  margin-bottom:.45rem;
  font-family:var(--f-l);
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--c-accent);
}
.related-card-title{
  font-family:var(--f-h);
  font-size:1.03rem;
  line-height:1.4;
  margin-bottom:.35rem;
  color:var(--c-primary);
}
.related-card-desc{
  font-size:.91rem;
  line-height:1.64;
  color:var(--c-p60);
  margin-bottom:.75rem;
}
.related-card-link{
  margin-top:auto;
  font-family:var(--f-l);
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--c-primary);
}
@media(max-width:980px){
  .related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .related-grid{grid-template-columns:1fr}
}

/* ── Footer ── */
.footer{background:var(--c-bg);border-top:1px solid var(--c-line)}
.footer-inner{
  max-width:var(--max-w);margin:0 auto;padding:3rem var(--px);
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;
}
@media(max-width:767px){.footer-inner{grid-template-columns:1fr;gap:2rem}}
.footer-brand{font-family:var(--f-d);font-size:1.125rem;font-weight:400;letter-spacing:.04em;margin-bottom:.4rem}
.footer-brand-kr{font-family:var(--f-h);font-size:.75rem;font-weight:600;color:var(--c-p60);margin-bottom:1rem;display:block}
.footer-desc{font-size:.8125rem;color:var(--c-p40);line-height:1.75;max-width:260px}
.footer-legal{
  margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--c-line);
  font-family:var(--f-l);font-size:.625rem;letter-spacing:.06em;color:var(--c-p40);line-height:2;
}
.footer-nav-t{
  font-family:var(--f-l);font-size:10px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:.875rem;
}
.footer-nav a{display:block;font-size:.875rem;color:var(--c-p60);margin-bottom:.5rem;transition:color .2s ease}
.footer-nav a:hover{color:var(--c-accent)}
.footer-bottom{
  border-top:1px solid var(--c-line);
  max-width:var(--max-w);margin:0 auto;
  padding:1.125rem var(--px);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}
.footer-copy{font-family:var(--f-l);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-p40)}
.footer-ig{font-family:var(--f-l);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-p40);transition:color .2s ease}
.footer-ig:hover{color:var(--c-accent)}

/* ── Placeholder (이미지 없을 때) ── */
.img-placeholder{
  background:linear-gradient(135deg,var(--c-surface) 0%,var(--c-surface2) 100%);
  display:flex;align-items:center;justify-content:center;
  color:var(--c-p40);font-family:var(--f-d);font-style:italic;font-size:.875rem;
  letter-spacing:.08em;
}

/* ── Skip Link ── */
.skip-link{
  position:fixed;top:-100%;left:10px;background:var(--c-accent);color:#fff;
  padding:.5rem 1rem;z-index:9999;font-size:.875rem;
}
.skip-link:focus{top:64px}

/* ── Touch / Mobile Behavior ── */
@media (max-width:767px){
  :root{
    --px:1rem;
    --py:3.25rem;
  }
  .nav__in{
    min-width:0;
    gap:.5rem;
  }
  .nav__quick{
    display:none;
  }
  .nav__logo{
    flex:1 1 auto;
    min-width:0;
    max-width:none;
    gap:.5rem;
  }
  .nav__logo-en{font-size:.92rem}
  .nav__logo-ko{font-size:.68rem}
  .back-top,
  .float-cta,
  #cursor-dot,
  #cursor-ring{display:none !important}

  /* mobile ux cleanup */
  .hero-meta__item:nth-child(n+2){display:none}
  .hero-notes-mobile .hero-note--bottom{display:none}

  .trust-inner{grid-template-columns:1fr}
  .trust-item{
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.07);
    padding:1rem .9rem;
  }
  .trust-item:nth-last-child(-n+2){border-bottom:1px solid rgba(255,255,255,.07)}
  .trust-item:last-child{border-bottom:none}

  .services-grid{grid-template-columns:1fr !important;gap:.75rem}
  .services-grid--compact2{grid-template-columns:1fr !important}
  .review-summary{grid-template-columns:1fr !important;gap:.75rem}
  .feat-grid{grid-template-columns:1fr !important}

  .stats__in{flex-wrap:wrap}
  .stat{
    flex:0 0 100%;
    border-right:none;
    border-bottom:1px solid var(--c-line);
  }
  .stat:last-child{border-bottom:none}

  .process-card,
  .svc-body,
  .review-card,
  .review-keywords{padding:1.1rem 1rem}
  .sh{margin-bottom:1.75rem}
  .sh__desc,
  .sh-center .sh__desc{
    max-width:none;
    text-align:left;
  }
  .sh__desc br{display:none}

  body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  #mobile-sticky-bar{
    display:flex;
    position:fixed;bottom:0;left:0;right:0;z-index:200;
    background:var(--c-primary);
    border-top:1px solid rgba(255,255,255,.1);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .msb-btn{
    flex:1;display:flex;align-items:center;justify-content:center;
    height:56px;
    font-family:var(--f-b);font-size:.875rem;font-weight:600;letter-spacing:-.015em;
    text-decoration:none;color:rgba(255,255,255,.78);
    -webkit-tap-highlight-color:transparent;
    transition:background .15s ease,color .15s ease;
  }
  .msb-btn:active{background:rgba(255,255,255,.08);color:#fff}
  .msb-sep{width:1px;background:rgba(255,255,255,.14);align-self:stretch}
  .msb-btn--cta{background:var(--c-accent);color:var(--c-primary);font-weight:700}
  .msb-btn--cta:active{background:var(--c-accent-h);color:var(--c-primary)}
}

@media (hover:none), (pointer:coarse){
  .btn,
  .svc-card,
  .feat-item,
  .related-card,
  .related-btn,
  .float-cta a,
  .back-top,
  .trust-item,
  .about-img img,
  .svc-img img{
    transition:none !important;
  }
  .btn:hover,
  .btn-primary:hover,
  .btn-dark:hover,
  .btn-outline:hover,
  .btn-outline-w:hover,
  .btn-naver:hover,
  .svc-card:hover,
  .feat-item:hover,
  .related-card:hover,
  .related-btn:hover,
  .float-cta a:hover,
  .back-top:hover{
    transform:none !important;
    box-shadow:none !important;
  }
  .svc-card:hover,
  .feat-item:hover,
  .related-card:hover,
  .related-btn:hover{
    background:inherit !important;
  }
  .svc-card:hover .svc-img img,
  .about-img:hover img{
    transform:none !important;
  }
  .related-card:hover::after,
  .float-cta .fcta-call::before{
    animation:none !important;
    width:0 !important;
    opacity:0 !important;
  }
}

/* ── Page Polish: Suncheon Moisture Care ── */
.sub-page--moisture-care{
  background:
    radial-gradient(circle at top right,rgba(127,156,150,.12),transparent 30%),
    linear-gradient(180deg,#f7f9f8 0%,#fcfdfd 28%,#f5f7f6 100%);
}
.sub-page--moisture-care .sub-hero-bg{
  opacity:.24;
  filter:saturate(.95);
}
.sub-page--moisture-care .sub-hero-overlay{
  background:linear-gradient(118deg,rgba(15,31,38,.93) 0%,rgba(26,63,67,.82) 50%,rgba(23,52,57,.62) 100%);
}
.sub-page--moisture-care .sub-hero-media{
  border-radius:28px;
  border-color:rgba(255,255,255,.18);
}
.sub-page--moisture-care .sub-hero-media img{
  aspect-ratio:5/4;
}
.sub-page--moisture-care .sub-framework-card,
.sub-page--moisture-care .sub-summary-card,
.sub-page--moisture-care .sub-detail,
.sub-page--moisture-care .sub-check-item{
  border-radius:24px;
}
.sub-page--moisture-care .sub-framework-card{
  padding:1.45rem 1.3rem 1.5rem;
  border-color:rgba(127,156,150,.18);
  background:linear-gradient(165deg,#ffffff 0%,#f4f8f7 100%);
  box-shadow:0 18px 44px rgba(19,42,51,.08);
}
.sub-page--moisture-care .sub-framework-card h3{
  font-size:1.08rem;
  line-height:1.4;
}
.sub-page--moisture-care .sub-framework-card p{
  color:rgba(19,42,51,.72);
}
.sub-page--moisture-care .sub-summary-card{
  border-color:rgba(127,156,150,.18);
  box-shadow:0 18px 46px rgba(19,42,51,.08);
}
.sub-page--moisture-care .sub-summary-card p{
  color:var(--c-primary);
}
.sub-page--moisture-care .sub-detail{
  align-items:stretch;
  padding:1.25rem;
  border:1px solid rgba(127,156,150,.18);
  background:linear-gradient(160deg,rgba(255,255,255,.98) 0%,rgba(244,248,247,.98) 100%);
  box-shadow:0 24px 56px rgba(19,42,51,.08);
}
.sub-page--moisture-care .sub-detail-copy{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "head head"
    "step body";
  column-gap:1.25rem;
  row-gap:1.35rem;
  align-content:start;
  border:none;
  border-radius:22px;
  padding:2.15rem 2rem 2rem 2.4rem;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(241,246,245,.94) 100%);
  box-shadow:none;
  overflow:visible;
}
.sub-page--moisture-care .sub-detail-copy .sh{
  grid-area:head;
  display:grid;
  gap:.95rem;
  max-width:29rem;
  min-width:0;
  margin-bottom:0;
}
.sub-page--moisture-care .sub-detail-copy .label{
  display:block;
  font-size:.66rem;
  letter-spacing:.16em;
  padding-left:.04rem;
}
.sub-page--moisture-care .sub-detail-copy .sh h2{
  font-size:clamp(2rem,3.2vw,2.85rem);
  line-height:1.08;
  letter-spacing:-.045em;
  max-width:10.5ch;
  word-break:keep-all;
  padding-left:.02rem;
}
.sub-page--moisture-care .sub-detail-copy .sh-line{
  width:56px;
  margin:0;
}
.sub-page--moisture-care .sub-detail-copy::before{
  left:1.35rem;
  top:1.3rem;
  bottom:1.3rem;
  width:4px;
  border-radius:999px;
}
.sub-page--moisture-care .sub-detail-step{
  grid-area:step;
  justify-self:start;
  align-self:start;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  padding:0;
  margin-top:0;
  margin-bottom:0;
  border-radius:18px;
  border-color:rgba(127,156,150,.3);
  background:linear-gradient(180deg,rgba(237,244,242,.95) 0%,rgba(228,238,235,.9) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
.sub-page--moisture-care .sub-detail-copy .t-muted{
  grid-area:body;
  max-width:39ch;
  margin:0;
  color:rgba(19,42,51,.7);
}
.sub-page--moisture-care .sub-check-grid{
  align-content:center;
  gap:.9rem;
}
.sub-page--moisture-care .sub-check-item{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:112px;
  border-color:rgba(127,156,150,.15);
  background:#fff;
  padding:1.05rem 1rem 1.05rem 3rem;
  box-shadow:none;
}
.sub-page--moisture-care .sub-check-item::before{
  left:1rem;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:24px;
}
.sub-page--moisture-care .sub-check-index{
  margin-bottom:.4rem;
}
.sub-page--moisture-care .sub-check-item p{
  font-size:.98rem;
  line-height:1.6;
}

@media(min-width:981px){
  .sub-page--moisture-care .sub-framework-grid--service{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
  }
  .sub-page--moisture-care .sub-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    background:transparent;
  }
  .sub-page--moisture-care .sub-summary-card{
    min-height:220px;
    padding:1.55rem 1.4rem 1.6rem;
  }
  .sub-page--moisture-care .sub-summary-card h3{
    max-width:16ch;
    font-size:1.18rem;
    line-height:1.36;
  }
  .sub-page--moisture-care .sub-summary-card p{
    margin-top:auto;
    font-size:.98rem;
  }
  .sub-page--moisture-care .sub-detail{
    grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
    gap:1.25rem;
  }
  .sub-page--moisture-care .sub-detail-copy{
    min-height:100%;
    padding:2.1rem 2rem 1.95rem 2.35rem;
  }
  .sub-page--moisture-care .sub-check-grid--magazine{
    grid-template-columns:1fr;
  }
}

@media (max-width:980px){
  .sub-page--moisture-care .sub-hero-media{
    border-radius:22px;
  }
  .sub-page--moisture-care .sub-summary-grid{
    background:transparent;
    gap:.85rem;
  }
  .sub-page--moisture-care .sub-summary-card{
    min-height:0;
    padding:1.25rem 1.05rem 1.3rem;
  }
  .sub-page--moisture-care .sub-detail{
    padding:.9rem;
  }
  .sub-page--moisture-care .sub-detail-copy{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "step"
      "body";
    row-gap:1.15rem;
    padding:1.65rem 1.35rem 1.5rem 1.7rem;
  }
  .sub-page--moisture-care .sub-detail-copy .sh{
    gap:.9rem;
    max-width:none;
  }
  .sub-page--moisture-care .sub-detail-copy .sh h2{
    font-size:clamp(1.65rem,3.6vw,2.1rem);
    line-height:1.12;
    max-width:12ch;
  }
  .sub-page--moisture-care .sub-detail-copy .sh-line{
    width:48px;
  }
  .sub-page--moisture-care .sub-detail-copy::before{
    left:1.05rem;
    top:1.2rem;
    bottom:1.2rem;
  }
  .sub-page--moisture-care .sub-detail-step{
    width:auto;
    height:auto;
    padding:.56rem .88rem;
    border-radius:999px;
  }
  .sub-page--moisture-care .sub-detail-copy .t-muted{
    max-width:none;
  }
}

@media (max-width:767px){
  .sub-page--moisture-care{
    background:#f8faf9;
  }
  .sub-page--moisture-care .py{
    padding-top:clamp(2.75rem,8vw,3.4rem);
    padding-bottom:clamp(2.75rem,8vw,3.4rem);
  }
  .sub-page--moisture-care .sub-framework-card,
  .sub-page--moisture-care .sub-summary-card,
  .sub-page--moisture-care .sub-detail,
  .sub-page--moisture-care .sub-check-item{
    border-radius:18px;
  }
  .sub-page--moisture-care .sub-framework-grid,
  .sub-page--moisture-care .sub-summary-grid{
    gap:.85rem;
  }
  .sub-page--moisture-care .sub-framework-card{
    padding:1.25rem 1.05rem 1.3rem;
    box-shadow:0 12px 28px rgba(19,42,51,.06);
  }
  .sub-page--moisture-care .sub-detail{
    padding:1rem;
    border:1px solid rgba(127,156,150,.14);
    background:linear-gradient(180deg,#ffffff 0%,#f6faf8 100%);
    box-shadow:0 18px 36px rgba(19,42,51,.07);
    gap:1rem;
  }
  .sub-page--moisture-care .sub-detail-copy{
    row-gap:.8rem;
    padding:0;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .sub-page--moisture-care .sub-detail-copy .label{
    font-size:.58rem;
    letter-spacing:.16em;
  }
  .sub-page--moisture-care .sub-detail-copy .sh h2{
    font-size:clamp(1.34rem,6vw,1.68rem);
    line-height:1.18;
    letter-spacing:-.015em;
    max-width:none;
  }
  .sub-page--moisture-care .sub-detail-copy[data-anim]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .sub-page--moisture-care .sub-detail-copy .sh-line{
    display:none;
  }
  .sub-page--moisture-care .sub-detail-copy::before{
    display:none;
  }
  .sub-page--moisture-care .sub-detail-step{
    justify-self:start;
    padding:.42rem .68rem;
    font-size:.58rem;
    letter-spacing:.13em;
    background:#eef5f2;
    box-shadow:none;
  }
  .sub-page--moisture-care .sub-detail-copy .t-muted{
    font-size:.93rem;
    line-height:1.7;
  }
  .sub-page--moisture-care .sub-check-grid{
    gap:.6rem;
  }
  .sub-page--moisture-care .sub-check-item{
    min-height:0;
    padding:.88rem .84rem .88rem 2.4rem;
    border:1px solid rgba(127,156,150,.14);
    background:rgba(247,250,249,.96);
    box-shadow:none;
  }
  .sub-page--moisture-care .sub-check-item::before{
    left:.74rem;
    width:20px;
    height:20px;
  }
  .sub-page--moisture-care .sub-check-item p{
    font-size:.89rem;
    line-height:1.56;
  }
}

@media (max-width:420px){
  .sub-page--moisture-care .py{
    padding-top:2.4rem;
    padding-bottom:2.4rem;
  }
  .sub-page--moisture-care .sub-detail{
    padding:.9rem;
  }
  .sub-page--moisture-care .sub-detail-copy{
    row-gap:.72rem;
  }
  .sub-page--moisture-care .sub-detail-copy .sh{
    gap:.62rem;
  }
  .sub-page--moisture-care .sub-detail-copy .sh h2{
    font-size:clamp(1.22rem,6vw,1.48rem);
    letter-spacing:-.01em;
  }
  .sub-page--moisture-care .sub-detail-copy .t-muted{
    font-size:.9rem;
    line-height:1.66;
  }
  .sub-page--moisture-care .sub-detail-step{
    padding:.4rem .62rem;
  }
  .sub-page--moisture-care .sub-check-item{
    padding:.82rem .8rem .82rem 2.25rem;
  }
  .sub-page--moisture-care .sub-check-item::before{
    left:.68rem;
  }
}
