/*
Theme Name: Olassan
Template: twentytwentyfive
Theme URI: https://wordpress.org/themes/olassan/
Author: Vaidotas Lipskas #Last Update 25/01/2026
Author URI: https://olassan.com/
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */

/* ============================================================
   GLOBAL / ACCESSIBILITY
   ============================================================ */
:root{
  --left-col: minmax(280px, 324px);
  --header-gap: 2.8vw;
  --rail-gap: 52px;
}

a{
  text-decoration-thickness: 1px !important;
  text-underline-offset: .1em;
}

:where(.wp-site-blocks *:focus){
  outline-width: 0px !important;
  outline-style: none !important;
}

h1,h2,h3,h4,h5,h6,blockquote,caption,figcaption,p{
  text-wrap: pretty;
}

.more-link{ display:block; }

/*:root :where(.is-layout-constrained) > *{*/
/*  margin-block-start: 8px !important;*/
/*}*/

.is-layout-flow > .aligncenter{
  text-align: justify;
}


/* ============================================================
   HEADER
   ============================================================ */
.site-branding{
  grid-area: brand;
  display:flex;
  align-items:center;
  gap:12px;
}

.branding-text{
  display:flex;
  gap:10px;
  align-items:baseline;
  line-height:1.1;
}

.branding-text .wp-block-site-title{ font-size:1.25rem; font-weight:700; }
.branding-text .wp-block-site-tagline{ font-size:.9rem; opacity:.75; }

.site-branding .wp-block-site-logo img{
  height:auto;
  display:block;
  width:86px;
  max-width:86px !important;
}

.header-nav{ grid-area: nav; justify-content:left; }
.header-lang{ grid-area: lang; justify-self:end; }

.header-nav .wp-block-navigation__container{ gap:20px; }

ul.wp-block-navigation__container.items-justified-center.header-nav.wp-block-navigation{
  font-size: 1.8rem;
  margin-top: 21px;
}

/* remove focus rings/shadows in header elements only */
.site-branding a:focus,
.site-branding a:active,
.header-nav:active,
.header-nav:focus,
div#modal-1:focus,
div#modal-1:active,
a.wp-block-navigation-item__content:focus,
a.wp-block-navigation-item__content:active,
.lang-switch a:focus,
.lang-switch a:active{
  outline:none !important;
  box-shadow:none !important;
  border:none !important;
}

div#modal-1{ padding-left: var(--rail-gap); }

.header-bar{ padding-top: 16px; padding-bottom: 0px !important; }

h2.wp-block-site-title{
  font-size:35px !important;
  margin-top:21px;
}

h2.wp-block-site-title a:hover{
  text-decoration:none !important;
}

/* Desktop header grid */
@media (min-width: 992px){
  .header-inner{
    display:grid;
    grid-template-columns: var(--left-col) 1fr auto;
    grid-template-areas: "brand nav lang";
    align-items:center;
    gap: var(--header-gap);
    width:100%;
    max-width:100%;
    margin:0;
    padding-inline:25px;
  }

  .header-nav{ justify-content:flex-start !important; }
  .header-lang{ justify-self:end; margin-top:29px !important; }
}

/* Mobile header padding */
@media (max-width: 991px){
  header.wp-block-template-part{ padding: 0 15px; }
}

/* Make hamburger visible and menu closed hidden */
@media (max-width: 992px){
  .wp-block-navigation__responsive-container-open:not(.always-shown){ display:block; }
  .wp-block-navigation__responsive-container:not(.is-menu-open){ display:none !important; }
  
  .wp-block-navigation__responsive-container.is-menu-open {
    padding: clamp(1rem, var(--wp--style--root--padding-top), 20rem) clamp(1rem, var(--wp--style--root--padding-right), 20rem) clamp(1rem, var(--wp--style--root--padding-bottom), 20rem) clamp(1rem, var(--wp--style--root--padding-left), 20rem) !important;
}
}

.wp-block-navigation__responsive-container-close svg,
.wp-block-navigation__responsive-container-open svg{
  fill: currentColor;
  display:block;
  height:38px;
  pointer-events:none;
  width:38px;
}

/* sticky header shadow on scroll (desktop) */
@media (min-width: 992px){
  header.wp-block-template-part,
  .wp-block-group.header-bar{
    position: sticky;
    top: 0;
    z-index: 9999;
    background:#fff;
    box-shadow:none;
    transition: box-shadow 0.25s ease;
  }

  .wp-block-group.header-bar{
    box-shadow:none;
    transition: box-shadow 0.25s ease;
  }

  body.is-scrolled .wp-block-group.header-bar{
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  }
}


