:root
{
  color-scheme:light
  ;
  --paper:#fbf7f0
  ;
  --ink:#352e28
  ;
  --muted:#71675c
  ;
  --rust:#a65137
  ;
  --green:#4f634d
  ;
  --line:#dfd6c9
  ;
  --soft:#f0e8dc
  ;
  font-family:"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif
  ;
  font-size:clamp(15px,3.85vw,23px)
  ;
  color:var(--ink)
  ;
  background:#e9e3d9
  ;
  font-synthesis:none
}
*
{
  box-sizing:border-box
}
html
{
  scroll-behavior:smooth
  ;
  scroll-padding-top:4.5rem
}
body
{
  margin:0
}
button,input
{
  font:inherit
}
a
{
  color:inherit
  ;
  text-decoration:none
}
button
{
  color:inherit
  ;
  cursor:pointer
}
button,a
{
  -webkit-tap-highlight-color:transparent
}
button
{
  touch-action:manipulation
}
img
{
  display:block
  ;
  max-width:100%
  ;
  height:auto
}
figure,p,h1,h2,h3
{
  margin:0
}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible
{
  outline:3px solid var(--rust)
  ;
  outline-offset:5px
}
::selection
{
  background:#e7c3a6
}
.site-shell
{
  max-width:760px
  ;
  margin:auto
  ;
  background:var(--paper)
  ;
  overflow:clip
}
.header
{
  display:flex
  ;
  align-items:center
  ;
  justify-content:space-between
  ;
  padding:1.2rem 1.5rem 1rem
}
.brand
{
  display:flex
  ;
  gap:.48rem
  ;
  align-items:center
}
.brand svg
{
  width:2.4rem
  ;
  fill:none
  ;
  stroke:var(--green)
  ;
  stroke-width:2.3
  ;
  stroke-linecap:round
  ;
  stroke-linejoin:round
}
.brand svg circle
{
  fill:var(--rust)
  ;
  stroke:none
}
.brand>span
{
  font-size:1.12rem
  ;
  font-weight:750
  ;
  letter-spacing:-.07em
}
.brand small
{
  display:block
  ;
  letter-spacing:.18em
  ;
  font-size:.43rem
  ;
  font-weight:500
  ;
  margin-top:.18rem
}
.header-contact
{
  font-size:.72rem
  ;
  min-height:44px
  ;
  display:flex
  ;
  align-items:center
  ;
  gap:.6rem
}
.header-contact span
{
  font-size:1.2rem
}
.navigation
{
  display:flex
  ;
  justify-content:space-around
  ;
  gap:.3rem
  ;
  padding:0 1rem
  ;
  border-bottom:1px solid var(--line)
  ;
  position:sticky
  ;
  top:0
  ;
  z-index:5
  ;
  background:rgba(251,247,240,.97)
}
.navigation a
{
  padding:.9rem 0
  ;
  min-height:44px
  ;
  font-size:.72rem
  ;
  white-space:nowrap
}
.navigation a:hover
{
  color:var(--rust)
}
.hero
{
  padding:2.6rem 1.5rem 0
}
.eyebrow
{
  font-size:.57rem
  ;
  letter-spacing:.16em
  ;
  color:var(--rust)
  ;
  font-weight:700
  ;
  line-height:1.6
}
.hero .eyebrow
{
  font-size:.65rem
  ;
  letter-spacing:.04em
  ;
  display:flex
  ;
  align-items:center
  ;
  gap:.45rem
}
.hero .eyebrow>span
{
  width:.35rem
  ;
  height:.35rem
  ;
  border-radius:50%
  ;
  background:var(--rust)
}
h1
{
  font-size:2.36rem
  ;
  line-height:1.38
  ;
  letter-spacing:-.07em
  ;
  font-weight:650
  ;
  margin:1rem 0 1.15rem
  ;
  word-break:keep-all
}
h1 em
{
  font-style:normal
  ;
  color:var(--rust)
}
.hero-copy
{
  font-size:.81rem
  ;
  line-height:1.85
  ;
  color:var(--muted)
  ;
  letter-spacing:-.035em
}
.text-link
{
  display:inline-flex
  ;
  align-items:center
  ;
  gap:2rem
  ;
  font-size:.75rem
  ;
  border-bottom:1px solid var(--ink)
  ;
  padding:.7rem 0 .45rem
  ;
  margin:1rem 0 1.6rem
}
.text-link span
{
  font-size:1.2rem
}
.hero-photo
{
  position:relative
  ;
  margin:0 -1.5rem
}
.hero-photo img
{
  width:100%
  ;
  aspect-ratio:4/3
  ;
  object-fit:cover
}
.hero-photo figcaption
{
  display:flex
  ;
  justify-content:space-between
  ;
  gap:1rem
  ;
  background:#514538
  ;
  color:#fff8ee
  ;
  padding:.75rem 1.5rem
  ;
  font-size:.6rem
  ;
  line-height:1.6
}
.hero-photo figcaption span:last-child
{
  opacity:.8
  ;
  font-size:.53rem
  ;
  white-space:nowrap
}
.hero-footnote
{
  display:flex
  ;
  justify-content:space-between
  ;
  border-bottom:1px solid var(--line)
  ;
  padding:.85rem 0
  ;
  font-size:.57rem
  ;
  color:var(--muted)
}
.hero-footnote span:last-child
{
  font-family:Georgia,serif
  ;
  font-style:italic
  ;
  letter-spacing:.05em
}
.section-pad
{
  padding:3.8rem 1.5rem
}
h2
{
  font-size:1.65rem
  ;
  letter-spacing:-.065em
  ;
  line-height:1.5
  ;
  font-weight:650
  ;
  word-break:keep-all
}
.intro
{
  padding-top:3.6rem
  ;
  padding-bottom:3.6rem
  ;
  text-align:center
}
.intro .eyebrow
{
  font-size:.52rem
  ;
  letter-spacing:.14em
  ;
  margin-bottom:1rem
}
.intro h2
{
  font-size:1.6rem
}
.intro>p:not(.eyebrow)
{
  font-size:.77rem
  ;
  line-height:1.9
  ;
  color:var(--muted)
  ;
  margin-top:1.2rem
  ;
  word-break:keep-all
}
.intro-keywords
{
  display:flex
  ;
  flex-wrap:wrap
  ;
  gap:.5rem
  ;
  justify-content:center
  ;
  margin-top:1.65rem
}
.intro-keywords span
{
  font-size:.6rem
  ;
  padding:.4rem .65rem
  ;
  border:1px solid #ddd0be
  ;
  border-radius:2rem
  ;
  color:var(--green)
}
.spaces
{
  background:#f3ecdf
}
.section-heading
{
  position:relative
}
.section-heading .eyebrow,.living>.eyebrow,.guide>.eyebrow,.location>.eyebrow
{
  margin-bottom:.6rem
}
.hand-note
{
  display:block
  ;
  text-align:right
  ;
  font-family:Georgia,"Malgun Gothic",serif
  ;
  font-size:.6rem
  ;
  transform:rotate(-4deg)
  ;
  color:#88725e
  ;
  margin:.5rem .2rem 0
}
.section-copy
{
  font-size:.78rem
  ;
  line-height:1.85
  ;
  color:var(--muted)
  ;
  margin-top:.65rem
  ;
  letter-spacing:-.025em
}
.branch-picker
{
  display:flex
  ;
  background:#e7dece
  ;
  padding:.25rem
  ;
  border-radius:.35rem
  ;
  margin:1.8rem 0 1rem
  ;
  gap:.25rem
}
.branch-picker button
{
  width:50%
  ;
  border:0
  ;
  background:none
  ;
  border-radius:.2rem
  ;
  padding:.85rem .2rem
  ;
  font-size:.7rem
  ;
  min-height:44px
}
.branch-picker button strong
{
  font-weight:750
}
.branch-picker button[aria-pressed=true]
{
  background:var(--paper)
  ;
  box-shadow:0 2px 5px #46311e10
  ;
  color:var(--rust)
}
.filters
{
  display:flex
  ;
  gap:1.1rem
  ;
  border-bottom:1px solid #dacdbb
  ;
  margin-bottom:1.2rem
}
.filters button
{
  background:none
  ;
  border:0
  ;
  border-bottom:2px solid transparent
  ;
  padding:.65rem 0
  ;
  min-height:44px
  ;
  font-size:.7rem
  ;
  color:var(--muted)
}
.filters button[aria-pressed=true]
{
  border-color:var(--rust)
  ;
  color:var(--rust)
  ;
  font-weight:700
}
.gallery
{
  display:grid
  ;
  grid-template-columns:repeat(2,minmax(0,1fr))
  ;
  gap:1.1rem .75rem
}
.gallery figure:first-child
{
  grid-column:1/-1
}
.gallery button
{
  display:block
  ;
  width:100%
  ;
  border:0
  ;
  background:transparent
  ;
  padding:0
  ;
  overflow:hidden
  ;
  position:relative
}
.gallery button::after
{
  content:'↗'
  ;
  position:absolute
  ;
  bottom:.45rem
  ;
  right:.45rem
  ;
  display:grid
  ;
  place-items:center
  ;
  width:1.4rem
  ;
  height:1.4rem
  ;
  border-radius:50%
  ;
  background:#fbf7f0e8
  ;
  font-size:.85rem
  ;
  color:var(--ink)
}
.gallery img
{
  width:100%
  ;
  height:auto
  ;
  aspect-ratio:4/3
  ;
  object-fit:cover
  ;
  transition:transform .35s
}
.gallery figure:first-child img
{
  aspect-ratio:4/3
}
.gallery [data-category=exterior] img,.gallery [data-branch="2"] img
{
  object-fit:contain
  ;
  background:#e5ded2
}
.gallery button:hover img
{
  transform:scale(1.025)
}
.gallery figcaption
{
  padding-top:.6rem
  ;
  line-height:1.55
}
.gallery figcaption>span
{
  display:block
  ;
  font-size:.66rem
  ;
  letter-spacing:-.03em
}
.gallery figcaption small
{
  font-size:.53rem
  ;
  color:var(--muted)
}
[hidden]
{
  display:none!important
}
.photo-notice
{
  font-size:.59rem
  ;
  line-height:1.8
  ;
  color:#746656
  ;
  margin-top:1.6rem
  ;
  padding-top:1rem
  ;
  border-top:1px solid #dbd0bf
  ;
  word-break:keep-all
}
.living-list
{
  margin-top:1.7rem
}
.living-list article
{
  display:flex
  ;
  align-items:flex-start
  ;
  gap:.8rem
  ;
  border-top:1px solid var(--line)
  ;
  padding:1.25rem 0
}
.item-number
{
  font-family:Georgia,serif
  ;
  font-style:italic
  ;
  color:var(--rust)
  ;
  font-size:.75rem
  ;
  padding-top:.1rem
}
.living-list article>div
{
  flex:1
}
.living-list h3
{
  font-size:.9rem
  ;
  font-weight:650
  ;
  margin-bottom:.45rem
  ;
  letter-spacing:-.03em
}
.living-list p
{
  font-size:.71rem
  ;
  line-height:1.8
  ;
  color:var(--muted)
  ;
  word-break:keep-all
}
.living-list svg
{
  width:1.65rem
  ;
  fill:none
  ;
  stroke:var(--green)
  ;
  stroke-width:1.4
  ;
  stroke-linecap:round
  ;
  stroke-linejoin:round
}
.neighborhood
{
  position:relative
  ;
  isolation:isolate
  ;
  min-height:19rem
  ;
  display:flex
  ;
  align-items:flex-end
  ;
  color:var(--paper)
  ;
  background:#3b4b39
}
.neighborhood>img
{
  position:absolute
  ;
  width:100%
  ;
  height:100%
  ;
  inset:0
  ;
  object-fit:cover
  ;
  z-index:-2
}
.neighborhood::after
{
  content:''
  ;
  position:absolute
  ;
  inset:0
  ;
  background:linear-gradient(0deg,#263424e8,#26342405)
  ;
  z-index:-1
}
.neighborhood>div
{
  padding:2.2rem 1.5rem
}
.neighborhood .eyebrow
{
  color:#e6d3b5
  ;
  font-size:.52rem
  ;
  margin-bottom:.65rem
}
.neighborhood h2
{
  font-size:1.7rem
  ;
  font-weight:500
  ;
  line-height:1.6
}
.neighborhood p:last-child
{
  font-size:.62rem
  ;
  line-height:1.8
  ;
  margin-top:.7rem
  ;
  color:#e6e7dc
}
.steps
{
  list-style:none
  ;
  padding:0
  ;
  margin:1.7rem 0 2.8rem
}
.steps li
{
  display:flex
  ;
  gap:1rem
  ;
  position:relative
  ;
  padding-bottom:1.3rem
}
.steps li:last-child
{
  padding-bottom:0
}
.steps li:not(:last-child)::after
{
  content:''
  ;
  position:absolute
  ;
  left:.82rem
  ;
  top:1.7rem
  ;
  bottom:.15rem
  ;
  width:1px
  ;
  background:var(--line)
}
.steps li>span
{
  flex:0 0 1.7rem
  ;
  height:1.7rem
  ;
  display:grid
  ;
  place-items:center
  ;
  border:1px solid #ccbaa3
  ;
  border-radius:50%
  ;
  font-family:Georgia,serif
  ;
  font-size:.64rem
  ;
  color:var(--rust)
}
.steps h3
{
  font-size:.85rem
  ;
  line-height:1.7
  ;
  font-weight:650
}
.steps p
{
  font-size:.68rem
  ;
  line-height:1.8
  ;
  color:var(--muted)
  ;
  margin-top:.3rem
  ;
  word-break:keep-all
}
.faq>h3
{
  font-size:.85rem
  ;
  margin-bottom:.75rem
}
.faq details
{
  border-top:1px solid var(--line)
}
.faq details:last-child
{
  border-bottom:1px solid var(--line)
}
.faq summary
{
  font-size:.77rem
  ;
  padding:1.05rem 1.8rem 1.05rem 0
  ;
  list-style:none
  ;
  cursor:pointer
  ;
  position:relative
  ;
  line-height:1.6
  ;
  letter-spacing:-.025em
}
.faq summary::-webkit-details-marker
{
  display:none
}
.faq summary::after
{
  content:'+'
  ;
  position:absolute
  ;
  right:.2rem
  ;
  top:.85rem
  ;
  font-size:1.1rem
  ;
  font-weight:400
  ;
  color:var(--rust)
}
.faq details[open] summary::after
{
  content:'−'
}
.faq details p
{
  font-size:.71rem
  ;
  color:var(--muted)
  ;
  line-height:1.85
  ;
  padding:0 .7rem 1.2rem 0
  ;
  word-break:keep-all
}
.location
{
  background:#eee8dc
}
.location>.section-copy
{
  margin-bottom:1.8rem
}
.location-card
{
  background:var(--paper)
  ;
  border:1px solid #e2d6c5
  ;
  padding:1.3rem
  ;
  margin-top:1rem
}
.location-top
{
  display:flex
  ;
  align-items:center
  ;
  gap:.65rem
}
.branch-no
{
  font-family:Georgia,serif
  ;
  font-size:1.8rem
  ;
  color:#b6a590
  ;
  line-height:1
}
.location-top p
{
  font-size:.58rem
  ;
  color:var(--muted)
}
.location-top h3
{
  font-size:1rem
  ;
  margin-top:.15rem
  ;
  font-weight:650
}
.location-top svg
{
  margin-left:auto
  ;
  width:1.6rem
  ;
  fill:none
  ;
  stroke:var(--green)
  ;
  stroke-width:1.3
}
.location address
{
  font-style:normal
  ;
  font-size:.74rem
  ;
  line-height:1.8
  ;
  margin:1.1rem 0
  ;
  word-break:keep-all
}
.location-actions
{
  display:flex
  ;
  gap:.6rem
  ;
  border-top:1px solid var(--line)
  ;
  padding-top:.7rem
  ;
  align-items:center
}
.location-actions>a
{
  font-size:.64rem
  ;
  display:flex
  ;
  gap:.4rem
  ;
  align-items:center
  ;
  flex:1
  ;
  min-height:44px
}
.location-actions>a>span[aria-hidden]
{
  margin-left:auto
}
.naver-icon
{
  display:inline-grid
  ;
  place-items:center
  ;
  color:white
  ;
  background:#03a94e
  ;
  width:1rem
  ;
  height:1rem
  ;
  border-radius:.15rem
  ;
  font-size:.7rem
  ;
  font-family:Arial,sans-serif
}
.location-actions button
{
  background:none
  ;
  border:1px solid #d8ccba
  ;
  font-size:.59rem
  ;
  padding:.5rem
  ;
  min-height:44px
  ;
  border-radius:.2rem
}
.contact
{
  background:#58664f
  ;
  color:#fff8e9
  ;
  padding-top:3.2rem
  ;
  padding-bottom:3.3rem
}
.contact .eyebrow
{
  color:#e0c7a2
  ;
  font-size:.47rem
  ;
  margin-bottom:1rem
  ;
  letter-spacing:.12em
}
.contact h2
{
  font-size:1.9rem
  ;
  line-height:1.55
  ;
  font-weight:500
}
.contact>p:not(.eyebrow)
{
  font-size:.74rem
  ;
  line-height:1.9
  ;
  color:#e2e5d6
  ;
  margin:1rem 0 1.7rem
}
.contact-number
{
  display:flex
  ;
  align-items:center
  ;
  justify-content:space-between
  ;
  font-family:Georgia,serif
  ;
  font-size:1.9rem
  ;
  letter-spacing:-.035em
  ;
  border-bottom:1px solid #a1ab91
  ;
  padding-bottom:.6rem
  ;
  white-space:nowrap
}
.contact-number span
{
  font:1.6rem system-ui
}
.contact-caption
{
  display:block
  ;
  font-size:.59rem
  ;
  margin-top:.75rem
  ;
  color:#e2e5d6
}
.footer
{
  padding:2.1rem 1.5rem 8.3rem
}
.footer>a
{
  display:flex
  ;
  align-items:center
  ;
  justify-content:space-between
  ;
  font-size:1rem
  ;
  font-weight:650
}
.footer>a>span
{
  font-weight:400
  ;
  font-size:1.2rem
}
.footer p
{
  font-size:.63rem
  ;
  color:var(--muted)
  ;
  margin:.7rem 0 1.25rem
}
.footer small
{
  font-size:.5rem
  ;
  letter-spacing:.01em
  ;
  color:var(--muted)
}
.contact-dock
{
  position:fixed
  ;
  z-index:10
  ;
  bottom:0
  ;
  left:50%
  ;
  transform:translateX(-50%)
  ;
  width:min(100%,760px)
  ;
  padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom))
  ;
  background:linear-gradient(0deg,#fbf7f0 78%,#fbf7f000)
}
.contact-dock>a
{
  background:var(--rust)
  ;
  color:#fffaf2
  ;
  border-radius:.3rem
  ;
  display:flex
  ;
  align-items:center
  ;
  gap:.8rem
  ;
  padding:.7rem 1rem
  ;
  min-height:56px
  ;
  box-shadow:0 .3rem 1rem #50301c22
}
.dock-icon
{
  font-size:1.5rem
}
.contact-dock>a>span:nth-child(2)
{
  font-size:.82rem
  ;
  font-weight:650
  ;
  letter-spacing:-.02em
}
.contact-dock small
{
  display:block
  ;
  font-size:.6rem
  ;
  font-weight:400
  ;
  margin-top:.15rem
  ;
  letter-spacing:.06em
}
.contact-dock>a>span:last-child
{
  margin-left:auto
  ;
  font-size:1.35rem
}
dialog
{
  border:0
}
dialog::backdrop
{
  background:#201b16e8
}
.lightbox
{
  position:fixed
  ;
  width:min(96vw,1000px)
  ;
  max-width:1000px
  ;
  max-height:95dvh
  ;
  inset:0
  ;
  padding:.8rem
  ;
  border-radius:.35rem
  ;
  background:#28231e
  ;
  color:var(--paper)
  ;
  overflow:auto
}
.lightbox-toolbar
{
  display:flex
  ;
  justify-content:space-between
  ;
  align-items:center
  ;
  font-size:.65rem
  ;
  padding:0 .2rem .7rem
}
.lightbox button
{
  background:#ffffff12
  ;
  color:var(--paper)
  ;
  border:1px solid #ffffff38
  ;
  border-radius:.25rem
  ;
  min-width:44px
  ;
  min-height:44px
}
.lightbox-toolbar button
{
  font-size:.7rem
  ;
  padding:.2rem .7rem
}
.lightbox-toolbar button>span
{
  font-size:1.1rem
  ;
  margin-left:.4rem
}
.lightbox-stage
{
  display:flex
  ;
  align-items:center
  ;
  gap:.4rem
  ;
  min-width:0
}
.lightbox-stage img
{
  width:calc(100% - 100px)
  ;
  max-height:66dvh
  ;
  object-fit:contain
  ;
  margin:auto
}
.lightbox-stage button
{
  flex:0 0 44px
  ;
  font-size:1.5rem
}
.lightbox>p
{
  text-align:center
  ;
  margin-top:1rem
  ;
  font-size:.72rem
  ;
  line-height:1.8
}
.lightbox>.lightbox-hint
{
  font-size:.57rem
  ;
  color:#c8bfb3
  ;
  margin-top:.4rem
}
.toast
{
  position:fixed
  ;
  bottom:7.5rem
  ;
  left:50%
  ;
  transform:translate(-50%,1rem)
  ;
  max-width:90vw
  ;
  padding:.7rem 1rem
  ;
  border-radius:.25rem
  ;
  background:#332b25
  ;
  color:#fff
  ;
  font-size:.72rem
  ;
  text-align:center
  ;
  z-index:30
  ;
  opacity:0
  ;
  pointer-events:none
  ;
  transition:opacity .2s,transform .2s
}
.toast.is-visible
{
  opacity:1
  ;
  transform:translate(-50%,0)
}
#copy-fallback
{
  width:min(90vw,600px)
  ;
  padding:1.5rem
  ;
  border-radius:.4rem
  ;
  background:var(--paper)
}
#copy-fallback h2
{
  font-size:1.1rem
}
#copy-fallback p
{
  font-size:.7rem
  ;
  line-height:1.8
  ;
  margin:.75rem 0
}
#copy-address
{
  width:100%
  ;
  padding:.8rem .5rem
  ;
  border:1px solid var(--line)
  ;
  font-size:.75rem
  ;
  background:#fff
  ;
  color:var(--ink)
}
.plain-button
{
  margin-top:1rem
  ;
  padding:.7rem 1rem
  ;
  border:0
  ;
  background:var(--green)
  ;
  color:white
  ;
  border-radius:.2rem
}
.sr-only
{
  position:absolute!important
  ;
  width:1px!important
  ;
  height:1px!important
  ;
  padding:0!important
  ;
  margin:-1px!important
  ;
  overflow:hidden!important
  ;
  clip:rect(0,0,0,0)!important
  ;
  white-space:nowrap!important
  ;
  border:0!important
}
.skip-link
{
  position:fixed
  ;
  z-index:99
  ;
  left:1rem
  ;
  top:-5rem
  ;
  padding:.75rem
  ;
  background:white
  ;
  font-size:.8rem
}
.skip-link:focus
{
  top:1rem
}
body:has(dialog[open])
{
  overflow:hidden
}
section[id]
{
  scroll-margin-top:1rem
}
@media(prefers-reduced-motion:reduce)
{
  html
  {
    scroll-behavior:auto
  }
  *,*::before,*::after
  {
    transition:none!important
    ;
    animation:none!important
  }
}
@media(max-width:350px)
{
  .header,.hero
  {
    padding-left:1.2rem
    ;
    padding-right:1.2rem
  }
  .hero-photo
  {
    margin-left:-1.2rem
    ;
    margin-right:-1.2rem
  }
  .section-pad
  {
    padding-left:1.2rem
    ;
    padding-right:1.2rem
  }
  h1
  {
    font-size:2.13rem
  }
  .filters
  {
    gap:.9rem
  }
  .location-card
  {
    padding:1rem
  }
  .contact-number
  {
    font-size:1.7rem
  }
}
:root
{
  font-size:clamp(16px,4.1vw,24px)
}
h1
{
  font-size:2.15rem
}
h1 em
{
  display:block
}
.hero-copy,.section-copy
{
  font-size:.88rem
}
.hero .eyebrow
{
  font-size:.72rem
}
.hero-photo figcaption
{
  font-size:.68rem
}
.hero-photo figcaption span:last-child
{
  font-size:.6rem
}
.navigation a
{
  font-size:.78rem
}
.header-contact
{
  font-size:.8rem
}
.text-link
{
  font-size:.82rem
}
.intro>p:not(.eyebrow)
{
  font-size:.85rem
}
.intro-keywords span
{
  font-size:.7rem
}
.branch-picker button,.filters button
{
  font-size:.8rem
}
.hand-note
{
  font-size:.7rem
}
.gallery figcaption>span
{
  font-size:.78rem
}
.gallery figcaption small
{
  font-size:.68rem
}
.photo-notice
{
  font-size:.72rem
}
.living-list p,.steps p,.faq details p
{
  font-size:.84rem
}
.living-list h3,.steps h3
{
  font-size:.96rem
}
.faq summary
{
  font-size:.87rem
}
.neighborhood p:last-child
{
  font-size:.78rem
}
.location address
{
  font-size:.86rem
}
.location-top p
{
  font-size:.7rem
}
.location-actions>a
{
  font-size:.75rem
}
.location-actions button
{
  font-size:.7rem
}
.contact>p:not(.eyebrow)
{
  font-size:.86rem
}
.contact-caption
{
  font-size:.72rem
}
.footer p
{
  font-size:.77rem
}
.footer small
{
  font-size:.65rem
}
.contact-dock small
{
  font-size:.7rem
}
:root
{
  font-size:clamp(16px,4.1vw,24px)
}
h1
{
  font-size:2.15rem
}
h1 em
{
  display:block
}
.hero-copy,.section-copy
{
  font-size:.88rem
}
.hero .eyebrow
{
  font-size:.72rem
}
.hero-photo figcaption
{
  font-size:.68rem
}
.hero-photo figcaption span:last-child
{
  font-size:.6rem
}
.navigation a
{
  font-size:.78rem
}
.header-contact
{
  font-size:.8rem
}
.text-link
{
  font-size:.82rem
}
.intro>p:not(.eyebrow)
{
  font-size:.85rem
}
.intro-keywords span
{
  font-size:.7rem
}
.branch-picker button,.filters button
{
  font-size:.8rem
}
.hand-note
{
  font-size:.7rem
}
.gallery figcaption>span
{
  font-size:.78rem
}
.gallery figcaption small
{
  font-size:.68rem
}
.photo-notice
{
  font-size:.72rem
}
.living-list p,.steps p,.faq details p
{
  font-size:.84rem
}
.living-list h3,.steps h3
{
  font-size:.96rem
}
.faq summary
{
  font-size:.87rem
}
.neighborhood p:last-child
{
  font-size:.78rem
}
.location address
{
  font-size:.86rem
}
.location-top p
{
  font-size:.7rem
}
.location-actions>a
{
  font-size:.75rem
}
.location-actions button
{
  font-size:.7rem
}
.contact>p:not(.eyebrow)
{
  font-size:.86rem
}
.contact-caption
{
  font-size:.72rem
}
.footer p
{
  font-size:.77rem
}
.footer small
{
  font-size:.65rem
}
.contact-dock small
{
  font-size:.7rem
}
/* 첫 화면 사진: 같은 높이 안에 건물 전체를 표시합니다. */
.hero-carousel { margin: 0 -1.5rem; }
.hero-viewport { overflow: hidden; touch-action: pan-y pinch-zoom; cursor: grab; }
.hero-viewport:active { cursor: grabbing; }
.hero-track { display: flex; transition: transform .55s ease; }
.hero-track .hero-photo { flex: 0 0 100%; min-width: 0; margin: 0; }
.hero-track .hero-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #e4dfd7; user-select: none; }
.hero-controls { display: flex; gap: .35rem; justify-content: center; align-items: center; padding: .45rem .8rem; background: #eee7db; }
.hero-controls button { min-width: 44px; min-height: 44px; padding: .3rem .65rem; border: 0; border-radius: .2rem; background: none; font-size: .75rem; }
.hero-dots { display: flex; gap: .3rem; }
.hero-dots button[aria-pressed=true] { background: var(--green); color: var(--paper); }
#hero-prev, #hero-next { font-size: 1.5rem; padding: .1rem .4rem; }
/* 원본을 변경하지 않고 도어 사진만 시계 방향으로 세워 표시합니다. */
.gallery button.portrait-photo { aspect-ratio: 3 / 4; overflow: hidden; }
.gallery .portrait-photo img { position: absolute; top: 50%; left: 50%; width: 133.333333%; max-width: none; height: auto; aspect-ratio: 4 / 3; transform: translate(-50%, -50%) rotate(90deg); object-fit: contain; }
.gallery .portrait-photo:hover img { transform: translate(-50%, -50%) rotate(90deg); }
.lightbox-frame { flex: 1; min-width: 0; }
.lightbox-stage .lightbox-frame img { width: 100%; max-height: 66dvh; object-fit: contain; }
.lightbox-frame.is-rotated { flex: none; position: relative; width: calc(100% - 104px); max-width: 49.5dvh; aspect-ratio: 3 / 4; }
.lightbox-stage .lightbox-frame.is-rotated img { position: absolute; top: 50%; left: 50%; width: 133.333333%; max-width: none; max-height: none; height: auto; transform: translate(-50%, -50%) rotate(90deg); }
.embedded-map { width: 100%; height: 16rem; margin-bottom: 1rem; background: #e9e4db; border: 1px solid var(--line); }
.map-pin-label { padding: .4rem .65rem; background: var(--paper); color: var(--ink); border: 1px solid var(--green); border-radius: .25rem; font-size: 13px; white-space: nowrap; }
.map-error { font-size: .75rem; line-height: 1.7; color: var(--muted); margin-bottom: 1rem; }
@media (max-width: 350px) { .hero-carousel { margin-left: -1.2rem; margin-right: -1.2rem; } .hero-controls { gap: .1rem; padding-left: .3rem; padding-right: .3rem; } .hero-controls button { padding-left: .4rem; padding-right: .4rem; } }
@media (prefers-reduced-motion: reduce) { .hero-track { transition: none; } }
.phone-icon { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.header-contact .phone-icon { width: 1rem; height: 1rem; }
.contact-number .phone-icon { width: 1.5rem; height: 1.5rem; }
.contact-dock .phone-icon { width: 1.5rem; height: 1.5rem; }
.contact-dock>a>.dock-action { font-size: .75rem; font-weight: 500; padding-left: .6rem; border-left: 1px solid #ffffff55; }
.hero { padding-bottom: 1.5rem; }
.section-heading { margin-bottom: .5rem; }
.location-address { display: flex; align-items: flex-start; gap: .6rem; margin: 1.1rem 0; }
.location-address address { flex: 1; margin: 0; }
.location-address button { border: 1px solid #d8ccba; background: none; min-height: 44px; font-size: .68rem; padding: .4rem .5rem; white-space: nowrap; border-radius: .2rem; }
.map-figure { margin: 0 -1.3rem 1rem; }
.map-figure img { width: 100%; height: auto; }
.map-figure figcaption { font-size: .65rem; line-height: 1.7; color: var(--muted); padding: .6rem 1.1rem 0; word-break: keep-all; }
.location-actions { gap: .65rem; }
.location-actions>a { justify-content: center; padding: .6rem .3rem; border: 1px solid #d8ccba; border-radius: .2rem; font-size: .75rem; }
.kakao-icon { display: inline-grid; place-items: center; width: 1rem; height: 1rem; border-radius: .15rem; background: #fee500; color: #332b25; font-size: .7rem; font-family: Arial,sans-serif; }
@media(max-width:350px) { .map-figure { margin-left: -1rem; margin-right: -1rem; } }

.branch-summary { margin-top: .9rem; color: var(--muted); font-size: .8rem; line-height: 1.8; word-break: keep-all; }
.faq p a { text-decoration: underline; text-underline-offset: .2em; }

/* 없는 경로에서도 홈과 필요한 안내로 이동할 수 있습니다. */
.error-page { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.error-page .header { border-bottom: 1px solid var(--line); }
.error-content { flex: 1; padding: 2.6rem 1.5rem 2rem; }
.error-code { color: var(--rust); font-family: Georgia,serif; font-size: 4.5rem; line-height: 1; letter-spacing: -.05em; }
.error-content h1 { font-size: 1.9rem; margin: 1rem 0; }
.error-copy { max-width: 27rem; color: var(--muted); font-size: .86rem; line-height: 1.85; word-break: keep-all; }
.error-home { display: flex; align-items: center; gap: .65rem; min-height: 52px; margin-top: 1.6rem; padding: .9rem 1rem; border-radius: .3rem; background: var(--rust); color: #fffaf2; font-size: .9rem; font-weight: 700; }
.error-home svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.error-home>span { margin-left: auto; }
.error-home:hover { background: #8d412b; }
.error-shortcuts { margin-top: 2rem; }
.error-shortcuts>p { margin-bottom: .6rem; color: var(--muted); font-size: .75rem; }
.error-shortcuts>a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; min-height: 48px; padding: .8rem 0; border-bottom: 1px solid var(--line); font-size: .85rem; }
.error-shortcuts>a:hover { color: var(--rust); }
.error-shortcuts>a>span { color: var(--green); }
.error-contact { padding: 1.4rem 1.5rem calc(1.4rem + env(safe-area-inset-bottom)); background: var(--soft); }
.error-contact p { font-size: .8rem; }
.error-contact>a { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; color: var(--green); font-size: 1.15rem; font-weight: 700; }
.error-contact small { display: block; color: var(--muted); font-size: .7rem; line-height: 1.7; word-break: keep-all; }
