/* ==========================================================
   LIM & ANI PARTNERS — FLAGSHIP INTERACTION LAYER v1.5
   Restrained motion, package planner, accessible navigation
   and conversion controls. No dependency on a page builder.
   ========================================================== */

/* Optional WordPress featured image becomes a cinematic hero texture. */
.lap-home-hero-media {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.lap-home-hero-media::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(6, 19, 31, 0.98) 0%, rgba(6, 19, 31, 0.88) 48%, rgba(6, 19, 31, 0.64) 100%),
    linear-gradient(0deg, rgba(6, 19, 31, 0.45), transparent 60%);
  content: "";
}

.lap-home-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.78) contrast(1.06);
  transform: scale(1.015);
}

/* Persistent premium header: compact after the visitor begins scrolling. */
.site-header {
  position: sticky !important;
  top: 0;
  backdrop-filter: saturate(1.25) blur(14px);
  -webkit-backdrop-filter: saturate(1.25) blur(14px);
  transition: background-color 220ms ease, box-shadow 220ms ease;
}

.admin-bar .site-header {
  top: 32px;
}

.site-header .lap-home-header-inner,
.site-header .lap-home-branding img,
.site-header .lap-home-branding .custom-logo,
.site-header .main-navigation .menu > li > a {
  transition: min-height 220ms ease, max-height 220ms ease, box-shadow 220ms ease;
}

.site-header.lap-header-compact {
  background: rgba(255, 253, 248, 0.94);
  box-shadow: 0 14px 38px rgba(6, 19, 31, 0.13);
}

.site-header.lap-header-compact .lap-home-header-inner,
.site-header.lap-header-compact .main-navigation .menu > li > a {
  min-height: 66px;
}

.site-header.lap-header-compact .lap-home-branding img,
.site-header.lap-header-compact .lap-home-branding .custom-logo {
  max-height: 38px;
}

.lap-home-branding .custom-logo-link {
  position: relative;
  border-radius: 50%;
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  overflow: hidden;
  border: 1px solid rgba(189, 148, 68, 0.72);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 5px 18px rgba(6, 19, 31, 0.1), inset 0 0 0 3px rgba(234, 210, 157, 0.2);
  transition: filter 200ms ease, transform 200ms ease;
}

/* The approved WordPress logo uses a wide 360x90 transparent canvas with its
   circular emblem in the centre. Crop that canvas in CSS so the actual mark
   remains legible on desktop and mobile without replacing the media item. */
.site-header .lap-home-branding .custom-logo-link img.custom-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto !important;
  height: 70px !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: initial;
  transform: translate(-50%, -50%);
}

.site-header.lap-header-compact .lap-home-branding .custom-logo-link {
  width: 48px;
  height: 48px;
  flex-basis: 48px;
}

.site-header.lap-header-compact .lap-home-branding .custom-logo-link img.custom-logo {
  height: 60px !important;
  max-height: none !important;
}

.lap-home-branding .custom-logo-link:hover,
.lap-home-branding .custom-logo-link:focus-visible {
  filter: drop-shadow(0 0 9px rgba(189, 148, 68, 0.5));
  transform: translateY(-1px);
}

/* Package planner */
.lap-home-planner {
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 10%, rgba(208, 174, 100, 0.17), transparent 28%),
    linear-gradient(135deg, #fdfcf9 0%, #f4efe3 100%);
}

.lap-home-planner-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1.18fr);
  align-items: start;
  gap: clamp(48px, 7vw, 104px);
}

.lap-home-planner-copy {
  position: sticky;
  top: 32px;
}

.lap-home-planner-copy h2 {
  margin-right: 0;
  margin-left: 0;
}

.lap-home-planner-copy > p:last-child {
  max-width: 590px;
  color: var(--lap-muted);
}

.lap-home-planner-form {
  position: relative;
  padding: clamp(30px, 4vw, 52px);
  border: 1px solid rgba(135, 101, 43, 0.24);
  border-top: 4px solid var(--lap-gold-500);
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 28px 70px rgba(6, 19, 31, 0.11);
}

.lap-home-planner-form::before {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 54px;
  height: 54px;
  border-top: 1px solid rgba(164, 125, 53, 0.38);
  border-right: 1px solid rgba(164, 125, 53, 0.38);
  content: "";
}

.lap-home-planner-progress {
  margin: 0 0 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(135, 101, 43, 0.18);
}

