:root { --jm-paper:#f3f1ed; --jm-ink:#1c1b19; --jm-night:#0f0f0e; --jm-muted:#817c74; --jm-warm:#c9a77c; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; }
body.jm-locked { overflow: hidden; }
.wp-site-blocks { overflow: clip; }

.lang-el { display: none !important; }
body.site-lang-el .lang-en { display: none !important; }
body.site-lang-el .lang-el { display: var(--jm-lang-display, block) !important; }
.jm-nav-group { --jm-lang-display: flex; }

header.wp-block-template-part { position: absolute; z-index: 50; top: 0; left: 0; width: 100%; color: white; }
.jm-site-header { width: min(1440px, calc(100% - 96px)); min-height: 130px; margin: 0 auto !important; padding: 0; }
.jm-wordmark a { font: 400 34px/1 'Italiana', serif; letter-spacing: -.04em; color: white; }
.jm-header-actions { gap: 28px !important; }
.jm-nav-group { gap: 40px !important; }
.jm-nav-group p { margin: 0; }
.jm-nav-group a { position: relative; color: white; font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.jm-nav-group a::after { content:''; position:absolute; left:0; bottom:-8px; width:100%; height:1px; background:white; transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.jm-nav-group a:hover::after { transform:scaleX(1); transform-origin:left; }
.jm-language-toggle, .jm-menu-toggle { position: relative; z-index: 52; color: white; background: transparent; border: 0; cursor: pointer; }
.jm-language-toggle { display:flex; align-items:center; gap:7px; padding:8px 0; font-size:9px; font-weight:600; letter-spacing:.13em; }
.jm-language-toggle span { opacity:.38; }
.jm-language-toggle span.active { opacity:1; }
.jm-language-toggle i { display:block; width:18px; height:1px; background:rgba(255,255,255,.45); }
.jm-menu-toggle { display:none; width:38px; height:38px; padding:0; align-content:center; gap:7px; }
.jm-menu-toggle span { display:block; width:100%; height:1px; background:white; transition:transform .3s ease; }

.jm-hero { align-items: stretch !important; }
.jm-hero .wp-block-cover__inner-container { position: relative; height:100%; min-height:100vh; }
.jm-hero-copy { position:absolute; left:max(48px, calc((100vw - 1440px)/2)); bottom:14vh; width:min(1100px, calc(100vw - 96px)); margin:0 !important; }
.jm-eyebrow { margin:0 0 24px; color:rgba(255,255,255,.68); font-size:10px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; }
.jm-eyebrow.dark { color:var(--jm-muted); }
.jm-hero-title { max-width:1100px; margin:0; color:white; font-size:clamp(56px,7vw,112px); line-height:.92; letter-spacing:-.05em; }
.jm-text-link { margin-top:38px; font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.jm-text-link a { color:white; }

.jm-section { padding:130px max(48px, calc((100vw - 1440px)/2)); }
.jm-about { min-height:760px; display:grid; align-content:center; }
.jm-section-title { max-width:1000px; margin:0; font-size:clamp(42px,5.2vw,78px); letter-spacing:-.04em; }
.jm-about-copy { max-width:800px; margin:55px 0 0 auto !important; gap:60px; color:#77726a; font-size:14px; line-height:1.9; }

.jm-work { color:white; background:var(--jm-night); }
.jm-work-heading { min-height:420px; display:grid; align-content:center; }
.jm-work-heading .jm-section-title { color:white; }
.jm-work-heading > .wp-block-group > p:last-child { color:#85837e; }
.jm-portfolio-grid { display:grid !important; grid-template-columns:repeat(12,1fr); grid-auto-rows:290px; gap:0 !important; }
.portfolio-card { position:relative; grid-column:span 6; grid-row:span 2; width:100%; height:100%; margin:0 !important; overflow:hidden; cursor:zoom-in; background:#222; }
.portfolio-card.wide { grid-column:span 8; }
.portfolio-card.tall { grid-column:span 4; grid-row:span 3; }
.portfolio-card.standard { grid-column:span 4; }
.portfolio-card.last { grid-column:5 / span 8; }
.portfolio-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease, filter .4s ease; }
.portfolio-card:hover img { transform:scale(1.035); filter:brightness(.72); }
.portfolio-card figcaption { position:absolute; inset:auto 0 0; z-index:2; margin:0 !important; padding:70px 32px 28px; color:white; background:linear-gradient(transparent,rgba(0,0,0,.75)); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; opacity:0; transition:opacity .35s ease; }
.portfolio-card:hover figcaption { opacity:1; }

.jm-quote { min-height:650px; display:grid; place-content:center; text-align:center; }
.jm-quote blockquote { max-width:1040px; margin:0; padding:0; border:0; }
.jm-quote blockquote p { margin:0; font:400 clamp(40px,5.2vw,78px)/1.1 'Italiana',serif; letter-spacing:-.04em; }
.jm-quote cite { display:block; margin-top:35px; color:#908a81; font-size:10px; font-style:normal; letter-spacing:.22em; text-transform:uppercase; }

.jm-contact { color:white; background:#11110f; }
.jm-contact-columns { gap:8%; align-items:center !important; }
.jm-contact-title { margin:0; color:white; font-size:clamp(48px,6vw,88px); line-height:.96; letter-spacing:-.05em; }
.jm-contact .wp-block-column > .wp-block-group > p:last-child { max-width:420px; color:#8d8a84; }
.jm-contact-form { display:grid; gap:28px; }
.jm-contact-form label { display:block; }
.jm-contact-form label > span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.jm-contact-form input:not([type='hidden']), .jm-contact-form textarea { width:100%; padding:0 0 16px; border:0; border-bottom:1px solid #3b3a37; border-radius:0; outline:0; color:white; background:transparent; resize:vertical; }
.jm-contact-form input:focus, .jm-contact-form textarea:focus { border-color:var(--jm-warm); }
.jm-contact-form input::placeholder, .jm-contact-form textarea::placeholder { color:#787670; }
.jm-contact-form button { width:max-content; padding:15px 0; border:0; border-bottom:1px solid #9c7a52; color:white; background:transparent; cursor:pointer; font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.jm-form-status { margin:0; color:#bda98f; font-size:12px; }
.jm-form-status.error { color:#e0a094; }

footer.wp-block-template-part { color:white; background:#090909; }
.jm-site-footer { min-height:280px; padding:75px max(48px, calc((100vw - 1440px)/2)) 38px; align-items:start; }
.jm-footer-title a { color:white; font:400 32px/1 'Italiana',serif; }
.jm-site-footer p { margin:0; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.jm-copyright { align-self:end; margin-top:55px !important; padding-top:24px; border-top:1px solid #262626; color:#63615e; }
.jm-back-top { text-align:right; }

.jm-page-shell { min-height:70vh; padding:180px 48px 100px; }
.jm-page-shell h1 { font-size:clamp(48px,7vw,92px); }

.jm-lightbox { position:fixed; z-index:100000; inset:0; display:grid; place-items:center; padding:70px; color:white; background:rgba(8,8,7,.97); }
.jm-lightbox[hidden] { display:none; }
.jm-lightbox img { max-width:min(1200px,86vw); max-height:78vh; object-fit:contain; }
.jm-lightbox-close { position:absolute; top:28px; right:34px; border:0; color:white; background:transparent; cursor:pointer; font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
.jm-lightbox-caption { position:absolute; left:7vw; bottom:26px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.jm-lightbox-nav { position:absolute; top:50%; width:48px; height:48px; border:1px solid #3c3c3a; border-radius:50%; color:white; background:rgba(0,0,0,.3); cursor:pointer; transform:translateY(-50%); }
.jm-lightbox-prev { left:24px; }
.jm-lightbox-next { right:24px; }

@media (max-width:900px) {
  .jm-site-header { width:calc(100% - 48px); min-height:100px; }
  .jm-wordmark a { font-size:27px; }
  .jm-header-actions { gap:14px !important; }
  .jm-menu-toggle { display:grid; }
  body.jm-menu-open .jm-menu-toggle span:first-child { transform:translateY(4px) rotate(45deg); }
  body.jm-menu-open .jm-menu-toggle span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .jm-nav-wrap { position:fixed; z-index:51; inset:0; display:grid; place-items:center; background:#11110f; opacity:0; visibility:hidden; transition:opacity .3s ease,visibility .3s ease; }
  body.admin-bar .jm-nav-wrap { top:46px; }
  body.jm-menu-open .jm-nav-wrap { opacity:1; visibility:visible; }
  .jm-nav-group { flex-direction:column; gap:28px !important; }
  .jm-nav-group a { font:400 38px/1 'Italiana',serif; letter-spacing:-.02em; text-transform:none; }
  .jm-hero-copy { left:24px; bottom:14vh; width:calc(100vw - 48px); }
  .jm-hero-title { font-size:clamp(48px,13vw,76px); }
  body.site-lang-el .jm-hero-title { font-size:clamp(36px,10.5vw,58px); line-height:.98; }
  .jm-section { padding:100px 24px; }
  .jm-about { min-height:auto; }
  .jm-about-copy { margin-top:40px !important; gap:18px; }
  .jm-work-heading { min-height:420px; }
  .jm-portfolio-grid { display:block !important; }
  .portfolio-card, .portfolio-card.wide, .portfolio-card.standard, .portfolio-card.last { height:72vw; display:block; }
  .portfolio-card.tall { height:120vw; }
  .portfolio-card figcaption { opacity:1; padding:70px 24px 24px; }
  .jm-quote { min-height:560px; }
  .jm-contact-columns { gap:65px; }
  .jm-site-footer { grid-template-columns:1fr !important; gap:28px; }
  .jm-back-top { text-align:left; }
  .jm-lightbox { padding:50px 12px 100px; }
  .jm-lightbox img { max-width:100%; max-height:70vh; }
  .jm-lightbox-nav { top:auto; bottom:25px; transform:none; }
  .jm-lightbox-caption { left:50%; bottom:38px; transform:translateX(-50%); white-space:nowrap; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition-duration:.01ms !important; }
}