/* ============================================================
   RTL HEADER BEHAVIOR
   ============================================================ */
/* Force header chrome LTR even when page is RTL */
html[dir="rtl"] .header-bar,
html[dir="rtl"] .header-inner,
html[dir="rtl"] .site-branding,
html[dir="rtl"] .header-nav,
html[dir="rtl"] .header-lang{
  direction:ltr;
}

/* Keep Arabic text RTL inside its label */
html[dir="rtl"] .branding-text{ direction:rtl; }
html[dir="rtl"] .lang-switch{ direction:ltr; }
html[dir="rtl"] .lang-switch a[data-lang="ar"]{ direction:rtl; }


/* ============================================================
   LANGUAGE SWITCH + SOCIAL ICONS
   ============================================================ */
.lang-switch{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:15px;
}

.lang-switch .social-icons{
  display:flex;
  align-items:center;
  gap:20px;
}

.lang-switch p a{
  margin: 0 12px !important;
  max-width: 163px !important;
}

.lang-switch p a:first-of-type{ margin-left:0 !important; }
.lang-switch p a:last-of-type{ margin-right:0 !important; }

.lang-switch .social-icons a{
  color:#000;
  font-size:16px;
  opacity:1 !important;
  text-decoration:none;
  transition: color 0.3s ease;
}

.lang-switch .social-icons a:hover{ color:#000; }

.lang-switch .social-icons a i.fa-facebook-f{
  font-weight:300 !important;
  transform: scale(0.85);
  opacity:0.9;
}

.lang-switch a{
  color:#000;
  text-decoration:none;
  font-weight:400;
  transition: opacity 0.3s ease;
  opacity:.35;
  font-size: 1.4rem !important;
}

.lang-switch a.is-active{
  font-weight:700;
  opacity:1;
}

.lang-switch a:hover{ opacity:0.7; }

.lang-switch a[data-lang="en"],
.lang-switch a[data-lang="pl"]{
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.9rem;
}

.lang-switch a[data-lang="ar"]{
  font-size:.95rem;
  line-height:1;
}

/* hide header lang switch on <=991px */
@media (max-width: 991px){
  .header-lang .lang-switch{ display:none; }
}

/* mobile menu language slot behavior */
@media (min-width: 992px){
  .lang-inside-menu.mobile{ display:none; }
}

/* Show inside mobile menu overlay */
.wp-block-navigation__responsive-container.is-menu-open + .lang-inside-menu{
  display:block;
  text-align:center;
  margin-top:20px;
}

/* prevent nav.lang-switch p showing */
nav.lang-switch p{ display:none; }


/* ============================================================
   GENERAL PAGE TWEAKS
   ============================================================ */
a.wp-block-read-more:hover{ text-decoration: underline !important; }

.wp-block-group.alignfull.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{
  margin-top:0px !important;
  padding-top: 0px !important;
}

h1.wp-block-post-title{ margin-top:20px !important; }

.page-id-10 .wp-block-group.projects-wrap.is-layout-flow.wp-block-group-is-layout-flow{
  padding: 0 25px;
}

.page-id-118 .wp-block-post-title{ display:none; }
.page-id-118 main#wp--skip-link--target{ margin-top:0 !important; }

.page-id-55 main#wp--skip-link--target{ margin-top:0 !important; }
.page-id-55 h1.wp-block-post-title{ display:none !important; }

.page-id-55 .wp-site-blocks{ overflow:hidden; }

.n2_clear + p{ display:none !important; }

footer,
.site-footer,
#colophon{ display:none !important; }


/* ============================================================
   WRAPPERS
   ============================================================ */
.olassan-wrap,
.olassan-portfolio,
.olassan-single{
  max-width:100%;
  margin-inline:auto;
}


/* ============================================================
   PROJECTS PAGE (filters + grid)
   ============================================================ */
.olassan-portfolio{
  display:grid;
  grid-template-columns: var(--left-col) 1fr;
  gap: var(--rail-gap);
  align-items:start;
}

@media (max-width:900px){
  .olassan-portfolio{ grid-template-columns:1fr; }
}

.olassan-filter{
  position:sticky;
  top:1rem;
  display:flex;
  flex-direction:column;
}

@media (min-width: 992px){
  .olassan-filter{ top: 0px; }
}

.projects-wrap{ margin-top:30px; }

.page-id-55 main#wp--skip-link--target{ margin-top:0 !important; }

/* filter buttons */
.olassan-filter button{
  all: unset;
  cursor:pointer;
  padding: 0px 0;
  color: inherit;
  font-size: 1.7rem;
  border-bottom: 1px solid transparent;
}

.olassan-filter button.is-active{
  font-weight:600;
  border-bottom-color: currentColor;
}

/* animated underline (active + hover) */
.olassan-filter button{
  position:relative;
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
}

.olassan-filter button::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  height:1px;
  width:100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin:left;
  transition: transform 240ms ease;
}

