/* ------------------------------------------------------------------
   Ariul Sttudio — Elementor bridge
   The original site CSS (style.css + project.css) styles plain HTML.
   Elementor wraps every widget in extra divs, so this file maps the
   original look onto Elementor containers/widgets via CSS classes.
   Each Elementor element carries the same class names the static
   site used (feat-card, proj-info-item, ...), so editing text, images,
   buttons and links in Elementor keeps the design intact.
------------------------------------------------------------------- */

:root{ --gutter-sm: clamp(16px, 4vw, 40px); }

/* ---------- neutralise Elementor defaults ---------- */

.elementor .e-con{
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --container-default-padding-top: 0px; --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
  gap: 0;
}
:where(.elementor) .elementor-widget:not(:last-child){ margin-block-end: 0; margin-bottom: 0; }
.elementor .elementor-widget-container{ margin: 0; }

/* not applied inside .ariul-static (HTML-widget sections that carry the original static markup) */
body .elementor :is(h1,h2,h3,h4,h5,h6,.elementor-heading-title):not(:where(.ariul-static *)){
  font-family: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
body .elementor .elementor-heading-title a{ color: inherit; text-decoration: none; }
:where(.elementor) .elementor-widget-text-editor{ color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; }
:where(.elementor .elementor-widget-text-editor) p{ margin: 0; }
.elementor .elementor-widget-image img{ height: auto; }

/* weights that the original gave to specific headings (the rule above resets them) */
body .elementor .section-head h2,
body .elementor .iwork-item h3,
body .elementor .work-card h3,
body .elementor .process-step h3,
body .elementor .cta-band h2{ font-weight: 400; }
body .elementor .feat-card h3,
body .elementor .why-item h3,
body .elementor .proj-approach-item h3{ font-weight: 500; }
body .elementor .proj-cta h2{ font-weight: 400; font-style: italic; }

/* ---------- layout containers ---------- */

.elementor .e-con.wrap{
  width: 100%;
  max-width: var(--max);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 1260px){
  .elementor .e-con.wrap{ padding-left: var(--gutter-sm); padding-right: var(--gutter-sm); }
}
.elementor .e-con.section{
  padding-top: clamp(64px, 9vw, 120px);
  padding-bottom: clamp(64px, 9vw, 120px);
}
.elementor .e-con.hero.wrap{ padding-top: clamp(48px, 8vw, 96px); padding-bottom: 16px; }
.elementor .e-con.proj-info{ padding-top: clamp(56px, 8vw, 100px); padding-bottom: clamp(56px, 8vw, 100px); }
.elementor .e-con.proj-gallery{ padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(72px, 10vw, 120px); }
.elementor .e-con.proj-cta{ padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); align-items: center; }
.elementor .e-con.work-list{ padding-top: 24px; }

.elementor .e-con.section-head{
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
}
.elementor .e-con.btn-row{ flex-direction: row; flex-wrap: wrap; gap: 14px; align-items: center; }
.elementor .e-con.proj-cta .btn-row{ justify-content: center; }
.elementor .e-con.cta-band{ width: 100%; max-width: none; }
.elementor .e-con.cta-band > .wrap{
  flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px;
  padding: clamp(40px, 7vw, 72px) var(--gutter);
}

/* ---------- grids (original CSS uses display:grid on these) ---------- */

.elementor .e-con:is(.feat-grid,.work-grid,.process,.why-grid,.testi-grid,.iwork-grid,.proj-info-grid,.proj-spaces,.proj-approach,.contact-grid){
  display: grid;
  width: 100%;
}
.elementor .e-con:is(.feat-grid,.work-grid,.process,.why-grid,.testi-grid,.iwork-grid,.proj-info-grid,.proj-spaces,.proj-approach,.contact-grid) > .e-con{
  width: auto;
  min-width: 0;
}
.elementor .e-con.work-grid{ gap: 1px; }
.elementor .e-con.work-grid > .work-card{ min-height: 190px; }
.elementor .e-con.feat-grid{ gap: 40px; }
.elementor .e-con.process{ gap: 36px; }
.elementor .e-con.why-grid{ gap: 40px; }
.elementor .e-con.testi-grid{ gap: 32px; }
.elementor .e-con.iwork-grid{ gap: 44px 32px; }
.elementor .e-con.proj-info-grid{ gap: 32px; margin-bottom: 48px; }
.elementor .e-con.proj-approach{ gap: 32px; }
.elementor .e-con.contact-grid{ gap: 80px; }
@media (max-width: 800px){ .elementor .e-con.contact-grid{ gap: 40px; } }