.lap-home-planner-progress-copy {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 9px;
  color: var(--lap-muted);
  font-size: 12px;
}

.lap-home-planner-progress-copy strong {
  color: var(--lap-navy-900);
}

.lap-home-planner-progress-track {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(20, 43, 72, 0.12);
}

.lap-home-planner-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--lap-gold-700), var(--lap-gold-400));
  transition: width 240ms ease;
}

.lap-home-planner-field {
  margin: 0 0 25px;
}

.lap-home-planner-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--lap-navy-900);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}

.lap-home-planner-field select {
  width: 100%;
  min-height: 54px;
  padding: 0 45px 0 16px;
  border: 1px solid var(--lap-border);
  border-radius: 2px;
  color: var(--lap-text);
  background: #fff;
  font: inherit;
  font-size: 15px;
}

.lap-home-planner-field select:focus-visible {
  outline: 3px solid var(--lap-gold-400);
  outline-offset: 3px;
}

.lap-home-planner-privacy {
  margin: 14px 0 0;
  color: var(--lap-muted);
  font-size: 12px;
  line-height: 1.55;
}

.lap-home-planner-result {
  margin-top: 28px;
  padding: 24px;
  border-left: 4px solid var(--lap-gold-500);
  background: var(--lap-navy-900);
  color: #d8e0e7;
  box-shadow: 0 18px 44px rgba(6, 19, 31, 0.17);
}

.lap-home-planner-result[hidden] {
  display: none;
}

.lap-home-planner-result small,
.lap-home-planner-result strong {
  display: block;
}

.lap-home-planner-result small {
  margin-bottom: 5px;
  color: var(--lap-gold-400);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.lap-home-planner-result strong {
  color: #fff;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(22px, 3vw, 31px);
}

.lap-home-planner-result p {
  margin: 9px 0 16px;
  font-size: 14px;
  line-height: 1.65;
}

.lap-home-planner-result a {
  color: var(--lap-gold-200);
  font-size: 13px;
  font-weight: 800;
}

.lap-home-package {
  outline: 0 solid transparent;
  transition: transform 220ms ease, box-shadow 220ms ease, outline-color 220ms ease;
}

.lap-home-package.lap-package-recommended {
  z-index: 2;
  outline: 3px solid var(--lap-gold-400);
  outline-offset: 6px;
  box-shadow: 0 30px 72px rgba(0, 0, 0, 0.24);
  transform: translateY(-7px);
}

/* Roadmap remains fully readable without JavaScript; selection adds context. */
.lap-home-hostinger .lap-home-process-item[data-lap-process-step] {
  cursor: pointer;
  transition: padding 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
}

.lap-home-hostinger .lap-home-process-item[data-lap-process-step]:focus-visible {
  outline: 2px solid var(--lap-gold-500);
  outline-offset: 5px;
}

.lap-home-hostinger .lap-home-process-item.lap-process-active {
  padding-right: 24px;
  padding-left: 24px;
  background: linear-gradient(90deg, rgba(234, 210, 157, 0.18), rgba(255, 255, 255, 0));
  box-shadow: inset 4px 0 0 var(--lap-gold-500);
}

.lap-home-service-card:focus-within {
  border-top-color: var(--lap-gold-500);
  box-shadow: var(--lap-shadow-medium);
  transform: translateY(-3px);
}

/* Single-article reading progress and generated in-page navigation. */
.lap-reading-progress {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 10002;
  height: 3px;
  pointer-events: none;
}

.admin-bar .lap-reading-progress {
  top: 32px;
}

.lap-reading-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--lap-gold-700), var(--lap-gold-200));
  box-shadow: 0 0 12px rgba(189, 148, 68, 0.45);
  transform: scaleX(0);
  transform-origin: left center;
}

.lap-article-toc {
  margin: 0 0 clamp(32px, 5vw, 54px);
  padding: 24px 26px;
  border: 1px solid rgba(135, 101, 43, 0.22);
  border-left: 4px solid var(--lap-gold-500);
  background: #fdfbf6;
}

.lap-article-toc[hidden] {
  display: none;
}

.lap-article-toc > strong {
  display: block;
  margin-bottom: 12px;
  color: var(--lap-navy-900);
  font-family: "Libre Baskerville", Georgia, serif;
}

.lap-article-toc [data-lap-article-toc-links] {
  display: grid;
  gap: 8px;
}