.olassan-filter button.is-active::after{ transform: scaleX(1); }
.olassan-filter button:hover::after{ transform: scaleX(1); }

/* grid */
.olassan-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:20px;
}

@media (min-width: 701px) and (max-width: 1250px){
  .olassan-grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width:700px){
  .olassan-grid{ grid-template-columns:1fr; }
}

/* grid card hover overlay */
.olassan-item{ position:relative; }

.olassan-card,
.olassan-item > a{
  position:relative;
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
}

.olassan-card img,
.olassan-item > a img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.olassan-overlay{
  position:absolute;
  inset:0;
  background: rgba(255,255,255,.6);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition: opacity .25s ease;
  pointer-events:none;
}


.olassan-text{ text-align:center; color:#000; }

.olassan-text .olassan-title{
  font-size:1.15rem;
  font-weight:100;
  margin-bottom:.35rem;
}

.olassan-title{
  font-size:1.5rem !important;
  font-weight:100 !important;
  margin-bottom:-3px;
}

.olassan-text .olassan-subtitle{
  font-size:.9rem;
  opacity:.85;
}

.olassan-card:hover .olassan-overlay,
.olassan-item > a:hover .olassan-overlay{
  opacity:1;
}


/* ============================================================
   SINGLE PROJECT TEMPLATE
   ============================================================ */
.olassan-single{
  display:grid;
  grid-template-columns: 240px 1fr;
  gap:28px;
  align-items:start;
  margin-top:2rem;
}

@media (max-width:900px){
  .olassan-single{ grid-template-columns:1fr; }
  .olassan-filter{ position:relative; top:0; margin-bottom:1rem; }
}

.single-project .wp-block-cover.alignfull{ margin-top:0; }
.single-project .wp-block-cover img{ object-fit:cover; }

.single-hero-wrap{
  display:block;
  padding: 0px 20px 40px;
  background:none !important;
  margin-top:0px !important;
}

.single-hero-wrap h1.entry-title{
  font-size: clamp(26px, 4vw, 50px);
  margin-bottom:25px;
  font-weight:600;
}

.single-hero-wrap .entry-content{
  max-width:800px;
  margin:0 auto;
  font-size:18px;
  line-height:1.6;
}

.olassan-detail .single-hero-wrap{
  width:100%;
  padding-left:0px !important;
  text-align:justify !important;
}

.olassan-detail .single-hero-inner{
  max-width:100%;
  margin:0 auto;
  padding: 40px 20px;
  padding-left:0 !important;
  margin-left:0 !important;
  padding-top:0 !important;
}

.olassan-detail .single-hero-title{
  text-align:center;
  margin:20px 0;
}


/* ============================================================
   NAV OUTLINE TWEAKS
   ============================================================ */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child){
  margin-bottom:3px;
}

.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content{
  outline-offset:4px;
}


/* ============================================================
   FONT
   ============================================================ */
@font-face{
  font-family:'Geosans';
  src: url('fonts/GeosansLight.ttf') format('truetype');
  font-weight: light;
  font-style: light;
}

html, body, p, span, a, li, ul, ol, em,
input, textarea, button, select, option, label,
blockquote, cite, code, pre, small{
  font-family:'Geosans', sans-serif !important;
  font-weight:100 !important;
}

strong,
h1, h2, h3, h4, h5, h6 {
  font-family:'Geosans', sans-serif !important;
  font-weight:Bold !important;
}


/* ============================================================
   CF7 GLOBAL STYLES (non-contact special pages)
   ============================================================ */
.wpcf7 input[type="submit"].wpcf7-submit{
  background:#fff;
  color:#111;
  border:none;
  padding: 14px 45px;
  font-size:17px;
  font-weight:700;
  text-transform: uppercase;
  border-radius:0;
  cursor:pointer;
  transition: all 0.3s ease;
}

.wpcf7 input[type="submit"].wpcf7-submit:hover{
  background:#ddd;
  color:#000;
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}

