/*
 * Aqui Lo Compro 3.8.17 — Visual Design System Foundation
 * Canonical visual tokens and shared component rules.
 * Loaded after brand-system.css and before experience-polish.css.
 * New UI should consume these tokens instead of introducing arbitrary values.
 */
:root{
  /* Brand */
  --alc-color-brand:var(--alc391-logo,#001870);
  --alc-color-brand-action:var(--alc391-brand,#064fba);
  --alc-color-brand-bright:var(--alc391-bright,#0864cf);
  --alc-color-brand-deep:var(--alc391-deep,#07184d);
  --alc-color-brand-night:var(--alc391-night,#06172f);
  --alc-color-accent:var(--alc391-gold,#c5a164);
  --alc-color-ink:var(--alc391-ink,#0b1d45);
  --alc-color-muted:var(--alc391-muted,#64748a);
  --alc-color-paper:var(--alc391-ivory,#f6f5f1);
  --alc-color-surface:#fff;
  --alc-color-surface-soft:var(--alc391-pale,#eef3fb);
  --alc-color-line:var(--alc391-line,#d6deea);

  /* Typography */
  --alc-font-serif:"Newsreader",Georgia,"Times New Roman",serif;
  --alc-font-sans:"Manrope",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --alc-type-home-hero:clamp(4rem,6.4vw,6.9rem);
  --alc-type-page-title:clamp(3.2rem,5.2vw,5.55rem);
  --alc-type-property-title:clamp(3.55rem,6.5vw,7rem);
  --alc-type-display-xl:var(--alc-type-page-title);
  --alc-type-display-lg:clamp(2.75rem,4.7vw,5.1rem);
  --alc-type-heading-xl:clamp(2.25rem,3.55vw,3.8rem);
  --alc-type-heading-lg:clamp(1.8rem,2.65vw,2.8rem);
  --alc-type-title:clamp(1.48rem,2.05vw,2.2rem);
  --alc-type-body-lg:1.125rem;
  --alc-type-body:1.0625rem;
  --alc-type-small:.9375rem;
  --alc-type-meta:.8125rem;
  --alc-type-nav:.9375rem;
  --alc-type-button:.875rem;
  --alc-leading-display:.95;
  --alc-leading-heading:1.06;
  --alc-leading-body:1.68;
  --alc-reading-width:68ch;

  /* Spacing — 4/8px rhythm with editorial extensions */
  --alc-space-1:4px;
  --alc-space-2:8px;
  --alc-space-3:12px;
  --alc-space-4:16px;
  --alc-space-5:24px;
  --alc-space-6:32px;
  --alc-space-7:40px;
  --alc-space-8:56px;
  --alc-space-9:72px;
  --alc-space-10:96px;
  --alc-space-11:120px;
  --alc-space-12:144px;
  --alc-section-space:clamp(72px,7.5vw,120px);
  --alc-section-space-compact:clamp(56px,5.6vw,88px);
  --alc-card-gap:clamp(18px,2vw,30px);
  --alc-media-copy-gap:clamp(28px,2.35vw,36px);

  /* Layout */
  --alc-container-wide:1320px;
  --alc-container-editorial:1120px;
  --alc-container-reading:900px;
  --alc-gutter-desktop:64px;
  --alc-gutter-tablet:44px;
  --alc-gutter-mobile:30px;
  --alc-gutter-mobile-tight:24px;

  /* Radii */
  --alc-radius-none:0;
  --alc-radius-xs:2px;
  --alc-radius-sm:4px;
  --alc-radius-md:8px;
  --alc-radius-pill:999px;

  /* Icon scale */
  --alc-icon-xs:14px;
  --alc-icon-sm:16px;
  --alc-icon-md:20px;
  --alc-icon-lg:24px;

  /* Elevation. Shadows are intentionally broad and separated from copy. */
  --alc-shadow-surface:0 28px 76px -54px rgba(4,24,70,.24);
  --alc-shadow-media:0 34px 90px -58px rgba(4,24,70,.30);
  --alc-shadow-media-hover:0 52px 124px -62px rgba(4,24,70,.38);
  --alc-shadow-panel:0 42px 116px -52px rgba(3,19,58,.32);
  --alc-shadow-floating:0 24px 72px -38px rgba(3,19,58,.42);
  --alc-shadow-header:0 18px 64px -44px rgba(4,24,70,.34);
  --alc-shadow-menu:0 34px 92px -46px rgba(4,24,70,.32);

  /* Motion */
  --alc-motion-fast:180ms;
  --alc-motion-ui:260ms;
  --alc-motion-normal:340ms;
  --alc-motion-editorial:720ms;
  --alc-motion-slow:900ms;
  --alc-ease-standard:cubic-bezier(.2,.75,.25,1);
  --alc-ease-editorial:cubic-bezier(.16,1,.3,1);

  /* Image overlays */
  --alc-gradient-brand:linear-gradient(155deg,#171066 0%,#0b3b9b 46%,#0864cf 100%);
  --alc-gradient-brand-horizontal:linear-gradient(100deg,#171066 0%,#064fba 58%,#0864cf 100%);
  --alc-gradient-image-readable:linear-gradient(180deg,rgba(4,19,60,0) 6%,rgba(4,27,82,.05) 27%,rgba(4,25,75,.32) 53%,rgba(4,20,61,.80) 76%,rgba(4,20,61,.97) 100%);
  --alc-gradient-image-hover:linear-gradient(180deg,rgba(4,19,60,0) 4%,rgba(4,31,94,.06) 25%,rgba(4,27,82,.35) 51%,rgba(4,20,61,.82) 74%,rgba(4,20,61,.98) 100%);

  /* Legacy aliases — future code should use semantic --alc-* tokens above. */
  --alc3-serif:var(--alc-font-serif);
  --alc3-sans:var(--alc-font-sans);
  --alc3-radius:var(--alc-radius-sm);
  --alc3-radius-sm:var(--alc-radius-xs);
  --alc3-shadow:var(--alc-shadow-panel);
  --alc3-ease:var(--alc-ease-standard);
  --alc383-serif:var(--alc-font-serif);
  --alc383-sans:var(--alc-font-sans);
}

/* ---- Global reading rhythm ---- */
body.alc3-site{
  font-family:var(--alc-font-sans);
  font-size:var(--alc-type-body);
  line-height:var(--alc-leading-body);
  color:var(--alc-color-ink);
}
.alc3-container{width:min(100% - var(--alc-gutter-desktop),var(--alc-container-wide));margin-inline:auto}
.alc3-narrow{width:min(100% - 48px,var(--alc-container-reading));margin-inline:auto}
.alc3-section{padding-block:var(--alc-section-space)}
.alc3-section-head{gap:var(--alc-space-7);margin-bottom:var(--alc-space-8)}
.alc3-section-head>div:first-child{max-width:760px}
.alc3-section-title{
  font-family:var(--alc-font-serif);
  font-size:var(--alc-type-display-lg);
  line-height:var(--alc-leading-display);
  letter-spacing:-.035em;
  text-wrap:balance;
}
.alc3-section-copy{max-width:640px;font-size:var(--alc-type-body);line-height:1.72;color:var(--alc-color-muted)}
.alc3-prose{max-width:var(--alc-reading-width);font-size:var(--alc-type-body);line-height:1.82}
.alc3-prose h2{font-size:var(--alc-type-heading-xl);line-height:var(--alc-leading-heading);text-wrap:balance}
.alc3-prose h3{font-size:var(--alc-type-heading-lg);line-height:1.12;text-wrap:balance}
.alc3-kicker,.alc383-eyebrow{font-size:var(--alc-type-meta);line-height:1.4;letter-spacing:.18em}
.alc3-button,.alc3-text-link{font-size:var(--alc-type-button)}

/* ---- Canonical title hierarchy ----
   Contract: equal role = equal scale across desktop/tablet/mobile.
   Historical component selectors are intentionally enumerated here so legacy
   CSS cannot create different H1 scales between pages. */
.alc3-page-hero h1,
.alc3-signature-hero h1,
.alc3-firm-hero h1,
.alc3-local-hero h1,
.alc3-brand-hero h1,
.alc3-subbrand-hero h1,
.alc-premium-service-hero h1,
.alc3-service-index-hero h1,
.alc3-service-hero h1,
.alc383-collab-hero h1,
.alc3-search-page-hero h1,
.alc373-advisor-intro h1,
.alc3-advisor-copy h1,
.alc376-sell-copy h1,
.alc3-growth-hero h1,
.alc377-client-vault-head h1,
.alc377-client-vault-state h1{
  font-family:var(--alc-font-serif);
  font-size:var(--alc-type-page-title);
  line-height:var(--alc-leading-display);
  letter-spacing:-.045em;
  text-wrap:balance;
  margin-top:0;
  margin-bottom:var(--alc-space-5);
}
/* Home/campaign hero has its own deliberate role, but remains tokenized. */
.alc-luxury-hero h1,
.alc37-hero h1,
.alc3-hero h1{
  font-family:var(--alc-font-serif);
  font-size:var(--alc-type-home-hero);
  line-height:.94;
  letter-spacing:-.045em;
  text-wrap:balance;
}
/* Property dossiers keep a dedicated title scale because the title shares the
   first viewport with price/facts/media. It is still globally standardized. */
.alc3-property-title-row h1,
.alc389-property-heading h1{
  font-family:var(--alc-font-serif);
  font-size:var(--alc-type-property-title);
  line-height:.92;
  letter-spacing:-.048em;
  text-wrap:balance;
}
.alc3-card-title,
.alc3-post-card h2,
.alc3-service-card h3,
.alc3-network-path h3,
.alc3-firm-capabilities h3,
.alc373-advisor-method-grid h3{font-family:var(--alc-font-serif);font-size:var(--alc-type-title);line-height:1.08;letter-spacing:-.025em}
.alc3-service-cta h2,.alc3-private-cta h2,.alc3-local-cta h2{font-family:var(--alc-font-serif);font-size:var(--alc-type-heading-xl);line-height:var(--alc-leading-heading);letter-spacing:-.03em;text-wrap:balance}

/* ---- Controls ---- */
.alc3-button{min-height:50px;padding-inline:22px;transition-duration:var(--alc-motion-ui)}
.alc3-icon-button{width:44px;height:44px}
.alc3-site input,.alc3-site select,.alc3-site textarea{font-size:1rem}
.alc3-site input:focus,.alc3-site select:focus,.alc3-site textarea:focus{box-shadow:0 0 0 3px rgba(6,79,186,.10)}

/* ---- Cards: media elevation + deliberate air before copy ---- */
.alc3-property-grid,.alc3-post-grid,.alc3-service-grid{gap:var(--alc-card-gap)}
.alc3-property-card,.alc3-post-card,.alc3-service-card{box-shadow:none}
.alc3-property-card:hover,.alc3-post-card:hover,.alc3-service-card:hover{box-shadow:none}
.alc3-property-card .alc3-card-media,
.alc3-post-card .alc3-post-card-media,
.alc3-service-card .alc3-service-card-media{
  margin-bottom:var(--alc-space-2);
  box-shadow:var(--alc-shadow-media);
  transition:box-shadow var(--alc-motion-normal) var(--alc-ease-editorial),transform var(--alc-motion-normal) var(--alc-ease-editorial);
}
.alc3-property-card:hover .alc3-card-media,
.alc3-post-card:hover .alc3-post-card-media,
.alc3-service-card:hover .alc3-service-card-media{box-shadow:var(--alc-shadow-media-hover)}
.alc3-card-body,.alc3-post-card-body,.alc3-service-card-body{padding-top:var(--alc-space-5)}
.alc3-card-location,.alc3-post-meta{font-size:var(--alc-type-meta)}
.alc3-card-subtitle,.alc3-post-card-body>p{font-size:var(--alc-type-small);line-height:1.68}
.alc3-card-facts{font-size:var(--alc-type-meta)}

/* ---- Canonical elevation ---- */
.alc383-header.is-scrolled{box-shadow:var(--alc-shadow-header)}
.alc383-nav .sub-menu{box-shadow:var(--alc-shadow-menu)}
.alc3812-firm-logo-panel,.alc389-decision-card{box-shadow:var(--alc-shadow-panel)}
.alc389-tour-quick{box-shadow:var(--alc-shadow-floating)}

/* ---- Image-copy safety ---- */
.alc3-home-signature-card:after{background:var(--alc-gradient-image-readable)}
.alc3-home-signature-card:hover:after{background:var(--alc-gradient-image-hover)}
.alc3-home-signature-card>div{padding-top:var(--alc-space-8)}
.alc374-insights .alc3-post-card-media:after{height:58%}
.alc374-insights .alc3-post-card-body{padding-top:var(--alc-media-copy-gap)}

/* ---- Standard responsive contract ---- */
@media(max-width:1100px){
  .alc3-container{width:min(100% - var(--alc-gutter-tablet),var(--alc-container-wide))}
  .alc3-section{padding-block:clamp(64px,7vw,96px)}
}
@media(max-width:782px){
  :root{
    --alc-type-home-hero:clamp(3rem,14vw,4.65rem);
    --alc-type-page-title:clamp(2.8rem,12vw,4rem);
    --alc-type-property-title:clamp(3rem,13vw,4.65rem);
    --alc-type-display-xl:var(--alc-type-page-title);
    --alc-type-display-lg:clamp(2.5rem,10.8vw,3.85rem);
    --alc-type-heading-xl:clamp(2rem,8.6vw,3rem);
    --alc-type-heading-lg:clamp(1.7rem,7vw,2.35rem);
    --alc-type-title:clamp(1.45rem,6.2vw,2rem);
    --alc-type-body-lg:1.0625rem;
    --alc-type-body:1rem;
    --alc-type-small:.9375rem;
    --alc-type-meta:.8125rem;
    --alc-section-space:64px;
    --alc-card-gap:28px;
    --alc-media-copy-gap:30px;
  }
  .alc3-container{width:min(100% - var(--alc-gutter-mobile),var(--alc-container-wide))}
  .alc3-narrow{width:min(100% - var(--alc-gutter-mobile),var(--alc-container-reading))}
  .alc3-section{padding-block:var(--alc-section-space)}
  .alc3-section-head{gap:var(--alc-space-5);margin-bottom:var(--alc-space-7)}
  .alc3-card-body,.alc3-post-card-body,.alc3-service-card-body{padding-top:var(--alc-media-copy-gap)}
  .alc3-property-card .alc3-card-media,.alc3-post-card .alc3-post-card-media,.alc3-service-card .alc3-service-card-media{box-shadow:var(--alc-shadow-surface)}
}
@media(max-width:390px){
  :root{
    --alc-type-home-hero:clamp(2.85rem,13.4vw,4rem);
    --alc-type-page-title:clamp(2.55rem,11.6vw,3.45rem);
    --alc-type-property-title:clamp(2.75rem,12.4vw,4rem);
  }
  .alc3-container,.alc3-narrow{width:min(100% - var(--alc-gutter-mobile-tight),var(--alc-container-wide))}
  .alc3-section{padding-block:56px}
}
@media(prefers-reduced-motion:reduce){
  :root{--alc-motion-fast:0ms;--alc-motion-ui:0ms;--alc-motion-normal:0ms;--alc-motion-editorial:0ms;--alc-motion-slow:0ms}
}

/* ---- Legibility floor for recurring metadata/UI ---- */
.alc383-topbar,
.alc383-topbar__social,
.alc3-nav a,
.alc383-nav>ul>li>a,
.alc383-nav .alc3-auto-menu>li>a,
.alc3-search-grid label,
.alc3-card-badge,
.alc3-card-location,
.alc3-post-meta,
.alc3-property-tools>span,
.alc3-advisor-role,
.alc3-breadcrumbs,
.alc37-client-path small,
.alc3-post-card-media>span,
.alc372-advisory-strip span,
.alc37-search-heading span,
.alc374-tools-intro span,
.alc3-home-signature-card span,
.alc3-home-east>div:first-child span,
.alc3-network-path small,
.alc383-collab-hero__visual figcaption,
.alc3-footer h3,
.alc377-footer-discovery h3,
.alc377-footer-socials a,
.alc377-footer-popular a,
.alc377-footer-bottom,
.alc377-footer-disclaimer,
.alc3811-route__number,
.alc3812-firm-logo-panel span,
.alc3-zone-select__group>p,
.alc389-gallery-count,
.alc389-panel-label,
.alc389-secondary-cta,
.alc389-property-nav a,
.alc389-media-experience .alc374-media-tab,
.alc389-agent-card span,
.alc389-text-link{
  font-size:var(--alc-type-meta);
}
.alc389-demo-chip,
.alc389-availability,
.alc389-decision-spec span:not(.alc389-icon),
.alc389-representation-mini small,
.alc389-dossier-list small,
.alc389-dossier-tools>span{
  font-size:.75rem;
}
.alc3-wordmark em,.alc375-demo-badge,.alc375-verified-badge{font-size:.7rem}

/* ---- Shared layout helpers used by future templates ---- */
.alc-layout-editorial{width:min(100% - var(--alc-gutter-desktop),var(--alc-container-editorial));margin-inline:auto}
.alc-layout-reading{width:min(100% - var(--alc-gutter-desktop),var(--alc-container-reading));margin-inline:auto}
.alc-section--compact{padding-block:var(--alc-section-space-compact)}
.alc-type-display-xl{font:500 var(--alc-type-display-xl)/var(--alc-leading-display) var(--alc-font-serif);letter-spacing:-.045em}
.alc-type-display-lg{font:500 var(--alc-type-display-lg)/var(--alc-leading-display) var(--alc-font-serif);letter-spacing:-.035em}
.alc-type-heading{font:500 var(--alc-type-heading-xl)/var(--alc-leading-heading) var(--alc-font-serif);letter-spacing:-.03em}
.alc-copy-reading{max-width:var(--alc-reading-width);font-size:var(--alc-type-body);line-height:var(--alc-leading-body)}

@media(max-width:782px){
  .alc-layout-editorial,.alc-layout-reading{width:min(100% - var(--alc-gutter-mobile),100%)}
}
@media(max-width:390px){
  .alc-layout-editorial,.alc-layout-reading{width:min(100% - var(--alc-gutter-mobile-tight),100%)}
}