.lap-article-toc a {
  color: var(--lap-navy-800);
  font-size: 14px;
  text-decoration-color: rgba(189, 148, 68, 0.55);
  text-underline-offset: 3px;
}

.lap-article-toc a.lap-toc-subitem {
  padding-left: 18px;
  font-size: 13px;
}

.lap-home-entry-content h2,
.lap-home-entry-content h3 {
  scroll-margin-top: 110px;
}

/* Three approved advisory locations now form one balanced row. */
.lapc-office-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Accessible submenu disclosure. Hidden on pointer-friendly desktop menus. */
.lap-submenu-toggle {
  display: none;
}

/* Compact conversion dock. */
.lap-conversion-dock {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9998;
  display: flex;
  overflow: hidden;
  border: 1px solid rgba(208, 174, 100, 0.42);
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 20px 54px rgba(6, 19, 31, 0.19);
}

.lap-conversion-dock a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-decoration: none;
}

.lap-conversion-dock-whatsapp {
  color: #173b30 !important;
  background: #eef7f2;
}

.lap-conversion-dock-whatsapp span {
  margin-right: 8px;
  color: #238b62;
  font-size: 9px;
}

.lap-conversion-dock-advisory {
  color: #071a2c !important;
  background: linear-gradient(135deg, #ead29d, #bd9444);
}

/* Content visibility is never dependent on JavaScript. This explicit
   fail-safe also neutralises stale reveal attributes/classes that a cache
   optimiser may briefly serve after a theme update. */
.lap-motion-ready [data-lap-reveal],
[data-lap-reveal] {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

@media (max-width: 900px) {
  /* The navigation is flex-sized to the hamburger on mobile. It must not be
     the containing block for the dropdown or the menu collapses into a thin
     right-hand strip. The positioned header inner now owns the full drawer. */
  .lap-home-header-inner {
    position: relative !important;
  }

  .site-header .lap-home-branding .custom-logo-link {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
  }

  .site-header .lap-home-branding .custom-logo-link img.custom-logo {
    height: 66px !important;
  }

  .site-header.lap-header-compact .lap-home-branding .custom-logo-link {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .site-header.lap-header-compact .lap-home-branding .custom-logo-link img.custom-logo {
    height: 58px !important;
  }

  /* On tablets and phones the photograph becomes a dedicated cinematic panel.
     A full-height background was technically present but disappeared beneath
     the readability veil on tall screens. Keeping the image in normal flow
     makes the composition intentionally device-adaptive and always visible. */
  .lap-home-hostinger .lap-home-hero {
    padding-top: 0 !important;
  }

  .lap-home-hero-media {
    position: relative;
    z-index: 1;
    inset: auto;
    width: 100%;
    height: clamp(245px, 48vw, 360px);
    border-bottom: 1px solid rgba(208, 174, 100, 0.58);
    box-shadow: inset 0 -1px rgba(255, 255, 255, 0.08);
  }

  .lap-home-hero-media img {
    object-position: 72% 48%;
    filter: saturate(0.9) contrast(1.07);
    transform: scale(1.01);
  }

  .lap-home-hero-media::after {
    background:
      linear-gradient(180deg, rgba(6, 19, 31, 0.05) 0%, rgba(6, 19, 31, 0.12) 52%, rgba(6, 19, 31, 0.72) 100%),
      linear-gradient(90deg, rgba(6, 19, 31, 0.22), rgba(6, 19, 31, 0.03));
  }

  .lap-home-hostinger .lap-home-hero > .lap-home-container {
    position: relative;
    z-index: 2;
    padding-top: clamp(48px, 7vw, 64px);
  }

  .site-header .main-navigation,
  header .main-navigation,
  .main-navigation {
    position: static !important;
  }

  .site-header .main-navigation .menu,
  header .main-navigation .menu,
  .main-navigation .menu {
    position: absolute !important;
    top: calc(100% + 1px) !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: calc(100dvh - 105px) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .site-header .main-navigation .menu > li,
  header .main-navigation .menu > li,
  .main-navigation .menu > li {
    width: 100% !important;
    min-width: 0 !important;
  }

  .site-header .main-navigation .menu > li > a,
  header .main-navigation .menu > li > a,
  .main-navigation .menu > li > a {
    max-width: 100% !important;
    padding-right: 58px !important;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .lap-home-planner-layout {
    grid-template-columns: 1fr;
  }

	.lap-home-planner-copy {
    position: static;
	}

  .lapc-office-grid {
    grid-template-columns: 1fr;
  }

  .menu-item-has-children {
    position: relative;
  }

  .lap-submenu-toggle {
    position: absolute;
    top: 6px;
    right: 7px;
    z-index: 2;
    display: inline-grid;
    width: 42px;
    height: 42px;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .lap-submenu-toggle span {
    width: 8px;
    height: 8px;
    border-right: 2px solid #87652b;
    border-bottom: 2px solid #87652b;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 180ms ease;
  }

  .lap-submenu-toggle[aria-expanded="true"] span {
    transform: rotate(225deg) translate(-1px, -1px);
  }

  .main-navigation li.lap-submenu-open > .sub-menu,
  .site-header li.lap-submenu-open > .sub-menu,
  header li.lap-submenu-open > .sub-menu {
    display: block !important;
  }
}

@media (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }

  .admin-bar .lap-reading-progress {
    top: 46px;
  }
}

@media (max-width: 700px) {
  body {
    padding-bottom: 58px;
  }

  .lap-home-planner-form {
    padding: 28px 20px;
  }

  .lap-home-hostinger .lap-home-hero {
    padding: 0 0 58px !important;
  }

  .lap-home-hero-media {
    height: clamp(218px, 59vw, 280px);
  }

  .lap-home-hostinger .lap-home-hero > .lap-home-container {
    padding-top: 38px;
  }

  .lap-home-hostinger .lap-home-kicker {
    max-width: 34em;
    margin-bottom: 13px;
    font-size: 10px;
    line-height: 1.55;
    letter-spacing: 0.145em;
  }

  .lap-home-hostinger h1,
  .lap-home-hostinger .lap-home-h1,
  .lap-home-hostinger .lap-home-hero-heading {
    max-width: 100%;
    margin-bottom: 22px;
    font-size: clamp(31px, 8.15vw, 38px) !important;
    line-height: 1.09;
    letter-spacing: -0.035em;
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: pretty;
  }

  .lap-home-hostinger .lap-home-company-identity {
    margin-bottom: 28px;
    padding: 20px 19px;
    gap: 6px;
  }

  .lap-home-hostinger .lap-home-company-identity strong {
    font-size: clamp(19px, 5.25vw, 24px);
    line-height: 1.35;
  }

  .lap-home-hostinger .lap-home-company-identity span {
    font-size: 13px;
    line-height: 1.55;
  }

  .lap-home-hostinger .lap-home-company-identity small {
    font-size: 12px;
    line-height: 1.6;
  }

  .lap-home-hostinger .lap-home-hero-tagline {
    margin-bottom: 17px;
    font-size: clamp(23px, 6.2vw, 29px);
    line-height: 1.42;
  }

  .lap-home-hostinger .lap-home-hero-intro {
    margin-bottom: 28px;
    font-size: 16px;
    line-height: 1.68;
  }

  .lap-home-hostinger .lap-home-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .lap-home-hostinger .lap-home-hero-actions .lap-home-button {
    width: 100%;
    box-sizing: border-box;
    justify-content: center;
    text-align: center;
  }

  .lap-conversion-dock {
    position: fixed !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: none !important;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    box-sizing: border-box !important;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
  }

  .lap-conversion-dock a {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px;
    padding-right: 12px;
    padding-left: 12px;
    box-sizing: border-box !important;
  }
}

@media (max-width: 390px) {
  .lap-home-hero-media {
    height: 210px;
  }

  .lap-home-hostinger .lap-home-hero > .lap-home-container {
    padding-top: 34px;
  }

  .lap-home-hostinger h1,
  .lap-home-hostinger .lap-home-h1,
  .lap-home-hostinger .lap-home-hero-heading {
    font-size: clamp(29px, 8.3vw, 33px) !important;
  }

  .lap-home-hostinger .lap-home-company-identity {
    padding: 18px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lap-motion-ready [data-lap-reveal],
  .lap-home-package,
  .lap-submenu-toggle span,
  .site-header,
  .site-header .lap-home-header-inner,
  .site-header .lap-home-branding img,
  .lap-home-branding .custom-logo-link,
  .lap-home-process-item,
  .lap-home-planner-progress-track span {
    transition: none !important;
  }

  .lap-home-package.lap-package-recommended {
    transform: none;
  }
}

@media print {
  .lap-conversion-dock,
  .lap-home-planner {
    display: none !important;
  }
}