.wpcf7 input[type="submit"].wpcf7-submit:active{
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.wpcf7 form{
  max-width:650px;
  margin: 50px auto;
  padding:40px;
  background:#111;
  border-radius:14px;
  box-shadow: 0 6px 25px rgba(0,0,0,0.25);
  color:#fff;
}

.wpcf7 form label{
  font-size:15px;
  font-weight:600;
  color:#fff;
  display:block;
  margin-bottom:8px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 textarea{
  width:100%;
  padding:14px 16px;
  margin-bottom:25px;
  border: 1px solid #444;
  border-radius:10px;
  font-size:16px;
  background:#fff;
  color:#111;
  transition: all 0.3s ease;
  box-sizing:border-box;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus{
  border-color:#fff;
  outline:none;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.2);
}

.wpcf7 textarea{
  min-height:160px;
  resize: vertical;
}

.wpcf7-response-output{
  margin-top:20px;
  padding:14px;
  border-radius:10px;
  font-size:15px;
  background:#222;
  border: 1px solid #333;
  color:#fff;
}

span.wpcf7-spinner{ display:none; }


/* ============================================================
   CONTACT FORM – MATCH STUDIO OLASSAN ORIGINAL DESIGN
   Applies to: page-id-55, page-id-555, page-id-53
   ============================================================ */
.page-id-55 .wpcf7 form,
.page-id-555 .wpcf7 form,
.page-id-53 .wpcf7 form{
  background: transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  max-width:700px;
  color:#222;
  font-family:'Geosans', sans-serif !important;
}

.page-id-55 .wpcf7 form label,
.page-id-555 .wpcf7 form label,
.page-id-53 .wpcf7 form label{
  display:block !important;
  font-size:14px !important;
  font-style: italic !important;
  color:#333 !important;
  margin-bottom:0 !important;
}

.page-id-55 .wpcf7 form label .optional,
.page-id-555 .wpcf7 form label .optional,
.page-id-53 .wpcf7 form label .optional{
  font-style: normal !important;
  font-size:12px !important;
  color:#000 !important;
}

.page-id-55 .wpcf7 input[type="text"],
.page-id-55 .wpcf7 input[type="email"],
.page-id-55 .wpcf7 input[type="tel"],
.page-id-55 .wpcf7 textarea,
.page-id-555 .wpcf7 input[type="text"],
.page-id-555 .wpcf7 input[type="email"],
.page-id-555 .wpcf7 input[type="tel"],
.page-id-555 .wpcf7 textarea,
.page-id-53 .wpcf7 input[type="text"],
.page-id-53 .wpcf7 input[type="email"],
.page-id-53 .wpcf7 input[type="tel"],
.page-id-53 .wpcf7 textarea{
  width:100% !important;
  border: 1px solid #444 !important;
  border-radius:0 !important;
  padding: 8px 10px !important;
  font-size:15px !important;
  background:#efefef !important;
  color:#000 !important;
  font-family:'Geosans', sans-serif !important;
  transition: border-color .2s ease, background-color .2s ease;
}

.page-id-55 .wpcf7 input:focus,
.page-id-55 .wpcf7 textarea:focus,
.page-id-555 .wpcf7 input:focus,
.page-id-555 .wpcf7 textarea:focus,
.page-id-53 .wpcf7 input:focus,
.page-id-53 .wpcf7 textarea:focus{
  border-color:#999 !important;
  background:#fff !important;
  outline:none !important;
}

.page-id-55 .wpcf7 textarea,
.page-id-555 .wpcf7 textarea,
.page-id-53 .wpcf7 textarea{
  height:150px !important;
  resize: vertical !important;
}

.page-id-55 .wpcf7 .submit-row,
.page-id-555 .wpcf7 .submit-row,
.page-id-53 .wpcf7 .submit-row{
  text-align:right !important;
}

.page-id-55 .wpcf7 input[type="submit"],
.page-id-555 .wpcf7 input[type="submit"],
.page-id-53 .wpcf7 input[type="submit"]{
  background:#4e453f !important;
  color:#fff !important;
  border:none !important;
  padding: 2px 40px !important;
  font-size:23px !important;
  text-transform: lowercase !important;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  cursor:pointer !important;
  transition: all 0.3s ease !important;
  letter-spacing:0;
}

.page-id-55 .wpcf7 input[type="submit"]:hover,
.page-id-555 .wpcf7 input[type="submit"]:hover,
.page-id-53 .wpcf7 input[type="submit"]:hover{
  background:#6a605a !important;
}

.page-id-55 .wpcf7-response-output,
.page-id-555 .wpcf7-response-output,
.page-id-53 .wpcf7-response-output{
  margin-top:20px !important;
  padding:10px 12px !important;
  border-radius:4px !important;
  font-size:14px !important;
  background:#f8f8f8 !important;
  border: 1px solid #ccc !important;
  color:#222 !important;
}

.page-id-55 .wpcf7-not-valid-tip,
.page-id-555 .wpcf7-not-valid-tip,
.page-id-53 .wpcf7-not-valid-tip{
  color:#b00 !important;
  font-size:13px !important;
  margin-top:4px !important;
}


/* ============================================================
   CONTACT PAGE – FINAL LAYOUT (page-id-55)
   ============================================================ */
.page-id-55 .entry-content.alignfull.wp-block-post-content.has-global-padding.is-layout-constrained.wp-block-post-content-is-layout-constrained{
  margin-right:0px !important;
  padding-right:0px !important;
  margin-top:-70px !important;
}

.page-id-55 main#wp--skip-link--target{
  padding: 0 15px;
  padding-right:0px !important;
}

.page-id-55 .wp-block-group.alignfull.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{
  padding-bottom:0 !important;
  padding-right:0px !important;
}

.page-id-55 .contact-page{
  display:grid !important;
  grid-template-columns: 1fr 1.95fr 2fr;
  align-items: stretch;
  min-height: 100vh !important;
  height: 100vh !important;
  max-width:100% !important;
  margin:0 auto !important;
  padding: 0 15px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

.page-id-55 .contact-center {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: auto;
    max-width: 100%;

}
@media(min-width: 1025px) {
    .page-id-55 .contact-center {
        padding-left: 40px;
        padding-right: 20px; 
    }
       
}
.page-id-55 .middle-contact-limited {
    font-size: 15px;
}
.page-id-55 .contact-left{
  grid-column:1;
  grid-row:2;
  width:100%;
  display:block;
}

.page-id-55 .contact-left > *:last-child,
.page-id-55 .company-details{
  padding-left:30px;
  margin-bottom:80px !important;
}

.page-id-55 .contact-right{
  grid-column:3;
  grid-row: 1 / span 2;
  align-self: stretch;
  width:100%;
  min-width:0;
  overflow:hidden;
  background: url('/wp-content/uploads/2025/10/2-cover-collage-scaled.jpg') no-repeat center right / cover !important;
  background-position: 16% 2% !important;
  height:100% !important;
  min-height:100% !important;
  margin:0 !important;
  padding:0 !important;
}

.page-id-55 .contact-right img{
  display:none;
  width:100%;
  height:auto;
  object-fit: contain;
}

/* Contact intro */
.page-id-55 .contact-center .contact-intro{
  font-size:22px;
  color:#222;
  margin-bottom:15px;
  margin-top:0px;
}

/* Form spacing normalization */
.page-id-55 .wpcf7-form p{ margin:0 !important; }
.page-id-55 .wpcf7-form p br{ display:none; }
.page-id-55 .form-row,
.page-id-55 .wpcf7-form p.form-margin{ margin-bottom:15px !important; }

.page-id-55 span.optional{
  margin-left:15px;
  color:#000 !important;
}

/* Name row: two fields inline with only middle gap */
.page-id-55 .wpcf7 .input-group{
  display:flex;
  gap:0;
  justify-content: space-between;
}

.page-id-55 .wpcf7 .input-group br{ display:none; }

.page-id-55 .wpcf7 .input-group label{
  flex: 1 1 0;
  margin:0;
}

.page-id-55 .wpcf7 .input-group label:first-of-type{
  margin-right: 6% !important;
}

.page-id-55 .wpcf7 .input-group .wpcf7-form-control-wrap,
.page-id-55 .wpcf7 .input-group input.input-half{
  width:100% !important;
  display:block;
  box-sizing:border-box;
}

/* Social section layout */
.page-id-55 .contact-social-text{ width:72%; }

.page-id-55 .contact-social-icons{
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:25px;
}

.page-id-55 .contact-social-icons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none !important;
  line-height:1;
  padding:0;
  margin:0;
}

.page-id-55 .contact-social-icons i{
  font-size:27px;
  color:#4e453f;
  transition: color 0.3s ease;
}

.page-id-55 .contact-social-icons i.fa-facebook-f{
  transform: scale(0.9);
  opacity:0.9;
}
.page-id-55 .contact-social-text p>em {
    font-size: 14px;
    padding-top: 100px !important;
    display: block;
}
.page-id-55 .contact-social-icons a:hover i{ color:#6a605a; }

.page-id-55 .contact-social-icons br{ display:none; }

.page-id-55 .contact-social-text{
  margin-top:10px;
}

.page-id-55 .contact-social-text p{
  font-size:22px;
  color:#333;
  margin:0;
}

/* Submit button (shadow + hover + active) */
.page-id-55 .contact-center input[type="submit"],
.page-id-55 .wpcf7 input[type="submit"]{
  background:#4e453f;
  color:#fff;
  border:none;
  border-radius:0;
  padding: 6px 36px;
  font-size:16px;
  text-transform: lowercase;
  cursor:pointer;
  transition: all 0.3s ease;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.25);
}

.page-id-55 .contact-center input[type="submit"]:hover,
.page-id-55 .wpcf7 input[type="submit"]:hover{
  background:#6a605a;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.3);
  transform: translateY(-1px);
}

.page-id-55 .contact-center input[type="submit"]:active,
.page-id-55 .wpcf7 input[type="submit"]:active{
  transform: translateY(1px);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
}

/* Kill ALL extra bottom spacing on contact page (as per your final hard fix) */
.page-id-55 html,
.page-id-55 body,
.page-id-55 .wp-site-blocks,
.page-id-55 main#wp--skip-link--target,
.page-id-55 .entry-content,
.page-id-55 .contact-page{
  margin:0 !important;
  padding:0 !important;
  height:100% !important;
  overflow:hidden !important;
}
.page-id-55 .contact-page {
    margin-top: 95px !important;
}
.page-id-55{
  background:#fff;
}

/* Responsive – mobile/tablet ≤1024px */
@media (max-width: 1024px){
  .page-id-55 .contact-center .wpcf7 form{ max-width:100% !important; }

  .page-id-55 .contact-page{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:30px;
    padding: 40px 15px !important;
    min-height: unset !important;
    height:auto !important;
    overflow: visible !important;
  }

  .page-id-55 .contact-right{ display:none !important; }

  .page-id-55 .contact-center{
    order:1;
    grid-column:auto;
    grid-row:auto;
    margin-left: 0px !important;
  }
    .page-id-55 .contact-page {
        margin-top: 75px !important;
    }
  .page-id-55 .contact-left{
    order:2;
    text-align:left;
    justify-content:flex-start;
    margin-bottom:20px;
    padding-left:0;
  }

  .page-id-55,
  .page-id-55 body,
  .page-id-55 .wp-site-blocks,
  .page-id-55 main#wp--skip-link--target,
  .page-id-55 .entry-content,
  .page-id-55 .contact-page{
    height:auto !important;
    min-height:auto !important;
    overflow-x:hidden !important;
    overflow-y:visible !important;
    width:100% !important;
    max-width:100vw !important;
  }

  .page-id-55 .contact-social-text{ width:100%; }

  .page-id-55 .contact-left > *:last-child,
  .page-id-55 .company-details{
    padding-left:0px !important;
  }
  
  .page-id-55 .middle-contact-limited {
        display: none;
   }
   
  .page-id-55 .left-contact-limited {
        margin-top: 150px;
   }
   .page-id-55 .contact-left > *:last-child, .page-id-55 .company-details {
    margin-bottom: 0px !important;
}
    .page-id-55 .contact-left {
 
        margin-bottom: 0px;
     
    }
}
@media (min-width: 1025px){ 
    .page-id-55 .left-contact-limited {
    display: none;
}
}

.middle-contact-limited {
    margin-top: 150px;
}
/* ----------------------------------------
   CONTACT: COMPANY DETAILS (canonical)
---------------------------------------- */
.company-details{
  font-size:15px;
  line-height:1.6;
  color:#111;
  margin-bottom:20px;
}

.company-details .company-name{
  font-weight:700;
  margin-bottom:10px;
}

.company-details .company-address{
  display:block;
  margin-bottom:10px;
  line-height:16px;
}

.company-details .company-contact a{
  color:inherit;
  text-decoration:none;
  display:block;
}

.company-details .company-contact a:hover{
  text-decoration:underline;
}

.company-details .company-contract{
  margin-top:10px;
  display:block;
  color:#111;
}

/* Your existing typography tweaks, kept */
p.company-name strong{ font-size:22px; }

p.company-contact a:first-of-type{
  margin-bottom:-10px !important;
  display:block;
}

p.company-contact a:nth-of-type(2){
  display:block;
  margin-bottom:-10px !important;
}


/* ============================================================
   MOBILE MENU SOCIAL ICONS
   ============================================================ */
.lang-inside-menu .social-switcher .social-icons{
  display:flex;
  gap:20px;
  margin-top:10px;
  margin-left:10px;
}

.lang-inside-menu .social-switcher .social-icons a{
  font-size:22px;
  color:#4e453f;
  transition: color 0.3s ease;
}

.lang-inside-menu .social-switcher .social-icons a:hover{
  color:#6a605a;
}


/* ============================================================
   BLOG / ARCHIVE / SINGLE POST LAYOUT SHIFT
   ============================================================ */
@media (min-width: 992px){
  .blog main#wp--skip-link--target,
  .archive main#wp--skip-link--target,
  .single-post main#wp--skip-link--target,
  .page-id-49 main#wp--skip-link--target,
  .page-id-143 main#wp--skip-link--target,
  .page-id-2 main#wp--skip-link--target{
    padding-left: calc(25px + clamp(0px, 0px, 0px));
    padding-right: 25px;
    margin-top: 0 !important;
  }

  .blog .wp-block-post-content,
  .archive .wp-block-post-content,
  .single-post main#wp--skip-link--target>div,
  .page-id-49 .wp-block-post-content,
  .page-id-2 .wp-block-post-content{
    max-width: 100% !important;
    padding-top: 0px !important;
    padding-left: 96px;
  }
  
  .page-id-143 .wp-block-post-content {
    max-width: 100% !important;
    padding-top: 10px !important;
    padding-left: 50px;
  }

  .blog .wp-block-post-content > *,
  .archive .wp-block-post-content > *,
  .single-post main#wp--skip-link--target>div > *,
  .page-id-49 .wp-block-post-content > *,
  .page-id-2 .wp-block-post-content > *{
    margin-left: calc(280px + var(--rail-gap)) !important;
    margin-right: 0 !important;
    max-width: none !important;
  }

  .page-id-143 .wp-block-post-content > *{
    margin-left: calc(324px + var(--rail-gap)) !important;
    margin-right: 0 !important;
    max-width: none !important;
  }

  .single-post main#wp--skip-link--target>div > *{
    margin-left: calc(324px + var(--rail-gap)) !important;
  }

  .single-post main#wp--skip-link--target>div .entry-content{
    padding-left: 0 !important;
  }

  .blog h1.wp-block-post-title,
  .archive h1.wp-block-post-title,
  .single-post h1.wp-block-post-title,
  .page-id-49 h1.wp-block-post-title,
  .page-id-143 h1.wp-block-post-title,
  .page-id-2 h1.wp-block-post-title{
    margin-left: calc(324px + var(--rail-gap)) !important;
    margin-right: 0 !important;
    max-width: none !important;
  }
}


