@charset "UTF-8";
@import url('/entrance-scenes.css');

:root {
  --paper:#f2f0ea; --white:#fbfaf6; --ink:#29372e; --muted:#626c63;
  --moss:#263c31; --brass:#7e684b; --line:#d8d9cf;
  --company-surface:#e8e9e1; --footer-surface:#ebeae3; --header-surface:#f2f0eaf7;
  --company-line:#c8cebf; --header-line:#d8d9cf99; --contact-surface:#263c31; --on-moss:#f5f3e8;
  --logo-tone:brightness(1); --logo-highlight:#ffffffd9; --logo-depth:#63594570; --logo-shadow:#70634826;
  color-scheme:light;
  --serif:"Yu Mincho","Hiragino Mincho ProN","Songti SC",serif;
  --english:"Baskerville","Iowan Old Style",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans",sans-serif;
}
/* Warm mineral surfaces and quiet green-black preserve the same hierarchy at night. */
:root[data-theme="dark"] {
  --paper:#1c2320; --white:#242c27; --ink:#e8e5da; --muted:#b4bbae;
  --moss:#293e32; --brass:#c4aa7a; --line:#414b42;
  --company-surface:#27302a; --footer-surface:#202923; --header-surface:#1c2320f5;
  --company-line:#495447; --header-line:#414b4299; --contact-surface:#172c23;
  --logo-tone:brightness(0) invert(.91) sepia(.12) saturate(.7);
  --logo-highlight:#ffffff35; --logo-depth:#000000b0; --logo-shadow:#00000055;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.9 var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { color:inherit; cursor:pointer; }
a,button { outline-offset:6px; }
a:focus-visible,button:focus-visible { outline:1px solid currentColor; }
figure,p { margin:0; }
img { display:block; max-width:100%; width:100%; object-fit:cover; }
h1,h2,h3 { margin:0; font-weight:400; text-wrap:balance; }
h2 { font:clamp(32px,3.3vw,46px)/1.6 var(--serif); letter-spacing:1.3px; }
.eyebrow { display:block; font:500 10px/1.5 var(--sans); letter-spacing:2.7px; }
.section-pad { padding:108px max(7.5%,calc((100vw - 1300px)/2)); }
.section-heading { display:flex; align-items:center; gap:25px; margin-bottom:58px; }
.section-heading .eyebrow { color:var(--brass); }
.section-kana { color:var(--muted); font:14px/1.5 var(--serif); letter-spacing:1.7px; }
.body-copy { color:var(--muted); font-size:15px; line-height:2.15; letter-spacing:.25px; }
.quiet-note { color:var(--brass); font-size:12px; line-height:1.8; margin-top:26px; letter-spacing:.6px; }
.text-link { display:flex; align-items:center; justify-content:space-between; gap:36px; width:fit-content; border-bottom:1px solid var(--brass); padding:0 0 9px; font-size:12px; letter-spacing:.6px; margin-top:28px; }
.text-link span { font-size:20px; }

/* Editorial details serve reading and direct access to each place. */
.body-copy,.hero-intro,.stay-card>p,.contact-description { text-wrap:pretty; }
.stay-map { display:flex; align-items:center; justify-content:space-between; gap:25px; width:fit-content; margin-top:20px; padding:0 0 5px; border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; letter-spacing:.4px; }
.stay-map:hover { color:var(--ink); border-color:var(--brass); }
.stay-map span,.text-link span,.hero-link span,.contact-email>span:last-child { transition:transform .25s ease; }
.stay-map:hover span,.text-link:hover span,.contact-email:hover>span:last-child { transform:translate(2px,-2px); }
.hero-link:hover span { transform:translateY(3px); }
.contact-email { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:20px; border-bottom:1px solid #a7b29980; color:var(--on-moss); font:clamp(25px,3vw,42px)/1.2 var(--english); letter-spacing:-.5px; }
.contact-email>span:first-child { min-width:0; overflow-wrap:anywhere; }
.contact-email>span:last-child { font:25px/1 var(--sans); }
.company-details>div { padding-bottom:17px; border-bottom:1px solid var(--line); }
.company-details>div:last-child { border:0; padding-bottom:0; }
/* The approved mark remains the quiet anchor of the page. */
.header { position:fixed; z-index:8; inset:0 0 auto; display:flex; align-items:start; justify-content:space-between; padding:28px 5.5% 22px; color:white; transition:background .3s,padding .3s; }
.brand-lockup { display:flex; flex-direction:column; align-items:center; gap:11px; flex-shrink:0; }
.brand-logo { width:101px; height:auto; object-fit:contain; filter:invert(1); transition:width .3s; }
.brand-owner { font-size:10px; letter-spacing:2px; white-space:nowrap; }
.header-right { display:flex; flex-direction:column; align-items:end; gap:30px; padding-top:4px; }
.language-switch { display:flex; align-items:center; gap:19px; font-size:11px; letter-spacing:.8px; }
.language-switch a { white-space:nowrap; opacity:.75; padding-bottom:4px; }
.language-switch a[aria-current=true] { opacity:1; border-bottom:1px solid currentColor; }
.header nav { display:flex; gap:30px; font-size:14px; letter-spacing:.6px; }
.header nav a { position:relative; }
.header nav a:after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:currentColor; transition:width .3s; }
.header nav a:hover:after,.header nav a[aria-current="location"]:after { width:100%; }
.header.on-paper { align-items:center; background:var(--header-surface); color:var(--ink); padding:15px 5.5%; border-bottom:1px solid var(--header-line); backdrop-filter:blur(14px); }
.header.on-paper .brand-logo { width:61px; filter:none; }
.header.on-paper .brand-owner { font-size:8px; letter-spacing:1px; }
.header.on-paper .brand-lockup { gap:5px; }
.header.on-paper .header-right { gap:11px; padding:0; }
.menu-toggle { display:none; }

/* Brighter natural photography, with a localized shade for legible type. */
.hero { position:relative; min-height:760px; height:100svh; max-height:1120px; background:var(--moss); color:white; overflow:hidden; }
.hero-image,.hero-image img,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-image img { object-position:65% 57%; filter:saturate(.94) brightness(1.04); }
.hero-shade { pointer-events:none; background:linear-gradient(180deg,#10291e64,transparent 30%),linear-gradient(90deg,#122d22bb 0%,#17342566 42%,#1734250a 76%); }
.hero-content { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; height:100%; padding:175px 10% 110px; max-width:1150px; }
.hero-content .eyebrow { color:#fffde4dc; margin-bottom:29px; }
.hero h1 { font:clamp(42px,4.4vw,66px)/1.62 var(--serif); letter-spacing:3px; text-shadow:0 2px 22px #09251e26; }
.hero-intro { max-width:440px; margin-top:28px; color:#fffef0e6; font-size:14px; line-height:2; letter-spacing:.5px; }
.hero-link { display:flex; align-items:center; gap:58px; width:fit-content; border-bottom:1px solid #f2f0df99; padding-bottom:11px; margin-top:34px; font-size:12px; letter-spacing:1px; }
.hero-link span { font-size:20px; }
.hero-place { position:absolute; left:5.5%; bottom:30px; z-index:1; font-size:10px; letter-spacing:2.6px; color:#f8f6e9de; }
.hero-vertical { position:absolute; right:5.5%; top:43%; writing-mode:vertical-rl; font:15px var(--serif); letter-spacing:5px; color:#f6f3e6d9; }

.philosophy { padding-top:116px; padding-bottom:110px; }
.philosophy-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:start; }
.philosophy-title h2 { margin-top:-9px; }
.brand-signature { display:flex; align-items:center; gap:24px; margin-top:31px; }
.signature-logo { width:78px; height:auto; object-fit:contain; opacity:.78; }
.brand-signature>.brand-caption { flex:1; min-width:0; max-width:290px; color:var(--muted); font-size:11px; letter-spacing:.5px; line-height:1.8; }
.story-photographs { position:relative; display:grid; grid-template-columns:62% 30%; gap:8%; align-items:center; margin-top:68px; }
.story-wide img { aspect-ratio:4/3; height:auto; object-position:center; filter:brightness(1.025) saturate(.94); }
.story-detail { padding-top:72px; }
.story-detail img { aspect-ratio:4/5; height:auto; object-position:center; filter:brightness(1.025) saturate(.94); }
.photo-word { position:absolute; right:0; top:3px; color:var(--brass); font:italic 22px/1.4 var(--english); letter-spacing:.1px; }

.stays { background:var(--white); padding-top:98px; padding-bottom:108px; }
.stays .section-heading { margin-bottom:35px; }
.section-top { display:flex; align-items:end; justify-content:space-between; gap:44px; margin-bottom:48px; }
.section-top>p { color:var(--muted); font-size:13px; line-height:1.95; letter-spacing:.25px; }
.stay-grid { display:grid; grid-template-columns:1fr 1fr; gap:5%; }
.stay-card { min-width:0; }
.stay-card:nth-child(2) { padding-top:62px; }
.stay-cover { display:block; position:relative; width:100%; padding:0; border:0; background:#d9d8cc; overflow:hidden; }
.stay-cover>img { width:100%; height:auto; aspect-ratio:4/3; transition:transform .8s; filter:saturate(.96) brightness(1.03); }
.stay-cover:hover>img { transform:scale(1.025); }
.cover-arrow { position:absolute; bottom:18px; right:18px; display:grid; place-items:center; width:40px; height:40px; border:1px solid #fff9; border-radius:50%; background:#20332622; color:white; font-size:20px; }
.stay-identity { margin:27px 0 18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.stay-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.stay-heading h3 { font:38px/1.3 var(--serif); letter-spacing:1.7px; }
.stay-heading small { margin-left:17px; color:var(--muted); font:10px/1.4 var(--sans); letter-spacing:2px; }
.stay-status { flex-shrink:0; color:var(--brass); font-size:11px; letter-spacing:.6px; border-bottom:1px solid #b3a58e; padding-bottom:4px; }
.stay-card>p { color:var(--muted); font-size:14px; line-height:1.95; letter-spacing:.15px; max-width:500px; }

.services { display:grid; grid-template-columns:41% 59%; gap:0; }
.services-heading { padding-right:40px; }
.services-heading .eyebrow { color:var(--brass); margin-bottom:23px; }
.services-heading>p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:2; margin-top:23px; }
.service-list { padding-top:5px; }
.service-list details { border-bottom:1px solid var(--line); }
.service-list summary { display:flex; align-items:center; justify-content:space-between; gap:22px; list-style:none; cursor:pointer; padding:25px 0; font:22px/1.6 var(--serif); letter-spacing:.4px; }
.service-list summary::-webkit-details-marker { display:none; }
.service-list summary small { display:block; color:var(--muted); margin-top:8px; font:11px/1.7 var(--sans); letter-spacing:.5px; }
.service-list summary b { color:var(--brass); font:200 22px/1 var(--sans); }
.service-list details[open] summary b { transform:rotate(45deg); }
.service-list details p { padding:0 40px 25px 0; color:var(--muted); font-size:13px; line-height:2; }
.service-note { color:var(--muted); font-size:11px; line-height:1.8; margin-top:23px; }
.company { background:var(--company-surface); }
.company-grid { display:grid; grid-template-columns:44% 47%; gap:9%; }
.company-grid h2 { font-size:clamp(29px,3vw,40px); }
.company-legal-name { margin-top:30px; font-size:16px; letter-spacing:1.5px; }
.company-details { border-top:1px solid var(--company-line); padding-top:6px; margin:32px 0 0; }
dl>div { display:grid; grid-template-columns:105px 1fr; gap:18px; padding-top:17px; }
dt { color:var(--muted); font-size:11px; letter-spacing:.4px; }
dd { margin:0; font-size:13px; line-height:1.95; overflow-wrap:anywhere; }
.contact { background:var(--contact-surface); color:var(--on-moss); display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-top:92px; padding-bottom:95px; }
.contact .eyebrow { color:#d4d9c4; margin-bottom:25px; }
.contact-description { max-width:380px; margin-top:24px; color:#eef0e1db; font-size:13px; line-height:2; letter-spacing:.2px; }
.contact-info { padding-top:2px; min-width:0; }
.contact-company { margin-top:30px; font-size:16px; letter-spacing:2px; }
.contact dl { margin-top:13px; }
.contact dt { color:#c6cfbc; }
.contact dd { color:#f5f3e8; }
.contact .text-link { color:#f5f3e8; border-color:#a7b299; }
footer { display:grid; grid-template-columns:1fr 1fr 1fr; gap:36px; align-items:start; background:var(--footer-surface); padding:65px 7.5% 24px; }
.footer-logo { width:91px; object-fit:contain; opacity:.85; }
.footer-brand p { color:var(--muted); font-size:11px; margin-top:17px; letter-spacing:.4px; }
.footer-address { color:var(--muted); font-size:12px; line-height:2; }
.footer-address strong { color:var(--ink); font-size:14px; font-weight:400; letter-spacing:1.2px; }
.footer-address p { margin-top:11px; }
.footer-links { display:flex; flex-direction:column; align-items:end; gap:12px; color:var(--muted); font-size:11px; }
.footer-links span { font-size:10px; margin-top:10px; text-align:right; }
.footer-baseline { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:20px; margin-top:8px; color:var(--muted); font-size:10px; letter-spacing:1.5px; }
.local-preview { position:fixed; bottom:0; left:0; z-index:9; pointer-events:none; color:#f7f5e9d9; background:#263c31ed; padding:4px 10px; font-size:9px; letter-spacing:.5px; }
.loading { padding:210px 10%; min-height:100vh; }

/* The detail view reads as an architectural photo essay. */
dialog { width:min(880px,94vw); max-height:92svh; overflow:auto; border:0; background:var(--paper); color:var(--ink); padding:28px; box-shadow:0 30px 100px #0004; }
dialog::backdrop { background:#17281edb; backdrop-filter:blur(3px); }
.dialog-close { display:block; border:0; background:none; margin:0 0 20px auto; font-size:12px; }
.detail-cover { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.detail-identity { margin:29px 0 20px; }
.detail-identity .eyebrow { margin-bottom:11px; color:var(--brass); }
dialog h2 small { margin-left:10px; font:12px var(--sans); letter-spacing:2px; }
.detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:32px; }
.detail-gallery figure { min-width:0; }
.detail-gallery figure>img { height:auto; aspect-ratio:4/3; }
.property-map { margin-top:22px; }
.preparing-note { padding:18px 0 0; border-top:1px solid var(--line); margin-top:27px; color:var(--muted); font-size:12px; }
.solid-link { display:inline-block; padding:12px 24px; margin-top:20px; color:white; background:var(--moss); font-size:13px; }
.credits-page { max-width:1100px; margin:auto; min-height:100vh; }
.credits-page .signature-logo { margin:40px 0 30px; }
.credits-page h1 { font:38px/1.5 var(--serif); margin:20px 0; }
.credits-page #credits-intro { color:var(--muted); font-size:14px; }
.credits-page ul { padding:25px 0 25px 20px; font-size:13px; line-height:2.4; }
.credits-page li { margin-bottom:12px; }
.credits-page li a,.credits-page #license { border-bottom:1px solid var(--line); }

html[lang="zh-Hant"] { --serif:"Songti TC","Songti SC","STSong",serif; --sans:-apple-system,BlinkMacSystemFont,"PingFang TC","Hiragino Sans",sans-serif; }
html[lang=ko] { --serif:"AppleMyungjo","Batang","Yu Mincho",serif; word-break:keep-all; }
html[lang=ko] h2 { letter-spacing:0; }
html[lang=en] h1,html[lang=en] h2,html[lang=en] h3 { font-family:var(--english); letter-spacing:0; }
html[lang=en] .hero h1 { font-size:clamp(52px,5.6vw,82px); line-height:1.15; }
html[lang=en] h2 { font-size:clamp(38px,4vw,54px); line-height:1.17; }
html[lang=en] .stay-heading h3 { font-size:43px; line-height:1.2; }
html[lang=en] .company-grid h2 { font-size:clamp(35px,3.7vw,48px); }
html[lang=en] .hero-intro { line-height:1.85; letter-spacing:.2px; }
html[lang=en] .service-list summary { font:26px/1.3 var(--english); }

@media (max-width:1100px) {
  .section-pad { padding:88px 7%; }
  .header nav { gap:20px; font-size:13px; }
  .header-right { gap:25px; }
  .hero-content { padding-left:9%; }
  .philosophy-grid { gap:8%; }
  .services { grid-template-columns:42% 58%; }
  .services-heading { padding-right:28px; }
  .company-grid { grid-template-columns:43% 49%; gap:8%; }
  .service-list summary { font-size:20px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:105px; }
  .header { padding:23px 6%; }
  .brand-logo { width:76px; }
  .brand-owner { font-size:8px; letter-spacing:1px; }
  .brand-lockup { gap:8px; }
  .header-right { padding:0; gap:18px; }
  .language-switch { gap:13px; font-size:10px; }
  .menu-toggle { display:block; border:0; border-bottom:1px solid #ffffff80; padding:0 0 4px; background:none; color:inherit; font-size:11px; letter-spacing:1px; }
  .header nav { display:none; position:absolute; inset:132px 0 auto; padding:25px 7% 32px; background:var(--paper); color:var(--ink); box-shadow:0 12px 20px #0001; font-size:15px; }
  .header nav.is-open { display:flex; flex-direction:column; gap:19px; }
  .header.menu-open { background:var(--paper); color:var(--ink); }
  .header.menu-open .brand-logo { filter:none; }
  .header.on-paper { padding:14px 6%; }
  .header.on-paper .brand-logo { width:54px; }
  .header.on-paper .header-right { gap:12px; }
  .header.on-paper nav { top:101px; }
  .header.on-paper .menu-toggle { border-color:var(--line); }
  .hero { min-height:740px; max-height:none; }
  .hero-content { padding:185px 8% 135px; }
  .hero h1 { font-size:clamp(32px,8.7vw,43px); line-height:1.65; letter-spacing:1.5px; }
  .hero-intro { font-size:13px; line-height:1.95; max-width:295px; margin-top:25px; }
  .hero-content .eyebrow { font-size:9px; letter-spacing:2px; margin-bottom:25px; }
  .hero-link { margin-top:30px; font-size:12px; gap:42px; }
  .hero-image img { object-position:60% center; }
  .hero-shade { background:linear-gradient(90deg,#122d22ba,#17342536); }
  .hero-vertical { display:none; }
  .hero-place { left:8%; bottom:45px; font-size:9px; letter-spacing:2px; }
  .section-pad { padding:73px 7%; }
  h2 { font-size:30px; line-height:1.6; letter-spacing:.7px; }
  .section-heading { gap:17px; margin-bottom:37px; flex-wrap:wrap; }
  .section-heading .eyebrow { font-size:9px; letter-spacing:1.7px; }
  .section-kana { font-size:12px; }
  .philosophy-grid { grid-template-columns:1fr; gap:28px; }
  .philosophy-title h2 { margin:0; }
  .body-copy { font-size:14px; line-height:2.05; }
  .quiet-note { font-size:11px; margin-top:19px; }
  .brand-signature { margin-top:26px; gap:20px; }
  .signature-logo { width:67px; }
  .brand-signature>.brand-caption { font-size:10px; }
  .story-photographs { margin-top:43px; grid-template-columns:71% 29%; gap:0; align-items:end; padding-bottom:36px; }
  .story-wide img { aspect-ratio:3/4; object-position:48% center; }
  .story-detail { padding:0; margin-left:-23px; transform:translateY(40px); }
  .story-detail img { aspect-ratio:3/4; border:5px solid var(--paper); }
  .photo-word { position:static; grid-column:1/-1; margin-top:46px; font-size:21px; }
  .section-top { display:block; margin-bottom:32px; }
  .section-top>p { margin-top:20px; font-size:12px; line-height:1.9; }
  .stay-grid { grid-template-columns:1fr; gap:44px; }
  .stay-card:nth-child(2) { padding:0; }
  .stay-identity { margin:23px 0 14px; }
  .stay-heading h3 { font-size:30px; }
  .stay-heading small { margin-left:13px; font-size:9px; }
  .stay-status { font-size:10px; }
  .stay-card>p { font-size:13px; line-height:1.95; }
  .cover-arrow { width:34px; height:34px; right:14px; bottom:14px; font-size:18px; }
  .services { display:block; }
  .services-heading { padding:0; }
  .services-heading>p:not(.eyebrow) { font-size:13px; margin-top:19px; }
  .service-list { margin-top:31px; }
  .service-list summary { font-size:20px; padding:23px 0; }
  .company-grid { grid-template-columns:1fr; gap:28px; }
  .company-grid h2 { font-size:29px; }
  .company-legal-name { margin-top:23px; font-size:15px; }
  .company-details { margin-top:27px; }
  dl>div { grid-template-columns:82px 1fr; gap:15px; }
  dd { font-size:12px; }
  .contact { display:block; }
  .contact-info { padding-top:37px; }
  .contact-email { font-size:clamp(24px,7vw,33px); }
  .detail-gallery { grid-template-columns:1fr; }
  .contact-company { font-size:17px; }
  .contact-description { font-size:13px; }
  footer { grid-template-columns:1fr; padding:53px 7% 26px; gap:29px; }
  .footer-logo { width:82px; }
  .footer-links { align-items:start; }
  .footer-links span { text-align:left; }
  .footer-baseline { margin-top:0; letter-spacing:.5px; font-size:9px; }
  dialog { width:94vw; padding:19px; }
  .detail-identity { margin:24px 0 17px; }
  .detail-gallery { gap:16px; margin-top:27px; }
  .preparing-note { font-size:11px; }
  html[lang=en] .hero h1 { font-size:clamp(43px,11.5vw,57px); line-height:1.15; }
  html[lang=en] h2 { font-size:37px; line-height:1.18; }
  html[lang=en] .stay-heading h3 { font-size:38px; }
  html[lang=en] .company-grid h2 { font-size:35px; }
  html[lang=en] .service-list summary { font-size:24px; }
  html[lang=ko] .hero h1 { font-size:31px; letter-spacing:0; }
  html[lang=ko] h2 { font-size:28px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}

/* A luminous editorial opening: separate readable copy from the photograph. */
.header { background:var(--paper); color:var(--ink); border-bottom:1px solid var(--header-line); }
.header .brand-logo { filter:none; }
.hero { min-height:790px; background:var(--paper); color:var(--ink); }
.hero-image { top:165px; right:5.5%; bottom:65px; left:49%; width:auto; height:auto; overflow:hidden; }
.hero-image img { object-position:63% 53%; filter:brightness(1.04) saturate(.96); }
.hero-shade { display:none; }
.hero-content { width:47%; max-width:none; padding:183px 0 105px 7.5%; }
.hero-content .eyebrow { color:var(--brass); letter-spacing:2.2px; }
.hero h1 { font-size:clamp(34px,3.5vw,52px); line-height:1.65; letter-spacing:1.7px; text-shadow:none; }
.hero-intro { color:var(--muted); max-width:385px; font-size:14px; line-height:2.05; }
.hero-link { border-color:var(--brass); margin-top:30px; gap:52px; }
.hero-place { left:7.5%; bottom:28px; color:var(--brass); font-size:10px; }
.hero-vertical { left:49%; right:auto; top:auto; bottom:27px; writing-mode:horizontal-tb; color:var(--muted); font:12px/1.7 var(--serif); letter-spacing:1.2px; }
html[lang=en] .hero h1 { font-size:clamp(44px,4.3vw,66px); line-height:1.16; }
@media(max-width:1100px) and (min-width:761px) {
  .hero-content { padding-left:7%; width:46%; }
  .hero-image { left:49%; right:4%; }
  .hero h1 { font-size:35px; letter-spacing:.8px; }
  html[lang=en] .hero h1 { font-size:clamp(36px,4.8vw,46px); }
  .hero-intro { font-size:14px; }
}
@media(max-width:760px) {
  .hero { display:flex; flex-direction:column; min-height:0; height:auto; max-height:none; padding-bottom:27px; }
  .hero-content { order:1; width:100%; height:auto; padding:165px 7% 37px; }
  .hero h1 { font-size:clamp(32px,8.8vw,42px); line-height:1.62; letter-spacing:1px; }
  .hero-intro { max-width:330px; margin-top:22px; font-size:13px; line-height:1.95; }
  .hero-content .eyebrow { margin-bottom:23px; font-size:9px; letter-spacing:1.8px; }
  .hero-link { margin-top:25px; gap:42px; }
  .hero-image { order:2; position:relative; inset:auto; width:86%; height:auto; aspect-ratio:4/3; margin:0 7% 17px; }
  .hero-image img { object-position:63% center; }
  .hero-place { order:3; position:static; margin:0 7%; color:var(--brass); font-size:9px; }
  .hero-vertical { display:none; }
  html[lang=en] .hero h1 { font-size:clamp(43px,11.5vw,57px); line-height:1.15; }
  html[lang=ko] .hero h1 { font-size:31px; letter-spacing:0; }
}

/* Keep the approved wordmark intact; light and shadow give the ink a subtle raised edge. */
.header .brand-logo,.header.on-paper .brand-logo,.header.menu-open .brand-logo {
  filter:var(--logo-tone) drop-shadow(.4px .5px 0 var(--logo-highlight)) drop-shadow(.7px 1.3px .2px var(--logo-depth)) drop-shadow(1.4px 2.5px 1.5px var(--logo-shadow));
}
.signature-logo,.footer-logo { filter:var(--logo-tone); }
.legal-name { display:inline-block; white-space:nowrap; }
.company-legal-name,.contact-company,.footer-address strong { white-space:nowrap; }
.header-tools { display:flex; align-items:center; gap:24px; }
.theme-toggle { white-space:nowrap; border:1px solid var(--line); background:transparent; color:var(--muted); padding:4px 10px; border-radius:2px; font-size:10px; line-height:1.8; letter-spacing:.4px; }
.theme-toggle:hover { color:var(--ink); border-color:var(--brass); }
.menu-toggle { border-color:var(--line); }
@media(max-width:760px) {
  .header-tools { flex-direction:column; align-items:flex-end; gap:7px; }
  .header-right { gap:11px; }
  .language-switch { gap:12px; font-size:9px; }
  .theme-toggle { padding:1px 7px; font-size:9px; }
}

/* Kanazawa is a clear point of origin, carried into the main reading rhythm. */
.hero-location { margin-bottom:15px; color:var(--ink); font:20px/1.5 var(--serif); letter-spacing:2px; }
.hero-content .eyebrow { margin-bottom:24px; }
.destination { background:var(--white); border-top:1px solid var(--line); }
.destination-intro { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:start; margin-bottom:52px; }
.destination-intro h2 { font-size:clamp(29px,3vw,42px); line-height:1.55; }
.destination-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.destination-grid figure { overflow:hidden; }
.destination-grid img { aspect-ratio:4/3; height:auto; object-position:center; }
.destination-grid h3 { margin-top:24px; font:23px/1.5 var(--serif); letter-spacing:.5px; }
.destination-grid p { margin-top:14px; color:var(--muted); font-size:13px; line-height:2; text-wrap:pretty; }
.destination-official { margin-top:38px; color:var(--muted); }
.stay-location { color:var(--muted); font-size:10px; letter-spacing:1.5px; margin-bottom:12px; }
html[lang=en] .hero-location { font:19px/1.5 var(--english); letter-spacing:.6px; }
html[lang=en] .destination-intro h2 { font-size:clamp(35px,3.5vw,48px); line-height:1.2; }
html[lang=en] .destination-grid h3 { font-family:var(--english); font-size:26px; }
@media(max-width:760px) {
 .hero-location { font-size:18px; letter-spacing:1.5px; margin-bottom:10px; }
 .destination-intro { grid-template-columns:1fr; gap:22px; margin-bottom:35px; }
 .destination-intro h2 { font-size:29px; }
 .destination-grid { grid-template-columns:1fr; gap:35px; }
 .destination-grid h3 { margin-top:20px; font-size:23px; }
 .destination-grid p { margin-top:10px; font-size:13px; }
 .stay-location { letter-spacing:1px; }
}

.destination-grid article:nth-child(2) img { object-position:center 28%; }

/* A single garden view marks the year; controls stay on the paper beneath it. */
.hero-image.has-seasons { overflow:visible; }
.hero-season-stage { position:absolute; inset:0; overflow:hidden; background:var(--white); }
.hero-image .hero-season-layer { --season-from-x:0%; --season-from-y:0%; --season-to-x:0%; --season-to-y:0%; opacity:0; transform:scale(1.02); transition:opacity 2s ease-in-out; }
.hero-season-layer[data-season="spring"] { --season-from-x:-.45%; --season-from-y:.35%; --season-to-x:.45%; --season-to-y:-.35%; }
.hero-season-layer[data-season="summer"] { --season-from-x:.4%; --season-from-y:.3%; --season-to-x:-.4%; --season-to-y:-.3%; }
.hero-season-layer[data-season="autumn"] { --season-from-x:-.3%; --season-from-y:-.4%; --season-to-x:.3%; --season-to-y:.4%; }
.hero-season-layer[data-season="winter"] { --season-from-x:.35%; --season-from-y:-.3%; --season-to-x:-.35%; --season-to-y:.3%; }
.hero-image .hero-season-layer.is-current { opacity:1; }
.hero-image .hero-season-layer.has-entered { animation:irostay-season-drift 12s ease-out both; }
.hero.is-season-paused .hero-season-layer { animation-play-state:paused; }
.hero.has-seasons .hero-vertical { display:none; }
.hero-season-controls { position:absolute; top:calc(100% + 10px); left:0; right:0; display:flex; justify-content:space-between; align-items:center; gap:15px; color:var(--muted); }
.hero-season-choices { display:flex; align-items:center; gap:clamp(12px,1.8vw,26px); }
.hero-season-controls button { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:0; border:0; border-radius:0; background:transparent; color:inherit; font:11px/1.5 var(--sans); letter-spacing:.8px; }
.hero-season-choices button { position:relative; white-space:nowrap; }
.hero-season-choices button:after { content:""; position:absolute; left:0; right:0; bottom:2px; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.hero-season-choices button[aria-pressed="true"] { color:var(--ink); }
.hero-season-choices button[aria-pressed="true"]:after { transform:scaleX(1); }
.hero-season-controls button:hover { color:var(--ink); }
.hero-season-toggle { width:32px; flex:0 0 32px; }
.hero-season-toggle svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.1; stroke-linecap:round; stroke-linejoin:round; }
.hero-season-toggle[hidden] { display:none; }
@keyframes irostay-season-drift {
 from { transform:translate(var(--season-from-x),var(--season-from-y)) scale(1.02); }
 to { transform:translate(var(--season-to-x),var(--season-to-y)) scale(1.04); }
}
@media(max-width:760px) {
 .hero.has-seasons .hero-image { margin-bottom:63px; }
 .hero-season-controls { top:calc(100% + 9px); gap:12px; }
 .hero-season-choices { gap:clamp(8px,2.6vw,18px); }
 .hero-season-controls button { min-width:44px; min-height:44px; font-size:10px; letter-spacing:.5px; }
 .hero-season-toggle { flex-basis:44px; }
}
@media(min-width:761px) {
 .header nav a { white-space:nowrap; }
 .hero-image.has-seasons { bottom:90px; }
}
@media(min-width:761px) and (max-width:900px) {
 /* Keep the complete English introduction below the header on shorter tablets. */
 .hero { min-height:860px; }
}
@media(pointer:coarse) {
 .hero-season-controls button { min-width:44px; min-height:44px; }
 .hero-season-toggle { flex-basis:44px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-image .hero-season-layer { transform:none; animation:none!important; transition:none!important; }
 .hero-season-choices button:after { transition:none!important; }
}
