:root {
  --orlaya-widget-ivory: #f6f1e7;
  --orlaya-widget-cream: #ebe5d8;
  --orlaya-widget-green: #2d3b24;
  --orlaya-widget-forest: #172416;
  /* Matches --orlaya-charcoal in the theme: deep green, not near-black. */
  --orlaya-widget-charcoal: #22301c;
  --orlaya-widget-white: #fffdf7;
}

.elementor-widget-orlaya-plant-journey,
.elementor-widget-orlaya-methodology,
.elementor-widget-orlaya-packages,
.elementor-widget-orlaya-client-logos,
.elementor-widget-orlaya-contact-form,
.elementor-widget-orlaya-pricing-table { width: 100% !important; flex-grow: 1; }
.elementor-widget-orlaya-plant-journey > .elementor-widget-container,
.elementor-widget-orlaya-methodology > .elementor-widget-container,
.elementor-widget-orlaya-packages > .elementor-widget-container,
.elementor-widget-orlaya-client-logos > .elementor-widget-container,
.elementor-widget-orlaya-contact-form > .elementor-widget-container,
.elementor-widget-orlaya-pricing-table > .elementor-widget-container { width: 100%; }

.orlaya-widget-intro,
.orlaya-widget-journey__intro {
  width: min(100%, 46rem);
  margin-inline: auto;
  padding-inline: 1rem;
  text-align: center;
}
.orlaya-widget-intro h2,
.orlaya-widget-journey__intro h2 { margin: .25rem 0 .45rem; font-size: clamp(1.7rem,3vw,2.5rem); font-weight: 400; line-height: 1.4; }
.orlaya-widget-intro p,
.orlaya-widget-journey__intro p { margin: 0; color: #5A6650; line-height: 1.8; }
.orlaya-widget-journey__intro > span { color: #839071; }

/* Protected plant journey. */
.orlaya-widget-journey {
  --orlaya-widget-plant-width: 420px;
  --orlaya-widget-stage-height: 440px;
  --orlaya-widget-duration: .8s;
  --orlaya-widget-safe-offset: 104px;
  --orlaya-widget-scale-desktop: 1;
  --orlaya-widget-scale-tablet: .9;
  --orlaya-widget-scale-mobile: .8;
  --orlaya-widget-stage-1: #f8f4ec;
  --orlaya-widget-stage-2: #e9e4d7;
  --orlaya-widget-stage-3: #aeb79a;
  --orlaya-widget-stage-4: #3b522f;
  position: relative;
  width: 100%;
  padding-top: clamp(3rem,5vw,4.5rem);
  isolation: isolate;
  overflow: visible;
  color: var(--orlaya-widget-charcoal);
  background: var(--orlaya-widget-ivory);
}
.orlaya-widget-journey__intro { position: relative; z-index: 5; padding-bottom: clamp(1.25rem,3vw,2.5rem); }
.orlaya-widget-journey__visual {
  position: absolute;
  z-index: 3;
  inset: clamp(9rem,14vw,12rem) 50% 0 auto;
  width: min(var(--orlaya-widget-plant-width), 34vw);
  transform: translateX(50%);
  pointer-events: none;
  bottom: -12rem;
}
.orlaya-widget-journey__sticky {
  position: sticky;
  top: calc(var(--orlaya-widget-safe-offset) + var(--wp-admin--admin-bar--height, 0px));
  height: min(62svh, 38rem);
  display: grid;
  place-items: center;
}
.orlaya-widget-journey__layers {
  position: relative;
  width: 100%;
  height: 100%;
  transform: scale(var(--orlaya-widget-scale-desktop));
  transform-origin: center;
  transition: transform var(--orlaya-widget-duration) ease;
}
.orlaya-widget-journey__layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transform-origin: 50% 50%;
  transition: opacity var(--orlaya-widget-duration) ease, transform var(--orlaya-widget-duration) cubic-bezier(.2,.7,.2,1), clip-path calc(var(--orlaya-widget-duration) * 1.2) cubic-bezier(.2,.7,.2,1);
}
.orlaya-widget-journey .journey-soil,
.orlaya-widget-journey .journey-seed,
.orlaya-widget-journey .journey-roots-initial { opacity: 1; }
.orlaya-widget-journey .journey-roots-expanded { clip-path: inset(0 0 100% 0); }
.orlaya-widget-journey .journey-shoot { transform: translateY(10px) scale(.88); transform-origin: 50% 48%; }
.orlaya-widget-journey .journey-stem { clip-path: inset(100% 0 0 0); }
.orlaya-widget-journey .journey-leaves { transform: scale(.72); transform-origin: 50% 38%; }
.orlaya-widget-journey .journey-flower { transform: translateY(14px) scale(.68); transform-origin: 50% 10%; }
.orlaya-widget-journey .journey-petals { transform: translateY(-10px); }
.orlaya-widget-journey[data-stage="2"] .journey-roots-expanded,
.orlaya-widget-journey[data-stage="3"] .journey-roots-expanded,
.orlaya-widget-journey[data-stage="4"] .journey-roots-expanded { opacity: 1; clip-path: inset(0); }
.orlaya-widget-journey[data-stage="2"] .journey-shoot,
.orlaya-widget-journey[data-stage="3"] .journey-shoot,
.orlaya-widget-journey[data-stage="4"] .journey-shoot { opacity: 1; transform: none; }
.orlaya-widget-journey[data-stage="3"] .journey-stem,
.orlaya-widget-journey[data-stage="4"] .journey-stem { opacity: 1; clip-path: inset(0); }
.orlaya-widget-journey[data-stage="3"] .journey-leaves,
.orlaya-widget-journey[data-stage="4"] .journey-leaves { opacity: 1; transform: none; }
.orlaya-widget-journey[data-stage="4"] .journey-flower,
.orlaya-widget-journey[data-stage="4"] .journey-petals { opacity: 1; transform: none; }
.orlaya-widget-journey[data-stage="4"] .journey-petals { animation: orlaya-widget-petal-float 3.8s ease-in-out infinite; }
.orlaya-widget-journey__stages { position: relative; z-index: 2; }
.orlaya-widget-stage {
  position: relative;
  min-height: var(--orlaya-widget-stage-height);
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(260px,34vw) minmax(0,1fr);
  align-items: center;
  gap: clamp(1rem,3vw,3.5rem);
  padding: clamp(2rem,4vw,3.75rem) clamp(1rem,6vw,7rem);
  direction: ltr;
}
.orlaya-widget-stage[data-stage="1"] { background: var(--orlaya-widget-stage-1); }
.orlaya-widget-stage[data-stage="2"] { background: var(--orlaya-widget-stage-2); }
.orlaya-widget-stage[data-stage="3"] { background: var(--orlaya-widget-stage-3); }
.orlaya-widget-stage[data-stage="4"] { color: var(--orlaya-widget-white); background: var(--orlaya-widget-stage-4); }
.orlaya-widget-stage__meta,
.orlaya-widget-stage__label { position: relative; z-index: 4; direction: rtl; opacity: .46; transform: translateY(14px); transition: opacity calc(var(--orlaya-widget-duration) * .7) ease, transform calc(var(--orlaya-widget-duration) * .7) ease; }
.orlaya-widget-stage.is-complete .orlaya-widget-stage__meta,
.orlaya-widget-stage.is-complete .orlaya-widget-stage__label { opacity: .75; transform: none; }
.orlaya-widget-stage.is-active .orlaya-widget-stage__meta,
.orlaya-widget-stage.is-active .orlaya-widget-stage__label { opacity: 1; transform: none; }
.orlaya-widget-stage__meta {
  grid-column: 1;
  width: min(100%,22rem);
  display: grid;
  grid-template-columns: 3rem minmax(0,1fr);
  gap: .8rem;
  justify-self: start;
  text-align: right;
}
.orlaya-widget-stage__icon {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .75;
}
.orlaya-widget-stage__icon img { width: 1.45rem; height: 1.45rem; object-fit: contain; }
.orlaya-widget-stage__meta h3 { margin: 0; font-size: clamp(1.15rem,1.7vw,1.55rem); font-weight: 500; }
.orlaya-widget-stage__meta p { margin: .55rem 0 0; font-size: clamp(.84rem,1vw,.96rem); line-height: 1.8; }
.orlaya-widget-stage__label { grid-column: 3; justify-self: end; text-align: right; }
.orlaya-widget-stage__label > span { display: block; font-family: Georgia,serif; font-size: clamp(2.5rem,4vw,4.5rem); line-height: 1; opacity: .75; }
.orlaya-widget-stage__label h3 { margin: .25rem 0 0; font-size: clamp(1.15rem,1.6vw,1.5rem); font-weight: 500; }
.orlaya-widget-stage__label small { display: block; margin-top: .1rem; font-family: Georgia,serif; font-size: clamp(.75rem,.9vw,.9rem); opacity: .78; }
.orlaya-widget-journey.is-reduced-motion .orlaya-widget-journey__layer,
.orlaya-widget-journey.is-reduced-motion .orlaya-widget-stage__meta,
.orlaya-widget-journey.is-reduced-motion .orlaya-widget-stage__label { transition: none !important; animation: none !important; }

/* Methodology. */
.orlaya-widget-methodology { position: relative; z-index: 4; display: flex; flex-direction: column; align-items: center; padding: clamp(4rem,8vw,7rem) clamp(1rem,4vw,4rem); background: var(--orlaya-widget-ivory); }
.orlaya-widget-methodology__grid { width: min(100%,1580px); display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: clamp(.75rem,2vw,2rem); margin: 3.5rem auto 0 !important; }
/* When a section has fewer than 5 items, repeat(5,...) still reserves 5 tracks,
   leaving an empty column (the leftmost one, since RTL fills from the right) —
   that empty column is exactly the "gap on the left" bug. Match the column
   count to the real number of items instead of assuming 5.

   Gated behind min-width:1101px on purpose. A `:has(> :nth-child(n):last-child)`
   selector carries the specificity of its argument (two pseudo-classes) on top
   of the class, i.e. 0-3-0 — which outranks every plain
   `.orlaya-widget-methodology__grid` override in the responsive blocks below
   (0-1-0). Ungated, these rules therefore stuck at 4/3/2 columns all the way
   down to phone widths, which is why the About page's 4 items rendered as four
   crushed columns on mobile instead of stacking. Specificity beats source
   order, so the fix has to be a non-overlapping media range, not reordering. */
@media (min-width: 1101px) {
  .orlaya-widget-methodology__grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .orlaya-widget-methodology__grid:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .orlaya-widget-methodology__grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.orlaya-widget-methodology__item { min-width: 0; display: grid; grid-template-rows: 3.75rem minmax(3.3rem,auto) auto; align-content: start; color: inherit; text-decoration: none; }
.orlaya-widget-methodology__item.align-right { text-align: right; }
.orlaya-widget-methodology__item.align-center { text-align: center; }
.orlaya-widget-methodology__item.align-left { text-align: left; }
.orlaya-widget-methodology__icon { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; justify-self: center; overflow: hidden; border: 1px solid rgba(45,59,36,.26); border-radius: 50%; color: var(--orlaya-widget-green); }
.orlaya-widget-methodology__icon img { width: 1.8rem; height: 1.8rem; object-fit: contain; }
.orlaya-widget-methodology__item h3 { align-self: center; margin: 0; font-size: clamp(1rem,1.4vw,1.5rem); font-weight: 400; line-height: 1.45; }
.orlaya-widget-methodology__item p { margin: .45rem 0 0; color: #616E56; font-size: .88rem; line-height: 1.75; }
/* Optional lead line above the description (see the widget's `tagline`
   control) — darker and slightly heavier so the two paragraphs read as
   headline + supporting text instead of one grey block. */
.orlaya-widget-methodology__tagline { color: var(--orlaya-widget-green) !important; font-weight: 500; }

/* Packages. */
.orlaya-widget-packages { padding: clamp(4rem,7vw,6rem) clamp(1rem,5vw,5rem); background: var(--orlaya-widget-cream); }
.orlaya-widget-packages__grid { width: min(100%,78rem); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1rem,2.25vw,2rem); align-items: stretch; margin: 2.5rem auto 0; direction: rtl; }
.orlaya-widget-package { position: relative; min-width: 0; min-height: 34rem; display: flex; flex-direction: column; padding: clamp(1.65rem,2.5vw,2.15rem); overflow: hidden; border: 1px solid rgba(45,59,36,.11); border-radius: 10px; background: linear-gradient(145deg,rgba(255,253,247,.88),rgba(235,231,220,.82)); box-shadow: 0 12px 28px rgba(45,59,36,.08); transition: transform .25s ease, box-shadow .25s ease; }
.orlaya-widget-package:hover { transform: translateY(-7px); box-shadow: 0 22px 60px rgba(23,36,22,.11); }
.orlaya-widget-package.is-highlighted { border-color: rgba(83,99,63,.22); background: linear-gradient(145deg,#edece2,#dedfcf); box-shadow: 0 16px 38px rgba(45,59,36,.11); }
.orlaya-widget-package > * { position: relative; z-index: 1; }
/* Same botanical corner decoration as the homepage's own package cards
   (.orlaya-package-card::after in theme.css) — reused via the shared
   --orlaya-plant-stem CSS var so this widget (used standalone on the
   Pricing page) matches the homepage cards exactly without requiring an
   uploaded decoration image per card. */

.orlaya-widget-package h3 { margin: 0 0 .1rem; font-size: clamp(1.45rem,2vw,1.9rem); font-weight: 400; }
.orlaya-widget-package__secondary { margin: 0 0 .75rem; color: #6b705f; font-family: Georgia,serif; }
.orlaya-widget-package__description { min-height: 4.5rem; margin: 0 0 .75rem; color: #525E47; line-height: 1.75; }
.orlaya-widget-package__price { align-self: flex-start; margin: 0 0 .35rem; padding: .28rem .65rem; color: #657057; background: rgba(139,151,111,.13); font-size: .76rem; }
.orlaya-widget-package ul { margin: .6rem 0 1.25rem; padding-inline-start: 1.15rem; font-size: .9rem; line-height: 1.8; }
.orlaya-widget-package li::marker { color: #667451; }
.orlaya-widget-package__button { position: relative; z-index: 2; align-self: flex-start; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; margin-top: auto; padding: .68rem 1.15rem; border-radius: 3px; color: var(--orlaya-widget-white); background: var(--orlaya-widget-green); font-size: .82rem; text-decoration: none; }
.orlaya-widget-package__badge { position: absolute; inset: 1.25rem auto auto 1.25rem; z-index: 3; padding: .28rem .65rem; border: 1px solid rgba(45,59,36,.12); border-radius: 999px; color: var(--orlaya-widget-green); background: rgba(255,253,247,.62); font-size: .72rem; }
.orlaya-widget-package__decoration { position: absolute; z-index: 0; inset: auto auto -.5rem -.5rem; width: 9rem; height: 16rem; object-fit: contain; object-position: bottom left; opacity: .38; pointer-events: none; }

/* Clients. */
.orlaya-widget-clients { width: 100%; padding: clamp(3.25rem,5vw,4.5rem) clamp(1rem,6vw,6rem); background: #fbf8f1; }
.orlaya-widget-clients h2 { margin: 0; font-size: clamp(1.55rem,2.5vw,2.15rem); font-weight: 400; text-align: center; }
.orlaya-widget-clients__grid { width: min(100%,900px); display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 2rem; align-items: center; margin: 1.8rem auto 0; }
/* The logo list is rendered twice (see Client_Logos::render). Desktop shows a
   single static row, so the duplicate is hidden here and only comes into play
   for the mobile marquee below. */
.orlaya-widget-clients__grid[aria-hidden="true"] { display: none; }
.orlaya-widget-client { min-height: 4.25rem; display: grid; place-items: center; padding: .5rem; color: #616E56; filter: grayscale(1); opacity: .66; font-size: clamp(1.05rem,1.6vw,1.4rem); font-weight: 500; text-align: center; text-decoration: none; transition: filter .2s ease, opacity .2s ease, color .2s ease; }
.orlaya-widget-client:hover { filter: none; opacity: 1; color: var(--orlaya-widget-green); }
.orlaya-widget-client img { width: auto; max-width: 100%; max-height: 4rem; height: auto; object-fit: contain; }

@keyframes orlaya-widget-petal-float { 50% { transform: translate(6px,10px) rotate(1deg); } }

@media (max-width: 1100px) {
  .orlaya-widget-methodology__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem 1rem; }
  .orlaya-widget-packages__grid { max-width: 56rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .orlaya-widget-package:last-child { width: min(100%,27rem); grid-column: 1 / -1; justify-self: center; }
}
@media (max-width: 960px) {
  .orlaya-widget-journey__layers { transform: scale(var(--orlaya-widget-scale-tablet)); }
  .orlaya-widget-stage { grid-template-columns: minmax(0,1fr) minmax(230px,34vw) minmax(0,1fr); padding-inline: clamp(1.5rem,4vw,3rem); }
}
@media (max-width: 820px) {
  .orlaya-widget-methodology__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  /* Logos: a 2-column grid put five brands in a ragged block with an empty
     cell — the client asked for a moving strip instead. Both rendered copies
     of the list are shown here and the track scrolls exactly one copy-width,
     so the loop restarts on an identical frame and reads as continuous.
     `width: max-content` stops the flex track from being squeezed to the
     viewport, which would otherwise compress the logos instead of overflowing
     them. */
  .orlaya-widget-clients { overflow: hidden; }
  .orlaya-widget-clients__track {
    width: max-content;
    display: flex;
    animation: orlaya-widget-logo-marquee 22s linear infinite;
  }
  .orlaya-widget-clients__grid,
  .orlaya-widget-clients__grid[aria-hidden="true"] {
    width: auto;
    display: flex;
    grid-template-columns: none;
    gap: 2.5rem;
    margin-inline: 0;
    padding-inline: 1.25rem;
  }
  .orlaya-widget-clients__grid .orlaya-widget-client { min-width: 7rem; }
  @keyframes orlaya-widget-logo-marquee {
    from { transform: translateX(0); }
    /* RTL: the track's start edge is on the right, so it travels right for the
       list to read in the same direction as the text. */
    to { transform: translateX(50%); }
  }
  .orlaya-widget-journey { padding-top: clamp(2.5rem,10vw,4rem); }
  .orlaya-widget-journey__visual { inset: 8.5rem 50% 0 auto; width: min(var(--orlaya-widget-plant-width),72vw); }
  .orlaya-widget-journey__sticky { top: calc(var(--orlaya-widget-safe-offset) + var(--wp-admin--admin-bar--height,0px)); height: clamp(18rem,44svh,22rem); }
  .orlaya-widget-journey__layers { transform: scale(var(--orlaya-widget-scale-mobile)); }
  .orlaya-widget-stage { min-height: max(var(--orlaya-widget-stage-height),34rem); grid-template-columns: 1fr; grid-template-rows: 1fr auto auto; align-items: end; gap: .75rem; padding: 3.75rem 1rem 2.5rem; }
  .orlaya-widget-stage__label { grid-column: 1; grid-row: 2; justify-self: stretch; padding: .9rem 1rem; background: rgba(246,241,231,.78); backdrop-filter: blur(8px); }
  .orlaya-widget-stage__meta { grid-column: 1; grid-row: 3; justify-self: stretch; width: 100%; max-width: none; padding: .8rem 1rem; background: rgba(246,241,231,.78); backdrop-filter: blur(8px); }
  .orlaya-widget-stage[data-stage="4"] .orlaya-widget-stage__label,
  .orlaya-widget-stage[data-stage="4"] .orlaya-widget-stage__meta { background: rgba(23,36,22,.76); }
  .orlaya-widget-stage__label > span { display: inline-block; margin-inline-end: .6rem; font-size: clamp(2.5rem,12vw,3rem); }
  .orlaya-widget-stage__label h3 { display: inline-block; margin: 0; }
  .orlaya-widget-methodology__grid,
  .orlaya-widget-packages__grid { grid-template-columns: 1fr; }
  .orlaya-widget-package,
  .orlaya-widget-package:last-child { width: 100%; min-height: 0; grid-column: auto; }
}
@media (max-width: 420px) {
  .orlaya-widget-stage { padding-inline: .875rem; }
  .orlaya-widget-stage__label,
  .orlaya-widget-stage__meta { padding-inline: .875rem; }
  .orlaya-widget-package { padding: 1.4rem; }
}
@media (max-height: 520px) and (min-width: 601px) {
  .orlaya-widget-journey__sticky { top: calc(var(--orlaya-widget-safe-offset) + var(--wp-admin--admin-bar--height,0px)); height: min(58svh,17rem); }
  .orlaya-widget-stage { min-height: max(var(--orlaya-widget-stage-height),70svh); padding-block: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .orlaya-widget-journey__layer,
  .orlaya-widget-stage__meta,
  .orlaya-widget-stage__label,
  .orlaya-widget-methodology__item,
  .orlaya-widget-package,
  .orlaya-widget-client { transition: none !important; animation: none !important; }
  .orlaya-widget-clients__track { animation: none !important; }
}

/* Pricing table. */
.orlaya-widget-pricing { padding: clamp(3.5rem,6vw,5rem) clamp(1rem,5vw,5rem); background: var(--orlaya-widget-ivory); }
.orlaya-widget-pricing__table { width: min(100%,70rem); margin: 2.5rem auto 0; overflow-x: auto; }
.orlaya-widget-pricing__table table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.orlaya-widget-pricing__table th,
.orlaya-widget-pricing__table td { padding: .85rem 1rem; text-align: center; border-bottom: 1px solid rgba(45,59,36,.12); }
.orlaya-widget-pricing__table thead th { font-weight: 500; color: var(--orlaya-widget-green); }
.orlaya-widget-pricing__table tbody th { text-align: right; font-weight: 400; color: var(--orlaya-widget-charcoal); }
.orlaya-widget-pricing__table .is-featured-col { position: relative; background: rgba(174,183,154,.16); }
.orlaya-widget-kicker { display: block; margin-bottom: .2rem; color: #839071; font-size: .72rem; }
.orlaya-widget-pricing__table svg { width: 1.15rem; height: 1.15rem; display: inline-block; }
.orlaya-widget-pricing__table svg.is-yes { color: #4c6b3a; }
.orlaya-widget-pricing__table svg.is-no { color: #b4756a; opacity: .55; }
.orlaya-widget-pricing__note { width: min(100%,70rem); margin: 1rem auto 0; color: #6b705f; font-size: .85rem; text-align: center; }
@media (max-width: 700px) {
  .orlaya-widget-pricing__table table { font-size: .82rem; }
  .orlaya-widget-pricing__table th,
  .orlaya-widget-pricing__table td { padding: .6rem .5rem; }
}

/* Contact page (badge + heading + two-column info/form layout). Field
   values (rgb colors, spacing) intentionally match the design the owner
   already approved and used live via the mu-plugin's the_content override;
   duplicated here so this widget owns its own look and keeps working even
   if that mu-plugin file is edited or removed later. */
.orlaya-contact-page-section {
  padding-top: clamp(4rem,7vw,6rem);
  padding-bottom: clamp(4rem,7vw,6rem);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  color: #1F1C18;
  box-sizing: border-box;
  width: 100%;
}
.orlaya-contact-container { max-width: 1240px; margin: 0 auto; box-sizing: border-box; }
.orlaya-contact-intro { text-align: center; margin-bottom: 3.5rem; }
.orlaya-badge {
  display: inline-block;
  padding: .4rem 1.1rem;
  background: rgba(59,82,47,.12);
  border: 1px solid rgba(59,82,47,.25);
  color: #3B522F;
  border-radius: 50px;
  font-size: .88rem;
  font-weight: 500;
  margin-bottom: .95rem;
}
.orlaya-contact-intro h1 { font-size: clamp(2.2rem,3.8vw,3rem); color: #1F1C18; font-weight: 500; margin: 0 0 .75rem; line-height: 1.3; }
.orlaya-contact-intro p { font-size: 1.1rem; color: #4D4A42; max-width: 620px; margin: 0 auto; line-height: 1.65; }

.orlaya-contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 3rem; align-items: start; box-sizing: border-box; }
@media (max-width: 991px) { .orlaya-contact-grid { grid-template-columns: 1fr; gap: 2.5rem; } }

/* Info column (right). */
.orlaya-contact-info-column { display: flex; flex-direction: column; gap: 1.25rem; }
.orlaya-contact-card {
  display: flex; align-items: center; gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  background: #FAF7F0;
  border: 1px solid rgba(220,210,195,.6);
  border-radius: 16px;
  box-shadow: 0 4px 18px rgba(40,42,36,.035);
  transition: all .25s ease;
}
.orlaya-contact-card:hover {
  background: #FAF6EF;
  border-color: rgba(168,178,147,.6);
  transform: translateX(-4px);
  box-shadow: 0 8px 24px rgba(40,42,36,.06);
}
.orlaya-contact-icon {
  width: 48px; height: 48px; border-radius: 12px;
  background: rgba(59,82,47,.1);
  border: 1px solid rgba(59,82,47,.2);
  color: #3B522F;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.orlaya-contact-icon svg { width: 22px; height: 22px; }
.orlaya-contact-details { display: flex; flex-direction: column; text-align: right; }
.orlaya-contact-label { font-size: .82rem; color: #6C7262; margin-bottom: .2rem; font-weight: 500; }
.orlaya-contact-value { font-size: 1.05rem; color: #1F1C18; font-weight: 500; text-decoration: none; transition: color .2s ease; }
.orlaya-phone-number { direction: ltr; unicode-bidi: embed; display: inline-block; text-align: left; }
a.orlaya-contact-value:hover { color: #3B522F; }
.orlaya-btn-whatsapp {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  padding: 1rem 1.75rem;
  background: #25D366; color: #073319; font-weight: 500;
  border-radius: 14px; text-decoration: none; margin-top: .5rem;
  transition: all .25s ease;
  box-shadow: 0 4px 16px rgba(37,211,102,.25);
}
.orlaya-btn-whatsapp:hover { background: #20BA5A; color: var(--orlaya-widget-forest); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(37,211,102,.4); }

/* Form column (left). */
.orlaya-contact-form-column {
  background: linear-gradient(180deg,#F8F4EA 0%,#F4EDE0 100%);
  border: 1px solid rgba(225,215,198,.85);
  border-radius: 24px;
  padding: 2.5rem 2.25rem;
  box-shadow: 0 12px 32px rgba(60,50,35,.07);
}
.orlaya-form-title { font-size: 1.6rem; color: #1F1C18; font-weight: 500; margin: 0 0 .35rem; text-align: right; }
.orlaya-form-sub { font-size: .92rem; color: #555048; margin: 0 0 1.75rem; text-align: right; }
.orlaya-form-group { display: flex; flex-direction: column; text-align: right; margin-bottom: 1.25rem; }
.orlaya-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .orlaya-form-row { grid-template-columns: 1fr; } }
.orlaya-form-group label { font-size: .88rem; color: #2D2923; margin-bottom: .45rem; font-weight: 500; }
.orlaya-form-group input,
.orlaya-form-group select,
.orlaya-form-group textarea {
  background: #FFFDF7;
  border: 1px solid rgba(215,205,190,.8);
  border-radius: 12px;
  padding: .85rem 1rem;
  color: #1F1C18;
  font-size: .95rem;
  font-family: inherit;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
}
.orlaya-form-group input:focus,
.orlaya-form-group select:focus,
.orlaya-form-group textarea:focus { border-color: #3B522F; box-shadow: 0 0 0 3px rgba(59,82,47,.15); }
.orlaya-form-group input.is-invalid,
.orlaya-form-group select.is-invalid,
.orlaya-form-group textarea.is-invalid { border-color: #a5433a; box-shadow: 0 0 0 3px rgba(165,67,58,.12); }
.orlaya-form-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  width: 100%;
  padding: 1.1rem 2rem;
  background: #3B522F; color: #FFFDF7;
  font-size: 1.05rem; font-weight: 400;
  border: none; border-radius: 14px; cursor: pointer;
  transition: all .25s ease;
  margin-top: .5rem;
  box-shadow: 0 4px 18px rgba(59,82,47,.25);
}
.orlaya-form-submit:hover:not(:disabled) { background: #2D3B24; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(59,82,47,.4); }
.orlaya-form-submit:disabled { opacity: .6; cursor: progress; transform: none; }

.orlaya-widget-contact__hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.orlaya-widget-contact__required { color: #a5433a; }
.orlaya-widget-contact__status { font-size: .9rem; margin-top: .5rem; text-align: right; }
.orlaya-widget-contact__status.is-success { color: #3b5a2c; }
.orlaya-widget-contact__status.is-error { color: #a5433a; }

/* Portfolio widget.
   The grid/tab/placeholder/tag classes below are shared with the theme's own
   .orlaya-portfolio-* rules (assets/css/theme.css), which the previous
   hard-coded portfolio markup used — the widget deliberately reuses the same
   class names so the visual result is identical. Only the wrapper padding and
   the widget-only additions (real project images, titles, links, and the
   [hidden] filter state) are defined here. */
.orlaya-widget-portfolio { padding: clamp(1rem,3vw,2rem) clamp(1rem,4vw,4rem) clamp(4rem,7vw,6rem); }
.orlaya-widget-portfolio .orlaya-portfolio-item[hidden] { display: none; }
.orlaya-portfolio-link { display: block; text-decoration: none; }
.orlaya-portfolio-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
  transition: transform .3s ease;
}
.orlaya-portfolio-link:hover .orlaya-portfolio-image { transform: translateY(-4px); }
.orlaya-portfolio-title {
  margin: 0 !important;
  font-size: 1rem;
  font-weight: 500;
  color: #2D3B24;
}