/* ============================================================
   MISC
   ============================================================ */
.single-post .wp-block-group.has-accent-4-color.has-text-color.has-link-color.has-small-font-size.is-layout-flex.wp-container-core-group-is-layout-4efaea1e.wp-block-group-is-layout-flex{
  gap: 4.2px !important;
}

.olassan-loading{
  min-height:60vh;
  display:flex;
  align-items:center;
  justify-content:center;
}

.olassan-loading img{
  max-width:120px;
  height:auto;
  display:block;
}

/* page-id-118 spacing tweaks */
.page-id-118 .wp-block-group.alignfull.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* small mobile projects spacing */
@media (max-width: 767px){
  .site-branding .wp-block-site-logo img{ width:86px; }

  button.wp-block-navigation__responsive-container-open{
    margin-top:-6px !important;
  }

  .wp-block-group.header-inner.is-layout-grid{
    padding-left:0px;
    padding-right:15px;
    margin-left:0px;
    margin-right:0px;
    width:91%;
  }

  div#olassan-portfolio{ margin-bottom:20px; }
}


/* ============================================================
   MOBILE HEADER / MENU (tidied, same behavior)
   ============================================================ */

/* Mobile layout: stack logo on top, nav+lang on second row */
@media (max-width: 992px) {
  .header-inner {
    display: flex !important;
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
  }

  /* Logo row */
  .header-inner .site-branding {
    width: 100%;
    justify-content: center;
    margin-bottom: 12px;
  }

  /* Nav + lang row */
  .header-inner .header-nav,
  .header-inner .header-lang {
    width: auto;
  }

  /* Put nav + lang side by side, spaced apart */
  .header-inner .wp-block-navigation,
  .header-inner .header-lang {
    display: flex;
    align-items: center;
  }

  .header-inner .wp-block-navigation {
    justify-content: center;
  }

  .header-inner .header-lang {
    margin-left: auto;
  }

  .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: block;
  }

  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
}

