/* Punavuori City Studio — v6 editorial hospitality design.
   Non-destructive stylesheet override of the stable v5 controls and markup. */
:root{--bg:#f7f4ed;--white:#fffdf9;--ink:#1b302b;--forest:#1c3831;--sage:#e9eee8;--sand:#efebe1;--gold:#bc9872;--dim:#626c64;--line:#dcded6;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
html{scroll-padding-top:95px}body{background:var(--bg);color:var(--ink);overflow-x:clip}h1,h2,h3{letter-spacing:-.055em}h2{font-size:clamp(2.7rem,4.1vw,4.5rem);line-height:1.15}h2 em{color:#967759}a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #e9b96f;outline-offset:4px}p{overflow-wrap:break-word}
.site-header{height:82px;padding:0 clamp(22px,4vw,72px);background:#fbfaf6;box-shadow:none;border-bottom:1px solid #d8ded7;position:relative;z-index:55}
.site-header .brand{gap:14px;flex-shrink:0}.brand-symbol{font-size:48px;letter-spacing:-.19em;color:var(--forest)}.brand-symbol span{color:#af8b67}.brand-word{font-size:13px;font-weight:800;letter-spacing:.16em;line-height:1.1}.brand-word small{font-size:9px;letter-spacing:.31em;margin-top:7px;color:#5e6a61}.desktop-nav{gap:clamp(13px,1.8vw,34px);font-size:12px;letter-spacing:.005em}.desktop-nav a:hover{color:#9b744e}.header-side{gap:24px}.lang-switch{gap:8px;font-size:12px}.header-book{padding:12px 19px;min-height:45px;border-radius:6px;font-size:12px}.btn-pill{border-radius:6px;min-height:54px;padding:15px 22px;font-size:13px;letter-spacing:.015em;box-shadow:none}.btn-pill:hover{transform:translateY(-2px);box-shadow:0 12px 30px #0e241c30}.btn-black{background:var(--forest);color:#fff}.btn-black:hover{background:#30574b}.btn-light{background:#fffdf6;color:#1c3831}.btn-light:hover{background:#efe8d9}.btn-pill .arrow{font-size:19px}.text-link{font-size:13px;letter-spacing:.01em}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.24em;color:#a17d5a}
/* Hero: visual hierarchy starts with one strong promise and one genuine photograph. */
.hero{min-height:665px;max-height:none;grid-template-columns:minmax(0,46%) minmax(0,54%);background:var(--forest);color:#fff}
.hero-content{min-height:690px;max-width:none;padding:72px clamp(36px,5vw,94px) 42px clamp(32px,6vw,108px);align-items:flex-start;justify-content:center;background:linear-gradient(140deg,#1a362f 0%,#23443a 100%)}
.hero-content>.eyebrow{order:1;color:#debc91;margin-bottom:18px;font-size:11px}.hero h1{order:2;max-width:620px;margin:0 0 25px;font-size:clamp(3.75rem,5.1vw,6rem);line-height:1.095;letter-spacing:-.065em;font-weight:400}.hero h1 em{display:block;color:#e1bf91;font-size:.92em;line-height:1.14;font-weight:400}
.hero-intro{order:3;color:#e5ebe4;opacity:.95;font-size:clamp(15px,1.16vw,18px);line-height:1.85;max-width:530px}
.hero-actions{order:4;margin:30px 0 38px;gap:27px}.hero-actions .btn-black{background:#f7f3e9;color:#172f27;min-height:58px;padding:18px 22px}.hero-actions .btn-black:hover{background:#fff}.hero-actions .text-link{color:#f0efe7;min-height:48px;border-bottom:1px solid #f2ead260}
.hero-trust{order:6;margin:17px 0 0;gap:25px;align-items:center;border-top:1px solid #ffffff38;padding-top:22px;flex-wrap:wrap}
.trust-tile{background:transparent;padding:0;min-width:110px;gap:2px;border:0;border-radius:0}.trust-top{color:#cbdcd1;font-size:9px;letter-spacing:.14em}.trust-tile strong{font-size:25px;line-height:1.2;color:#fff}.trust-tile strong span{color:#b7c9bb;font-size:11px}.trust-tile small{color:#c1cdc5;font-size:11px}
.trust-footnote{color:#aabeb0;font-size:10px;letter-spacing:.015em;max-width:100px;line-height:1.5;margin-left:auto}
.hero-facts{order:5;gap:0;margin:0;padding:0 0 2px;color:#debe94;font-size:12px;font-weight:700;letter-spacing:.02em}.hero-facts span{padding-right:20px}.hero-facts span+span:before{left:-12px;color:#a8b6a8}
.hero-media{min-height:690px;background:#cabda7}.hero-photo{filter:saturate(.98) contrast(1.025);object-position:center}.hero-slide:after{height:33%;background:linear-gradient(transparent,#101d184f)}.hero-slide figcaption{font-size:12px;bottom:29px;left:32px;right:155px;letter-spacing:.05em}.carousel-controls{right:26px;bottom:20px;gap:8px}.carousel-controls button{width:51px;height:51px;border-radius:50%;background:#1d332db0;border:1px solid #fff8;font-size:22px}
/* Content widths: readable length and intentional vertical rhythm. */
.section-shell{width:min(1260px,calc(100% - clamp(44px,8vw,144px)))}
.about{padding:110px 0 120px;grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr);gap:clamp(56px,8vw,150px)}
.about .section-lead h2{max-width:610px;margin-top:21px;font-size:clamp(3.25rem,4.2vw,5rem)}.about-content>p{font-size:17px;line-height:1.95;color:#49584f;max-width:530px}
.about-details{margin-top:36px;border-top-color:#cbd4c9}.about-details div{padding:19px 0;font-size:13px;border-bottom-color:#d7ddd3}.about-details span{color:#56645a}.about-details strong{color:#1b362d;font-size:14px;font-weight:700}
.section-heading{margin-bottom:36px;gap:45px}.section-heading h2{max-width:810px;margin-top:18px}.section-heading>p{font-size:16px;line-height:1.8;color:#5c665c;max-width:315px}
/* Gallery is the centerpiece, not a gimmick. 7 unique real photos and optional orbit. */
.gallery{padding:90px 0 120px;width:100%;max-width:none;background:#ece9e1}
.gallery>.section-heading,.gallery>.gallery-view-tools,.gallery>.photo-grid,.gallery>.orbit-gallery{width:min(1260px,calc(100% - clamp(44px,8vw,144px)));margin-left:auto;margin-right:auto}
.gallery .eyebrow{color:#a27955}.gallery-view-tools{margin-bottom:21px;flex-wrap:wrap}.gallery-tools-title{font-size:11px;font-weight:800;letter-spacing:.18em;color:#667268}.gallery-view-buttons{padding:4px;border:1px solid #d7d7cd;background:#f6f5f1}.gallery-view-button{padding:10px 17px;border-radius:3px}.gallery-view-button.is-selected{background:#243f36;border-radius:3px}
.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(195px,235px));gap:12px}
.photo-tile{border-radius:4px;background:#d7d4c9;box-shadow:none;min-height:0}.photo-tile-1{grid-column:span 2;grid-row:span 2}.photo-tile-4{grid-row:auto}.photo-tile img{height:100%;width:100%;object-fit:cover;filter:saturate(.95)}
.photo-tile:after{content:'';position:absolute;inset:35% 0 0;pointer-events:none;background:linear-gradient(transparent,#0b1a16a8);opacity:.75;transition:opacity .25s}.photo-tile:hover:after{opacity:1}
.tile-caption{position:absolute;z-index:2;bottom:19px;left:19px;right:58px;color:#fff;font-size:13px;line-height:1.3;text-align:left;font-weight:600;text-shadow:0 1px 5px #0005}.photo-tile-1 .tile-caption{font-size:16px;bottom:22px;left:24px}.photo-open{z-index:3;opacity:1;transform:none;right:13px;bottom:12px;border-radius:50%;height:37px;width:37px;background:#fbf8ee;color:#234034}.photo-tile:hover img{transform:scale(1.045)}
.orbit-gallery{background:#f8f6f0;border:1px solid #dbd8ce;border-radius:6px;margin-bottom:0}.orbit-chip{color:#29483c}.orbit-stage{background:radial-gradient(ellipse at 52% 45%,#faf9f6 0%,#ecece7 65%,#e6e3d7 100%)}
/* Amenities: strong forest panel and four prominently legible benefits. */
.amenities{width:100%;max-width:none;padding:108px max(calc((100% - 1260px)/2),clamp(22px,4vw,72px)) 122px;background:#1c3831;color:#faf7eb}
.amenities .eyebrow{color:#d4b88e}.amenities .section-heading h2{color:#fbf8ed}.amenities .section-heading h2 em{color:#dfbf91}.amenities .section-heading>p{color:#c9d5cb}
.amenity-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.amenity{min-height:169px;border:1px solid #6e86773b;border-radius:5px;background:#304c41;color:#faf8f1;padding:23px;justify-content:flex-start;gap:19px}.amenity-featured{background:#e9eee5;box-shadow:none;border:1px solid #e9eee5;color:#1d3d32}.amenity-ic{height:44px;width:44px;background:#ffffff1a;border:1px solid #ffffff2a;border-radius:4px}.amenity-ic svg{stroke:#e3ede4}.amenity-featured .amenity-ic{background:#f7faf4;border-color:#d6dfd5}.amenity-featured .amenity-ic svg{stroke:#254c3d}.amenity-copy strong{font-size:15px;line-height:1.3;color:inherit}.amenity-featured .amenity-copy strong{color:#1e3b31}.amenity-copy small{font-size:12px;line-height:1.5;color:#cbd9d0}.amenity-featured .amenity-copy small{color:#516858}
/* Location map: make the CTA unmistakable while minimizing external loads. */
.location-panel{background:#f7f4ed;padding:100px clamp(22px,5vw,78px)}.location-inner{min-height:545px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,7vw,120px);max-width:1290px}
.location-copy{padding:35px 0;align-items:flex-start}.location-copy h2{margin:21px 0 23px}.location-copy p:not(.eyebrow){font-size:16px;line-height:1.9;color:#54665a}.location-visual{padding:0}.map-panel{min-height:515px;border-radius:5px;background:#2f5444}.map-placeholder{min-height:515px;border-radius:5px;overflow:hidden;padding:33px;background:linear-gradient(140deg,#4a6c59,#28483a 64%,#19392f)}
.map-placeholder:before{opacity:.22;background:repeating-linear-gradient(32deg,transparent 0 48px,#ecf0dd 49px 51px,transparent 52px 140px),repeating-linear-gradient(117deg,transparent 0 100px,#ecf0dd 102px 104px,transparent 105px 230px)}
.map-preview-center{gap:10px}.map-location-label{color:#dfc89f;font-size:10px}.map-preview-center strong{font-size:clamp(31px,3.1vw,51px);color:#fff}.map-placeholder .place-overline,.map-placeholder .place-small{color:#e9f1e7}.map-placeholder-bottom>p:not(.map-privacy){font-size:13px}.map-privacy{color:#d8e4db;font-size:11px}.map-load-primary{border-radius:5px;min-height:54px;padding:14px 22px;margin-top:18px;font-size:13px}
/* Book now: premium utilitarian cards, not enormous empty placeholders. */
.booking-section{padding:107px 0 120px}.booking-section .section-heading.centered{margin-bottom:13px}.booking-section .section-heading h2{max-width:920px}.booking-section .section-heading.centered>p{max-width:650px;font-size:16px}
.booking-grid{max-width:1020px;gap:16px;margin-top:43px}.booking-card{padding:37px;border-radius:5px;min-height:330px;background:#fffdf9;border:1px solid #d9dfd7;box-shadow:0 12px 33px #233a2e0b;display:flex;flex-direction:column;align-items:flex-start}.booking-card .platform-icon{border-radius:4px;background:#e6ebe5;color:#234c39}.booking-card .booking-b{background:#e5edf9;color:#1d5d97}.booking-card-note{font-size:10px;letter-spacing:.16em;color:#856d50}.booking-card h3{color:#1d3930;font-family:var(--serif);font-weight:500;font-size:34px;line-height:1.12;margin:18px 0 12px}.booking-card p{font-size:15px;line-height:1.75;color:#556258;margin-bottom:24px}.booking-card .btn-pill{margin-top:auto;min-height:46px}
/* FAQ: readable and scannable, not microtype. */
.faq-section{padding:101px 0 112px;display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(40px,9vw,150px)}.faq-section .faq-heading h2{font-size:clamp(2.9rem,4.2vw,4.5rem)}.faq-list{max-width:720px}.faq-row{border-bottom:1px solid #cbd2c9}.faq-row summary{padding:23px 0;font-size:16px;font-weight:700;color:#213c31;line-height:1.45}.faq-row p{font-size:15px;line-height:1.8;color:#536157;padding:0 30px 24px 0}
.last-cta{padding:106px 20px 115px;background:#234238;color:#fff}.last-inner h2{font-size:clamp(3.4rem,5vw,5.6rem)}.last-inner h2 em{color:#d9b48b}.last-inner>p:not(.eyebrow){font-size:16px;color:#d1dbd1}.last-cta .btn-pill{margin-top:27px}
.site-footer{background:#162f28;color:#e8f0e8;padding:47px clamp(24px,6vw,90px) 30px;border-top:1px solid #ffffff28}.site-footer .footer-brand{letter-spacing:.13em}.site-footer nav a:hover{color:#f4cda0}.site-footer small{color:#adc2b4}
/* Booking landing shares the editorial quality but preserves the safe outbound booking flow. */
.booking-landing,.booking-page-redesign{background:#f4f0e8;padding:76px clamp(24px,7vw,110px) 95px!important;min-height:calc(100vh - 82px)}
.booking-landing-head{max-width:780px}.booking-landing-head .eyebrow{color:#a27e55}.booking-landing-head h1{font-size:clamp(3.5rem,6.3vw,6.6rem);line-height:1.1;color:#1c3930;margin:18px 0 27px;max-width:880px}.booking-landing-head>p:not(.eyebrow){font-size:17px;line-height:1.9;color:#58675b;max-width:680px}.booking-landing .booking-grid{max-width:1130px;margin:45px 0 0;gap:17px}.booking-landing .booking-card{border-radius:5px;padding:38px;min-height:350px}.booking-landing .booking-card h2{font-family:var(--serif);font-size:42px;font-weight:500;margin:20px 0 16px}.booking-landing .booking-card p{font-size:16px;line-height:1.8;max-width:360px}.booking-landing .booking-card .btn-pill{margin-top:auto}.booking-landing-foot{margin-top:29px}
/* Mobile: prioritized first impression, persistent action, no horizontal overflow. */
@media(max-width:1120px){.desktop-nav{gap:15px}.header-side{gap:14px}.site-header{padding:0 28px}.hero-content{padding:57px 35px 45px}.hero h1{font-size:clamp(3.4rem,5.4vw,5.1rem)}.hero-media,.hero-content{min-height:640px}.hero-trust{gap:18px}.trust-footnote{display:none}.section-shell{width:calc(100% - 88px)}.gallery>.section-heading,.gallery>.gallery-view-tools,.gallery>.photo-grid,.gallery>.orbit-gallery{width:calc(100% - 88px)}.amenities{padding-left:44px;padding-right:44px}.amenity-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.location-inner{gap:45px}}
@media(max-width:900px){.desktop-nav{display:none}.site-header{height:74px}.site-header .header-book{display:flex}.hero{grid-template-columns:1fr 1fr;min-height:0}.hero-content{padding:56px 32px 39px}.hero h1{font-size:clamp(3.1rem,6vw,4.4rem)}.hero-media,.hero-content{min-height:610px}.hero-actions{margin:23px 0}.hero-trust{gap:15px}.trust-tile strong{font-size:23px}.about{gap:40px}.photo-grid{grid-template-rows:repeat(2,180px)}.location-inner{grid-template-columns:1fr 1fr;gap:28px}.location-panel{padding:75px 35px}.location-copy h2{font-size:clamp(2.6rem,5vw,3.7rem)}.map-panel,.map-placeholder{min-height:460px}.faq-section{gap:40px}}
@media(max-width:700px){html{scroll-padding-top:76px}.site-header{height:70px;padding:0 19px}.site-header .brand-symbol{font-size:41px}.site-header .brand-word{font-size:11px}.site-header .brand-word small{font-size:8px}.site-header .header-side{gap:13px}.site-header .header-book{display:none}.lang-switch{font-size:12px}.mobile-bar{background:#f7f5ef;border-top:1px solid #dee2d9;box-shadow:0 -5px 24px #1a2f2b13;z-index:70}.mobile-bar .btn-black{border-radius:4px;background:#24443a;color:#fff;font-size:12px}
 .hero{display:flex;flex-direction:column}.hero-content{order:2;min-height:0;padding:41px 24px 37px}.hero-media{order:1;min-height:0;height:clamp(310px,83vw,490px)}.hero h1{font-size:clamp(3.55rem,11.9vw,5.2rem);line-height:1.08;margin:0 0 20px}.hero h1 em{font-size:.95em}.hero-content>.eyebrow{margin-bottom:13px}.hero-intro{font-size:15px;line-height:1.75}.hero-actions{width:100%;gap:16px;margin:24px 0 24px}.hero-actions .btn-pill{min-height:54px;padding:15px 18px}.hero-actions .text-link{min-height:38px}.hero-facts{font-size:11px}.hero-trust{margin:13px 0 0;padding-top:16px}.trust-tile{min-width:107px}.trust-tile strong{font-size:23px}.hero-slide figcaption{bottom:23px;left:21px;right:135px;font-size:12px}.carousel-controls{right:17px;bottom:15px}.carousel-controls button{width:43px;height:43px}
 .section-shell{width:calc(100% - 40px)}.about{padding:68px 0 72px;display:block}.about .section-lead h2{font-size:clamp(3rem,9.5vw,4.2rem);margin-bottom:24px}.about-content>p{font-size:15.5px;line-height:1.85}.about-details{margin-top:25px}.about-details div{padding:15px 0}.about-details strong{font-size:12px}
 .section-heading{display:block;margin-bottom:26px}.section-heading h2{font-size:clamp(2.8rem,9.1vw,4rem)}.section-heading>p{max-width:500px;margin-top:20px;font-size:15px}
 .gallery{padding:69px 0 78px}.gallery>.section-heading,.gallery>.gallery-view-tools,.gallery>.photo-grid,.gallery>.orbit-gallery{width:calc(100% - 40px)}.gallery-view-tools{gap:13px}.gallery-view-button{font-size:11px;padding:9px 12px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:200px;gap:8px}.photo-tile-1{grid-column:span 2;grid-row:span 1;height:270px}.photo-tile-2,.photo-tile-3,.photo-tile-4,.photo-tile-5,.photo-tile-6,.photo-tile-7{grid-column:span 1;grid-row:span 1}.photo-tile{border-radius:3px}.photo-tile .tile-caption{font-size:11px;bottom:12px;left:11px;right:36px}.photo-tile-1 .tile-caption{font-size:13px;left:16px;bottom:17px}.photo-open{right:8px;bottom:8px;width:30px;height:30px;font-size:15px}.orbit-stage{height:345px}
 .amenities{padding:71px 20px 83px}.amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.amenity{min-height:146px;padding:16px;gap:12px}.amenity-ic{width:39px;height:39px}.amenity-ic svg{width:21px;height:21px}.amenity-copy strong{font-size:13px}.amenity-copy small{font-size:11px}.amenities .section-heading h2{font-size:clamp(2.8rem,9vw,4rem)}
 .location-panel{padding:70px 20px}.location-inner{display:flex;flex-direction:column;gap:28px;min-height:0}.location-copy{padding:0}.location-copy h2{font-size:clamp(3rem,9vw,4.2rem)}.location-copy>p:not(.eyebrow){font-size:15px;line-height:1.8}.location-visual{min-height:0}.map-panel,.map-placeholder{min-height:435px}.map-placeholder{padding:23px}.map-preview-center strong{font-size:clamp(28px,7vw,36px)}
 .booking-section{padding:78px 0 85px}.section-heading.centered{align-items:flex-start;text-align:left}.section-heading.centered h2{font-size:clamp(2.9rem,8.7vw,4.1rem)}.section-heading.centered>p{margin-top:18px}.booking-grid{margin-top:30px;display:grid;grid-template-columns:1fr;gap:12px}.booking-card{min-height:0;padding:24px;border-radius:4px}.booking-card h3{font-size:30px;margin:14px 0 9px}.booking-card p{font-size:14px;margin:0 0 20px}.booking-card .btn-pill{min-height:45px}
 .faq-section{padding:73px 0 85px;display:block}.faq-heading{margin-bottom:30px}.faq-row summary{font-size:15px;padding:20px 0}.faq-row p{font-size:14px}
 .last-cta{padding:87px 20px 95px}.last-inner h2{font-size:clamp(3.2rem,10vw,4.8rem)}.site-footer{padding:39px 22px 95px}
 .booking-landing,.booking-page-redesign{padding:49px 21px 92px!important;min-height:calc(100vh - 70px)}.booking-landing-head h1{font-size:clamp(3.4rem,10.8vw,5rem)}.booking-landing-head>p:not(.eyebrow){font-size:15px}.booking-landing .booking-grid{gap:10px;margin-top:32px}.booking-landing .booking-card{padding:25px;min-height:270px}.booking-landing .booking-card h2{font-size:34px}
}
@media(max-width:390px){.brand-word{letter-spacing:.12em}.hero-content{padding-left:19px;padding-right:19px}.hero h1{font-size:clamp(3.25rem,12vw,4rem)}.hero-actions{gap:14px}.hero-actions .btn-pill{font-size:12px}.hero-actions .text-link{font-size:12px}.photo-grid{grid-auto-rows:167px}.photo-tile-1{height:240px}.map-placeholder{padding:18px}.map-panel,.map-placeholder{min-height:420px}.orbit-stage{height:340px}.orbit-card{width:148px;height:205px}.gallery-view-button{padding:9px 11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}

/* P0 mobile fit: prevent long hero heading overflowing narrow 320px devices. */
@media (max-width: 350px) {
  html { overflow-x: clip; }
  .hero h1 { font-size: clamp(2.85rem, 14.4vw, 3rem); }
}
