/*
Theme Name: PLUS HOSPITALITY v0.6.1
Theme URI: https://plushospitality.cz
Author: PLUS HOSPITALITY
Description: Custom corporate theme for PLUS HOSPITALITY.
Version: 0.6.1
Text Domain: plus-hospitality
*/

:root { --ink:#14222b; --ink-soft:#263943; --ivory:#f6f3ed; --stone:#ded8ce; --brass:#b89052; --muted:#68757b; --line:rgba(20,34,43,.14); --content:1160px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:Manrope, Arial, sans-serif; font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible { outline:3px solid var(--brass); outline-offset:4px; }
.ph-shell { width:min(calc(100% - 48px),var(--content)); margin:auto; }
.ph-site-header { position:sticky; top:0; z-index:10; background:rgba(246,243,237,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.ph-nav { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.ph-nav-actions { display:flex; align-items:center; gap:20px; }
.ph-brand { display:inline-flex; align-items:center; gap:13px; letter-spacing:.12em; font-size:13px; font-weight:800; white-space:nowrap; }
.ph-mark { display:grid; place-items:center; width:39px; height:39px; background:var(--ink); color:var(--ivory); font-family:Georgia,serif; font-size:17px; font-weight:700; letter-spacing:-.12em; line-height:1; }
.ph-brand span { display:block; font-size:9px; font-weight:700; color:var(--muted); letter-spacing:.15em; margin-top:1px; }
.ph-menu { display:flex; align-items:center; gap:25px; list-style:none; padding:0; margin:0; font-size:13px; font-weight:700; }
.ph-menu a { color:var(--ink-soft); }
.ph-menu a:hover, .ph-menu .current-menu-item a { color:var(--brass); }
.ph-menu-button { display:none; border:0; padding:10px; background:transparent; color:var(--ink); font:inherit; font-weight:800; }
.ph-language-switch { display:inline-flex; align-items:center; min-height:30px; padding:0 9px; border:1px solid var(--line); color:var(--ink-soft); font-size:11px; font-weight:800; letter-spacing:.1em; }
.ph-language-switch:hover { border-color:var(--brass); color:var(--brass); }
.ph-hero { min-height:650px; display:grid; align-items:end; padding:106px 0 72px; background:linear-gradient(118deg,var(--ink) 0%,var(--ink) 61%,#263a43 100%); color:var(--ivory); position:relative; overflow:hidden; }
.ph-hero:after { content:""; position:absolute; width:620px; height:620px; right:-175px; top:-200px; border:1px solid rgba(246,243,237,.22); border-radius:50%; box-shadow:0 0 0 64px rgba(246,243,237,.035),0 0 0 128px rgba(246,243,237,.025); }
.ph-hero .ph-shell { position:relative; z-index:1; }
.ph-eyebrow { display:flex; align-items:center; gap:12px; text-transform:uppercase; letter-spacing:.15em; font-size:11px; font-weight:800; color:#e3c79a; }
.ph-eyebrow:before { content:""; width:34px; height:1px; background:var(--brass); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Georgia,serif; font-weight:400; letter-spacing:-.035em; }
h1 { max-width:790px; font-size:clamp(46px,6.5vw,88px); line-height:1.01; margin:23px 0 25px; }
.ph-hero-copy { max-width:600px; color:#d5ddd8; font-size:18px; line-height:1.65; }
.ph-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:35px; }
.ph-button { display:inline-block; padding:13px 20px; font-size:13px; font-weight:800; border:1px solid var(--brass); transition:.2s ease; }
.ph-button--brass { background:var(--brass); color:var(--ink); }
.ph-button--brass:hover { background:#c9a36a; }
.ph-button--outline { color:var(--ivory); }
.ph-button--outline:hover { background:rgba(246,243,237,.11); }
.ph-section { padding:112px 0; }
.ph-section--stone { background:#eae5dc; }
.ph-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:26px; }
.ph-section-heading { grid-column:span 5; }
.ph-section-heading h2 { font-size:clamp(34px,4.2vw,54px); line-height:1.08; margin:18px 0 0; }
.ph-section-copy { grid-column:7 / span 5; align-self:end; color:#46545a; font-size:17px; }
.ph-service { grid-column:span 4; padding:28px 0 0; border-top:1px solid var(--ink); }
.ph-service-number { color:var(--brass); font-size:12px; font-weight:800; letter-spacing:.1em; }
.ph-service h3 { font-size:29px; margin:17px 0 9px; }
.ph-service p { color:#526167; }
.ph-portfolio-card { grid-column:span 6; min-height:374px; display:flex; flex-direction:column; justify-content:end; padding:34px; background:var(--ink); color:var(--ivory); position:relative; overflow:hidden; }
.ph-portfolio-card:before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,34,43,.03),rgba(20,34,43,.88)); }
.ph-portfolio-card--plus { background:#243540 url('assets/images/plus-prague-facade.jpg') center/cover no-repeat; }
.ph-portfolio-card--hartig { background:#3b352e url('assets/images/hotel-hartig-facade.jpg') center/cover no-repeat; }
.ph-portfolio-card > * { position:relative; }
.ph-portfolio-card h3 { font-size:42px; margin:14px 0 8px; }
.ph-portfolio-card p { color:#e3e4dc; max-width:430px; }
.ph-card-link { margin-top:10px; color:#e3c79a; font-size:13px; font-weight:800; }
.ph-approach { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.ph-statement { font-family:Georgia,serif; font-size:clamp(32px,4.7vw,58px); line-height:1.1; letter-spacing:-.04em; }
.ph-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.ph-list li { display:flex; gap:17px; padding:16px 0; border-bottom:1px solid var(--line); font-size:16px; font-weight:700; }
.ph-list b { color:var(--brass); font-size:12px; letter-spacing:.1em; }
.ph-contact-band { background:var(--brass); color:var(--ink); }
.ph-contact-band .ph-section { padding:76px 0; }
.ph-contact-band h2 { max-width:760px; margin:17px 0 26px; font-size:clamp(35px,4.8vw,60px); line-height:1.08; }
.ph-contact-band .ph-button { border-color:var(--ink); }
.ph-contact-band .ph-button:hover { background:var(--ink); color:var(--ivory); }
.ph-page-header { padding:116px 0 76px; background:var(--ink); color:var(--ivory); }
.ph-page-header h1 { margin:17px 0 0; }
.ph-page-content { max-width:760px; padding:86px 0 112px; font-size:18px; }
.ph-page-content h2 { margin-top:2em; font-size:38px; }
.ph-page-lead { max-width:760px; color:#d9e0dc; font-size:20px; line-height:1.65; }
.ph-content-intro { max-width:760px; font-size:20px; color:#405158; }
.ph-detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:52px; }
.ph-detail-card { padding:32px; background:#fffdf9; border-top:2px solid var(--brass); }
.ph-detail-card h2 { margin:10px 0 14px; font-size:33px; }
.ph-detail-card p { color:#506068; }
.ph-detail-card p:last-child { margin-bottom:0; }
.ph-project-card { padding:0; overflow:hidden; }
.ph-project-card img { display:block; width:100%; aspect-ratio:16/8; object-fit:cover; filter:saturate(.76) contrast(.96); }
.ph-project-card__copy { padding:32px; }
.ph-partner-card { padding:34px 0; border-top:1px solid var(--ink); }
.ph-partner-card h2 { margin:14px 0 12px; font-size:35px; }
.ph-note { max-width:760px; margin:44px 0 0; padding:24px 28px; border-left:3px solid var(--brass); background:#eae5dc; color:#46545a; }
.ph-contact-main { padding:110px 0; background:var(--ink); color:var(--ivory); }
.ph-contact-main h1 { margin:18px 0 26px; }
.ph-contact-email { display:inline-block; margin-top:20px; padding-bottom:5px; border-bottom:1px solid var(--brass); color:#e3c79a; font-size:clamp(24px,3vw,38px); font-family:Georgia,serif; }
.ph-contact-form { max-width:760px; margin-top:46px; padding:34px; background:var(--ivory); color:var(--ink); border-left:3px solid var(--brass); }
.ph-contact-form .ff-el-group { margin-bottom:20px; }
.ph-contact-form .ff-el-input--label label { color:var(--ink); font-size:13px; font-weight:800; }
.ph-contact-form input[type="text"], .ph-contact-form input[type="email"], .ph-contact-form input[type="tel"], .ph-contact-form textarea, .ph-contact-form select { width:100%; border:1px solid rgba(20,34,43,.28); border-radius:0; background:#fffdf9; color:var(--ink); font:inherit; padding:12px 13px; }
.ph-contact-form textarea { min-height:150px; resize:vertical; }
.ph-contact-form input:focus, .ph-contact-form textarea:focus, .ph-contact-form select:focus { outline:2px solid var(--brass); outline-offset:1px; }
.ph-contact-form .ff-btn-submit, .ph-contact-form button.ff-btn-submit { border:1px solid var(--brass) !important; border-radius:0 !important; background:var(--brass) !important; color:var(--ink) !important; box-shadow:none !important; font:inherit; font-size:13px; font-weight:800; padding:13px 20px; cursor:pointer; }
.ph-contact-form .ff-btn-submit:hover, .ph-contact-form button.ff-btn-submit:hover { background:#c9a36a !important; }
.ph-contact-form .text-danger, .ph-contact-form .error { color:#9f241d; }
@media (max-width:760px) { .ph-detail-grid { grid-template-columns:1fr; margin-top:32px; }.ph-contact-main { padding:76px 0; } }
.ph-site-footer { background:#0f1b22; color:#d3d7d1; padding:58px 0 30px; }
.ph-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px; }
.ph-footer-brand { color:var(--ivory); font-size:13px; font-weight:800; letter-spacing:.13em; }
.ph-footer-title { margin:0 0 11px; color:#e3c79a; font-size:10px; text-transform:uppercase; letter-spacing:.15em; font-weight:800; }
.ph-footer-copy,.ph-footer-copy a { color:#bfc7c4; font-size:14px; }
.ph-footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:52px; padding-top:20px; border-top:1px solid rgba(246,243,237,.13); font-size:12px; color:#98a4a0; }
@media (max-width:760px) { .ph-shell{width:min(calc(100% - 32px),var(--content));}.ph-nav{min-height:70px;position:relative;gap:12px}.ph-nav-actions{gap:8px}.ph-menu-button{display:block}.ph-menu{display:none}.ph-menu.is-open{display:flex; position:absolute; left:-16px; right:-16px; top:50px; padding:20px 16px; flex-direction:column; align-items:flex-start; gap:16px; background:var(--ivory); border-bottom:1px solid var(--line)}.ph-hero{min-height:600px;padding:88px 0 58px}.ph-section{padding:72px 0}.ph-section-heading,.ph-section-copy,.ph-service,.ph-portfolio-card{grid-column:1 / -1}.ph-section-copy{margin-top:0}.ph-portfolio-card{min-height:290px;padding:27px}.ph-portfolio-card h3{font-size:36px}.ph-approach,.ph-footer-grid{grid-template-columns:1fr;gap:34px}.ph-footer-bottom{flex-direction:column;margin-top:35px}.ph-page-header{padding:86px 0 56px}.ph-page-content{padding:58px 0 76px}}