/* Icon sizing (your original rule) */
.wp-block-navigation__responsive-container-close svg,
.wp-block-navigation__responsive-container-open svg {
  fill: currentColor;
  display: block;
  height: 38px;
  pointer-events: none;
  width: 38px;
}

/* Small mobile */
@media (max-width: 767px) {
  .site-branding .wp-block-site-logo img {
    width: 86px;
  }

  button.wp-block-navigation__responsive-container-open {
    margin-top: -6px !important;
  }

  .wp-block-group.header-inner.is-layout-grid {
    padding-left: 0px;
    padding-right: 15px;
    margin-left: 0px;
    margin-right: 0px;
    width: 91%;
  }

  div#olassan-portfolio {
    margin-bottom: 20px;
  }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991px) {
  .wp-block-site-logo {
    width: 86px;
  }

  .wp-block-group.header-bar .site-branding {
    flex: 0 0 95% !important;
    max-width: 100% !important;
    justify-content: flex-start;
  }

  h2.wp-block-site-title {
    font-size: 35px !important;
  }

  .header-inner {
    width: 100%;
  }

  .olassan-filter button {
    all: unset;
    display: inline-block;
    cursor: pointer;
    padding: 2px 0;
    color: inherit;
    font-size: 1.7rem;
    border-bottom: 1px solid transparent;
    width: 50%;
  }

  .olassan-filter button.is-active {
    font-weight: 600;
    border-bottom-color: currentColor;
  }
}