.elementor .e-con.work-card{ gap: 10px; }
.elementor .e-con.work-card .tag{ font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--accent); text-transform: uppercase; }
.elementor .e-con.work-card h3{ font-size: 20px; }
.elementor .e-con.work-card p{ color: var(--ink-soft); font-size: 14.5px; }

.elementor .process-step .num{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); display: block; margin-bottom: 8px; }
.elementor .process-step h3{ font-size: 17px; margin-bottom: 8px; }
.elementor .process-step p{ font-size: 14px; color: var(--ink-soft); }

.elementor .why-item h3{ font-size: 19px; margin-bottom: 10px; }
.elementor .why-item p{ color: var(--ink-soft); font-size: 14.5px; }

.elementor .testi-card .testi-quote blockquote{
  margin: 0 0 20px; font-style: italic; font-size: 19px; line-height: 1.5; color: var(--ink);
}
.elementor .testi-card .testi-cite{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.elementor .testi-note{ margin-top: 24px; }

/* ---------- typography helpers carried on widget wrappers ---------- */

.elementor .eyebrow{ font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.elementor .head-link a{ text-decoration: none; }
.elementor .lede:not(:where(.ariul-static *)){ color: var(--ink-soft); font-size: 17px; max-width: 46ch; margin-top: 22px; }
.elementor .home-contact-lede{ max-width: none; margin: 0 0 36px; }
.elementor .contact-card-text{ color: var(--ink-soft); font-size: 14.5px; margin: 12px 0 14px; }
.elementor .contact-card .eyebrow{ margin-bottom: 0; }
.elementor .e-con.contact-card{ padding: 40px; }
.elementor .prose{ max-width: 62ch; }
.elementor .prose p{ color: var(--ink-soft); font-size: 16px; }
.elementor .prose p + p{ margin-top: 16px; }
.elementor .home-intro .section-head h2{ font-family: Arial, Helvetica, sans-serif; font-style: normal; }

/* ---------- hero (home + projects) ---------- */

.elementor .e-con.proj-hero{
  position: relative;
  height: 100vh;
  min-height: 560px;
  width: 100%;
  overflow: hidden;
  background-color: #14140f;
  display: block;
}
.elementor .e-con.proj-hero.home-hero{ height: 92vh; min-height: 620px; }
.elementor .e-con.proj-hero::after{ z-index: 1; pointer-events: none; }
.elementor .e-con.proj-hero > .proj-hero-content{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  width: auto; max-width: none;
  z-index: 2;
  padding: 0 var(--gutter) clamp(48px, 7vw, 88px);
  color: #F6F6F3;
}
.elementor .proj-hero-eyebrow{
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(246,246,243,.8); margin: 0 0 18px; opacity: 0; animation: proj-fade-up 1s ease .5s forwards;
}
.elementor .proj-hero-title{ opacity: 0; animation: proj-fade-up 1.1s ease .7s forwards; max-width: none; }
.elementor .proj-hero-title .elementor-heading-title{
  max-width: 22ch; font-family: Arial, Helvetica, sans-serif; font-weight: 400; font-style: normal;
  font-size: clamp(40px, 4.6vw, 68px); line-height: 1.04; letter-spacing: -.035em;
}
.elementor .home-hero .proj-hero-title .elementor-heading-title{ max-width: 18ch; font-size: clamp(34px, 6.4vw, 84px); }
.elementor .proj-hero-subtitle{
  font-size: clamp(18px, 2vw, 30px); font-family: var(--font-mono); letter-spacing: .04em;
  display: block; margin-top: 14px; color: rgba(246,246,243,.9);
}
.elementor .home-hero-sub{
  max-width: 52ch; font-size: clamp(16px, 1.6vw, 19px); color: rgba(246,246,243,.88);
  margin: 20px 0 32px; opacity: 0; animation: proj-fade-up 1.1s ease .9s forwards;
}
.elementor .home-hero .btn-row{ opacity: 0; animation: proj-fade-up 1.1s ease 1.1s forwards; }
.elementor .e-con.proj-hero > .proj-scroll-cue{
  position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%);
  width: 22px; height: 34px; z-index: 2; display: block;
}

/* ---------- buttons ---------- */

.elementor .ar-btn .elementor-button{
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--accent); color: var(--paper);
  font-family: var(--font-mono); font-size: 13px; font-weight: 400; letter-spacing: .04em;
  padding: 14px 22px; border-radius: 0; border: 1px solid var(--accent);
  text-decoration: none; line-height: 1.55; fill: currentColor;
}
.elementor .ar-btn .elementor-button:hover{ background: var(--ink); border-color: var(--ink); color: var(--paper); }
.elementor .ar-btn--outline .elementor-button{ background: transparent; color: var(--ink); border-color: var(--ink); }
.elementor .ar-btn--outline .elementor-button:hover{ background: var(--ink); color: var(--paper); }
.elementor .ar-btn--hero-outline .elementor-button{ background: transparent; color: #F6F6F3; border-color: #F6F6F3; }
.elementor .ar-btn--hero-outline .elementor-button:hover{ background: #F6F6F3; color: var(--ink); border-color: #F6F6F3; }
.elementor .ar-btn--light .elementor-button{ background: var(--paper); color: var(--ink); border-color: var(--paper); }
.elementor .ar-btn--light .elementor-button:hover{ background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ---------- featured project cards (home) ---------- */

.elementor .feat-card .ph{ position: relative; aspect-ratio: 4/3; overflow: hidden; background: #eee; }
.elementor .feat-card .ph .elementor-widget-container,
.elementor .feat-card .ph a{ display: block; width: 100%; height: 100%; }
.elementor .feat-card .ph img{
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
.elementor .feat-card:hover .ph img{ transform: scale(1.05); }
.elementor .feat-card .cat{ font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); display: block; margin: 18px 0 8px; }
.elementor .feat-card h3{ font-size: 24px; margin: 0 0 10px; }
.elementor .feat-card p{ margin: 0 0 14px; color: var(--ink-soft); font-size: 14.5px; }
.elementor .feat-card .view{ font-family: var(--font-mono); font-size: 12px; border-bottom: 0; padding-bottom: 0; }
.elementor .feat-card .view a{ border-bottom: 1px solid var(--ink); padding-bottom: 2px; }

/* ---------- work page ---------- */

.elementor .work-title .elementor-heading-title{
  max-width: 22ch; font-weight: 400; font-size: clamp(34px, 5.4vw, 64px); line-height: 1.08; letter-spacing: -.01em; margin-top: 18px;
}
.elementor .e-con.filter-tabs{
  flex-direction: row; flex-wrap: wrap;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  margin-bottom: 44px; width: 100%;
}
.elementor .filter-tabs .filter-btn{
  cursor: pointer; padding: 14px 20px; font-family: var(--font-mono); font-size: 13px;
  color: var(--muted); border-right: 1px solid var(--line); user-select: none;
}
.elementor .filter-tabs .filter-btn:last-child{ border-right: none; }
.elementor .filter-tabs .filter-btn.is-active{ color: var(--paper); background: var(--accent); }
.elementor .e-con.cat-section{ width: 100%; margin-bottom: 64px; }
.elementor .e-con.cat-section:last-child{ margin-bottom: 0; }
.elementor .e-con.is-hidden{ display: none !important; }
.elementor .iwork-item{ display: block; color: inherit; }
.elementor .iwork-item .iw-status{ display: block; margin-bottom: 8px; }
.elementor .iwork-item .iw-photo{ aspect-ratio: 4/3; overflow: hidden; background: #EFEFE9; border: 1px solid var(--line); }
.elementor .iwork-item .iw-photo .elementor-widget-container,
.elementor .iwork-item .iw-photo a{ display: block; width: 100%; height: 100%; }
.elementor .iwork-item .iw-photo img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.elementor .iwork-item:hover .iw-photo img{ transform: scale(1.04); }
.elementor .iwork-item h3{ font-size: 17px; margin: 14px 0 4px; }
.elementor .iwork-item .meta{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.elementor .e-con.meta{ flex-direction: row; justify-content: space-between; width: 100%; }

/* ---------- project page ---------- */

.elementor .proj-info-item{ border-top: 2px solid var(--accent); padding-top: 14px; }
.elementor .proj-info-item .k{ font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 8px; }
.elementor .proj-info-item .v{ font-size: clamp(18px, 2vw, 22px); color: var(--ink); display: block; }
.elementor .proj-desc{ max-width: 68ch; font-size: clamp(19px, 2.2vw, 25px); line-height: 1.55; color: var(--ink-soft); }

.elementor .e-con.proj-spaces{ border-top: 1px solid var(--line); gap: 0; }
.elementor .proj-spaces .proj-space{
  padding: 20px 22px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line);
  font-size: 16px; color: var(--ink-soft);
}
.elementor .proj-approach-item{ border-top: 2px solid var(--accent); padding-top: 16px; }
.elementor .proj-approach-item h3{ font-size: 18px; margin: 0 0 8px; }
.elementor .proj-approach-item p{ color: var(--ink-soft); font-size: 14px; }

.elementor .e-con.masonry{ display: block; column-count: 3; column-gap: 22px; width: 100%; }
@media (max-width: 1000px){ .elementor .e-con.masonry{ column-count: 2; } }
@media (max-width: 600px){ .elementor .e-con.masonry{ column-count: 1; } }
.elementor .masonry .mfig{
  display: block; width: 100%; margin: 0 0 22px; break-inside: avoid;
  overflow: hidden; position: relative; background: #eee;
}
.elementor .masonry .mfig img{ display: block; width: 100%; height: auto; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.elementor .masonry .mfig:hover img{ transform: scale(1.055); }

.elementor .proj-cta h2{ font-size: clamp(26px, 4vw, 42px); margin: 0 0 28px; color: var(--ink); text-align: center; }
.elementor .proj-back{
  display: inline-block; margin-top: 28px; font-family: var(--font-mono); font-size: 13px; color: var(--muted); border-bottom: 0;
}
.elementor .proj-back a{ border-bottom: 1px solid transparent; }
.elementor .proj-back a:hover{ color: var(--ink); border-color: var(--ink); }

body.project-page .site-header + main .elementor{ overflow-x: hidden; }

/* ---------- enquiry form (shortcode) ---------- */

.ariul-enquiry .form-msg{ padding: 12px 14px; margin: 0 0 20px; border: 1px solid var(--accent); color: var(--accent); font-size: 14px; }
.ariul-enquiry .form-msg.is-error{ border-color: #a33; color: #a33; }
.ariul-enquiry .hp{ position: absolute; left: -9999px; height: 0; width: 0; overflow: hidden; }
.ariul-enquiry button.btn{ border: 0; cursor: pointer; }

/* ---------- Elementor editor: always show content ---------- */

body.elementor-editor-active [data-reveal],
.elementor-editor-active [data-reveal]{ opacity: 1 !important; transform: none !important; }
.elementor-editor-active .proj-hero-eyebrow,
.elementor-editor-active .proj-hero-title,
.elementor-editor-active .home-hero-sub,
.elementor-editor-active .home-hero .btn-row{ opacity: 1 !important; animation: none !important; }

/* ---------- plain-WordPress fallback pages ---------- */

.page-plain{ padding: clamp(48px, 8vw, 96px) 0; }
.page-plain h1{ font-weight: 400; font-size: clamp(30px, 4.5vw, 52px); margin: 0 0 24px; }

/* ---------- small screens ---------- */
@media (max-width: 600px){
  .elementor .e-con.proj-hero > .proj-scroll-cue{ display: none; }
  .elementor .e-con.contact-card{ padding: 24px; }
}

/* ---------- about page ---------- */

.elementor .e-con.hero.wrap.about-hero{ padding-bottom: 24px; }
.about-page .elementor .e-con.section{ padding-top: clamp(72px, 10vw, 132px); padding-bottom: clamp(72px, 10vw, 132px); }
.about-page .elementor .e-con.about-stats{ padding-bottom: 0; }
.elementor .about-lede{ font-size: 19px; margin-top: 28px; }
.elementor .about-prose-2{ margin-top: 20px; }
.elementor .about-note{ max-width: 68ch; }
.elementor .about-note p{ font-size: 16px; color: var(--ink-soft); }

.elementor .stat-num{ font-family: var(--font-display); font-weight: 400; font-size: clamp(38px, 6vw, 64px); color: var(--ink); display: block; margin-bottom: 6px; }
.elementor .stat-num .elementor-heading-title{ font-size: inherit; line-height: 1.1; }
.elementor .stat-label{ font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.elementor .stat-label .elementor-heading-title{ font-size: inherit; line-height: 1.4; }

.elementor .e-con.founder{ min-width: 0; }

/* ---------- founders: both portraits always the same size ----------
   The grid columns are 1.1fr / 0.9fr, so on narrower screens the 2nd column
   became narrower than 320px and its photo shrank. Each column now stays at
   least 320px wide (photos are fixed 320px, 3:4) and the gap tightens a bit. */
.contact-grid:has(.founder-photo),
.elementor .e-con.contact-grid:has(.founder-photo){
  grid-template-columns: minmax(320px, 1.1fr) minmax(320px, 0.9fr);
}
@media (max-width: 1100px){
  .contact-grid:has(.founder-photo),
  .elementor .e-con.contact-grid:has(.founder-photo){ gap: 48px; }
}
@media (max-width: 800px){
  .contact-grid:has(.founder-photo),
  .elementor .e-con.contact-grid:has(.founder-photo){ grid-template-columns: 1fr; gap: 40px; }
}
.founder-photo{ width: 100%; max-width: 320px; aspect-ratio: 3/4; }

.elementor .founder-photo{ width: 100%; max-width: 320px; aspect-ratio: 3/4; overflow: hidden; border: 1px solid var(--line); background: #eee; }
.elementor .founder-photo .elementor-widget-container{ display: block; width: 100%; height: 100%; }
.elementor .founder-photo img{ width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(15%); transform: scale(1); transition: filter .4s ease, transform .4s ease; }
.elementor .founder-photo:hover img{ filter: grayscale(0%); transform: scale(1.03); }
.elementor .founder-eyebrow{ margin-top: 20px; }
.elementor .founder-name{ font-family: var(--font-display); font-weight: 400; font-size: 22px; margin: 6px 0 2px; }
.elementor .founder-name .elementor-heading-title{ font-size: inherit; font-weight: inherit; }
.elementor .founder-role{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin: 0 0 6px; }
.elementor .founder-quals{ font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin: 0 0 18px; }

/* ---------- header + footer built in Elementor ---------- */

.ariul-hf{ position: relative; }
.site-header.ariul-hf .e-con,
.site-header.ariul-hf .elementor-widget{ position: static; }
.site-header .elementor .e-con.wrap{ flex-direction: row; align-items: center; justify-content: space-between; height: 84px; }
.site-header .elementor .e-con.wrap > .elementor-widget{ width: auto; flex: 0 0 auto; }
.site-header .elementor .e-con.wrap > .elementor-widget .elementor-widget-container{ display: flex; align-items: center; gap: 16px; }

footer.site-footer .elementor .e-con.wrap{ flex-direction: column; align-items: stretch; justify-content: flex-start; flex-wrap: nowrap; gap: 0; }
.elementor .e-con.footer-grid{ display: flex; grid-template-columns: none; width: 100%; }
.elementor .e-con.footer-grid > .e-con{ min-width: 0; }
@media (max-width:1024px){ .elementor .e-con.footer-grid{ flex-wrap: wrap; } }
/* logo made from an Elementor Image widget + brand text */
.elementor .logo-row .elementor-widget{ width: auto; flex: 0 0 auto; margin: 0; }
.elementor .logo-row .logo-img img{ display: block; height: auto; }
.elementor .logo-row .logo-text .elementor-heading-title{ font-family: var(--font-brand); font-weight: 400; letter-spacing: .01em; line-height: 1; margin: 0; }
.elementor .logo-row .logo-text a{ color: inherit; text-decoration: none; }
.elementor .footer-grid .col .elementor-widget-ariul_part a{ display: block; margin: 0 0 6px; font-size: 14px; color: #D8DBD6; text-decoration: none; }
.elementor .footer-grid .col .elementor-widget-ariul_part a:hover{ color: #fff; }
.elementor .footer-grid .col .elementor-widget-ariul_part .footer-nav{ list-style: none; margin: 0; padding: 0; }
.elementor .footer-bottom > .elementor-widget{ width: auto; margin: 0; }
.elementor .e-con.footer-bottom{ flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; width: 100%; }
.elementor .footer-grid .col .elementor-widget-text-editor p,
.elementor .footer-grid .col .elementor-widget-text-editor a{ display: block; margin: 0 0 6px; font-size: 14px; color: #D8DBD6; text-decoration: none; }
.elementor .footer-grid .col .eyebrow p{ color: #8B948B; font-size: 12px; margin-bottom: 10px; }
.elementor .footer-grid .col .elementor-widget-text-editor a:hover{ color: #fff; }
.elementor .footer-tagline{ margin-top: 14px; max-width: 34ch; }
.elementor .footer-grid .footer-nav{ list-style: none; margin: 0; padding: 0; }
.elementor .foot-meta p{ font-family: var(--font-mono); font-size: 12px; color: #8B948B; margin: 0; }

/* "Edit Header / Edit Footer" buttons shown only inside the Elementor editor */
.ariul-edit-chip{
  position: absolute; top: 8px; right: 8px; z-index: 99999;
  background: #F99E2D; color: #fff !important; font: 600 12px/1 Arial, sans-serif;
  padding: 8px 12px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.ariul-edit-chip:hover{ background: #1D211D; }

/* ---------- services page ---------- */
.elementor .e-con.services-core{ padding-top: 24px; }

/* ---------- contact page ---------- */
.elementor .info-text{ margin-top: 10px; }
.elementor .info-text a{ color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.elementor .info-text a:hover{ border-color: var(--ink); }
.elementor .contact-card-list ul{ margin: 0; padding-left: 18px; color: var(--ink-soft); font-size: 14.5px; display: flex; flex-direction: column; gap: 8px; }
.elementor .contact-card-list li{ margin: 0; }
.elementor .e-con.contact-form-wrap{ min-width: 0; }
.elementor .map-frame{ width: 100%; }

/* ---------- contact-form plugins (Contact Form 7, WPForms, Fluent Forms, Elementor Pro Form) ---------- */
.contact-form-wrap .wpcf7-form-control-wrap{ display: block; }
.contact-form-wrap :is(.wpcf7, .wpforms-container, .fluentform) :is(input:not([type=checkbox],[type=radio],[type=submit],[type=button]), select, textarea),
.contact-form-wrap .elementor-form :is(input:not([type=checkbox],[type=radio],[type=submit]), select, textarea){
  width: 100%; box-sizing: border-box;
  font-family: var(--font-body); font-size: 15px; color: var(--ink);
  background: var(--paper); border: 1px solid var(--line); border-radius: 0;
  padding: 12px 14px; outline: none; box-shadow: none;
}
.contact-form-wrap :is(.wpcf7, .wpforms-container, .fluentform, .elementor-form) :is(input, select, textarea):focus{ border-color: var(--accent); }
.contact-form-wrap :is(.wpcf7, .wpforms-container, .fluentform) textarea{ min-height: 110px; resize: vertical; }
.contact-form-wrap :is(.wpcf7, .wpforms-container, .fluentform, .elementor-form) :is(label, .wpforms-field-label, .ff-el-input--label label){
  font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
}
.contact-form-wrap :is(.wpcf7-submit, .wpforms-submit, .ff-btn-submit, .elementor-form .elementor-button){
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  background: var(--accent); color: var(--paper); border: 1px solid var(--accent); border-radius: 0;
  font-family: var(--font-mono); font-size: 13px; font-weight: 400; letter-spacing: .04em; padding: 14px 22px;
}
.contact-form-wrap :is(.wpcf7-submit, .wpforms-submit, .ff-btn-submit, .elementor-form .elementor-button):hover{ background: var(--ink); border-color: var(--ink); color: var(--paper); }
.contact-form-wrap .wpcf7-not-valid-tip{ font-size: 12px; color: #b3261e; margin-top: 4px; }
.contact-form-wrap .wpcf7 form .wpcf7-response-output{ margin: 20px 0 0; border-color: var(--line); font-size: 14px; }

/* mobile: hamburger pinned to the right of the Elementor header */
@media (max-width:720px){
  .site-header .elementor .e-con.wrap > .elementor-widget-ariul_part .elementor-widget-container{ gap: 0; }
  .site-header .elementor .e-con.wrap > .elementor-widget-ariul_part:last-child{ margin-left: auto; }
  /* keep the drawer above everything, not clipped by the widget wrappers */
  .site-header .elementor-widget-ariul_part,
  .site-header .elementor-widget-ariul_part .elementor-widget-container{ overflow: visible; }
}

/* ---------- header: logo + menu on one centred line ---------- */
.site-header .elementor .e-con.wrap{
  display: flex; flex-direction: row; flex-wrap: nowrap;
  align-items: center; justify-content: space-between;
  height: 84px; min-height: 0; gap: 0;
  padding-top: 0; padding-bottom: 0;
}
.site-header .elementor .e-con.wrap > .e-con,
.site-header .elementor .e-con.wrap > .elementor-widget{
  margin: 0; padding: 0; min-height: 0; align-self: center;
}
.site-header .elementor .logo-row{
  display: flex; flex-direction: row; flex-wrap: nowrap;
  align-items: center; justify-content: flex-start;
  width: auto; flex: 0 0 auto; padding: 0; margin: 0; gap: 10px;
}
.site-header .elementor .logo-row .elementor-widget,
.site-header .elementor .logo-row .elementor-widget-container{ margin: 0; padding: 0; line-height: 1; display: flex; align-items: center; }
.site-header .elementor .logo-row .logo-img img{ display: block; width: 28px; height: 28px; object-fit: contain; }
.site-header .elementor .logo-row .logo-text .elementor-heading-title{ line-height: 1; }
.site-header .elementor .elementor-widget-ariul_part .elementor-widget-container{ display: flex; align-items: center; min-height: 0; }

@media (max-width:720px){
  .site-header .elementor .e-con.wrap{ height: 72px; padding-left: var(--gutter-sm); padding-right: var(--gutter-sm); }
  .site-header .elementor .e-con.wrap > .elementor-widget-ariul_part{ margin-left: auto; width: auto; flex: 0 0 auto; }
  .site-header .nav-toggle-label{ margin: 0; }
}


/* Home/About native Elementor spacing correction: match original static page rhythm. */
.elementor .e-con.section.wrap{
  box-sizing:border-box;
  width:100%;
  max-width:var(--max, 1200px);
  margin-left:auto;
  margin-right:auto;
  padding:clamp(64px, 9vw, 120px) var(--gutter, clamp(16px, 4vw, 40px));
  gap:0;
}
.elementor .e-con.hero.wrap.about-hero{
  box-sizing:border-box;
  width:100%;
  max-width:var(--max, 1200px);
  margin-left:auto;
  margin-right:auto;
  padding:clamp(48px, 8vw, 96px) var(--gutter, clamp(16px, 4vw, 40px)) clamp(40px, 6vw, 72px);
  gap:0;
}
.elementor .e-con.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid var(--line, #d8d6d0);
  padding:0 0 24px;
  margin:0 0 48px;
}
.elementor .e-con.section-head .elementor-widget-heading{margin:0 0 0!important;}
.elementor .e-con.section-head .elementor-widget-heading .elementor-heading-title{margin:0;padding:0;}
.elementor .e-con.proj-hero.home-hero{padding:0;max-width:none;margin:0;}
.elementor .e-con.proj-hero-content{gap:0;}
.elementor .e-con.proj-hero-content .elementor-widget:not(:last-child){margin-bottom:0!important;}
.elementor .e-con.proj-hero-content .proj-hero-eyebrow{margin:0 0 18px!important;}
.elementor .e-con.proj-hero-content .proj-hero-title{margin:0 0 18px!important;}
.elementor .e-con.proj-hero-content .home-hero-sub{margin:0 0 32px!important;}
.elementor .e-con.btn-row{gap:14px;}
.elementor .e-con.feat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;}
.elementor .e-con.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;}
.elementor .e-con.process{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;}
.elementor .e-con.why-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;}
.elementor .e-con.testi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
.elementor .e-con.contact-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:80px;}
.elementor .e-con.about-story .prose{margin-top:0;}
.elementor .e-con.about-story .about-lede{margin-top:28px!important;}
.elementor .e-con.about-story .about-prose-2{margin-top:20px!important;}
.elementor .e-con.about-hero .work-title{margin-top:18px!important;}
.elementor .e-con.about-hero .lede{margin-top:22px!important;}
.elementor .e-con.about-stats .process{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;}
.elementor .e-con.cta-band{padding:clamp(40px,7vw,72px) 0;}
.elementor .e-con.cta-band>.wrap{padding:0 var(--gutter, clamp(16px,4vw,40px));}
@media(max-width:800px){
 .elementor .e-con.feat-grid,.elementor .e-con.work-grid,.elementor .e-con.process,.elementor .e-con.why-grid,.elementor .e-con.testi-grid,.elementor .e-con.contact-grid,.elementor .e-con.about-stats .process{grid-template-columns:1fr;gap:28px;}
 .elementor .e-con.section-head{margin-bottom:32px;padding-bottom:18px;}
 .elementor .e-con.section.wrap{padding-top:64px;padding-bottom:64px;}
 .elementor .e-con.hero.wrap.about-hero{padding-top:48px;padding-bottom:40px;}
}

/* Mobile-only refinements requested for the existing live layout.
   CSS-only patch: does not replace Elementor page content or saved edits. */
@media (max-width: 767px) {
  /* Keep the mobile navigation drawer compact and fully usable. */
  .site-header .nav-toggle ~ nav {
    width: min(86vw, 360px) !important;
    max-width: 100vw;
    box-sizing: border-box;
  }

  /* Avoid oversized grey gaps between stacked service cards on mobile. */
  .elementor .e-con.work-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    background: transparent !important;
    min-width: 0;
  }
  .elementor .e-con.work-grid > .e-con.work-card {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: 26px 22px !important;
    background: var(--paper, #f7f7f3);
    border-bottom: 1px solid var(--line, #d8d6d0);
  }
  .elementor .e-con.work-grid > .e-con.work-card:last-child {
    border-bottom: 0;
  }
  .elementor .e-con.work-grid .elementor-widget,
  .elementor .e-con.work-grid .elementor-widget-container,
  .elementor .e-con.work-grid p,
  .elementor .e-con.work-grid h2,
  .elementor .e-con.work-grid h3 {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  /* Consistent side padding on all full-width sections. */
  .elementor .e-con.section.wrap,
  .elementor .e-con.hero.wrap {
    box-sizing: border-box;
    width: 100%;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}


/* ---------- Reduced vertical whitespace between sections ---------- */
/* Keep the existing design but tighten excessive top/bottom section spacing. */
.elementor .e-con.section,
.elementor .e-con.section.wrap {
  padding-top: clamp(36px, 5vw, 72px) !important;
  padding-bottom: clamp(36px, 5vw, 72px) !important;
}
.elementor .e-con.proj-info {
  padding-top: clamp(32px, 4vw, 64px) !important;
  padding-bottom: clamp(32px, 4vw, 64px) !important;
}
.elementor .e-con.proj-gallery {
  padding-top: clamp(28px, 4vw, 56px) !important;
  padding-bottom: clamp(40px, 5vw, 72px) !important;
}
.elementor .e-con.proj-cta {
  padding-top: clamp(36px, 5vw, 72px) !important;
  padding-bottom: clamp(36px, 5vw, 72px) !important;
}
@media (max-width: 800px) {
  .elementor .e-con.section,
  .elementor .e-con.section.wrap {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
  .elementor .e-con.proj-info,
  .elementor .e-con.proj-gallery,
  .elementor .e-con.proj-cta {
    padding-top: 28px !important;
    padding-bottom: 36px !important;
  }
}
