/* Korean edition of Dunewell House — loaded after the approved site.css + pages.css (both byte-identical to the English source).
   Changes only what Korean text and the language switch need. Latin brand faces (Fig/FigB/Fig4 = Figtree, Fr = Fraunces,
   the «Dunewell House» wordmark) stay first in every stack; Hangul falls through to a self-hosted IBM Plex Sans KR subset
   (OFL 1.1, renamed per the Reserved Font Name rule; licence in assets/fonts/OFL.txt). */
@font-face{font-family:"Arupix Concept KO";src:url(../assets/fonts/arupixconceptko-400.woff2?v=20261005ko5v2) format("woff2");font-weight:100 449;font-style:normal;font-display:swap}
@font-face{font-family:"Arupix Concept KO";src:url(../assets/fonts/arupixconceptko-500.woff2?v=20261005ko5v2) format("woff2");font-weight:450 900;font-style:normal;font-display:swap}

body{font-family:"Fig","Arupix Concept KO",Helvetica,Arial,sans-serif;word-break:keep-all;overflow-wrap:break-word;line-break:strict}
.wel-tx p.br{font-family:Fig4,"Arupix Concept KO",sans-serif}
.hbar-ina{font-family:Fig,"Arupix Concept KO",sans-serif}
/* Serif display roles (Fraunces) — Hangul in the regular KO weight, as the Latin role is regular. */
.eb,.h2,.ft h4,.pil h3,.rs-tx .nm,.bem-g h3,.card h3,.rv h3,.rv .who,.nc-t{font-family:Fr,"Arupix Concept KO",serif}
/* Bold UI roles (FigB) — Hangul in the KO medium weight so labels keep their weight step over body text. */
.btn,.lnk,.nav>.it>a,.nav>.it>span,.ft-list b,.hbar-w b,.hbar-cta,.am div,.qn{font-family:FigB,"Arupix Concept KO",sans-serif;font-weight:500}

/* Tracked uppercase labels read as gaps between Hangul syllables: keep size, cut most of the tracking. */
.eb{letter-spacing:.06em}
.btn,.lnk,.nav>.it>a,.nav>.it>span,.hbar-cta,.am div,.qn,.hd-cta .btn,.hero-t .lnk{letter-spacing:.02em}
.scue span{letter-spacing:.3em}
/* Korean headings wrap at phrase boundaries; line-height opened slightly for two-line Hangul. */
.h2{line-height:1.22}
.wel-tx .h2{line-height:1.22}
.rv h3{line-height:1.35}
/* The source's footer italic is synthesized (no italic face); slanted Hangul is unreadable, so no synthetic oblique here. */
.ft-list{font-synthesis-style:none}