/* Header wrapper on mobile */
@media (max-width: 991px) {
  .wp-block-group.header-bar {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
  }

  .wp-block-group.header-bar .site-branding {
    flex: 0 0 100%;
    max-width: 100%;
    justify-content: flex-start;
  }

  .wp-block-group.header-bar .header-inner-row {
    flex: 0 0 30%;
    max-width: 30%;
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
  }

  .wp-block-group.header-bar .header-inner-row nav.wp-block-navigation {
    margin: 0;
  }

  button.wp-block-navigation__responsive-container-open {
    margin-top: 1rem;
  }

  .wp-block-group.header-bar .site-branding .wp-block-site-tagline {
    display: none;
  }
}

.mobile-extra .lang-switcher {
    display: none;
}


.olassan-detail{
  grid-column: 2 / -1;
  min-width: 0;
}

@media (max-width:900px){
  .olassan-detail{
    grid-column: 1 / -1;
  }
}

.olassan-detail .alignfull,
.olassan-detail .wp-block-group.alignfull,
.olassan-detail [class*="alignfull"]{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.olassan-detail .alignwide,
.olassan-detail .wp-block-group.alignwide,
.olassan-detail [class*="alignwide"]{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.olassan-portfolio,
.olassan-detail{
  overflow-x: hidden;
}

.olassan-detail img,
.olassan-detail video,
.olassan-detail figure{
  max-width: 100%;
}

@media(max-width: 1024px) {
    .services-desktop, .about-desktop, .global-desktop {
        display: none !important;
    }
}
@media(min-width: 1025px) {
    .services-mobile, .about-mobile, .global-mobile {
        display: none !important;
    }
}
.single-hero-title.services-title {
    display: none;
}

/* Olassan Loader */


#olassan-loader{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:18px;
  background:rgba(255,255,255,.6);
  z-index:100000;
}

body.olassan-is-loading #olassan-loader{ display:flex; }

#olassan-loader img{
  width:140px;
  height:140px;
  object-fit:contain;
}

.olassan-loader-text{
  font-size:16px;
  font-weight:bold !important;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#111;
  line-height:1;
  margin-top: -11px;
  margin-left: 30px;
}
.olassan-loader-text * {
    font-weight: bold !important;
}

.olassan-loader-dots{
  display:inline-block;
  width:3ch;
  text-align:left;
}

.wp-block-galleryberg-gallery img {
    height: unset !important;
}

#olassan-lightbox{position:fixed;inset:0;display:none;z-index:99999}
#olassan-lightbox.is-open{display:block}
#olassan-lightbox .olassan-lightbox__bg{position:absolute;inset:0;background:rgba(0,0,0,.85)}
#olassan-lightbox .olassan-lightbox__img{position:absolute;inset:0;margin:auto;max-width:95vw;max-height:95vh}