:root { --ink:#0a0a09; --paper:#f0ede6; --champagne:#c7a66a; --line:rgba(240,237,230,.24); --muted:#a7a39a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; background:var(--ink); color:var(--paper); font-family:Arial,Helvetica,sans-serif; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
[data-en] { display:none!important; }
html.is-en [data-tr] { display:none!important; }
html.is-en [data-en] { display:inline!important; }
.admin-bar .site-header { top:32px; }

.hero { min-height:100svh; position:relative; display:grid; align-items:end; overflow:hidden; isolation:isolate; background:#151513; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 34%; z-index:-3; filter:saturate(.78) contrast(1.06); animation:heroReveal 1.4s cubic-bezier(.2,.75,.2,1) both; }
.hero-shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(5,5,4,.9) 0%,rgba(5,5,4,.58) 43%,rgba(5,5,4,.12) 77%),linear-gradient(0deg,rgba(5,5,4,.78) 0%,transparent 48%,rgba(5,5,4,.36) 100%); }
.site-header { position:absolute; top:0; left:0; right:0; height:112px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); z-index:10; }
.brand { display:flex; flex-direction:column; font-size:17px; font-weight:700; letter-spacing:.12em; line-height:.96; text-transform:uppercase; }
.brand span:last-child { color:var(--champagne); margin-left:24px; }
.desktop-nav { display:flex; align-items:center; gap:clamp(20px,2.5vw,42px); }
.desktop-nav a,.portfolio-menu>button,.blog-menu>button { color:rgba(255,255,255,.78); font-size:13px; letter-spacing:.15em; text-transform:uppercase; transition:color .25s ease; }
.desktop-nav a:hover { color:var(--champagne); }
.portfolio-menu,.blog-menu { position:relative; padding:28px 0; }
.portfolio-menu>button,.blog-menu>button { display:flex; align-items:center; gap:8px; padding:0; border:0; background:none; cursor:pointer; }
.portfolio-menu>button:hover,.blog-menu>button:hover { color:var(--champagne); }
.portfolio-menu>button i,.blog-menu>button i { color:var(--champagne); font-size:15px; font-style:normal; }
.portfolio-dropdown { position:fixed; top:94px; left:50%; display:grid; grid-template-columns:1.25fr .9fr .8fr; gap:52px; width:min(940px,calc(100vw - 64px)); padding:34px 40px 38px; background:rgba(10,10,9,.98); border:1px solid var(--line); opacity:0; visibility:hidden; transform:translate(-50%,10px); transition:opacity .22s ease,transform .22s ease,visibility .22s; box-shadow:0 24px 70px rgba(0,0,0,.35); backdrop-filter:blur(20px); }
.portfolio-menu:hover .portfolio-dropdown,.portfolio-dropdown.is-open { opacity:1; visibility:visible; transform:translate(-50%,0); }
.blog-dropdown { position:absolute; top:76px; left:50%; width:190px; padding:12px 18px; background:rgba(10,10,9,.98); border:1px solid var(--line); opacity:0; visibility:hidden; transform:translate(-50%,10px); transition:opacity .22s ease,transform .22s ease,visibility .22s; box-shadow:0 20px 55px rgba(0,0,0,.35); }
.blog-menu:hover .blog-dropdown,.blog-dropdown.is-open { opacity:1; visibility:visible; transform:translate(-50%,0); }
.blog-dropdown a { display:block; padding:12px 2px; border-bottom:1px solid var(--line); font-size:10px; }
.blog-dropdown a:last-child { border-bottom:0; }
.mega-column>p { margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid rgba(199,166,106,.48); color:var(--champagne); font-family:Didot,'Bodoni 72',Georgia,serif; font-size:22px; letter-spacing:0; text-transform:none; }
.portfolio-dropdown .mega-column>a { display:block; padding:8px 0; border:0; color:rgba(255,255,255,.68); font-size:10px; line-height:1.3; }
.header-right { display:flex; align-items:center; gap:28px; }
.language-switcher { display:flex; align-items:center; gap:6px; }
.language-switcher a { display:grid; width:32px; height:32px; place-items:center; flex:0 0 32px; border:1px solid var(--line); border-radius:50%; color:rgba(240,237,230,.62); font-size:8px; font-weight:700; letter-spacing:.02em; transition:color .2s ease,border-color .2s ease,background-color .2s ease; }
.language-switcher a:hover,.language-switcher a.is-active { color:var(--champagne); border-color:rgba(199,166,106,.78); background:rgba(199,166,106,.08); }
.menu-button { position:relative; display:none; width:46px; height:46px; place-items:center; border:1px solid var(--line); border-radius:50%; color:white; background:rgba(0,0,0,.2); }
.menu-button span { display:block; position:absolute; width:18px; height:1px; background:currentColor; transition:transform .2s ease; }
.menu-button span:last-child { transform:translateY(5px); }
.menu-button.is-open span:first-child { transform:rotate(45deg); }
.menu-button.is-open span:last-child { transform:rotate(-45deg); }
.mobile-nav { position:fixed; inset:96px 0 0; z-index:9; display:none; padding:18px clamp(22px,6vw,54px) 48px; overflow-y:auto; background:rgba(10,10,9,.985); border-top:1px solid var(--line); backdrop-filter:blur(22px); }
.mobile-nav.is-open { display:block; }
.mobile-nav>a,.mobile-nav>button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:17px 2px; border:0; border-bottom:1px solid var(--line); background:none; color:var(--paper); font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(22px,5vw,30px); font-weight:400; line-height:1.1; text-align:left; }
.mobile-nav>button { cursor:pointer; }
.mobile-nav>button:focus { outline:none; }
.mobile-nav>button:focus-visible { outline:1px solid var(--champagne); outline-offset:4px; }
.mobile-nav>button>span { color:var(--champagne); font-family:Arial,Helvetica,sans-serif; font-size:19px; }
.mobile-submenu { display:none; padding:6px 0 14px 18px; border-bottom:1px solid var(--line); }
.mobile-submenu.is-open { display:block; }
.mobile-submenu details { border-bottom:1px solid rgba(240,237,230,.13); }
.mobile-submenu details:last-child { border-bottom:0; }
.mobile-submenu summary { display:flex; align-items:center; justify-content:space-between; padding:15px 2px; color:var(--champagne); font-family:Didot,'Bodoni 72',Georgia,serif; font-size:20px; cursor:pointer; list-style:none; }
.mobile-submenu summary::-webkit-details-marker { display:none; }
.mobile-submenu summary b { font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:400; transition:transform .2s ease; }
.mobile-submenu details[open] summary b { transform:rotate(45deg); }
.mobile-submenu details>div { display:grid; padding:0 0 12px 14px; }
.mobile-submenu details a { display:block; padding:8px 0; border:0; color:rgba(240,237,230,.72); font-family:Arial,Helvetica,sans-serif; font-size:11px; font-weight:700; letter-spacing:.11em; line-height:1.45; text-transform:uppercase; }
.mobile-blog-submenu { display:none; padding:5px 0 12px 18px; border-bottom:1px solid var(--line); }
.mobile-blog-submenu.is-open { display:grid; }
.mobile-blog-submenu a { padding:11px 0; color:rgba(240,237,230,.72); font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }

.hero-content { width:min(760px,calc(100% - 48px)); margin:0 0 clamp(116px,15vh,180px) clamp(24px,8vw,128px); }
.kicker { margin:0 0 22px; color:var(--champagne); font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.hero h1 { max-width:940px; margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(52px,7vw,108px); font-weight:400; letter-spacing:-.05em; line-height:.94; }
.hero h1 span,.hero h1 em { display:block; }
.hero h1 em { color:var(--champagne); font-weight:400; }
.hero-copy { max-width:540px; margin:30px 0 0; color:rgba(255,255,255,.7); font-size:clamp(16px,1.35vw,20px); line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:34px; margin-top:36px; }
.primary-action { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:56px; padding:0 26px; background:var(--champagne); color:#11100d; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:transform .25s ease,background .25s ease; }
.primary-action:hover { transform:translateY(-3px); background:#d8bb82; }
.primary-action svg { width:19px; }
.text-action { display:inline-flex; align-items:center; gap:12px; font-size:13px; letter-spacing:.12em; text-transform:uppercase; }
.text-action [data-tr], .text-action [data-en] { width:auto; height:auto; display:inline; border:0; border-radius:0; }
.hero-rail { position:absolute; right:clamp(24px,5vw,80px); bottom:48px; display:flex; align-items:center; gap:14px; color:rgba(255,255,255,.62); font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.hero-rail span { color:var(--champagne); }
.hero-rail i { width:22px; height:1px; background:var(--line); }
.scroll-cue { position:absolute; left:clamp(24px,5vw,80px); bottom:28px; display:flex; align-items:center; gap:14px; color:rgba(255,255,255,.52); font-size:10px; letter-spacing:.22em; text-transform:uppercase; transform:rotate(-90deg); transform-origin:left center; }
.scroll-line { width:42px; height:1px; background:var(--champagne); }

.intro-section { padding:clamp(90px,11vw,170px) clamp(24px,8vw,128px); background:#121210; }
.intro-section>.kicker { margin-bottom:46px; }
.intro-section>div { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(48px,8vw,130px); align-items:start; }
.intro-section h2 { max-width:900px; margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(48px,6.5vw,96px); font-weight:400; letter-spacing:-.05em; line-height:.98; }
.intro-copy p { margin:0 0 20px; color:var(--muted); font-size:15px; line-height:1.75; }
.intro-copy strong { color:var(--paper); font-weight:600; }
.intro-copy a { display:inline-flex; align-items:center; gap:12px; padding-bottom:8px; border-bottom:1px solid var(--champagne); color:var(--champagne); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }

.works-section { padding:clamp(84px,10vw,150px) clamp(24px,6vw,96px); background:var(--paper); color:var(--ink); }
.section-heading { display:grid; grid-template-columns:.7fr 1.5fr .8fr; gap:50px; align-items:end; margin-bottom:72px; }
.section-heading>p { color:#765f38; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.section-heading h2 { margin:0; max-width:700px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(46px,5vw,78px); font-weight:400; letter-spacing:-.045em; line-height:.98; }
.section-heading>span { color:#68635a; font-size:15px; line-height:1.65; }
.work-grid { display:grid; grid-template-columns:1.08fr .92fr .92fr; gap:clamp(14px,2vw,34px); align-items:start; }
.work-card:nth-child(2) { margin-top:90px; }
.work-card:nth-child(3) { margin-top:180px; }
.work-image-wrap { position:relative; height:clamp(420px,54vw,720px); overflow:hidden; background:#222; }
.work-card:nth-child(n+2) .work-image-wrap { height:clamp(360px,43vw,590px); }
.work-image-wrap img { width:100%; height:100%; object-fit:cover; filter:saturate(.78); transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .4s ease; }
.work-card:hover img { transform:scale(1.035); filter:saturate(1); }
.work-index { position:absolute; top:18px; right:18px; display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.38); border-radius:50%; color:white; font-size:11px; }
.work-meta { display:flex; justify-content:space-between; align-items:end; padding:20px 2px; border-bottom:1px solid rgba(10,10,9,.22); }
.work-meta p { margin:0 0 8px; color:#756e63; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.work-meta h3 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:34px; font-weight:400; }
.work-meta svg { transition:transform .25s ease; }
.work-card:hover .work-meta svg { transform:translate(4px,4px); }

.film-section { position:relative; min-height:92svh; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; padding:clamp(90px,9vw,140px) clamp(24px,8vw,128px); background:#161512; }
.film-section>img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 33%; filter:grayscale(.18) saturate(.75); }
.film-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,6,5,.9),rgba(6,6,5,.35) 60%,rgba(6,6,5,.12)),linear-gradient(0deg,rgba(6,6,5,.75),transparent 58%); }
.film-content { max-width:760px; }
.film-content h2 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(64px,8vw,122px); font-weight:400; letter-spacing:-.055em; line-height:.86; }
.film-content>p:last-child { max-width:540px; margin:36px 0 0; color:rgba(255,255,255,.7); font-size:17px; line-height:1.75; }
.film-mark { position:absolute; right:clamp(24px,5vw,80px); bottom:48px; color:rgba(255,255,255,.58); font-size:11px; letter-spacing:.18em; text-transform:uppercase; writing-mode:vertical-rl; }

.services-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(48px,8vw,130px); padding:clamp(90px,11vw,170px) clamp(24px,6vw,96px); background:#ece8df; color:var(--ink); }
.services-intro { position:sticky; top:48px; align-self:start; }
.services-intro .kicker { color:#765f38; }
.services-intro h2 { max-width:480px; margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(52px,6vw,92px); font-weight:400; letter-spacing:-.055em; line-height:.92; }
.services-list { border-top:1px solid rgba(10,10,9,.32); }
.service-row { display:grid; grid-template-columns:56px minmax(190px,.7fr) 1fr; gap:24px; align-items:start; padding:34px 0; border-bottom:1px solid rgba(10,10,9,.24); }
.service-row>span { color:#846b3f; font-size:11px; letter-spacing:.15em; }
.service-row h3 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(26px,2.5vw,38px); font-weight:400; line-height:1.1; }
.service-row p { margin:2px 0 0; color:#68635a; font-size:15px; line-height:1.7; }

.notes-section { padding:clamp(90px,11vw,165px) clamp(24px,6vw,96px); background:#171714; }
.notes-heading { display:grid; grid-template-columns:.6fr 1.25fr .65fr; gap:48px; align-items:end; margin-bottom:68px; }
.notes-heading h2 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(48px,5.6vw,84px); font-weight:400; letter-spacing:-.05em; line-height:.96; }
.notes-heading>span { color:var(--muted); font-size:15px; line-height:1.7; }
.notes-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.note-card { min-height:330px; padding:30px clamp(20px,2.4vw,38px) 34px; border-right:1px solid var(--line); }
.note-card:last-child { border-right:0; }
.note-card>span { color:var(--champagne); font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.note-card h3 { margin:70px 0 20px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(27px,2.5vw,38px); font-weight:400; line-height:1.1; }
.note-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.75; }

.approach { padding:clamp(90px,12vw,180px) clamp(24px,11vw,170px); background:#121210; }
.approach blockquote { max-width:1050px; margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(42px,6vw,92px); font-weight:400; letter-spacing:-.045em; line-height:1.02; }
.approach>p:last-child { max-width:530px; margin:46px 0 0 auto; color:var(--muted); font-size:17px; line-height:1.8; }

footer { padding:clamp(86px,10vw,150px) clamp(24px,6vw,96px) 38px; background:var(--champagne); color:#15130f; }
footer h2 { max-width:980px; margin:0 0 54px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(50px,7vw,104px); font-weight:400; letter-spacing:-.055em; line-height:.93; }
footer .kicker { color:#514326; }
.primary-action.light { background:#15130f; color:var(--paper); }
.faq-strip { display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:90px; border-top:1px solid rgba(21,19,15,.35); }
.faq-strip details { padding:24px 0; border-bottom:1px solid rgba(21,19,15,.35); }
.faq-strip summary { cursor:pointer; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.faq-strip p { max-width:560px; margin:18px 0 4px; font-size:14px; line-height:1.65; }
.footer-line { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:32px; margin-top:110px; padding-top:24px; border-top:1px solid rgba(21,19,15,.35); font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.footer-line .copyright { max-width:none; white-space:nowrap; font-size:clamp(7px,.65vw,10px); line-height:1.4; letter-spacing:.035em; }
.footer-line .footer-center { justify-self:center; white-space:nowrap; }
.footer-line a { display:flex; align-items:center; gap:9px; }
.footer-line>a { justify-self:end; }

@keyframes heroReveal { from { opacity:0; transform:scale(1.05); } to { opacity:1; transform:scale(1); } }
@media (max-width:900px) {
  .desktop-nav,.hero-rail { display:none; }
  .menu-button { display:grid; }
  .site-header { height:96px; }
  .hero-image { object-position:60% center; }
  .hero-shade { background:linear-gradient(0deg,rgba(5,5,4,.92),rgba(5,5,4,.15) 80%),linear-gradient(90deg,rgba(5,5,4,.35),transparent); }
  .hero { align-items:start; }
  .hero-content { width:auto; margin:0; padding:150px 24px 92px; }
  .hero h1 { max-width:720px; line-height:.96; }
  .section-heading { grid-template-columns:1fr; gap:22px; }
  .intro-section>div { grid-template-columns:1fr; }
  .section-heading>span { max-width:480px; }
  .work-grid { grid-template-columns:1fr; gap:58px; }
  .work-card:nth-child(n) { margin-top:0; }
  .work-image-wrap,.work-card:nth-child(n+2) .work-image-wrap { height:min(128vw,680px); }
  .film-mark { display:none; }
  .services-section { grid-template-columns:1fr; }
  .services-intro { position:static; }
  .notes-heading { grid-template-columns:1fr; gap:22px; }
  .notes-grid { grid-template-columns:1fr; }
  .note-card { min-height:0; border-right:0; border-bottom:1px solid var(--line); }
  .faq-strip { grid-template-columns:1fr; gap:0; }
  .footer-line { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; column-gap:18px; row-gap:26px; margin-top:80px; }
  .footer-line .copyright { grid-column:1; grid-row:2; justify-self:start; max-width:none; white-space:nowrap; font-size:clamp(5.7px,1.2vw,8px); line-height:1.5; letter-spacing:0; }
  .footer-line .footer-center { grid-column:1 / -1; grid-row:1; justify-self:center; white-space:nowrap; }
  .footer-line>a { grid-column:2; grid-row:2; justify-self:end; }
}
@media (max-width:782px) {
  .admin-bar .site-header { top:46px; }
  .admin-bar .mobile-nav { top:142px; }
}
@media (max-width:560px) {
  .hero-content { padding:176px 22px 78px; }
  .hero h1 { font-size:clamp(49px,14vw,68px); letter-spacing:-.045em; line-height:.98; }
  .hero-copy { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:22px; }
  .primary-action { width:100%; }
  .scroll-cue { display:none; }
  .section-heading h2 { font-size:48px; }
  .approach blockquote { font-size:44px; }
  .film-section { min-height:78svh; }
  .film-content h2 { font-size:58px; }
  .service-row { grid-template-columns:38px 1fr; gap:18px; }
  .service-row p { grid-column:2; }
  .header-right { gap:12px; }
  .language-switcher { gap:5px; }
  .language-switcher a { width:29px; height:29px; flex-basis:29px; font-size:7px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* 1.1 — brand, dedicated pages, social links and booking flow */
.site-header.inner-header { background:rgba(10,10,9,.98); }
.brand-zone,.brand,.brand-name,.header-socials,.mobile-socials,.footer-socials,.social-label { display:flex; align-items:center; }
.brand-zone { gap:22px; min-width:0; }
.brand { flex-direction:row; gap:2px; flex:0 0 auto; }
.brand-mark { position:relative; display:block; width:43px; height:43px; overflow:visible; background:transparent; border:0; }
.brand-mark img { display:block; width:43px; height:43px; max-width:none; object-fit:contain; transform:none; }
.brand-name { flex-direction:column; align-items:flex-start; font-size:14px; line-height:.96; }
.brand>span.brand-name { margin-left:0; color:var(--paper); }
.brand>.brand-name>span:first-child { color:var(--paper); }
.brand-name>span:last-child { color:var(--champagne); margin-left:18px; }
.header-socials,.mobile-socials,.footer-socials { gap:8px; }
.header-socials a,.mobile-socials a,.footer-socials a { display:grid; width:30px; height:30px; place-items:center; border:0; border-radius:0; transition:transform .2s ease,opacity .2s ease; }
.header-socials a:hover,.mobile-socials a:hover { color:var(--champagne); border-color:var(--champagne); transform:translateY(-2px); }
.header-socials img,.mobile-socials img,.footer-socials img { display:block; width:22px; height:22px; object-fit:contain; }
.desktop-nav { gap:clamp(13px,1.45vw,25px); }
.desktop-nav a,.portfolio-menu>button,.blog-menu>button { font-size:11px; }
.header-right { gap:18px; }
.mobile-socials { display:none; padding:4px 0 20px; border-bottom:1px solid var(--line); }
.section-heading.no-kicker { grid-template-columns:minmax(0,1.5fr) minmax(220px,.65fr); }
.section-heading.no-kicker h2 { max-width:840px; }
.work-card,.service-row h3 a,.notes-heading a,.film-content h2 a,.services-intro h2 a { display:block; }
.service-row h3 a,.notes-heading a,.film-content h2 a,.services-intro h2 a { transition:color .2s ease; }
.service-row h3 a:hover,.notes-heading a:hover,.film-content h2 a:hover,.services-intro h2 a:hover { color:var(--champagne); }
.notes-heading h2 { font-size:clamp(34px,4vw,61px); white-space:nowrap; }

.page-hero { min-height:72svh; display:flex; flex-direction:column; justify-content:flex-end; padding:190px clamp(24px,8vw,128px) clamp(75px,9vw,130px); background:#11110f; border-bottom:1px solid var(--line); }
.page-hero h1 { max-width:1050px; margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(56px,7.5vw,112px); font-weight:400; letter-spacing:-.055em; line-height:.94; }
.page-hero>p:last-child { max-width:670px; margin:34px 0 0; color:var(--muted); font-size:17px; line-height:1.75; }
.page-hero .primary-action { align-self:flex-start; margin-top:36px; border:0; cursor:pointer; }
.page-hero .kicker a { display:inline-block; }
.page-about { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(48px,9vw,150px); padding:clamp(85px,11vw,165px) clamp(24px,8vw,128px); background:var(--paper); color:var(--ink); }
.page-about-lead { font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(35px,4.2vw,64px); line-height:1.03; }
.page-about-lead p,.page-copy p { margin-top:0; }
.page-copy { max-width:760px; color:#5d5951; font-size:16px; line-height:1.85; }
.page-copy p { margin-bottom:25px; }
.page-quote { padding:clamp(90px,12vw,180px) clamp(24px,10vw,160px); background:#151512; }
.page-quote blockquote { max-width:1080px; margin:0 auto; color:var(--champagne); font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(40px,6vw,88px); line-height:1.04; text-align:center; }
.category-index { display:grid; grid-template-columns:1fr 1fr; gap:clamp(55px,9vw,150px); padding:clamp(80px,10vw,150px) clamp(24px,8vw,128px); background:var(--paper); color:var(--ink); }
.category-group h2 { margin:0 0 28px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(40px,4vw,62px); font-weight:400; }
.category-group h2.second-heading { margin-top:72px; }
.category-group>a { display:flex; justify-content:space-between; gap:18px; padding:18px 0; border-bottom:1px solid rgba(10,10,9,.2); font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.category-group>a>b { color:#765f38; font-size:16px; font-weight:400; transition:transform .2s ease; }
.category-group>a:hover b { transform:translate(4px,-4px); }
.project-hero { min-height:64svh; }
.page-gallery { display:grid; grid-template-columns:repeat(3,minmax(280px,1fr)); gap:18px; padding:clamp(55px,6vw,95px) clamp(24px,6vw,96px); overflow-x:auto; background:var(--paper); color:var(--ink); scrollbar-color:var(--champagne) transparent; }
.page-gallery figure { position:relative; min-height:580px; margin:0; overflow:hidden; background:#292823; }
.page-gallery img { width:100%; height:100%; object-fit:cover; filter:saturate(.78); transition:transform .55s ease,filter .3s ease; }
.page-gallery figure:hover img { transform:scale(1.025); filter:saturate(1); }
.page-gallery figure>span { position:absolute; right:18px; top:18px; display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; color:#fff; font-size:11px; }
.service-index { padding:clamp(70px,9vw,130px) clamp(24px,8vw,128px); background:var(--paper); color:var(--ink); }
.service-index>a { display:grid; grid-template-columns:60px minmax(250px,.8fr) 1.2fr 30px; gap:28px; align-items:start; padding:36px 0; border-bottom:1px solid rgba(10,10,9,.22); }
.service-index>a:first-child { border-top:1px solid rgba(10,10,9,.22); }
.service-index>a>span { color:#846b3f; font-size:11px; letter-spacing:.15em; }
.service-index h2 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(28px,3vw,44px); font-weight:400; line-height:1; }
.service-index p { margin:0; color:#68635a; font-size:14px; line-height:1.7; }
.service-index b { color:#846b3f; font-size:20px; font-weight:400; transition:transform .2s ease; }
.service-index>a:hover b { transform:translate(4px,-4px); }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); padding:clamp(70px,8vw,120px) clamp(24px,6vw,96px); background:var(--paper); color:var(--ink); }
.blog-grid article { min-height:360px; padding:30px clamp(22px,3vw,44px); border-top:1px solid rgba(10,10,9,.22); border-right:1px solid rgba(10,10,9,.22); border-bottom:1px solid rgba(10,10,9,.22); }
.blog-grid article:first-child { border-left:1px solid rgba(10,10,9,.22); }
.blog-grid article>span { color:#765f38; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.blog-grid h2 { margin:75px 0 24px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(28px,3vw,42px); font-weight:400; line-height:1.08; }
.blog-grid p { color:#68635a; font-size:14px; line-height:1.7; }
.coming-note { margin:0; padding:0 clamp(24px,6vw,96px) clamp(70px,8vw,120px); background:var(--paper); color:#68635a; }
.faq-page { padding:clamp(70px,9vw,130px) clamp(24px,12vw,190px); background:var(--paper); color:var(--ink); }
.faq-page details { border-top:1px solid rgba(10,10,9,.25); }
.faq-page details:last-of-type { border-bottom:1px solid rgba(10,10,9,.25); }
.faq-page summary { display:flex; justify-content:space-between; gap:24px; padding:27px 0; cursor:pointer; list-style:none; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(24px,2.4vw,36px); }
.faq-page summary::-webkit-details-marker { display:none; }
.faq-page summary>b { color:#765f38; font-weight:400; transition:transform .2s ease; }
.faq-page details[open] summary>b { transform:rotate(45deg); }
.faq-page details p { max-width:760px; margin:0 0 30px; color:#68635a; font-size:15px; line-height:1.8; }
.faq-more { max-width:720px; margin:50px 0 0; color:#68635a; line-height:1.7; }
.contact-page { display:grid; grid-template-columns:.68fr 1.32fr; gap:clamp(50px,8vw,130px); padding:clamp(70px,9vw,130px) clamp(24px,8vw,128px); background:var(--paper); color:var(--ink); }
.contact-page aside { display:flex; flex-direction:column; align-items:flex-start; }
.contact-page aside h2 { margin:0 0 34px; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(34px,4vw,54px); font-weight:400; }
.contact-page aside>a { margin-bottom:16px; padding-bottom:7px; border-bottom:1px solid #765f38; }
.contact-page aside>a.whatsapp-direct { color:#009345; border-bottom-color:#009345; font-weight:700; }
.contact-page aside p { max-width:430px; margin-top:36px; color:#68635a; font-size:14px; line-height:1.75; }
.booking-form { display:grid; grid-template-columns:1fr 1fr; gap:26px 22px; }
.booking-form label { display:flex; flex-direction:column; gap:9px; color:#514c44; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.booking-form input,.booking-form select,.booking-form textarea { width:100%; padding:15px 0; border:0; border-bottom:1px solid rgba(10,10,9,.35); border-radius:0; outline:none; background:transparent; color:var(--ink); font:16px Arial,Helvetica,sans-serif; text-transform:none; }
.booking-form textarea { padding:15px; border:1px solid rgba(10,10,9,.35); resize:vertical; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color:#846b3f; }
.booking-form .wide,.booking-form button,.form-message { grid-column:1/-1; }
.booking-form button { width:max-content; border:0; cursor:pointer; }
.hp-field { position:absolute!important; left:-9999px!important; }
.form-message { margin-bottom:24px; padding:18px 20px; border:1px solid; line-height:1.5; }
.form-message.success { border-color:#5e8258; background:#e2eedf; }
.form-message.error { border-color:#9a5f57; background:#f1e1df; }
.all-faq-link { display:inline-flex; margin-top:24px; padding-bottom:7px; border-bottom:1px solid rgba(21,19,15,.6); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.footer-socials { justify-content:center; margin:78px auto -72px; }
.footer-socials a:hover { transform:translateY(-2px); }
.footer-line .footer-center { display:flex; align-items:center; gap:7px; }
.contact-choice[hidden] { display:none!important; }
.contact-choice { position:fixed; inset:0; z-index:100000; display:grid; place-items:center; padding:24px; }
.contact-choice-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(0,0,0,.78); backdrop-filter:blur(10px); cursor:pointer; }
.contact-choice-panel { position:relative; width:min(620px,100%); padding:clamp(34px,5vw,68px); background:var(--paper); color:var(--ink); box-shadow:0 30px 100px rgba(0,0,0,.5); }
.contact-choice-panel h2 { margin:0; font-family:Didot,'Bodoni 72',Georgia,serif; font-size:clamp(38px,5vw,66px); font-weight:400; line-height:1; }
.contact-choice-close { position:absolute; right:18px; top:14px; border:0; background:none; color:var(--ink); font-size:34px; cursor:pointer; }
.contact-choice-actions { display:grid; gap:22px; margin-top:42px; }
.panel-form-link { width:max-content; padding-bottom:8px; border-bottom:1px solid #765f38; }
.modal-open { overflow:hidden; }
html.lang-ja body { font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
html.lang-ja h1,html.lang-ja h2,html.lang-ja h3,html.lang-ja blockquote,html.lang-ja .brand,html.lang-ja .mobile-nav>a,html.lang-ja .mobile-nav>button { font-family:'Hiragino Mincho ProN','Yu Mincho',serif; letter-spacing:-.025em; }

@media (max-width:1180px) {
  .desktop-nav,.header-socials,.hero-rail { display:none; }
  .menu-button { display:grid; }
  .site-header { height:96px; }
  .mobile-socials { display:flex; flex-wrap:wrap; }
}
@media (max-width:900px) {
  .section-heading.no-kicker { grid-template-columns:1fr; }
  .page-about,.contact-page { grid-template-columns:1fr; }
  .category-index { grid-template-columns:1fr; }
  .service-index>a { grid-template-columns:40px 1fr 22px; }
  .service-index p { grid-column:2/3; }
  .service-index b { grid-column:3; grid-row:1; }
  .blog-grid { grid-template-columns:1fr; }
  .blog-grid article,.blog-grid article:first-child { border-left:1px solid rgba(10,10,9,.22); border-bottom:0; }
  .blog-grid article:last-child { border-bottom:1px solid rgba(10,10,9,.22); }
  .notes-heading h2 { font-size:clamp(30px,7vw,58px); }
}
@media (max-width:560px) {
  .site-header { height:136px; padding:13px 18px 12px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:54px 44px; align-content:center; column-gap:12px; }
  .brand-zone { gap:0; }
  .brand { gap:0; }
  .brand-mark { width:39px; height:39px; margin-right:-4px; }
  .brand-mark img { width:39px; height:39px; }
  .brand-name { font-size:12px; }
  .header-right { display:contents; }
  .menu-button { grid-column:2; grid-row:1; justify-self:end; }
  .language-switcher { grid-column:1/-1; grid-row:2; justify-self:start; }
  .mobile-nav { inset:136px 0 0; }
  .admin-bar .mobile-nav { top:182px; }
  .page-hero { min-height:58svh; padding:150px 22px 72px; }
  .page-hero h1 { font-size:clamp(48px,14vw,68px); }
  .page-about,.category-index,.service-index,.faq-page,.contact-page { padding-left:22px; padding-right:22px; }
  .page-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:28px 10px 70px; overflow:visible; }
  .page-gallery figure { min-height:66vw; }
  .page-gallery figure:nth-child(3) { grid-column:1/-1; min-height:110vw; }
  .booking-form { grid-template-columns:1fr; }
  .booking-form label,.booking-form .wide,.booking-form button { grid-column:1; }
  .footer-socials { flex-wrap:wrap; max-width:300px; margin:62px auto -52px; }
  .footer-line { row-gap:23px; }
  .footer-line .footer-center { font-size:10px; }
  .footer-line .copyright { white-space:normal; max-width:245px; font-size:7px; }
  .notes-heading h2 { font-size:clamp(25px,7.15vw,40px); letter-spacing:-.055em; }
  .contact-choice-panel .primary-action { width:100%; }
}