/* Header language switch: «한국어» current marker + working link to the English original. */
.hd-cta{display:flex;align-items:center;gap:20px}
.lang{display:flex;align-items:center;gap:10px;font-size:13px;line-height:20px;color:#fff;white-space:nowrap}
.lang-cur{font-weight:500;border-bottom:1px solid currentColor}
.lang-en{color:rgba(255,255,255,.78);transition:color .2s}
.lang-en:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.lang .lang-en{position:relative}
.lang .lang-en::after{content:"";position:absolute;inset:-12px -8px}
.dnav .lang-row{gap:18px;margin-top:14px;font-size:16px;line-height:24px}
.dnav .lang-row .lang-cur{color:#fff}
.dnav .lang-row a{flex:none;color:#aaa}
@media (min-width:1201px) and (max-width:1320px){.lang .lang-cur{display:none}}
@media (max-width:750px){.hd-cta{gap:12px}.lang{font-size:12px;gap:8px}}
@media (max-width:390px){.lang .lang-cur{display:none}}

/* Phone hero bar: the source sets 7px type here; Hangul strokes do not resolve at 7px, so 9px in the same 140px box. */
@media (max-width:750px){.hbar-w{font-size:9px;line-height:12px}}

/* Map icon has no destination in a fictional example: shown as an unavailable item, not a dead link. */
.ft-soc .off{color:#ddd;opacity:.4;cursor:not-allowed}

/* Visible keyboard focus in the board's own palette. */
:focus-visible{outline:2px solid var(--coral);outline-offset:3px}
.hd :focus-visible,.drawer :focus-visible,.hero :focus-visible,.vid :focus-visible,.ft :focus-visible{outline-color:#fff}
::selection{background:rgba(44,106,110,.22);color:var(--ink)}

/* ==== 2026-10-05 repair batch (root first inspection: LAYOUT-ASSESSMENT.md + qa-first.json). Source CSS still byte-identical. ==== */

/* R1 · FAQ (#questions .rev) and the seasonal policy cards (.news) are shown at every width. In the source they are hidden
   above 1200px (both) and at ≤750px (.news), but the menu, room buttons, footer and «체크인 오후 3시부터» point at #questions
   and the seasonal rules (weekly summer stays, fourth night free) are real policy text. Same modules, same copy, no new
   policies. Above 1200px they reuse the source's own 1001–1200px composition (FAQ heading column + box; two policy cards). */
.rev,.news{display:block}
@media (min-width:1201px){
  .rev .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);column-gap:30px;align-items:start}
  .rev .rev-box{grid-area:1/2/4;margin-top:0}
  .rev .eb,.rev .h2,.rev .rev-s{grid-column:1}
  .rev .h2{font-size:38px}
  .news .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:30px}
  .news .eb,.news .h2,.news .nc-more{grid-column:1/3}
  .news .nc,.news .h2+.nc{margin-top:45px;height:300px}
}

/* R2 · 751–1000px: the source's two fixed 380px service columns + 51px gap overflow the wrap (page 856px at 768, 861px at 844).
   Fluid columns; the third card keeps its source role (centred under the pair) at one column's width. */
@media (min-width:751px) and (max-width:1000px){
  .svc-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card{min-width:0}
  .svc-g .card:nth-child(3){grid-column:1/3;justify-self:center;width:calc((100% - 51px)/2)}
}

/* R3 · Phones (≤750px): restrained Korean hierarchy (root-measured values). The English wordmark and hero name are untouched. */
@media (max-width:750px){
  .h2,.wel-tx .h2{font-size:26px;line-height:1.35}
  .eb{font-size:14px;line-height:22px}
  .wel-tx p.br{font-size:16px;line-height:1.75}
  .pil h3,.bem-g h3,.rv h3{font-size:20px;line-height:1.35}
  .card h3{font-size:22px;line-height:1.35}
  .rv .q{font-size:16px;line-height:1.7}
  /* Policy cards on phones: text stacks from the bottom of the photo instead of fixed offsets, so two-line Korean never collides. */
  .news .nc{height:260px;display:flex;flex-direction:column;justify-content:flex-end;padding:0 68px 24px 20px}
  .nc-t,.nc-s{position:relative;left:auto;bottom:auto;max-width:none}
  .nc-t{font-size:22px;line-height:1.35}
  .nc-s{margin-top:6px;font-size:15px;line-height:1.6}
  .nc-a{right:20px;bottom:24px}
  .nc-more{margin-top:30px}

  /* R4 · The floating phone circle sat over the welcome heading (left 9px · top 126px · 60px). On phones it becomes a 48px
     bottom-corner contact button, clear of the hero bar (48px) and safe-area aware; the tel: link is unchanged. */
  .wa{left:auto;top:auto;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(64px + env(safe-area-inset-bottom,0px));width:48px;height:48px;box-shadow:0 4px 14px rgba(21,32,42,.28)}
  .wa .ic{width:26px;height:26px}
}

/* 2026-10-05 한국어 여백(리듬) 수리 — site.css·pages.css(원본)는 그대로, 여기서만 덮는다(4 단위 의미 척도).
   소개(.wel): 사진 두 장은 absolute 라 부모 상자 밖으로 내려온다. 부모(.wel-ph)가 실제 사진 끝까지 자리를 갖게 하고
   (padding % 는 열 너비 기준 = 사진 너비 % 의 기준과 같다 · 사진 비율 3:4 → 너비 % × 4/3), 그 끝에서 다음 대목까지 80/64/56px. */
.wel{padding-bottom:80px}
.wel-ph{padding-bottom:max(calc(47px + 63.49%), calc(20px + 66.67%))}
/* 반복되는 대목 위아래 90+90px → 64px. 객실 슬라이드·사진·연락 구성은 그대로. */
.rooms,.svc,.rev,.news,.cta,.bem{padding-top:64px;padding-bottom:64px}
/* 서비스 카드 글: 615px 최소 높이 대신 내용 높이. */
.card{min-height:0}
@media (max-width:1200px){
  .wel{padding-bottom:80px}
  .card{min-height:0}
}
@media (max-width:1000px){
  .wel{padding:64px 0}
  .wel-ph{padding-bottom:0}
}
@media (max-width:750px){
  .wel{padding:56px 0}
  .wel-ph{height:auto;padding-bottom:max(calc(42px + 64.93%), 66.53%)}
  .rooms,.svc,.rev,.news,.cta,.bem{padding-top:48px;padding-bottom:48px}
}
