/* Second-pass refinement; deliberately leaves the original ICY Edit intact. */
:root { --gutter:clamp(22px,4.4vw,76px); --ease:cubic-bezier(.22,.7,.2,1); }
html { scroll-padding-top:108px; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body header,body main,body footer { width:calc(100% - var(--gutter)*2); max-width:1536px; }
body header { position:sticky; top:0; z-index:90; min-height:82px; border-bottom:1px solid #ffffff1c; background:#000e; backdrop-filter:blur(16px); isolation:isolate; }
body header::before { content:''; position:absolute; top:0; bottom:0; width:100vw; left:50%; transform:translateX(-50%); background:#000d; z-index:-1; pointer-events:none; }
body header::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:linear-gradient(90deg,#dce6eb,#b9eaff); transform:scaleX(var(--reading-progress,0)); transform-origin:left; pointer-events:none; }
body .brand img { width:60px; height:60px; }
body .desktop-nav a { color:#9aa5ae; font-size:12px; transition:color .25s; }
body .desktop-nav a:hover,body .desktop-nav a[aria-current=location] { color:#f5f7fa; }
body .desktop-nav a[aria-current=location]::after { transform:scaleX(1); }
body .language-switch { gap:0; }
body .language-switch button { border-radius:2px; min-width:38px; min-height:38px; }
body .language-switch button:not([aria-pressed=true]):hover { color:var(--ice); }
body .button { position:relative; font-weight:500; letter-spacing:.02em; border-radius:2px; padding:13px 21px; min-height:48px; box-shadow:inset 0 1px #fff5; transition:background .3s,color .3s,box-shadow .3s,transform .3s var(--ease); }
body .button::after { content:'↗'; margin-left:20px; font-size:16px; line-height:1; transition:transform .3s var(--ease); }
body .button:hover::after { transform:translate(2px,-2px); }
body .button:active { transform:translateY(1px); }
body .price-page .custom-note a { background:#e7ebee; color:#11161b; border-color:#e7ebee; }
body .price-page .custom-note a:hover { background:#b9eaff; color:#11161b; border-color:#b9eaff; }
body a:focus-visible,body button:focus-visible,body summary:focus-visible { outline:2px solid var(--ice); outline-offset:6px; }
body .intro { padding:42px 0 82px; min-height:min(860px,calc(100svh - 82px)); grid-template-columns:1.07fr 1fr; }
body .intro-copy { padding:24px 0 38px; }
body h1 { font-size:clamp(60px,7.15vw,112px); letter-spacing:-.062em; line-height:.98; width:132%; }
body h1 em { letter-spacing:-.06em; }
body .hero-logo { --hero-mark-width:clamp(190px,19vw,290px); margin-bottom:32px; }
body .hero-description { font-size:clamp(16px,1.45vw,21px); color:#b8c1c8; line-height:1.55; max-width:420px; margin:27px 0 0; }
body .hero-actions { margin-top:28px; }
body .booking-facts { color:#91a0ab; font-size:11px; line-height:1.7; }
body .intro-copy .booking-facts { max-width:470px; gap:4px 18px; padding-top:18px; margin-top:18px; border-top:1px solid #ffffff18; }
body .intro-image { height:clamp(520px,68svh,720px); min-height:0; background:#0d1116; }
body .photo-composition { align-self:center; }
body .detail-shot { right:-12px; bottom:-26px; width:clamp(170px,17vw,260px); border:1px solid #e0e8ed55; box-shadow:0 18px 50px #0009; }
.edition { letter-spacing:.16em; color:#92a2ad; font-size:10px; }
.portrait-note { bottom:24px; right:18px; opacity:.75; font-size:9px; }
.scroll-hint { bottom:28px; font-size:9px; color:#91a0ab; }
.scroll-hint i { width:60px; background:linear-gradient(90deg,#6a8497,transparent); }
body .brand-strip { margin-inline:calc(var(--gutter)*-1); width:calc(100% + var(--gutter)*2); padding:20px 25px; background:linear-gradient(115deg,#b4bfc8,#e8edf0 45%,#c5cfd6); font-size:11px; }
body .studio-section { padding:clamp(85px,10vw,150px) 0; gap:13%; }
body .studio-section h2 { font-size:clamp(40px,5.2vw,78px); line-height:1.12; letter-spacing:-.05em; text-wrap:balance; }
body .studio-section p:not(.eyebrow) { font-size:16px; line-height:1.95; color:#b1bac2; max-width:560px; }
body .eyebrow,body .service-number { color:#9faeb9; }
body .studio-section .studio-location { font-size:12px!important; letter-spacing:.045em; }
.gem-stage { margin-inline:calc(var(--gutter)*-1); width:calc(100% + var(--gutter)*2); padding:90px var(--gutter); min-height:650px; background:radial-gradient(ellipse at 72% 58%,#46677736,transparent 50%),#080e14; }
.gem-stage h2 { font-size:clamp(56px,7vw,106px); line-height:1.02; letter-spacing:-.055em; }
.gem-stage .gem-copy p:not(.eyebrow) { font-size:15px; line-height:1.8; color:#aab9c4; }
.gem-stage h2 em { color:#c7e8f5; }
.gem-motion { right:var(--gutter); top:28px; min-height:40px; border-color:#ffffff24; border-radius:2px; transition:border-color .25s,color .25s; }
.gem-motion:hover { border-color:#c7e8f5; color:#fff; }
.gem-caption { right:var(--gutter); font-size:9px; color:#8395a5; }
/* The gallery itself remains the original three cutout layout. */
body .services-section { padding:65px 0 85px; }
body .service-grid article { padding-top:25px; }
body .service-grid article+article { border-left:1px solid #ffffff1c; padding-left:12%; }
body .service-grid h2 { font-size:clamp(34px,3.8vw,54px); line-height:1.15; letter-spacing:-.045em; text-wrap:balance; }
body .service-grid p { font-size:15px; line-height:1.9; }
body .text-link { font-size:11px; letter-spacing:.09em; border-color:#657887; padding-bottom:9px; transition:color .2s,border-color .2s; }
body .text-link:hover { color:var(--ice); border-color:var(--ice); }
body .booking-section { margin-inline:calc(var(--gutter)*-1); width:calc(100% + var(--gutter)*2); padding:85px var(--gutter) 55px; background:linear-gradient(120deg,#e7ecef,#c4cdd3); }
body .booking-top { align-items:flex-end; gap:35px; }
body .booking-top h2 { font-size:clamp(47px,6.6vw,99px); line-height:1.06; letter-spacing:-.055em; max-width:820px; text-wrap:balance; }
body .booking-top .button { min-height:54px; padding-inline:24px; flex-shrink:0; box-shadow:none; }
body .booking-top .button:hover { background:#253340; color:#fff; }
body .booking-steps { gap:5%; margin-top:50px; }
body .booking-steps h3 { font-size:19px; }
body .booking-steps p { font-size:14px; line-height:1.8; }
body .booking-policy p { font-size:14px; line-height:1.85; color:#a7b4be; }
body .faq-section h2 { font-size:clamp(36px,4vw,56px); line-height:1.16; text-wrap:balance; }
body .faq-list details { padding:25px 0; }
body .faq-list summary { min-height:28px; font-size:16px; line-height:1.7; }
body .faq-list summary::after { font-size:20px; transition:transform .3s; }
body .faq-list p,body .aftercare-list { font-size:14px; line-height:1.9; }
body .faq-list details[open] { padding-bottom:32px; }
.footer-word { margin-inline:var(--gutter); font-size:clamp(70px,15.4vw,230px); color:#25323c; }
body footer { padding-bottom:55px; font-size:10px; }
.preview-label { font-size:8px; padding:6px 9px; opacity:.75; }
.nav-toggle { display:none; }
.mobile-menu { width:100%; max-width:none; height:100svh; max-height:none; margin:0; padding:24px; border:0; color:#edf2f5; background:#080c11; }
.mobile-menu::backdrop { background:#0009; }
.mobile-menu-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:26px; border-bottom:1px solid #ffffff22; }
.mobile-menu-top span { font:11px Consolas,monospace; letter-spacing:.17em; }
.mobile-menu-close { background:transparent; border:1px solid #ffffff40; color:#e3ebf1; padding:8px 16px; min-height:44px; cursor:pointer; }
.mobile-menu nav { display:grid; gap:0; padding:45px 0 30px; }
.mobile-menu nav a { display:block; padding:12px 0; font-size:clamp(30px,8vw,46px); line-height:1.5; letter-spacing:-.035em; border-bottom:1px solid #ffffff16; }
.mobile-menu .menu-meta { font:11px Consolas,monospace; letter-spacing:.1em; color:#9fb0bc; margin-bottom:26px; }
.price-index { display:flex; gap:8px; flex-wrap:wrap; padding:24px 0 5px; }
.price-index a { display:flex; align-items:center; gap:12px; min-height:44px; padding:9px 17px; border:1px solid #ffffff2a; border-radius:2px; font-size:12px; color:#b3c0ca; transition:background .25s,border-color .25s; }
.price-index a span:first-child { font:10px Consolas,monospace; color:#7f9db1; }
.price-index a:hover,.price-index a:focus-visible { background:#b9eaff12; color:#fff; border-color:#7f9db1; }
body .price-page .price-heading { padding:65px 0 40px; margin-bottom:0; }
body .price-page .price-heading .eyebrow { font-size:clamp(48px,7.2vw,112px); line-height:1; letter-spacing:-.055em; }
body .price-page .price-heading h2 { font-size:23px; letter-spacing:-.015em; }
body .price-page .menu-group { scroll-margin-top:112px; }
body .price-page .menu-group,body .price-page .menu-group:last-child { padding:36px; }
body .price-page .menu-group h2,body .price-page .menu-group:last-child h2 { font-size:28px; line-height:1.35; letter-spacing:-.025em; }
body .price-page .menu-group th,body .price-page .menu-group td { font-size:15px; }
body .price-page .menu-group th { line-height:1.7; }
body .price-page .design-reference { padding:16px; gap:18px; }
@media(min-width:701px) and (max-width:1080px) {
  body .brand span { display:none; }
  body .desktop-nav { gap:18px; }
  body .header-actions { gap:12px; }
  body .header-actions .button { padding:11px 16px; }
  body .intro-image { height:580px; }
  body .booking-top { align-items:flex-start; }
}
@media(max-width:900px) {
  body header .desktop-nav,body header .menu-link,body header .header-actions>.button { display:none; }
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid #ffffff35; border-radius:2px; background:transparent; color:#dce5ec; font:11px Consolas,monospace; min-height:40px; min-width:70px; padding:9px 12px; cursor:pointer; }
  .nav-toggle::after { content:'+'; font-size:15px; }
}
@media(max-width:700px) {
  :root { --gutter:20px; }
  html { scroll-padding-top:86px; }
  body header { min-height:72px; gap:10px; }
  body .brand img { width:48px; height:48px; }
  body .header-actions { gap:8px; }
  body header .menu-link,body header .header-actions>.button { display:none; }
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid #ffffff35; border-radius:2px; background:transparent; color:#dce5ec; font:11px Consolas,monospace; min-height:40px; min-width:70px; padding:9px 12px; cursor:pointer; }
  .nav-toggle::after { content:'+'; font-size:15px; }
  body .language-switch button { min-width:35px; min-height:36px; font-size:11px; }
  body .intro { padding:26px 0 70px; min-height:0; grid-template-columns:1fr; }
  body .intro-copy { padding:0; }
  .edition { gap:12px; font-size:8px; letter-spacing:.1em; margin-bottom:18px; }
  body .hero-logo { --hero-mark-width:200px; margin-bottom:26px; }
  body h1 { font-size:clamp(42px,11.6vw,78px); width:100%; letter-spacing:-.055em; line-height:1; }
  body .hero-description { font-size:16px; margin-top:22px; }
  body .hero-actions { gap:18px; margin-top:24px; }
  body .hero-actions .button { font-size:12px; padding:12px 16px; min-height:48px; }
  body .button::after { margin-left:14px; }
  body .hero-actions>span { font-size:8px; letter-spacing:.12em; max-width:104px; }
  body .intro-copy .booking-facts { font-size:10px; gap:3px 12px; margin-top:20px; padding-top:15px; }
  body .photo-composition { padding-left:35px; margin-top:34px; }
  body .intro-image { height:clamp(390px,112vw,510px); }
  body .detail-shot { width:145px; left:0; bottom:-24px; }
  body .studio-section { padding:75px 0; gap:28px; }
  body .studio-section h2 { font-size:clamp(36px,10vw,51px); line-height:1.2; }
  body .studio-section p:not(.eyebrow) { font-size:15px; line-height:1.9; }
  .gem-stage { padding:65px var(--gutter) 35px; min-height:660px; }
  .gem-stage h2 { font-size:clamp(48px,13vw,72px); line-height:1.03; }
  .gem-stage .gem-copy p:not(.eyebrow) { font-size:14px; max-width:280px; }
  .gem-canvas { bottom:-25px; height:380px; width:100%; right:-10%; }
  .gem-motion { top:16px; font-size:8px; min-height:32px; }
  .gem-caption { font-size:7px; letter-spacing:.06em; bottom:18px; }
  body .service-grid article+article { border-left:0; border-top:1px solid #ffffff20; padding-left:0; padding-top:30px; }
  body .services-section { padding:45px 0; }
  body .service-grid h2 { font-size:35px; line-height:1.2; }
  body .service-grid p { font-size:15px; }
  body .booking-section { padding:60px var(--gutter) 35px; }
  body .booking-top h2 { font-size:clamp(42px,11.5vw,64px); line-height:1.16; }
  body .booking-top { align-items:flex-start; gap:25px; }
  body .booking-top .button { min-height:48px; }
  body .booking-steps { margin-top:35px; }
  body .booking-steps h3 { font-size:18px; }
  body .booking-policy { gap:7px; padding-bottom:35px; }
  body .booking-policy p { font-size:13px; }
  body .faq-section h2 { font-size:38px; }
  body .faq-list summary { font-size:15px; min-height:35px; }
  body .faq-list p,body .aftercare-list { font-size:14px; }
  body .mobile-booking-bar { padding-inline:var(--gutter); }
  body .mobile-booking-bar .button { font-size:12px; min-height:48px; }
  .preview-label { bottom:86px; }
  body .price-page .price-heading { padding:40px 0 30px; }
  body .price-page .price-heading .eyebrow { font-size:clamp(42px,10.8vw,76px); }
  body .price-page .price-heading h2 { font-size:21px; }
  .price-index { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .price-index a { padding:10px 12px; font-size:11px; gap:10px; }
  body .price-page .menu-group,body .price-page .menu-group:last-child { padding:27px 22px; }
  body .price-page .menu-group h2,body .price-page .menu-group:last-child h2 { font-size:24px; }
  body .price-page .menu-group th,body .price-page .menu-group td { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
