/* ═══ allys — foaie de stil a șablonului ═══════════════════════════════════════════════════
   Portată din macheta `/var/www/deximo-preview/allys/styles.css` (Server 2). Marius, 4 sep 2026:
   „mă interesează să respectăm designul făcut deja, să nu schimbăm elementele, structura etc."
   Deci CSS-ul e păstrat, nu rescris în Tailwind — traducerea a 174 de culori literale în clase ar
   fi rescris designul, nu l-ar fi portat.

   Servită STATIC din /public, prin <link> condiționat pe `template === 'allys'`
   ([domain]/layout.tsx și preview/[template]/layout.tsx) — NU importată în `index.ts`.
   Motivul e cel scris deja la realpress: un import ar băga fișierul în uniunea CSS
   render-blocking a TUTUROR paginilor, inclusiv ale site-urilor care nu folosesc allys.

   Totul e scopat sub `.allys`, ca regulile generice (`.section`, `.brand`, `.eyebrow`) să nu
   scape peste restul platformei.

   Ce s-a schimbat față de machetă, și de ce:
   1. PRIMUL bloc `:root` a fost scos — era cod mort. Sunt două în machetă, al doilea îl
      suprascrie; `--blue` și `--paper` din primul nu se folosesc nicăieri, iar `DM Sans` pe care
      îl cerea nu se încărca.
   2. Cele 174 de culori scrise direct (79 hex + 95 rgba) devin tokeni `--a-*`, ca site-ul să preia
      culoarea agenției. Altfel agenția își punea brandul și site-ul rămânea Deximo.
   3. Ecranul de încărcare (`.loader`) a fost scos — cerut de Marius: întârzie afișarea și strică
      scorul PSI, la care avem proiect deschis.
   4. Comutatorul de limbă (`.language`) a fost scos — n-avem multilingv pe site-uri.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */

.allys {
  /* Numele variabilelor sunt CELE DIN MACHETĂ (`--navy`, `--ink`, `--primary`, `--gold`, `--line`,
     `--pad`) — regulile portate le folosesc pe astea, în 47 de locuri. Redenumindu-le, rămâneau
     nedefinite: exact ce s-a întâmplat la prima încercare, unde `.text-link` avea
     `color: var(--ink)` nedefinit, moștenea albul eroului și ieșea alb pe alb.
     Valorile vin din culorile agenției; rezervele sunt paleta machetei. */
  --navy: var(--color-text, #151c2d);
  --ink: var(--color-text, #20283a);
  --primary: var(--color-primary, #007a87);
  --gold: var(--color-accent, #e4ce4a);
  --line: rgba(32,40,58,.1);
  --pad: clamp(22px,5vw,80px);

  /* Aliasuri pentru culorile care erau scrise DIRECT în machetă (nu prin variabilă) și pe care
     le-am mutat pe tokeni ca site-ul să preia brandul agenției. */
  --a-navy: var(--navy);
  --a-ink: var(--ink);
  --a-primary: var(--primary);
  --a-gold: var(--gold);
  --a-gold-soft: var(--color-accent, #dfc36e);
  --a-paper: var(--color-background, #f7f8fa);
  --a-paper-2: #f4f4f1;
  --a-paper-3: #f2f3f3;
  --a-portrait-bg: #e8e8e3;

  font-family: var(--font-body, 'Nunito Sans'), system-ui, sans-serif;
  color: var(--ink);
}

/* Fontul monospace al etichetelor mici. În machetă era cerut în CSS dar NICIODATĂ încărcat —
   `<link>` avea doar Nunito Sans, deci toate etichetele cădeau tăcut pe fontul implicit.
   Se încarcă acum din layout, lângă fonturile agenției. */
.allys .eyebrow, .allys .section-heading > p, .allys .properties-head > div > p,
.allys .story-copy > p { font-family: var(--a-mono, 'DM Mono'), ui-monospace, monospace; }

@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400&display=swap');
*{box-sizing:border-box}
.allys{margin:0;overflow-x:clip}
.allys a{color:inherit;text-decoration:none}
.allys button,.allys input{font:inherit}
.allys button{cursor:pointer}

@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400&display=swap');
*{box-sizing:border-box}
.allys{margin:0;overflow-x:clip}
.allys a{color:inherit;text-decoration:none}
.allys button, .allys input{font:inherit}
.allys button{cursor:pointer}

.allys .site-header{position:fixed;z-index:100;top:18px;left:var(--pad);right:var(--pad);height:66px;padding:0 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:white;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);backdrop-filter:blur(13px);transition:.4s}
.allys .site-header.scrolled{top:0;left:0;right:0;padding:0 var(--pad);background:rgba(17,25,37,.94);border-color:transparent}
.allys .brand{display:flex;align-items:center;gap:10px;width:max-content}
.allys .brand svg{width:29px;fill:none;stroke:currentColor;stroke-width:1.5}
.allys .brand b{font-size:.85rem;letter-spacing:.16em}
.allys .site-header nav{display:flex;gap:2rem;font-size:.68rem}
.allys .site-header nav a{position:relative}
.allys .site-header nav a:after{content:'';position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--gold);transition:.3s}
.allys .site-header nav a:hover:after{right:0}
.allys .header-actions{justify-self:end;display:flex;align-items:center;gap:1rem}

.allys .nav-cta{display:flex;align-items:center;gap:1.3rem;padding:.85rem 1rem;background:white;color:var(--ink);font-size:.65rem;font-weight:600}
.allys .nav-cta span{color:var(--gold)}
.allys .menu-button{display:none;border:0;background:none;color:white;font-size:1.25rem}
.allys .hero{position:relative;height:100svh;min-height:720px;color:white;overflow:hidden}
.allys .hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:hero-scale 9s ease-out both}
@keyframes hero-scale{from{transform:scale(1.07)}to{transform:scale(1)}}
.allys .hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,15,23,.76),rgba(8,15,23,.08) 66%),linear-gradient(0deg,rgba(8,15,23,.42),transparent 42%)}
.allys .hero-copy{position:absolute;z-index:2;left:var(--pad);top:50%;width:min(660px,55vw);transform:translateY(-46%)}
.allys .eyebrow, .allys .section-heading>p, .allys .properties-head>div>p, .allys .story-copy>p{font:400 .61rem 'DM Mono';text-transform:uppercase;letter-spacing:.18em}
.allys .eyebrow:before, .allys .section-heading>p:before, .allys .properties-head>div>p:before, .allys .story-copy>p:before{content:'';display:inline-block;width:30px;height:1px;margin-right:12px;vertical-align:middle;background:var(--gold)}
.allys .hero h1{margin:1.5rem 0;font-size:clamp(4.2rem,7.2vw,8.2rem);font-weight:300;line-height:.82;letter-spacing:-.065em}
.allys .hero h1 em{font-style:normal;color:var(--a-gold-soft)}
.allys .hero-lead{width:390px;max-width:90%;font-size:.84rem;line-height:1.75;color:rgba(255,255,255,.75)}
.allys .text-link{display:flex;align-items:center;justify-content:space-between;width:250px;margin-top:2rem;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.5);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.allys .text-link span{font-size:1rem;transition:.3s}
.allys .text-link:hover span{transform:translateX(6px)}
.allys .feature-card{position:absolute;z-index:2;right:var(--pad);bottom:8vh;width:305px;padding:2rem;background:rgba(15,24,34,.68);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16)}
.allys .feature-card .pill{display:inline-block;padding:.45rem .6rem;background:var(--gold);color:var(--navy);font:.5rem 'DM Mono';text-transform:uppercase}
.allys .feature-card small{display:block;margin:1.3rem 0 .6rem;font:.54rem 'DM Mono';text-transform:uppercase;color:rgba(255,255,255,.62)}
.allys .feature-card h2{font-size:2.25rem;font-weight:300;line-height:.92;margin:.5rem 0}
.allys .feature-card p{font-size:.65rem;color:rgba(255,255,255,.66)}
.allys .feature-card>div{display:flex;justify-content:space-between;align-items:end;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.18)}
.allys .feature-card>div b{font-weight:500}
.allys .feature-card>div a{width:38px;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);transition:.3s}
.allys .feature-card>div a:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.allys .hero-controls{position:absolute;z-index:2;left:var(--pad);bottom:5vh;display:flex;align-items:center;gap:.8rem}
.allys .hero-controls button{width:36px;aspect-ratio:1;border:1px solid rgba(255,255,255,.35);background:none;color:white}
.allys .hero-controls span{width:90px;height:1px;background:rgba(255,255,255,.3)}
.allys .hero-controls span i{display:block;width:33%;height:100%;background:white}
.allys .hero-controls b{font-size:.7rem}
.allys .hero-controls small{font-size:.6rem;color:rgba(255,255,255,.45)}
.allys .scroll-cue{position:absolute;z-index:2;right:var(--pad);bottom:3vh;font:.52rem 'DM Mono';text-transform:uppercase;writing-mode:vertical-rl;display:flex;align-items:center;gap:1rem}
.allys .scroll-cue i{width:1px;height:38px;background:rgba(255,255,255,.5)}
.allys .section{padding:clamp(90px,11vw,180px) var(--pad)}
.allys .section-heading{display:grid;grid-template-columns:.6fr 1.5fr .7fr;gap:4vw;align-items:start}
.allys .section-heading h2, .allys .properties h2{margin:0;font-size:clamp(3.2rem,5vw,6.4rem);font-weight:300;line-height:.9;letter-spacing:-.06em}
.allys .section-heading>span{font-size:.78rem;line-height:1.8;color:#657080}
.allys .service-list{width:min(1180px,88vw);margin:8rem auto 0;border-top:1px solid var(--line)}
.allys .service{display:grid;grid-template-columns:70px 1fr 40px;align-items:start;padding:2.1rem 1rem;border-bottom:1px solid var(--line);transition:.45s}
.allys .service>b{font:400 .58rem 'DM Mono';color:#9aa0aa}
.allys .service h3{font-size:1.35rem;font-weight:400;margin:0}
.allys .service p{max-height:0;opacity:0;overflow:hidden;margin:0;max-width:570px;font-size:.75rem;line-height:1.7;color:#697382;transition:.45s}
.allys .service>span{font-size:1.2rem;opacity:.35;transition:.3s}
.allys .service.active{padding-left:2rem;background:var(--a-paper-2)}
.allys .service.active p{max-height:100px;opacity:1;margin-top:1rem}
.allys .service.active>span{opacity:1;transform:rotate(45deg);color:var(--gold)}
.allys .story{position:relative;height:105vh;min-height:760px;color:white;overflow:hidden}
.allys .story>img{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;transform:translateY(calc((var(--scroll,0)*.025px) - 25px)) scale(1.03)}
.allys .story-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,15,25,.82),rgba(8,15,25,.23)),linear-gradient(0deg,rgba(8,15,25,.4),transparent)}
.allys .story-copy{position:absolute;z-index:2;left:var(--pad);top:50%;transform:translateY(-50%);max-width:650px}
.allys .story-copy h2{font-size:clamp(3.8rem,6.2vw,7.5rem);font-weight:300;line-height:.87;letter-spacing:-.065em;margin:2rem 0}
.allys .story-copy>span{display:block;max-width:420px;font-size:.8rem;line-height:1.75;color:rgba(255,255,255,.72)}
.allys .story-copy a{display:flex;justify-content:space-between;width:240px;margin-top:2.5rem;padding-bottom:.8rem;border-bottom:1px solid rgba(255,255,255,.5);font-size:.65rem;text-transform:uppercase}
.allys .story-stat{position:absolute;z-index:2;right:var(--pad);bottom:10vh;display:flex;align-items:end;gap:1rem}
.allys .story-stat b{font-size:5rem;font-weight:300;line-height:.7;color:var(--a-gold-soft)}
.allys .story-stat span{font:.55rem 'DM Mono';text-transform:uppercase;line-height:1.5}
.allys .properties{background:var(--a-paper-2);overflow:hidden}
.allys .properties-head{display:grid;grid-template-columns:1.25fr .65fr auto;align-items:end;gap:5vw}
.allys .properties-head>p{font-size:.78rem;line-height:1.8;color:#66717e}
.allys .slider-buttons{display:flex}
.allys .slider-buttons button{width:52px;aspect-ratio:1;border:1px solid var(--line);background:none;color:var(--ink);font-size:1.1rem;transition:.3s}
.allys .slider-buttons button:hover{background:var(--navy);color:white}
.allys .property-track{display:flex;gap:24px;margin-top:6rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.allys .property-track::-webkit-scrollbar{display:none}
.allys .property-card{flex:0 0 min(660px,67vw);scroll-snap-align:start}
.allys .property-photo{position:relative;height:520px;overflow:hidden}
.allys .property-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.allys .property-card:hover img{transform:scale(1.045)}
.allys .property-photo>span{position:absolute;left:20px;top:20px;padding:.6rem .75rem;background:white;font:.5rem 'DM Mono';text-transform:uppercase}
.allys .property-photo>button{position:absolute;right:20px;top:20px;width:42px;aspect-ratio:1;border:0;border-radius:50%;background:white;font-size:1.1rem}
.allys .property-meta{position:relative;padding:1.5rem 0 2rem;border-bottom:1px solid var(--line)}
.allys .property-meta small{font:.53rem 'DM Mono';text-transform:uppercase;color:#77808c}
.allys .property-meta h3{font-size:1.8rem;font-weight:400;margin:.65rem 0}
.allys .property-meta p{font-size:.68rem;color:#727b87}
.allys .property-meta p i{display:inline-block;width:3px;aspect-ratio:1;margin:0 8px;background:var(--gold);border-radius:50%;vertical-align:middle}
.allys .property-meta>b{position:absolute;right:0;top:2rem;font-weight:500}
.allys .all-properties{display:flex;justify-content:space-between;width:280px;margin:4rem auto 0;padding:1rem 0;border-bottom:1px solid var(--ink);font-size:.65rem;text-transform:uppercase}
.allys .team .section-heading{margin-bottom:7rem}
.allys .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw}
.allys .agent{position:relative}
.allys .portrait{height:570px;display:grid;place-items:center;overflow:hidden;background:var(--a-portrait-bg)}
.allys .portrait span{width:180px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-size:3.5rem;font-weight:300;color:white;box-shadow:0 40px 70px rgba(24,33,46,.16)}
.allys .portrait-one{background:linear-gradient(155deg,#d8c9af,#60798d)}
.allys .portrait-two{background:linear-gradient(155deg,#d9dad6,#ad836e)}
.allys .portrait-three{background:linear-gradient(155deg,#b7c7ca,#746b68)}
.allys .portrait-one span{background:#273b4b}
.allys .portrait-two span{background:#8b624e}
.allys .portrait-three span{background:#4a5f63}
.allys .agent h3{font-size:1.25rem;font-weight:400;margin:1.4rem 0 .4rem}
.allys .agent p{font-size:.62rem;color:#76808c}
.allys .agent>a{position:absolute;right:0;bottom:0;width:38px;aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--line);transition:.3s}
.allys .agent>a:hover{background:var(--gold);border-color:var(--gold)}
.allys .contact-section{padding:8vw var(--pad);background:var(--a-paper-3)}
.allys .contact-card{min-height:530px;padding:5vw;display:flex;justify-content:space-between;align-items:center;background:white;box-shadow:0 28px 60px rgba(19,30,45,.12)}
.allys .contact-card>div{max-width:630px}
.allys .contact-card i{display:block;width:46px;height:2px;background:var(--gold)}
.allys .contact-card p{font:.58rem 'DM Mono';text-transform:uppercase;letter-spacing:.14em;margin-top:2rem}
.allys .contact-card h2{font-size:clamp(3.2rem,5.2vw,6.2rem);font-weight:300;letter-spacing:-.06em;line-height:.88;margin:1.5rem 0}
.allys .contact-card span{display:block;max-width:440px;font-size:.78rem;line-height:1.7;color:#6b7582}
.allys .contact-card a{display:flex;justify-content:space-between;width:280px;margin-top:2rem;padding:1rem 1.2rem;background:var(--navy);color:white;font-size:.62rem;text-transform:uppercase}
.allys .coast-mark{width:min(310px,25vw);fill:none;stroke:var(--gold);stroke-width:2}
.allys .footer{padding:7vw var(--pad) 2rem;background:white}
.allys .footer-top{display:grid;grid-template-columns:1fr 1.3fr 1fr 1fr;gap:2rem;align-items:center;padding-bottom:4rem;border-bottom:1px solid var(--line)}
.allys .footer-top p, .allys .footer-top>a:not(.brand){font-size:.67rem;color:#67717e}
.allys .footer-links{display:grid;grid-template-columns:.6fr .6fr .6fr 1.3fr;gap:4vw;padding:4rem 0}
.allys .footer-links>div{display:flex;flex-direction:column;gap:.8rem}
.allys .footer-links small{margin-bottom:.8rem;font:.55rem 'DM Mono';text-transform:uppercase;color:#8b939d}
.allys .footer-links a{font-size:.7rem}
.allys .newsletter p{font-size:.7rem;line-height:1.6;color:#737c87}
.allys .newsletter label{display:flex;border-bottom:1px solid var(--ink)}
.allys .newsletter input{width:100%;padding:1rem 0;border:0;outline:0}
.allys .newsletter button{border:0;background:none}
.allys .footer-bottom{display:flex;gap:2rem;padding-top:2rem;border-top:1px solid var(--line);font:.5rem 'DM Mono';text-transform:uppercase;color:#7d858f}
.allys .footer-bottom span:last-child{margin-left:auto}
.allys .reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .9s cubic-bezier(.16,1,.3,1)}
.allys .reveal.is-visible{opacity:1;transform:none}
.allys .hero-copy.reveal{transform:translateY(-40%)}
.allys .hero-copy.reveal.is-visible{transform:translateY(-46%)}
@media(max-width:800px){.allys .site-header{top:10px;left:12px;right:12px;height:58px;padding:0 14px;grid-template-columns:1fr auto}.allys .site-header nav{position:fixed;inset:68px 12px auto;padding:2rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--navy);opacity:0;visibility:hidden;transform:translateY(-12px);transition:.3s;font-size:1.1rem}.allys .menu-open .site-header nav{opacity:1;visibility:visible;transform:none}.allys .language, .allys .nav-cta{display:none}.allys .menu-button{display:block}.allys .hero{min-height:740px}.allys .hero-copy{left:22px;top:46%;width:calc(100% - 44px)}.allys .hero h1{font-size:15vw;line-height:.88}.allys .hero-lead{font-size:.74rem}.allys .feature-card{right:18px;bottom:80px;width:205px;padding:1rem}.allys .feature-card h2{font-size:1.35rem}.allys .feature-card p, .allys .feature-card>div b{font-size:.58rem}.allys .hero-controls{left:22px;bottom:28px}.allys .scroll-cue{display:none}.allys .section{padding:90px 20px}.allys .section-heading, .allys .properties-head{grid-template-columns:1fr;gap:1.5rem}.allys .section-heading h2, .allys .properties h2{font-size:13vw}.allys .service-list{width:100%;margin-top:4rem}.allys .service{grid-template-columns:38px 1fr 25px;padding:1.4rem 0}.allys .service.active{padding-left:.7rem}.allys .service h3{font-size:1.05rem}.allys .story{height:90vh;min-height:680px}.allys .story-copy{left:22px;right:22px}.allys .story-copy h2{font-size:13vw}.allys .story-stat{right:22px;bottom:35px}.allys .story-stat b{font-size:3.5rem}.allys .properties-head .slider-buttons{position:absolute;right:20px;margin-top:6rem}.allys .property-track{margin-top:4rem}.allys .property-card{flex-basis:88vw}.allys .property-photo{height:56vh}.allys .property-meta>b{position:static;display:block;margin-top:1rem}.allys .team .section-heading{margin-bottom:4rem}.allys .team-grid{grid-template-columns:1fr;gap:4rem}.allys .portrait{height:68vh}.allys .contact-section{padding:20px 10px 70px}.allys .contact-card{padding:60px 22px;min-height:720px;flex-direction:column;align-items:flex-start}.allys .contact-card h2{font-size:14vw}.allys .coast-mark{width:190px;align-self:center;margin-top:3rem}.allys .footer{padding:70px 22px 25px}.allys .footer-top{grid-template-columns:1fr;gap:1rem}.allys .footer-links{grid-template-columns:1fr 1fr}.allys .newsletter{grid-column:1/3;margin-top:2rem}.allys .footer-bottom{flex-wrap:wrap}.allys .footer-bottom span:last-child{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.allys *{scroll-behavior:auto!important}.allys .reveal{opacity:1;transform:none}}
.allys /* Allys-inspired rounded visual system — v2 */

.site-header{top:22px;left:50%;right:auto;width:min(1216px,calc(100% - 48px));height:64px;padding:0 22px;transform:translateX(-50%);border:1px solid rgba(255,255,255,.4);border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.28),rgba(255,255,255,.42),rgba(255,255,255,.28));box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);color:#1d2638;backdrop-filter:blur(20px)}
.allys .site-header.scrolled{top:12px;left:50%;right:auto;width:min(1216px,calc(100% - 48px));padding:0 22px;transform:translateX(-50%);border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.88);box-shadow:0 18px 40px rgba(20,30,45,.14)}
.allys .site-header .brand svg{width:27px}
.allys .site-header nav{gap:1.55rem;font-size:.72rem;font-weight:600}
.allys .site-header nav a:after{bottom:-7px;height:2px;border-radius:99px}
.allys .nav-cta{min-height:36px;padding:.55rem 1.15rem;border-radius:999px;background:#243462;color:white;box-shadow:0 2px 5px rgba(20,29,58,.2)}

.allys .hero{min-height:760px}
.allys .hero-shade{background:linear-gradient(90deg,rgba(7,13,25,.68),rgba(7,13,25,.08) 72%),linear-gradient(0deg,rgba(7,13,25,.36),transparent 50%)}
.allys .hero-copy{width:min(700px,55vw)}
.allys .eyebrow{font-family:'Nunito Sans';font-size:.72rem;font-weight:700;letter-spacing:.11em}
.allys .hero h1{max-width:700px;font-size:clamp(4.1rem,6.7vw,6rem);font-weight:800;line-height:.95;letter-spacing:-.05em}
.allys .hero h1 em{font-style:normal;color:white}
.allys .hero-lead{font-size:1rem;font-weight:400;line-height:1.55;color:rgba(255,255,255,.9)}
.allys .text-link{width:max-content;gap:2rem;margin-top:1.4rem;padding:.8rem 1.25rem;border:0;border-radius:999px;background:white;color:var(--ink);font-size:.72rem;font-weight:700;box-shadow:0 10px 20px rgba(0,0,0,.14);transition:.3s}
.allys .text-link:hover{transform:translateY(-2px);box-shadow:0 16px 25px rgba(0,0,0,.2)}
.allys .feature-card{width:310px;padding:1.55rem;border-radius:20px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.16);box-shadow:0 25px 50px -12px rgba(0,0,0,.45);backdrop-filter:blur(24px)}
.allys .feature-card .pill{border-radius:999px;font-family:'Nunito Sans';font-weight:800}
.allys .feature-card small{font-family:'Nunito Sans';font-weight:700;letter-spacing:.1em}
.allys .feature-card h2{font-size:1.7rem;font-weight:700;line-height:1.05}
.allys .feature-card>div a, .allys .hero-controls button{border-radius:12px}
.allys .hero-controls span, .allys .hero-controls span i{border-radius:99px}
.allys .scroll-cue{font-family:'Nunito Sans';font-weight:700}
.allys .section{padding-top:clamp(110px,10vw,160px);padding-bottom:clamp(110px,10vw,160px)}
.allys .section-heading{display:block;text-align:center;max-width:1100px;margin:auto}
.allys .section-heading>p, .allys .properties-head>div>p, .allys .story-copy>p{font-family:'Nunito Sans';font-size:.72rem;font-weight:700;color:var(--primary);letter-spacing:.08em}
.allys .section-heading>p:before, .allys .properties-head>div>p:before, .allys .story-copy>p:before{display:none}
.allys .section-heading h2, .allys .properties h2{font-size:clamp(3.5rem,5vw,4.5rem);font-weight:700;line-height:1;letter-spacing:-.045em}
.allys .section-heading>span{display:block;max-width:650px;margin:1.35rem auto 0;font-size:.92rem;line-height:1.7}
.allys .service-list{width:min(1050px,90vw);margin-top:5rem}
.allys .service{grid-template-columns:80px 1fr 50px;margin:8px 0;padding:1.5rem 1.75rem;border:1px solid transparent;border-radius:16px}
.allys .service>b{font-family:'Nunito Sans';font-weight:700}
.allys .service h3{font-size:1.35rem;font-weight:700}
.allys .service.active{padding-left:1.75rem;border-color:#edf0f4;background:#f8f9fb;box-shadow:0 10px 30px rgba(22,31,48,.06)}
.allys .service>span{width:40px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:#eef1f5}
.allys .service.active>span{background:var(--gold);color:var(--ink)}
.allys .story{height:95vh;margin:0 24px;border-radius:32px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.allys .story-copy>p{color:#f1db58}
.allys .story-copy h2{font-size:clamp(4rem,6vw,5.6rem);font-weight:800;line-height:.96;letter-spacing:-.05em}
.allys .story-copy a{width:max-content;gap:2rem;padding:1rem 1.35rem;border:0;border-radius:999px;background:white;color:var(--ink);font-weight:700}
.allys .story-stat{padding:1.25rem 1.5rem;border-radius:18px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(20px)}
.allys .story-stat b{color:var(--gold);font-weight:800}
.allys .properties{position:relative;margin-top:24px;background:linear-gradient(rgba(11,17,30,.94),rgba(11,17,30,.98));color:white}
.allys .properties:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 15%,rgba(0,122,135,.22),transparent 36%);pointer-events:none}
.allys .properties>*{position:relative}
.allys .properties-head{display:block;text-align:center}
.allys .properties-head>div>p{color:var(--gold)}
.allys .properties-head>p{max-width:660px;margin:1.4rem auto 0;color:rgba(255,255,255,.7);font-size:.95rem}
.allys .properties-head .slider-buttons{position:absolute;right:0;bottom:0}
.allys .slider-buttons button{border-color:rgba(255,255,255,.22);border-radius:12px;color:white}
.allys .slider-buttons button:hover{background:white;color:var(--ink)}
.allys .property-track{gap:28px;margin-top:5rem}
.allys .property-card{flex-basis:min(385px,82vw);padding:1px;border-radius:24px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);box-shadow:0 25px 50px -12px rgba(0,0,0,.28);backdrop-filter:blur(24px);transition:.45s}
.allys .property-card:hover{transform:translateY(-10px);box-shadow:0 32px 65px rgba(0,0,0,.4)}
.allys .property-photo{height:300px;border-radius:23px 23px 0 0}
.allys .property-photo>span{left:16px;top:16px;padding:.55rem .8rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--ink);font-family:'Nunito Sans';font-weight:800}
.allys .property-photo>button{right:16px;top:16px;box-shadow:0 5px 12px rgba(0,0,0,.12)}
.allys .property-meta{min-height:270px;padding:1.7rem 1.5rem;border:0}
.allys .property-meta small{font-family:'Nunito Sans';font-size:.7rem;font-weight:700;color:var(--gold)}
.allys .property-meta h3{font-size:1.5rem;font-weight:700}
.allys .property-meta p{display:flex;gap:8px;margin:1.4rem 0;color:rgba(255,255,255,.72)}
.allys .property-meta p i{width:4px}
.allys .property-meta>b{left:1.5rem;right:auto;top:auto;bottom:1.6rem;font-size:1.15rem}
.allys .property-meta:after{content:'Vezi proprietatea  →';position:absolute;left:1.5rem;right:1.5rem;bottom:4.8rem;padding:.85rem 1rem;border-radius:999px;background:white;color:var(--ink);text-align:center;font-size:.78rem;font-weight:800}
.allys .all-properties{width:max-content;gap:2rem;padding:1rem 1.4rem;border:0;border-radius:999px;background:white;color:var(--ink);font-weight:800;box-shadow:0 12px 25px rgba(0,0,0,.2)}
.allys .team{background:#fff}
.allys .team .section-heading{margin-bottom:5rem}
.allys .team-grid{grid-template-columns:repeat(3,1fr);gap:2rem}
.allys .agent{padding:0 0 1.5rem;border-radius:24px;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.08);overflow:hidden;transition:.45s}
.allys .agent:hover{transform:translateY(-8px);box-shadow:0 18px 45px rgba(22,31,48,.16)}
.allys .portrait{height:500px;border-radius:24px}
.allys .portrait-one{background-position:left center}
.allys .portrait-two{background-position:center center}
.allys .portrait-three{background-position:right center}
.allys .portrait span{display:none}
.allys .agent h3, .allys .agent p{margin-left:1.5rem}
.allys .agent h3{font-weight:700}
.allys .agent>a{right:1.5rem;bottom:1.5rem;border:0;border-radius:50%;background:#f0f2f5}
.allys .agent>a:hover{background:var(--primary);color:white}
.allys .contact-section{padding:8vw var(--pad);background:#f5f6f8}
.allys .contact-card{max-width:1216px;margin:auto;border-radius:24px;box-shadow:0 25px 50px -12px rgba(0,0,0,.2);overflow:hidden}
.allys .contact-card i{height:6px;border-radius:99px;background:linear-gradient(90deg,#bba339,var(--gold))}
.allys .contact-card h2{font-size:clamp(3.7rem,5vw,4.7rem);font-weight:800;line-height:1.05;letter-spacing:-.045em}
.allys .contact-card a{width:max-content;gap:2rem;border-radius:999px;background:#0d5c35;font-weight:700;box-shadow:0 14px 25px rgba(13,92,53,.18)}
/* Cu `brand_strict` (Brasadas, 17 oct): butonul „Programează o discuție” în culoarea principală a agenției, nu verdele
   machetei scris fix. Fără `brand_strict` rămâne verde (Autentic House neschimbat). */
.allys[data-brand-strict] .contact-card a{background:var(--a-primary);box-shadow:0 14px 25px color-mix(in srgb,var(--a-primary) 18%,transparent)}
.allys .coast-mark{stroke:var(--primary)}
.allys .footer-top, .allys .footer-links, .allys .footer-bottom{max-width:1216px;margin-left:auto;margin-right:auto}
.allys .footer{font-family:'Nunito Sans'}
.allys .footer-links small{font-family:'Nunito Sans';font-weight:800}
.allys .newsletter label{padding:0 .4rem;border:1px solid #e4e7eb;border-radius:999px}
.allys .newsletter input{padding-left:1rem}
.allys .newsletter button{width:40px;aspect-ratio:1;border-radius:50%;background:var(--primary);color:white}
.allys .footer-bottom{font-family:'Nunito Sans';font-weight:700}
.allys .reveal{transform:translateY(26px) scale(.985)}
@media(max-width:800px){.allys .site-header, .allys .site-header.scrolled{top:10px;left:12px;right:12px;width:auto;height:58px;padding:0 15px;transform:none}.allys .site-header nav{border-radius:22px;box-shadow:0 25px 50px rgba(0,0,0,.2)}.allys .site-header .menu-button{color:var(--ink)}.allys .hero h1{font-size:13vw;line-height:.96}.allys .hero-copy{width:calc(100% - 44px);top:43%}.allys .hero-lead{font-size:.82rem}.allys .feature-card{width:215px;border-radius:18px}.allys .story{margin:0 10px;border-radius:24px}.allys .story-copy h2{font-size:12vw}.allys .properties{margin-top:10px}.allys .properties-head .slider-buttons{position:static;justify-content:center;margin-top:1.5rem}.allys .property-card{flex-basis:84vw}.allys .property-photo{height:270px}.allys .team-grid{grid-template-columns:1fr}.allys .portrait{height:62vh}.allys .contact-card{border-radius:24px}.allys .contact-card h2{font-size:12vw}.allys .footer-links{grid-template-columns:1fr 1fr}}
.allys /* Homepage interaction and content refinements — v3 */
.site-header nav{font-size:.86rem}
.allys .hero-slides{position:absolute;inset:0}
.allys .hero-image{position:absolute;inset:-3%;width:106%;height:106%;opacity:0;object-fit:cover;transform:scale(1.11);animation:none;transition:opacity 1.35s ease,transform 6.8s cubic-bezier(.16,1,.3,1)}
.allys .hero-image.active{opacity:1;transform:scale(1)}
.allys .hero-search{position:absolute;z-index:4;left:50%;bottom:28px;width:min(1120px,calc(100% - 12vw));display:grid;grid-template-columns:1fr 1fr 1fr auto;padding:8px;border-radius:18px;background:rgba(255,255,255,.95);box-shadow:0 20px 40px -12px rgba(0,0,0,.3);backdrop-filter:blur(18px);color:var(--ink)}
.allys .hero-search label{display:flex;flex-direction:column;gap:.35rem;padding:.72rem 1.1rem;border-right:1px solid #e7e9ed}
.allys .hero-search small{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#9097a1}
.allys .hero-search select{border:0;background:transparent;color:var(--ink);font-size:.87rem;font-weight:700;outline:0}
.allys .hero-search>button{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-width:200px;padding:0 1.3rem;border:0;border-radius:13px;background:var(--primary);color:white;font-weight:800}
.allys .hero-search>button:hover{background:#056673}
.allys .hero-controls{bottom:145px}
.allys .feature-card{bottom:215px}
.allys .scroll-cue{display:none}
.allys .coast-intro{background:white}
.allys .coast-intro-copy{display:grid;grid-template-columns:.5fr 1.2fr .7fr;gap:5vw;align-items:start}
.allys .coast-intro-copy>p{margin:0;font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--primary)}
.allys .coast-intro-copy h2{margin:0;font-size:clamp(3.5rem,5vw,4.8rem);font-weight:800;line-height:1;letter-spacing:-.045em}
.allys .coast-intro-copy>span{font-size:.92rem;line-height:1.7;color:#687281}
.allys .coast-values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6rem}
.allys .coast-values article{padding:2.3rem;border:1px solid #e9ebef;border-radius:20px;background:#fafbfc;transition:.4s}
.allys .coast-values article:hover{transform:translateY(-7px);box-shadow:0 20px 45px rgba(27,38,57,.1);background:white}
.allys .coast-values b{display:grid;place-items:center;width:40px;aspect-ratio:1;border-radius:50%;background:#eef3f4;color:var(--primary);font-size:.72rem}
.allys .coast-values h3{margin:2rem 0 .8rem;font-size:1.25rem}
.allys .coast-values p{font-size:.8rem;line-height:1.7;color:#717b88}
.allys .story{margin-top:0}
.allys .property-track{justify-content:center}
.allys .property-card{flex-basis:min(385px,27vw)}
.allys .portrait{position:relative;background-size:auto 100%;background-repeat:no-repeat}
.allys .portrait-one{background-position:left center}
.allys .portrait-two{background-position:center center}
.allys .portrait-three{background-position:right center}
.allys .portrait>span{position:absolute!important;display:block!important;right:20px;top:12px;width:auto;height:auto;background:none!important;box-shadow:none;font-size:6.4rem;font-weight:900;color:rgba(255,255,255,.2);line-height:1}
.allys .agent-details{position:absolute;left:14px;right:14px;bottom:14px;padding:0 1.25rem;max-height:0;overflow:hidden;border-radius:17px;background:rgba(18,27,42,.92);color:white;opacity:0;transform:translateY(18px);box-shadow:0 24px 45px rgba(0,0,0,.35);backdrop-filter:blur(18px);transition:max-height .55s cubic-bezier(.16,1,.3,1),padding .55s,opacity .35s,transform .55s}
.allys .agent:hover .agent-details{max-height:230px;padding-top:1.25rem;padding-bottom:1.25rem;opacity:1;transform:none}
.allys .agent-details>b{font-size:.74rem;color:var(--gold);text-transform:uppercase}
.allys .agent-details p{margin:.65rem 0!important;font-size:.78rem;line-height:1.5;color:rgba(255,255,255,.75)}
.allys .agent-details a{display:block;width:100%;padding:.7rem 1rem;border-radius:999px;background:white;color:var(--ink);font-size:.7rem;font-weight:800;text-align:center}
.allys .footer{padding-top:6vw;background:#fff}
.allys .footer-contacts, .allys .footer-zones, .allys .footer-tags{max-width:1216px;margin-left:auto;margin-right:auto}
.allys .footer-contacts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:3rem 0;border-top:1px solid var(--line)}
.allys .footer-contacts article{display:flex;flex-direction:column;gap:.55rem;padding:1.6rem;border:1px solid #edf0f3;border-radius:16px;background:rgba(248,249,250,.7);transition:.3s}
.allys .footer-contacts article:hover{box-shadow:0 12px 30px rgba(23,33,50,.08);transform:translateY(-3px)}
.allys .footer-contacts small, .allys .footer-zones small, .allys .footer-tags small{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#8b949f}
.allys .footer-contacts b{font-size:.95rem}
.allys .footer-contacts span, .allys .footer-contacts a{font-size:.68rem;color:#6f7985}
.allys .footer-zones{display:grid;grid-template-columns:repeat(4,1fr);gap:3vw;padding:3.5rem 0;border-top:1px solid var(--line)}
.allys .footer-zones>div{display:flex;flex-direction:column;gap:.7rem}
.allys .footer-zones small{padding-bottom:.8rem;border-bottom:2px solid rgba(228,206,74,.45)}
.allys .footer-zones a{font-size:.72rem;color:#66717f;transition:.25s}
.allys .footer-zones a:hover{color:var(--primary);transform:translateX(4px)}
.allys .footer-tags{padding:3rem 0;border-top:1px solid var(--line)}
.allys .footer-tags>div{display:flex;flex-wrap:wrap;gap:9px;margin-top:1.2rem}
.allys .footer-tags a{padding:.6rem 1rem;border:1px solid #e8eaee;border-radius:999px;background:#fafbfc;font-size:.66rem;color:#66717f}
.allys .footer-tags a:hover{background:rgba(0,122,135,.08);border-color:rgba(0,122,135,.25);color:var(--primary)}
@media(max-width:800px){.allys .site-header nav{font-size:1.1rem}.allys .hero{min-height:940px}.allys .hero-copy{top:34%}.allys .feature-card{display:none}.allys .hero-controls{bottom:320px}.allys .hero-search{left:12px;right:12px;bottom:18px;width:auto;grid-template-columns:1fr;padding:7px;border-radius:20px}.allys .hero-search label{padding:.65rem 1rem;border-right:0;border-bottom:1px solid #e7e9ed}.allys .hero-search>button{min-height:52px}.allys .coast-intro-copy{grid-template-columns:1fr;gap:1.5rem}.allys .coast-intro-copy h2{font-size:13vw}.allys .coast-values{grid-template-columns:1fr;margin-top:3rem}.allys .property-track{justify-content:flex-start}.allys .property-card{flex-basis:84vw}.allys .portrait{background-size:auto 100%}.allys .agent-details{max-height:230px;padding:1.1rem;opacity:1;transform:none;background:rgba(18,27,42,.86)}.allys .footer-contacts, .allys .footer-zones{grid-template-columns:1fr}.allys .footer-zones{grid-template-columns:1fr 1fr}.allys .footer-tags>div{gap:6px}}
.allys /* Transition, .allys search and card polish — v4 */
.hero-slides{overflow:hidden;background:var(--a-navy)}
.allys .hero-image{z-index:1;opacity:0;transform:scale(1.09);transition:opacity 2s cubic-bezier(.4,0,.2,1),transform 7.4s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.allys .hero-image.active{z-index:2;opacity:1;transform:scale(1.005)}
.allys .hero-search, .allys .hero-search.reveal, .allys .hero-search.reveal.is-visible{bottom:30px;width:min(1040px,calc(100% - 14vw));min-height:64px;padding:6px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.86),rgba(255,255,255,.96),rgba(255,255,255,.86));box-shadow:0 20px 35px -12px rgba(0,0,0,.24);backdrop-filter:blur(22px);transform:translateX(-50%)}
.allys .hero-search label{justify-content:center;padding:.45rem 1.25rem}
.allys .hero-search select{font-size:.82rem}
.allys .hero-search>button{min-width:190px;margin:1px;border-radius:999px;background:#243462;box-shadow:0 8px 16px rgba(36,52,98,.2);transition:background .25s,transform .25s}
.allys .hero-search>button:hover{background:#1a2847;transform:scale(1.015)}
.allys .hero-controls{bottom:125px}
.allys .properties{overflow:visible}
.allys .property-track{margin-top:3.8rem;padding:1.4rem 0 2.5rem;overflow-x:auto;overflow-y:hidden}
.allys .property-card{backdrop-filter:none;will-change:transform;transition:transform .58s cubic-bezier(.16,1,.3,1),box-shadow .58s cubic-bezier(.16,1,.3,1),border-color .35s}
.allys .property-card:hover{transform:translateY(-5px);border-color:rgba(228,206,74,.35);box-shadow:0 25px 50px -15px rgba(0,0,0,.5)}
.allys .property-photo img{transition:transform 1s cubic-bezier(.16,1,.3,1)}
.allys .property-card:hover .property-photo img{transform:scale(1.022)}
@media(max-width:800px){.allys .hero-search, .allys .hero-search.reveal, .allys .hero-search.reveal.is-visible{left:14px;right:14px;bottom:16px;width:auto;min-height:0;padding:7px;border-radius:22px;background:rgba(255,255,255,.94);transform:none}.allys .hero-search>button{margin-top:2px;border-radius:16px}.allys .hero-controls{bottom:318px}.allys .property-track{padding-top:1rem}.allys .property-card:hover{transform:none}}
.allys /* Deterministic hero crossfade and custom search selects — v5 */
.hero-image.slide-entering{z-index:3;animation:hero-slide-enter 2s cubic-bezier(.4,0,.2,1) both}
.allys .hero-image.slide-leaving{z-index:2;animation:hero-slide-leave 2s cubic-bezier(.4,0,.2,1) both}
@keyframes hero-slide-enter{0%{opacity:0;transform:scale(1.1)}100%{opacity:1;transform:scale(1.005)}}
@keyframes hero-slide-leave{0%{opacity:1;transform:scale(1.005)}100%{opacity:0;transform:scale(.985)}}
.allys .search-field{position:relative;display:flex;flex-direction:column;justify-content:center;gap:.22rem;padding:.45rem 1.25rem;border-right:1px solid rgba(36,52,98,.1)}
.allys .search-field>small{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#8b94a4}
.allys .search-choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:0;border:0;background:none;color:#283247;text-align:left;font-family:'Nunito Sans',sans-serif;font-size:.88rem;font-weight:500;cursor:pointer}
.allys .search-choice i{font-style:normal;font-size:.8rem;transition:transform .25s}
.allys .search-field.open .search-choice i{transform:rotate(180deg)}
.allys .search-options{position:absolute;z-index:20;left:0;right:0;bottom:calc(100% + 15px);padding:7px;border:1px solid rgba(36,52,98,.1);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 20px 45px rgba(22,31,48,.2);opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);transform-origin:bottom;transition:.25s;backdrop-filter:blur(20px)}
.allys .search-field.open .search-options{opacity:1;visibility:visible;transform:none}
.allys .search-options button{width:100%;padding:.72rem .8rem;border:0;border-radius:10px;background:none;color:#445064;text-align:left;font-family:'Nunito Sans',sans-serif;font-size:.8rem;font-weight:500;transition:.2s}
.allys .search-options button:hover{padding-left:1rem;background:#f1f3f7;color:#243462}
.allys .search-options button.selected{background:rgba(228,206,74,.22);color:#243462;font-weight:700}
.allys .search-submit{font-family:'Nunito Sans',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.01em}
@media(max-width:800px){.allys .search-field{padding:.62rem 1rem;border-right:0;border-bottom:1px solid #e7e9ed}.allys .search-options{left:4px;right:4px;bottom:calc(100% + 6px)}.allys .search-choice{font-size:.85rem}.allys .hero-search>.search-submit{margin-top:2px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.allys .hero-image.slide-entering, .allys .hero-image.slide-leaving{animation:none}}
.allys /* Property information synchronized with hero slides */
.feature-card.card-leaving{animation:feature-card-out .65s cubic-bezier(.7,0,.84,0) both;pointer-events:none}
.allys .feature-card.card-entering{animation:feature-card-in .9s cubic-bezier(.16,1,.3,1) both}
@keyframes feature-card-out{0%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}100%{opacity:0;transform:translateY(12px) scale(.965);filter:blur(5px)}}
@keyframes feature-card-in{0%{opacity:0;transform:translateY(-10px) scale(.97);filter:blur(5px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.allys .feature-card.card-leaving, .allys .feature-card.card-entering{animation:none}}
.allys /* Full slide copy synchronization */
.hero-copy.copy-leaving{animation:hero-copy-out .65s cubic-bezier(.7,0,.84,0) both;pointer-events:none}
.allys .hero-copy.copy-entering{animation:hero-copy-in .9s cubic-bezier(.16,1,.3,1) both}
@keyframes hero-copy-out{0%{opacity:1;filter:blur(0);transform:translateY(-46%) scale(1)}100%{opacity:0;filter:blur(7px);transform:translateY(-43%) scale(.985)}}
@keyframes hero-copy-in{0%{opacity:0;filter:blur(7px);transform:translateY(-50%) scale(.985)}100%{opacity:1;filter:blur(0);transform:translateY(-46%) scale(1)}}
@media(prefers-reduced-motion:reduce){.allys .hero-copy.copy-leaving, .allys .hero-copy.copy-entering{animation:none}}
.allys /* Hero copy has one animation owner: Web Animations API */
.hero-copy.reveal, .allys .hero-copy.reveal.is-visible, .allys .feature-card.reveal, .allys .feature-card.reveal.is-visible{transition:none!important}
.allys /* Single, .allys browser-safe content transition */
.hero-copy.reveal, .allys .hero-copy.reveal.is-visible{transition:opacity .62s ease,filter .62s ease!important}
.allys .feature-card.reveal, .allys .feature-card.reveal.is-visible{transition:opacity .62s ease,transform .62s ease,filter .62s ease!important}
.allys .hero-copy.content-switching, .allys .feature-card.content-switching{opacity:0!important;filter:blur(4px)!important}
.allys .feature-card.content-switching{transform:translateY(8px) scale(.985)!important}

/* ── Adăugiri față de machetă, cerute de datele reale ──────────────────────────────────────────
   Macheta desenează exact 3 agenți, cu degradeu și inițială. Realitatea: 148 din 159 de agenții au
   UN SINGUR agent, iar 175 din 189 de agenți au poză. Deci avem nevoie de două lucruri pe care
   designul nu le acoperă — fără să-i schimbăm proporțiile. */

/* Poza stă peste degradeu, decupată circular, la aceeași dimensiune ca discul cu inițiale (180px).
   Așa portretul rămâne exact cel desenat, indiferent dacă agentul are sau nu poză. */
.allys .portrait-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center top;border-radius:inherit}
/* Medalion plin, doar pentru agenții FĂRĂ fotografie: filigranul alb 20% singur pe un degradeu
   ar lăsa cardul să pară neterminat. Reia exact stilul din pasul întâi al machetei (linia 167). */
.allys .portrait-initiale{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:180px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;
  font-size:3.5rem;font-weight:300;color:#fff;box-shadow:0 40px 70px rgba(24,33,46,.16)}
.allys .portrait-one .portrait-initiale{background:#273b4b}
.allys .portrait-two .portrait-initiale{background:#8b624e}
.allys .portrait-three .portrait-initiale{background:#4a5f63}
/* Filigranul stă peste fotografie, ca în machetă. */
.allys .portrait>span{z-index:2}
.allys .agent-details{z-index:3}
/* Rândul orfan: cardul singur se centrează sub coloana din mijloc. */
.allys .team-grid-orfan>.agent:last-child{grid-column:2}
@media(max-width:800px){.allys .team-grid-orfan>.agent:last-child{grid-column:auto}}

/* 1–2 agenți: portretele își păstrează lățimea desenată și rândul se centrează. Întinse pe toată
   grila, portretul de 570px s-ar deforma și ar strica proporția pe care stă secțiunea. */
.allys .team-grid-putini{grid-template-columns:repeat(auto-fit,minmax(320px,380px));justify-content:center}

/* Cele două fundaluri decorative din machetă (`penthouse.png` pe secțiunea de proprietăți,
   `team.png` pe portrete) au fost scoase: erau fotografii ale Deximo, scrise direct în CSS.
   Într-un șablon folosit de mai multe agenții, fiecare site ar fi afișat penthouse-ul altcuiva.
   Designul definește oricum degradeuri dedesubt (`.portrait-one/-two/-three`), care se văd acum —
   plus poza reală a agentului, când există. */

/* ═══════════════════════════════════════════════════════════════════════════════════════════
   RECOMANDĂRI — secțiune proprie allys.
   Macheta n-avea recomandări; blocul e scris în vocabularul ei: rânduri despărțite de linii de
   un pixel (ca `.service-list`), cifră mare subțire pentru nota Google (ca `.story-stat`),
   accent auriu pe stele. Fără card alb rotunjit — allys n-are niciunul.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
.allys .testimonials{background:var(--a-paper)}
.allys .testimonial-score{width:min(1180px,88vw);margin:5rem auto 0;display:flex;align-items:flex-end;gap:1.1rem}
.allys .testimonial-score>b{font-size:clamp(3.4rem,6vw,5.6rem);font-weight:300;line-height:.85;letter-spacing:-.05em;color:var(--navy)}
.allys .testimonial-score>div{padding-bottom:.5rem}
.allys .testimonial-score span{display:block;font-size:.95rem;letter-spacing:.28em;color:var(--gold)}
.allys .testimonial-score small{display:block;margin-top:.35rem;font-size:.72rem;color:#657080}
.allys .testimonial-score a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}

.allys .testimonial-list{width:min(1180px,88vw);margin:3.5rem auto 0;border-top:1px solid var(--line)}
.allys .testimonial{display:grid;grid-template-columns:70px 1fr 90px;align-items:start;gap:1rem;
  padding:2.1rem 1rem;border-bottom:1px solid var(--line);transition:.45s}
.allys .testimonial:hover{padding-left:2rem;background:var(--a-paper-2)}
.allys .testimonial-mark{font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--gold)}
.allys .testimonial p{margin:0;font-size:1.02rem;font-weight:300;line-height:1.6;color:var(--ink);
  max-width:62ch;text-wrap:pretty}
.allys .testimonial b{display:block;margin-top:.9rem;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;color:#657080}
.allys .testimonial-stars{justify-self:end;font-size:.72rem;letter-spacing:.18em;color:var(--gold);white-space:nowrap}
@media(max-width:800px){
  .allys .testimonial{grid-template-columns:44px 1fr;padding:1.6rem 0}
  .allys .testimonial:hover{padding-left:.7rem}
  .allys .testimonial-stars{grid-column:2;justify-self:start;margin-top:.6rem}
  .allys .testimonial-score,.allys .testimonial-list{width:100%}
}

/* ═══════════════════════════════════════════════════════════════════════════════════════════
   ARMONIZAREA SECȚIUNILOR COMUNE (întrebări frecvente, parteneri, flux social, linkuri SEO).
   Astea NU au cârlig de suprascriere per șablon, ca recomandările — se randează din
   `components/shared/` în utilitare Tailwind: `bg-white`, `rounded-lg`, `border-gray-200`,
   `text-gray-900`, `font-bold`. Lângă allys se văd ca venite din alt șablon.
   Nu le rescriem (sunt folosite de toate cele 166 de site-uri); le îmbrăcăm, scopat pe `.allys`.
   Scoparea pe wrapperele lor (`.container-site`, `.max-w-*`) e sigură: niciun component allys nu
   folosește vreun utilitar Tailwind — verificat, zero potriviri.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
.allys .container-site,.allys .max-w-6xl,.allys .max-w-4xl,.allys .max-w-3xl{max-width:min(1180px,88vw)}

/* titluri: din bold mic-mediu, în displayul subțire uriaș al machetei */
.allys .container-site h2,.allys .max-w-6xl h2,.allys .max-w-4xl h2,.allys .max-w-3xl h2{
  font-weight:300!important;letter-spacing:-.045em;line-height:.95;
  font-size:clamp(2.4rem,4vw,4.2rem)!important;color:var(--navy)}

/* suprafețe: cardul alb rotunjit al platformei → hârtia și liniile subțiri ale machetei */
.allys [class*="rounded-"]:not(img):not(.pill):not([class*="rounded-full"]){border-radius:16px}
.allys [class*="bg-white"]{background:transparent!important}
.allys [class*="bg-gray-50"]{background:var(--a-paper-2)!important}
.allys [class*="border-gray-1"],.allys [class*="border-gray-2"]{border-color:var(--line)!important}
.allys [class*="shadow-["],.allys [class*="shadow-md"],.allys [class*="shadow-sm"]{box-shadow:none!important}
.allys [class*="text-gray-9"]{color:var(--ink)!important}
.allys [class*="text-gray-6"],.allys [class*="text-gray-7"],.allys [class*="text-gray-4"]{color:#657080!important}

/* pastilele și butoanele rotunde ale blocurilor comune, în cheia machetei */
.allys [class*="rounded-full"][class*="border"]{border-color:var(--line);color:var(--navy);
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.68rem}

/* linkurile SEO din subsolul paginii de acasă: aceleași verigi ca `.footer-tags`, deci aceeași
   îmbrăcăminte — pastile cu contur subțire, nu dreptunghiuri gri */
.allys .flex-wrap>a[class*="rounded-lg"]{border-radius:999px;border-color:var(--line);
  padding:.6rem 1.1rem;font-size:.72rem;color:#657080;transition:.25s}
.allys .flex-wrap>a[class*="rounded-lg"]:hover{background:var(--navy);border-color:var(--navy);color:#fff}


/* ── Reset-ul global al platformei taie designul ──────────────────────────────────────────────
   Preflight-ul Tailwind pune `img{max-width:100%;height:auto}` pe TOATE imaginile. Macheta,
   fiind un HTML de sine stătător, n-are așa ceva — iar `.hero-image` e desenat lat cu 6% (`inset:-3%;
   width:106%`) tocmai ca mișcarea lentă de zoom să nu descopere marginile. Cu plafonul de 100%,
   imaginea rămânea cu 40px mai îngustă decât ecranul: o bandă întunecată pe marginea din dreapta a
   eroului, măsurată la 1440px (1447px imagine față de 1534px în machetă).
   Ridicăm plafonul DOAR pe imaginile desenate să depășească, scopat pe `.allys`. */
.allys .hero-image{max-width:none;height:106%}
.allys .portrait-photo{max-width:none}

/* Jurnalul reia carul de proprietăți, dar cu fișe mai înguste: un articol n-are nevoie de 660px
   ca o vilă, iar patru fișe intră pe ecran fără derulare la 1440px. */
.allys .allys-jurnal .property-card{flex:0 0 min(420px,78vw)}
.allys .allys-jurnal .property-photo{height:300px}
.allys .allys-jurnal .property-photo img{width:100%;height:100%;object-fit:cover;max-width:none}
.allys .allys-jurnal .property-meta h3{font-size:1.25rem;line-height:1.3}
.allys .allys-jurnal .property-meta p{margin-top:.7rem;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.allys .allys-jurnal .property-track{margin-top:4rem}
/* Articolele fără copertă: câmp de hârtie cu eticheta rubricii, nu un dreptunghi gri gol. */
.allys .jurnal-fara-poza{position:absolute;inset:0;display:grid;place-items:center;
  background:var(--a-paper-2);color:rgba(32,40,58,.22);
  font-size:1.5rem;font-weight:700;letter-spacing:.14em}

/* Blocul comun de linkuri SEO folosește `bg-zinc-50`, nu `bg-gray-50` — îl prindem și pe acela. */
.allys [class*="bg-zinc-5"]{background:var(--a-paper-2)!important}
.allys [class*="text-zinc-9"]{color:var(--ink)!important}
.allys [class*="text-zinc-6"],.allys [class*="text-zinc-5"]{color:#657080!important}
.allys [class*="border-zinc-2"],.allys [class*="border-zinc-1"]{border-color:var(--line)!important}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   PAGINA „DESPRE" — portată din macheta `about/about.css` (Server 2, deximo-preview/allys).
   Totul e scopat sub `.allys .about-page`: numele din machetă (`.about-hero`, `.difference`,
   `.where`, `.leadership`) sunt generice și, fără prefix, ar lovi celelalte 9 șabloane —
   `modern` singur are 124 de site-uri.
   Culorile scrise de mână în machetă trec pe tokenii temei, ca site-urile cu paletă proprie să nu
   iasă din brand: `#20283a`→`--ink`, `#007a87`→`--primary`, `#e4ce4a`→`--gold`,
   `#243462`/`#223566`→`--navy`. Cele fără echivalent (`#f5f7f9`, `#e7eaee`) rămân aliasuri noi.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.allys{
  --a-about-paper: #f5f7f9;
  --a-about-line: #e7eaee;
  --a-about-muted: #717c88;
}

/* ── Erou ─────────────────────────────────────────────────────────────────────────────────── */
.allys .about-hero{position:relative; height:63vh; min-height:560px; color:#fff; overflow:hidden}
.allys .about-hero>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.allys .about-hero>div{
  position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(8,15,26,.75),rgba(8,15,26,.12)),
             linear-gradient(0deg,rgba(8,15,26,.35),transparent 55%);
}
/* Fără fotografie, eroul rămâne pe fundal plin din tokeni — nu pe o imagine împrumutată. */
.allys .about-hero:not(:has(>img)){background:var(--navy)}
.allys .about-hero article{position:absolute; left:max(30px,7vw); right:max(30px,7vw); bottom:11vh}
.allys .about-hero span,
.allys .about-page .story-intro>span,
.allys .about-page .difference header>span,
.allys .about-page .leadership header>span,
.allys .about-page .where header>span,
.allys .about-cta span{
  font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em;
}
.allys .about-hero h1{margin:1rem 0; font-size:clamp(3rem,6vw,6.5rem); line-height:.94; letter-spacing:-.05em}
.allys .about-hero p{max-width:650px; font-size:1rem; line-height:1.65; color:rgba(255,255,255,.82)}

/* ── Poveste + cifre ──────────────────────────────────────────────────────────────────────── */
.allys .about-story{display:grid; grid-template-columns:1fr .85fr; gap:7vw; align-items:center}
.allys .about-page .story-intro>span,
.allys .about-page .difference header>span,
.allys .about-page .leadership header>span,
.allys .about-page .where header>span{color:var(--primary)}
.allys .about-page .story-intro h2,
.allys .about-page .difference h2,
.allys .about-page .leadership h2,
.allys .about-page .where h2,
.allys .about-cta h2{font-size:clamp(2.6rem,5vw,5.5rem); line-height:.96; letter-spacing:-.05em}
.allys .about-page .story-intro>p{font-size:.92rem; line-height:1.8; color:#687483}
/* `auto-fit`, nu `repeat(3,1fr)`: 152 din 173 de agenții au patru statistici, nu trei. Cu grila
   fixă, a patra ar fi dispărut tăcut. */
.allys .about-page .story-numbers{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-top:3rem;
}
.allys .about-page .story-numbers span{
  padding:1.2rem; border-radius:16px; background:var(--a-about-paper);
  font-size:.62rem; color:#727d89;
}
.allys .about-page .story-numbers b{display:block; font-size:1.5rem; color:var(--ink)}
.allys .about-story figure{margin:0; border-radius:24px; overflow:hidden; box-shadow:0 20px 45px rgba(25,35,52,.14)}
.allys .about-story figure img{display:block; width:100%; height:540px; object-fit:cover}
.allys .about-story figcaption{
  display:flex; flex-direction:column; gap:.4rem; padding:1.5rem; background:var(--navy); color:#fff;
}
.allys .about-story figcaption span{font-size:.72rem; color:rgba(255,255,255,.65)}

/* ── Ce ne diferențiază ───────────────────────────────────────────────────────────────────── */
.allys .about-page .difference{background:var(--a-about-paper)}
.allys .about-page .difference header{text-align:center}
.allys .difference-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px;
  max-width:1200px; margin:5rem auto 0;
}
.allys .difference-grid article{
  padding:2rem; border:1px solid var(--a-about-line); border-radius:20px; background:#fff;
  transition:transform .35s ease, box-shadow .35s ease;
}
.allys .difference-grid article:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(25,35,52,.1)}
.allys .difference-grid i{
  display:grid; place-items:center; width:42px; aspect-ratio:1; border-radius:50%;
  background:#eef3f4; color:var(--primary); font-size:.7rem; font-style:normal; font-weight:800;
}
.allys .difference-grid b{display:block; margin:2rem 0 .8rem; font-size:1.2rem}
.allys .difference-grid p{font-size:.78rem; line-height:1.65; color:var(--a-about-muted)}

/* ── Leadership ───────────────────────────────────────────────────────────────────────────── */
.allys .about-page .leadership>header{text-align:center}
.allys .about-page .leadership>article{
  max-width:1100px; min-height:600px; margin:5rem auto 0;
  display:grid; grid-template-columns:1fr 1fr; border-radius:24px; overflow:hidden;
  background:var(--a-about-paper); box-shadow:0 12px 40px rgba(25,35,52,.1);
}
/* Poza vine din fișa agentului, pusă inline din componentă — macheta o avea legată la un fișier
   din `assets/`, care nu există pe site-urile reale. */
.allys .leader-photo{background:var(--a-portrait-bg) center/cover no-repeat; min-height:320px}
.allys .about-page .leadership article>div:last-child{
  padding:clamp(2rem,4vw,5rem) clamp(1.4rem,3vw,4rem);
  display:flex; flex-direction:column; justify-content:center;
}
.allys .about-page .leadership small{color:var(--primary); font-size:.65rem; text-transform:uppercase; letter-spacing:.14em; font-weight:800}
.allys .about-page .leadership h3{font-size:clamp(1.7rem,3vw,2.5rem); margin:1rem 0}
.allys .about-page .leadership p,
.allys .about-page .leadership blockquote{font-size:.85rem; line-height:1.8; color:#687483}
.allys .about-page .leadership blockquote{
  margin:2rem 0; padding-left:1.5rem; border-left:3px solid var(--gold); font-weight:700; color:#303a4b;
}
.allys .about-page .leadership a{
  width:max-content; margin-top:1.6rem; padding:.9rem 1.2rem; border-radius:999px;
  background:var(--navy); color:#fff; font-size:.7rem; font-weight:800;
}

/* ── Zone: fagure de hexagoane ───────────────────────────────────────────────────────────────
   Macheta desena conturul Mării Negre cu două trasee SVG și cinci puncte fixe — o hartă corectă
   pentru Deximo, falsă pentru orice altă agenție. Marius, 7 sep: „facem în loc de harta propriu
   zisă o formă geometrică, un hexagon ceva". Hexagonul e deja limbajul șablonului (sigla; și cele
   trei hexagoane imbricate din secțiunea de îndemn). Poziția unei celule nu codifică nimic
   geografic — de asta nu minte. */
.allys .about-page .where{
  display:grid; grid-template-columns:.8fr 1.2fr; gap:7vw; align-items:center;
  background:var(--navy); color:#fff;
}
.allys .about-page .where header p{max-width:430px; line-height:1.7; color:rgba(255,255,255,.65)}
/* ⚠️ Grilă cu număr FIX de coloane, nu `flex-wrap`. Cu flex, numărul de celule pe rând depindea
   de lățime — 2 la 1280, 3 la 1440, 4 la 1920 — iar decalajul, legat de `nth-child(3n+2)`,
   presupunea mereu 3. Rezultatul: forma se citea ca fagure doar la 1440, iar în rest ca o grilă
   strâmbă. Acum coloanele sunt declarate per prag, deci decalajul cade mereu pe coloana din
   mijloc, la orice lățime. */
.allys .zone-hex{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); justify-items:center;
  gap:14px 10px; padding:clamp(28px,4vw,54px); border-radius:26px; background:rgba(255,255,255,.04);
}
.allys .zone-cell{
  width:100%; max-width:clamp(148px,15vw,186px); aspect-ratio:1/1.1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:1rem .9rem; text-align:center;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  transition:background .3s ease, transform .3s ease;
}
/* Rândurile impare se decalează cu jumătate de celulă — asta face fagurele să se citească drept
   fagure, nu drept grilă de romburi. Decalajul se aplică pe a doua celulă din fiecare rând de 3. */
.allys .zone-cell:nth-child(3n+2){transform:translateY(clamp(14px,1.6vw,26px))}
.allys .zone-cell:hover{background:rgba(255,255,255,.11)}
.allys .zone-cell:nth-child(3n+2):hover{transform:translateY(clamp(14px,1.6vw,26px)) scale(1.03)}
/* Sub 1100px coloana e alta, deci și decalajul: pe grila de 2 cade pe a doua celulă. */
@media(max-width:1100px){
  .allys .zone-hex{grid-template-columns:repeat(2,minmax(0,1fr))}
  .allys .zone-cell:nth-child(3n+2){transform:none}
  .allys .zone-cell:nth-child(3n+2):hover{transform:scale(1.03)}
  .allys .zone-cell:nth-child(2n){transform:translateY(clamp(12px,1.6vw,22px))}
  .allys .zone-cell:nth-child(2n):hover{transform:translateY(clamp(12px,1.6vw,22px)) scale(1.03)}
}
.allys .zone-cell i{width:10px; aspect-ratio:1; border-radius:50%; background:var(--gold)}
.allys .zone-cell b{font-size:.82rem; line-height:1.25}
.allys .zone-cell em{font-style:normal; font-size:.58rem; color:rgba(255,255,255,.55)}

/* ── Îndemn ───────────────────────────────────────────────────────────────────────────────── */
.allys .about-cta{
  margin:7vw; min-height:520px; padding:6vw;
  display:flex; justify-content:space-between; align-items:center; gap:3rem;
  border-radius:24px; background:#fff; box-shadow:0 25px 60px rgba(25,35,52,.14);
}
.allys .about-cta>div{max-width:680px}
.allys .about-cta>div>i{display:block; width:70px; height:6px; border-radius:99px; background:var(--gold)}
.allys .about-cta span{display:block; margin-top:2rem; color:var(--primary)}
.allys .about-cta p{color:#6e7885; line-height:1.75; margin-top:1rem}
.allys .about-cta>div>div{display:flex; gap:10px; margin-top:2rem; flex-wrap:wrap}
.allys .about-cta a{
  padding:1rem 1.3rem; border:2px solid var(--primary); border-radius:999px;
  color:var(--primary); font-size:.72rem; font-weight:800;
}
.allys .about-cta a:first-child{background:var(--primary); color:#fff}
.allys .about-cta svg{width:280px; flex:0 0 auto; fill:none; stroke:var(--primary); stroke-width:2}

/* ── Intrarea în ecran ────────────────────────────────────────────────────────────────────────
   ⚠️ Starea de bază e VIZIBILĂ. Macheta stingea patru secțiuni cu `opacity:0` și le aprindea din
   `IntersectionObserver`; portat așa, orice eroare de JS ar fi lăsat jumătate de pagină invizibilă.
   Stingerea se activează abia după ce observer-ul chiar există (`.anim-activ`, pusă din React). */
.allys .about-page.anim-activ .anim{opacity:0; transform:translateY(20px); transition:.7s}
.allys .about-page.anim-activ .anim.visible{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){
  .allys .about-page.anim-activ .anim{opacity:1; transform:none; transition:none}
}

@media(max-width:800px){
  .allys .about-hero{height:72vh}
  .allys .about-hero article{left:20px; right:20px; bottom:8vh}
  .allys .about-hero h1{font-size:13vw}
  .allys .about-hero p{font-size:.82rem}
  .allys .about-story{grid-template-columns:1fr; padding:90px 20px}
  .allys .about-page .story-intro h2,
  .allys .about-page .difference h2,
  .allys .about-page .leadership h2,
  .allys .about-page .where h2,
  .allys .about-cta h2{font-size:12vw}
  .allys .about-page .story-numbers{grid-template-columns:1fr 1fr}
  .allys .about-story figure img{height:60vh}
  .allys .about-page .difference{padding:90px 20px}
  .allys .difference-grid{grid-template-columns:1fr; margin-top:3rem}
  .allys .about-page .leadership{padding:90px 20px}
  .allys .about-page .leadership>article{grid-template-columns:1fr; grid-template-rows:360px auto; min-height:0}
  .allys .about-page .where{grid-template-columns:1fr; padding:90px 20px}
  .allys .zone-hex{gap:10px 8px; padding:22px}
  .allys .zone-hex{grid-template-columns:repeat(2,minmax(0,1fr))}
  .allys .zone-cell{width:100%; max-width:none; aspect-ratio:1/1.05}
  .allys .zone-cell:nth-child(3n+2),
  .allys .zone-cell:nth-child(2n){transform:none}
  .allys .zone-cell:nth-child(3n+2):hover,
  .allys .zone-cell:nth-child(2n):hover{transform:scale(1.03)}
  .allys .about-cta{margin:20px; padding:48px 22px; min-height:0; flex-direction:column; align-items:flex-start}
  .allys .about-cta svg{width:180px; align-self:center; margin-top:2rem}
}

/* ── Corecții după prima verificare pe staging ────────────────────────────────────────────────
   1. Grila de „diferențe" pe TREI coloane, ca în machetă. `auto-fit minmax(280px,1fr)` dădea
      patru coloane la 1440 și lăsa două carduri orfane pe al doilea rând; cu 3, cele 6 carduri
      formează două rânduri pline. Mai jos de 1100 trec pe două, sub 800 pe una.
   2. Ritmul vertical. Macheta se baza pe marginile implicite ale browserului pentru `h1/h2/p`;
      `globals.css` le resetează, deci titlurile ajungeau lipite de primul paragraf („face
      diferenta" atingea „Cu peste 15 ani…"). Spațiile se scriu explicit.
   3. Contrastul celulelor de fagure: `rgba(255,255,255,.06)` pe fundal navy abia se distingea. */
.allys .difference-grid{grid-template-columns:repeat(3,1fr)}
/* ⚠️ Intervalul e ÎNCHIS (801-1100). Scris ca `max-width:1100px`, bătea prin ordine regula de
   `1fr` de la ≤800px — aceeași specificitate, sursă ulterioară — deci pe telefon rămâneau două
   coloane: la 390 cardurile aveau 150px și titlurile se rupeau „Selecție,/nu volum", iar la 360
   ieșeau din ecran (dreapta la 372px pe un ecran de 360). */
@media(min-width:801px) and (max-width:1100px){ .allys .difference-grid{grid-template-columns:repeat(2,1fr)} }

.allys .about-page .story-intro>span,
.allys .about-page .difference header>span,
.allys .about-page .leadership header>span,
.allys .about-page .where header>span{display:block; margin-bottom:1.1rem}
.allys .about-page .story-intro h2,
.allys .about-page .difference h2,
.allys .about-page .leadership h2,
.allys .about-page .where h2,
.allys .about-cta h2{margin:0 0 1.6rem}
.allys .about-page .story-intro>p{margin:0 0 1.1rem}
.allys .about-page .story-intro>p:last-of-type{margin-bottom:0}
.allys .about-page .where header p{margin:0}
.allys .about-hero article>span{display:block}

.allys .zone-cell{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.22)}
.allys .zone-cell:hover{background:rgba(255,255,255,.17); border-color:var(--gold)}
.allys .zone-cell b{font-size:.86rem}
.allys .zone-cell em{font-size:.62rem; color:rgba(255,255,255,.62)}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   PAGINA DE ANSAMBLU — portată din `projects/peninsula/project.css` (Server 2).
   Scopat sub `.allys .project-page`. Culorile machetei trec pe tokeni: `#20283a`→`--ink`,
   `#007a87`→`--primary`, `#e4ce4a`→`--gold`, `#223566`→`--navy`.
   ⚠️ Blocul stă ÎNAINTE de `@media`-urile de la sfârșitul fișierului.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.allys .project-spacer{height:104px}

.allys .project-hero{position:relative; height:100svh; min-height:720px; color:#fff; overflow:hidden}
.allys .project-hero>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.allys .project-hero-shade{
  position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(8,14,25,.84),rgba(8,14,25,.2) 70%),
             linear-gradient(0deg,rgba(8,14,25,.65),transparent 55%);
}
.allys .project-hero-copy{position:absolute; left:max(32px,7vw); top:48%; width:min(680px,86vw); transform:translateY(-45%)}
.allys .project-badges{display:flex; gap:8px; flex-wrap:wrap}
.allys .project-badges span{
  padding:.48rem .72rem; border-radius:999px; background:var(--gold); color:var(--ink);
  font-size:.55rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em;
}
.allys .project-hero-copy>small{
  display:block; margin-top:1.5rem; font-size:.65rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.12em; color:var(--gold);
}
.allys .project-hero h1{margin:1rem 0; font-size:clamp(3rem,7vw,7.5rem); line-height:.88; letter-spacing:-.055em}
.allys .project-hero-copy>p{max-width:620px; font-size:1rem; line-height:1.65; color:rgba(255,255,255,.83)}
.allys .project-hero-copy>a{
  width:280px; max-width:100%; display:flex; justify-content:space-between; align-items:center;
  margin-top:2rem; padding:1rem 1.25rem; border-radius:999px; background:#fff; color:var(--ink);
  font-size:.72rem; font-weight:800;
}
.allys .project-stats{position:absolute; left:max(32px,7vw); right:max(32px,7vw); bottom:40px; display:flex; flex-wrap:wrap}
.allys .project-stats article{
  min-width:150px; padding:1rem 1.5rem; border-left:1px solid rgba(255,255,255,.25);
  background:rgba(10,17,28,.28); backdrop-filter:blur(12px);
}
.allys .project-stats small{display:block; font-size:.55rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.6)}
.allys .project-stats b{display:block; margin-top:.35rem; font-size:1.25rem; color:var(--gold)}

.allys .project-about{display:grid; grid-template-columns:1.1fr .85fr; gap:5vw; align-items:start}
.allys .project-about-intro>span,
.allys .project-page .availability header>span,
.allys .project-gallery header>span,
.allys .project-agents header>span,
.allys .project-amenities>span{
  display:block; margin-bottom:1.1rem; font-size:.68rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.16em; color:var(--primary);
}
.allys .project-about-intro h2,
.allys .project-page .availability h2,
.allys .project-gallery h2,
.allys .project-interest h2,
.allys .project-agents h2{margin:0 0 2rem; font-size:clamp(2.4rem,5vw,5.5rem); line-height:.96; letter-spacing:-.05em}
.allys .project-about-intro>p{margin:0 0 1.1rem; font-size:.9rem; line-height:1.8; color:#697483}
.allys .project-figures{display:grid; grid-template-columns:1fr 1fr; margin-top:3rem; border-top:1px solid #e5e8ec}
.allys .project-figures span{padding:1.3rem 0; border-bottom:1px solid #e5e8ec; font-size:.65rem; color:#78828e}
.allys .project-figures b{display:block; font-size:1.35rem; color:var(--ink)}
.allys .project-about figure{margin:0; border-radius:22px; overflow:hidden}
.allys .project-about figure img{display:block; width:100%; height:620px; object-fit:cover}
.allys .project-about figcaption{padding:.8rem 1rem; background:#f7f8fa; font-size:.6rem; color:#75808c}

/* Dotările n-au loc în machetă, dar toate cele 4 ansambluri reale le au completate. */
.allys .project-amenities{padding-top:0}
.allys .project-amenities ul{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none}
.allys .project-amenities li{
  padding:.6rem .9rem; border:1px solid var(--a-about-line,#e7eaee); border-radius:999px;
  font-size:.72rem; color:#5d6874;
}

.allys .project-page .availability{position:relative; overflow:hidden; background:var(--navy); color:#fff}
.allys .project-page .availability:before{
  content:''; position:absolute; inset:0; opacity:.16;
  background-image:radial-gradient(#fff 1px,transparent 1px); background-size:22px 22px;
}
.allys .project-page .availability>*{position:relative}
.allys .project-page .availability header>span{color:var(--gold)}
.allys .project-page .availability header>p{font-size:.9rem; line-height:1.7; color:rgba(255,255,255,.68)}
.allys .unit-list{margin-top:4rem; border-top:1px solid rgba(255,255,255,.2)}
.allys .unit-list article{
  display:grid; grid-template-columns:55px 1.4fr .7fr .7fr auto; gap:1rem; align-items:center;
  padding:1.5rem 1rem; border-bottom:1px solid rgba(255,255,255,.14);
}
.allys .unit-list>article>i{font-style:normal; font-size:.65rem; color:var(--gold)}
.allys .unit-list small{display:block; font-size:.55rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.5)}
.allys .unit-list .unit-name b{display:block; margin-top:.3rem; font-size:1.15rem}
.allys .unit-list .unit-fact{font-size:.85rem; font-weight:700}
.allys .unit-count{
  padding:.55rem .7rem; border-radius:999px; background:rgba(19,191,132,.15); color:#41e0aa;
  font-size:.6rem; white-space:nowrap;
}

.allys .project-gallery header{display:grid; grid-template-columns:1fr auto; gap:2vw; align-items:start}
.allys .gallery-nav{display:flex; gap:8px}
.allys .gallery-nav button{
  width:44px; aspect-ratio:1; border:1px solid var(--a-about-line,#e7eaee); border-radius:12px;
  background:#fff; color:var(--ink); font-size:1rem; cursor:pointer;
}
.allys .gallery-nav button:hover{background:var(--a-about-paper,#f5f7f9)}
.allys .gallery-band{
  display:flex; gap:16px; margin-top:3rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.allys .gallery-band::-webkit-scrollbar{display:none}
.allys .gallery-band figure{flex:0 0 clamp(280px,42vw,620px); margin:0; scroll-snap-align:start; border-radius:20px; overflow:hidden}
.allys .gallery-band figure img{display:block; width:100%; height:clamp(240px,42vh,460px); object-fit:cover}

.allys .project-interest{
  margin:7vw; padding:6vw; min-height:440px; display:flex; justify-content:space-between;
  align-items:center; gap:3rem; border-radius:26px; background:#0d1420; color:#fff;
}
.allys .project-interest>div{max-width:680px}
.allys .project-interest>div>span{display:block; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; color:var(--gold)}
.allys .project-interest h2{margin:1.4rem 0}
.allys .project-interest p{color:rgba(255,255,255,.7); line-height:1.75}
.allys .project-interest>div>div{display:flex; flex-wrap:wrap; gap:10px; margin-top:2rem}
.allys .project-interest a{
  padding:1rem 1.3rem; border:1px solid rgba(255,255,255,.35); border-radius:999px;
  color:#fff; font-size:.72rem; font-weight:800;
}
.allys .project-interest a:first-child,
.allys .project-interest a.principal{background:var(--gold); border-color:var(--gold); color:var(--ink)}
.allys .project-interest svg{width:260px; flex:0 0 auto; fill:none; stroke:rgba(228,206,74,.55); stroke-width:1.5}

.allys .agent-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:4rem}
.allys .agent-grid article{
  display:grid; grid-template-columns:200px 1fr; border-radius:22px; overflow:hidden;
  background:var(--a-about-paper,#f5f7f9);
}
.allys .agent-photo{background:var(--a-portrait-bg) center/cover no-repeat; min-height:230px}
.allys .agent-grid article>div{padding:2rem; display:flex; flex-direction:column; justify-content:center}
.allys .agent-grid small{font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--primary)}
.allys .agent-grid h3{margin:.6rem 0 1rem; font-size:1.5rem}
.allys .agent-grid a{font-size:.72rem; font-weight:800; color:var(--ink)}

/* Pâlnia e componenta veche, în Tailwind, montată în blocul întunecat de disponibilitate: îi dăm
   doar spațiu și o suprafață pe care se citește, fără să-i rescriem stilurile. */
.allys .unit-funnel{margin-top:3.5rem; padding:clamp(16px,2vw,28px); border-radius:22px; background:#fff; color:var(--ink)}

/* Aceeași protecție ca la „Despre": vizibil implicit, stins doar când observer-ul există. */
.allys .project-page.anim-activ .anim{opacity:0; transform:translateY(20px); transition:.7s}
.allys .project-page.anim-activ .anim.visible{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){
  .allys .project-page.anim-activ .anim{opacity:1; transform:none; transition:none}
}

@media(max-width:1000px){
  .allys .project-about{grid-template-columns:1fr}
  .allys .project-about figure img{height:52vh}
  .allys .agent-grid{grid-template-columns:1fr}
  /* Articolul rămăsese pe `200px 1fr`: la 390 coloana de text pornea de la x=220 și ieșea din
     ecran cu 8px. Pe mobil fotografia trece deasupra, pe rând propriu. */
  .allys .agent-grid article{grid-template-columns:1fr; grid-template-rows:220px auto}
  .allys .agent-grid article>div{padding:1.5rem}
  .allys .unit-list article{grid-template-columns:40px 1fr auto; row-gap:.4rem}
  .allys .unit-list .unit-fact{grid-column:2/4; display:flex; gap:8px; align-items:baseline; font-size:.78rem}
  .allys .unit-list .unit-fact small{display:inline}
  .allys .project-interest{flex-direction:column; align-items:flex-start; margin:20px; padding:44px 22px; min-height:0}
  .allys .project-interest svg{width:170px; align-self:center; margin-top:2rem}
  .allys .project-figures{grid-template-columns:1fr}
  .allys .project-hero{height:88svh; min-height:560px}
  .allys .project-stats article{min-width:0; flex:1 1 120px; padding:.8rem 1rem}
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   CATALOGUL DE PROPRIETĂȚI — portat din `properties/properties.css` (Server 2).
   Măsurat pe bara veche (partajată): butonul „Orice" avea `color:rgb(32,40,58)` pe
   `background:rgb(0,0,0)` — navy pe negru; 6 selectoare native cu săgeata browserului; bara
   depășea marginea din dreapta la 1440; iar panoul extins stivuia „Zonă", „Dormitoare" și „Băi"
   pe câte un rând, cu jumătate de ecran gol lângă ele.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.allys .catalog-page{padding:calc(var(--pad) + 90px) var(--pad) var(--pad)}

.allys .catalog-intro{
  max-width:1280px; margin:0 auto 2.5rem; display:flex; justify-content:space-between;
  align-items:flex-end; gap:3rem; flex-wrap:wrap;
}
.allys .catalog-kicker{
  display:block; margin-bottom:1rem; font-size:.68rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.16em; color:var(--primary);
}
.allys .catalog-intro h1{margin:0; font-size:clamp(2.4rem,4.6vw,4.6rem); line-height:.98; letter-spacing:-.05em}
.allys .catalog-intro>div>p{margin:1rem 0 0; max-width:520px; font-size:.9rem; line-height:1.7; color:#6f7986}
.allys .catalog-counts{display:flex; gap:30px}
.allys .catalog-counts article{min-width:100px}
.allys .catalog-counts b{display:block; font-size:1.8rem; letter-spacing:-.03em}
.allys .catalog-counts span{font-size:.65rem; color:#7a8491}

/* ── Bara de filtrare: UN rând, proporții din machetă ───────────────────────────────────────── */
.allys .catalog-filter{
  position:sticky; top:90px; z-index:40; max-width:1280px; margin:0 auto 14px; padding:8px;
  display:grid; grid-template-columns:1.4fr .85fr .85fr .85fr auto auto; align-items:center;
  border:1px solid var(--a-about-line,#e7eaee); border-radius:18px; background:#fff;
  box-shadow:0 12px 34px rgba(25,35,52,.08);
}
.allys .keyword{display:flex; align-items:center; gap:10px; min-width:0; padding:0 16px; border-right:1px solid var(--a-about-line,#e7eaee)}
.allys .keyword>span{font-size:1.2rem; color:var(--a-about-muted,#717c88)}
.allys .keyword input{width:100%; min-width:0; height:52px; border:0; outline:0; background:none; font:inherit; font-size:.78rem; color:var(--ink)}
.allys .filter-select{position:relative; min-width:0; border-right:1px solid var(--a-about-line,#e7eaee)}
.allys .filter-select>button{
  width:100%; height:52px; display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:0 15px; border:0; background:none; cursor:pointer;
  font-family:var(--font-ui,inherit); font-size:.73rem; font-weight:700; color:var(--ink);
}
.allys .filter-select>button span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.allys .filter-select i{font-style:normal; flex:0 0 auto; color:var(--a-about-muted,#717c88)}
.allys .filter-select>div{
  position:absolute; left:5px; right:5px; top:calc(100% + 12px); z-index:5;
  max-height:320px; overflow-y:auto; padding:7px; border-radius:14px; background:#fff;
  box-shadow:0 20px 40px rgba(25,35,52,.18);
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:.18s;
}
.allys .filter-select.open>div{opacity:1; visibility:visible; transform:none}
.allys .filter-select>div button{
  width:100%; padding:.7rem; border:0; border-radius:9px; background:none; cursor:pointer;
  text-align:left; font:inherit; font-size:.72rem; color:var(--ink);
}
.allys .filter-select>div button:hover{background:#f0f3f5; color:var(--primary)}
.allys .filter-select>div button.selected{background:var(--a-about-paper,#f5f7f9); color:var(--primary); font-weight:700}
.allys .more-filters{
  display:flex; align-items:center; gap:7px; height:52px; padding:0 16px; border:0; background:none;
  cursor:pointer; font:inherit; font-size:.72rem; font-weight:700; color:var(--ink); white-space:nowrap;
}
.allys .more-filters.activ{color:var(--primary)}
.allys .catalog-search{
  height:52px; padding:0 26px; border:0; border-radius:12px; cursor:pointer;
  background:var(--primary); color:#fff; font:inherit; font-size:.74rem; font-weight:800; white-space:nowrap;
}
.allys .catalog-search:hover{filter:brightness(1.07)}

/* ── Panoul extins: grilă, nu stivă ─────────────────────────────────────────────────────────── */
.allys .catalog-extins{
  max-width:1280px; margin:0 auto 24px; padding:22px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:20px 26px;
  align-items:start;
  border:1px solid var(--a-about-line,#e7eaee); border-radius:18px; background:var(--a-about-paper,#f5f7f9);
}
.allys .filtru-camp{min-width:0}
/* Rândurile de pastile ocupă două coloane: încap pe o linie, iar coloanele scurte („Zonă",
   „Preț", „Sortare") nu mai lasă goluri lângă ele. */
.allys .filtru-camp--larg{grid-column:span 2}
@media(max-width:800px){ .allys .filtru-camp--larg{grid-column:auto} }
.allys .filtru-camp>span{
  display:block; margin-bottom:.6rem; font-size:.62rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.12em; color:var(--a-about-muted,#717c88);
}
.allys .catalog-extins .filter-select{border:1px solid var(--a-about-line,#e7eaee); border-radius:12px; background:#fff}
.allys .catalog-extins .filter-select>button{height:44px}
.allys .filtru-interval{display:flex; gap:8px}
.allys .filtru-interval input{
  width:100%; min-width:0; height:44px; padding:0 12px; border:1px solid var(--a-about-line,#e7eaee);
  border-radius:12px; background:#fff; font:inherit; font-size:.75rem; color:var(--ink);
}
/* Pastilele de „câte camere": «Orice» e o pastilă ca oricare alta. */
.allys .pastile{display:flex; flex-wrap:wrap; gap:6px}
.allys .pastile button{
  min-width:46px; height:38px; padding:0 12px; cursor:pointer;
  border:1px solid var(--a-about-line,#e7eaee); border-radius:11px; background:#fff;
  font:inherit; font-size:.74rem; font-weight:700; color:var(--ink);
}
.allys .pastile button:hover{border-color:var(--primary); color:var(--primary)}
.allys .pastile button.activ{background:var(--primary); border-color:var(--primary); color:#fff}
.allys .filtru-reset{
  align-self:end; height:38px; padding:0 14px; border:1px solid var(--a-about-line,#e7eaee);
  border-radius:11px; background:#fff; cursor:pointer; font:inherit; font-size:.72rem;
  font-weight:700; color:#b3261e;
}
.allys .catalog-rezultate{max-width:1280px; margin:0 auto}

@media(max-width:1100px){
  .allys .catalog-filter{grid-template-columns:1fr 1fr; gap:6px; position:static}
  .allys .keyword{grid-column:1/3; border-right:0; border-bottom:1px solid var(--a-about-line,#e7eaee)}
  .allys .filter-select{border-right:0}
  .allys .filter-select:nth-of-type(odd){border-right:1px solid var(--a-about-line,#e7eaee)}
  .allys .more-filters{justify-content:center; border-top:1px solid var(--a-about-line,#e7eaee)}
  .allys .catalog-search{margin:6px}
}
@media(max-width:800px){
  .allys .catalog-page{padding:calc(var(--pad) + 70px) 20px 60px}
  .allys .catalog-filter{grid-template-columns:1fr}
  .allys .keyword{grid-column:auto}
  .allys .filter-select,
  .allys .filter-select:nth-of-type(odd){border-right:0; border-bottom:1px solid var(--a-about-line,#e7eaee)}
  .allys .catalog-extins{grid-template-columns:1fr; padding:18px}
  .allys .catalog-intro{gap:1.6rem}
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   PAGINA DE ECHIPĂ — portată din `team/team.css` (Server 2), scopată sub `.allys .team-page`.
   ⚠️ Macheta desenează trei consultanți, cu cel din mijloc decalat. 148 din 159 de agenții au UN
   singur agent — deci `.agents-putini` păstrează lățimea desenată și centrează rândul, în loc să
   întindă un card pe toată grila.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
/* Eroul e un cap de pagină, nu o secțiune de sine stătătoare: cu titlu singur, spațierea desenată
   pentru machetă (care avea și o casetă de cifre lângă) lăsa un gol de câteva sute de pixeli. */
.allys .team-hero{
  min-height:auto; padding:calc(var(--pad) + 96px) var(--pad) clamp(44px,5vw,72px);
  background:#f2f5f4;
}
.allys .team-hero>span,
.allys .team-page .lead-team header>span,
.allys .team-manifesto article>span,
.allys .join span{
  display:block; font-size:.68rem; font-weight:900; letter-spacing:.11em;
  text-transform:uppercase; color:var(--primary);
}
/* 8rem era desenat pentru „Experiență locală. / Perspective diferite." — două rânduri scurte.
   Titlul implicit are 40 de caractere și umplea tot ecranul. */
.allys .team-hero h1{margin:1.5rem 0 0; max-width:1050px; font-size:clamp(2.4rem,5.2vw,5.4rem); line-height:.92; letter-spacing:-.05em}
.allys .team-hero p{max-width:590px; margin:1.4rem 0 0; color:#687482; line-height:1.75}

/* Macheta are trei coloane (supratitlu · titlu · text). Cu două, supratitlul lua prima celulă și
   împingea titlul în dreapta — se vedea „ECHIPA DE CONSULTANȚĂ" la stânga și titlul lipit de
   marginea opusă. Aici supratitlul stă DEASUPRA titlului, iar textul rămâne în coloana a doua. */
.allys .team-page .lead-team header{display:grid; grid-template-columns:1.6fr .8fr; gap:1rem 4vw; align-items:start}
.allys .team-page .lead-team header>span{grid-column:1; grid-row:1}
.allys .team-page .lead-team h2{grid-column:1; grid-row:2}
.allys .team-page .lead-team header p{grid-column:2; grid-row:1/3; align-self:center}
.allys .team-page .lead-team h2,
.allys .team-manifesto h2,
.allys .join h2{margin:1.1rem 0 0; font-size:clamp(2.4rem,5.4vw,6.4rem); line-height:.92; letter-spacing:-.055em}
.allys .team-page .lead-team header p{margin:0; color:#6d7885; line-height:1.7}
.allys .team-page .lead-team{padding-top:clamp(56px,7vw,110px)}
.allys .agents{margin-top:clamp(2.5rem,5vw,5rem); display:grid; grid-template-columns:repeat(3,1fr); gap:2vw}
/* Unul sau doi agenți: lățimea desenată, rând centrat. Întinderea ar deforma proporția. */
.allys .agents-putini{grid-template-columns:repeat(auto-fit,minmax(0,340px)); justify-content:center; gap:2.5rem}
.allys .agent-card.offset{margin-top:7vw}
.allys .agents-putini .agent-card.offset{margin-top:0}
.allys .team-page .photo{
  position:relative; height:clamp(360px,42vw,590px); border-radius:26px; overflow:hidden;
  background:var(--a-portrait-bg) center/cover no-repeat;
}
.allys .team-page .photo.photo-a{background-color:#e9e6df}
.allys .team-page .photo.photo-b{background-color:#e4e8ea}
.allys .team-page .photo.photo-c{background-color:#e8e4e6}
.allys .team-page .photo>span{
  position:absolute; right:22px; top:12px; color:rgba(32,40,58,.16);
  font-size:clamp(3.5rem,7vw,6rem); font-weight:900; letter-spacing:-.04em;
}
.allys .agent-hover{
  position:absolute; left:14px; right:14px; bottom:14px; max-height:0; padding:0 1.4rem;
  overflow:hidden; border-radius:18px; background:rgba(23,35,58,.92); color:#fff;
  opacity:0; transform:translateY(8px); transition:.35s;
}
.allys .agent-card:hover .agent-hover,
.allys .agent-card:focus-within .agent-hover{max-height:260px; padding-top:1.4rem; padding-bottom:1.4rem; opacity:1; transform:none}
.allys .agent-hover small{font-size:.55rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold)}
.allys .agent-hover p{margin:.5rem 0 .9rem; font-size:.75rem; line-height:1.6; color:rgba(255,255,255,.8)}
.allys .agent-hover a{font-size:.7rem; font-weight:800; color:#fff}
.allys .agent-copy{display:grid; grid-template-columns:auto 1fr auto; gap:.2rem .9rem; align-items:baseline; margin-top:1.4rem}
.allys .agent-copy>span{font-size:.66rem; font-weight:800; color:var(--gold)}
.allys .agent-copy h3{margin:0; font-size:1.35rem; letter-spacing:-.02em}
.allys .agent-copy p{grid-column:2; margin:.3rem 0 0; font-size:.75rem; color:#6f7986}
.allys .agent-sageata{
  grid-row:1/3; align-self:center; width:40px; height:40px; display:inline-flex;
  align-items:center; justify-content:center; border:1px solid var(--a-about-line,#e7eaee);
  border-radius:50%; color:var(--ink);
}

.allys .team-manifesto{
  display:grid; grid-template-columns:auto 1fr; gap:5vw; align-items:center;
  padding:clamp(70px,9vw,150px) var(--pad); background:var(--a-about-paper,#f5f7f9);
}
.allys .manifesto-mark svg{width:clamp(180px,22vw,340px); fill:none; stroke:var(--primary); stroke-width:1.2; opacity:.5}
.allys .team-manifesto article>div{margin-top:2.4rem; display:grid; gap:1.2rem; max-width:720px}
.allys .team-manifesto article p{margin:0; font-size:.9rem; line-height:1.8; color:#697483}
.allys .team-manifesto article b{color:var(--ink)}

.allys .join{padding:clamp(60px,7vw,110px) var(--pad)}
.allys .join>div{
  max-width:1280px; margin:0 auto; padding:clamp(40px,5vw,80px);
  border-radius:26px; background:var(--navy); color:#fff;
}
.allys .join h2{color:#fff}
.allys .join p{margin:1.2rem 0 0; max-width:560px; color:rgba(255,255,255,.72); line-height:1.75}
.allys .join a{
  display:inline-block; margin-top:2rem; padding:1rem 1.4rem; border-radius:999px;
  background:var(--gold); color:var(--ink); font-size:.72rem; font-weight:800;
}

@media(max-width:900px){
  .allys .team-page .lead-team header{grid-template-columns:1fr; gap:1.4rem}
  .allys .agents{grid-template-columns:1fr; gap:2.5rem}
  .allys .agent-card.offset{margin-top:0}
  .allys .team-manifesto{grid-template-columns:1fr; gap:2.5rem}
  .allys .manifesto-mark{justify-self:center}
  /* Fără hover pe atingere: panoul se arată permanent, sub fotografie. */
  .allys .agent-hover{position:static; max-height:none; opacity:1; transform:none; padding:1.2rem; margin-top:.8rem; border-radius:16px}
}

/* ── Grilele de rezultate din catalog ──────────────────────────────────────────────────────── */
.allys .featured-grid{max-width:1280px; margin:0 auto 22px; display:grid; grid-template-columns:1fr 1fr; gap:22px}
.allys .featured-estate{
  position:relative; display:block; height:530px; border-radius:22px; overflow:hidden; color:#fff;
  box-shadow:0 14px 34px rgba(25,35,52,.12);
}
.allys .featured-estate>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1)}
.allys .featured-estate:hover>img{transform:scale(1.04)}
.allys .estate-overlay{position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,15,25,.9),rgba(9,15,25,.08) 70%)}
.allys .estate-type,
.allys .estate-badge{
  position:absolute; top:20px; z-index:2; padding:.5rem .7rem; border-radius:999px;
  font-size:.55rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em;
}
.allys .estate-type{left:20px; background:rgba(255,255,255,.92); color:var(--ink)}
.allys .estate-badge{right:20px; background:#0fbf83; color:#fff}
.allys .featured-content{position:absolute; left:28px; right:28px; bottom:25px; z-index:2}
.allys .featured-content small{font-size:.65rem; color:var(--gold)}
.allys .featured-content h2{margin:.6rem 0; font-size:clamp(1.5rem,2.4vw,2.4rem); line-height:1.05; letter-spacing:-.03em}
.allys .featured-content>p{max-width:470px; margin:0; font-size:.73rem; line-height:1.55; color:rgba(255,255,255,.75)}
.allys .featured-content>div{display:flex; align-items:center; flex-wrap:wrap; gap:8px 28px; margin:1.3rem 0}
.allys .featured-content>div b{font-size:1.1rem; color:var(--gold)}
.allys .featured-content>div span{font-size:.65rem; color:rgba(255,255,255,.8)}
.allys .featured-cta{
  display:inline-flex; justify-content:space-between; gap:14px; width:150px; padding:.75rem 1rem;
  border-radius:999px; background:var(--gold); color:var(--ink); font-size:.65rem; font-weight:800;
}
.allys .featured-cta i{font-style:normal}

.allys .standard-grid{max-width:1280px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.allys .estate-card{
  position:relative; border:1px solid #eaecf0; border-radius:18px; background:#fff; overflow:hidden;
  box-shadow:0 5px 18px rgba(25,35,52,.07); transition:transform .35s ease, box-shadow .35s ease;
}
.allys .estate-card:hover{transform:translateY(-5px); box-shadow:0 18px 38px rgba(25,35,52,.13)}
.allys .estate-card>a{display:block; padding-bottom:20px}
.allys .estate-foto{position:relative; height:230px; overflow:hidden; background:var(--a-about-paper,#f5f7f9)}
.allys .estate-foto img{width:100%; height:100%; object-fit:cover}
.allys .estate-fara-poza{display:block; width:100%; height:100%; background:var(--a-portrait-bg)}
.allys .estate-card small{display:block; margin:1.1rem 20px .4rem; font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:var(--a-about-muted,#717c88)}
.allys .estate-card h3{margin:0 20px; font-size:1.1rem; line-height:1.25; letter-spacing:-.02em}
.allys .card-description{margin:.6rem 20px 0; font-size:.74rem; line-height:1.6; color:#6f7986}
.allys .card-facts{display:flex; flex-wrap:wrap; gap:6px 14px; margin:1rem 20px 0}
.allys .card-facts span{font-size:.66rem; color:var(--a-about-muted,#717c88)}
.allys .estate-card>a>b{display:block; margin:1rem 20px 0; font-size:1.15rem; letter-spacing:-.02em}
.allys .estate-cta{display:inline-block; margin:.9rem 20px 0; font-size:.68rem; font-weight:800; color:var(--primary)}
.allys .estate-cta i{font-style:normal}

.allys .catalog-gol{
  max-width:560px; margin:60px auto; padding:40px; text-align:center;
  border:1px solid var(--a-about-line,#e7eaee); border-radius:20px; background:#fff;
}
.allys .catalog-gol b{display:block; font-size:1.3rem; margin-bottom:.6rem}
.allys .catalog-gol p{margin:0 0 1.4rem; font-size:.85rem; color:#6f7986; line-height:1.7}
.allys .catalog-gol a{display:inline-block; padding:.9rem 1.3rem; border-radius:999px; background:var(--primary); color:#fff; font-size:.72rem; font-weight:800}

.allys .catalog-paginare{display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:44px auto 0}
.allys .catalog-paginare a{
  min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 14px; border:1px solid var(--a-about-line,#e7eaee); border-radius:12px; background:#fff;
  font-size:.74rem; font-weight:700; color:var(--ink);
}
.allys .catalog-paginare a:hover{border-color:var(--primary); color:var(--primary)}
.allys .catalog-paginare a.activ{background:var(--navy); border-color:var(--navy); color:#fff}

@media(max-width:1100px){
  .allys .featured-grid{grid-template-columns:1fr}
  .allys .featured-estate{height:420px}
  .allys .standard-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .allys .standard-grid{grid-template-columns:1fr}
  .allys .featured-estate{height:340px}
  .allys .featured-content{left:18px; right:18px; bottom:18px}
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   PAGINA DE PROPRIETATE — singurul ecran fără machetă, desenat în limbajul celorlalte pagini.
   Prețul e elementul principal al primului ecran, nu o celulă într-o bară de statistici.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.allys .property-page{padding:calc(var(--pad) + 96px) var(--pad) 0}
.allys .prop-cap{max-width:1280px; margin:0 auto}
.allys .prop-firimituri{display:flex; gap:8px; font-size:.68rem; color:var(--a-about-muted,#717c88); margin-bottom:1.4rem}
.allys .prop-firimituri a{color:var(--primary); font-weight:700}
.allys .prop-cap-rand{display:flex; justify-content:space-between; align-items:flex-end; gap:2.5rem; flex-wrap:wrap}
.allys .prop-eyebrow{
  display:block; margin-bottom:.9rem; font-size:.66rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.14em; color:var(--primary);
}
.allys .prop-cap h1{margin:0; max-width:820px; font-size:clamp(1.9rem,3.4vw,3.2rem); line-height:1.05; letter-spacing:-.035em}
.allys .prop-adresa{margin:.8rem 0 0; font-size:.85rem; color:#6f7986}
.allys .prop-pret{text-align:right}
.allys .prop-pret b{display:block; font-size:clamp(1.9rem,3.2vw,2.9rem); line-height:1; letter-spacing:-.03em; color:var(--ink)}
.allys .prop-pret em{
  display:inline-block; margin-top:.6rem; padding:.35rem .7rem; border-radius:999px;
  background:#fef3c7; color:#92400e; font-style:normal; font-size:.62rem; font-weight:800; text-transform:uppercase;
}
.allys .prop-cod{display:block; margin-top:.6rem; font-size:.66rem; color:var(--a-about-muted,#717c88)}
.allys .prop-fapte{
  display:flex; flex-wrap:wrap; gap:10px; margin-top:2rem; padding-top:1.6rem;
  border-top:1px solid var(--a-about-line,#e7eaee);
}
.allys .prop-fapte span{
  display:flex; flex-direction:column; gap:.2rem; min-width:112px; padding:.9rem 1.1rem;
  border:1px solid var(--a-about-line,#e7eaee); border-radius:14px; background:#fff;
  font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; color:var(--a-about-muted,#717c88);
}
.allys .prop-fapte b{font-size:1.05rem; letter-spacing:-.02em; color:var(--ink); text-transform:none; letter-spacing:0}
.allys .prop-galerie{max-width:1280px; margin:2.4rem auto 0}

.allys .prop-corp{
  max-width:1280px; margin:0 auto; padding:clamp(40px,5vw,72px) 0;
  display:grid; grid-template-columns:1fr 380px; gap:clamp(28px,4vw,60px); align-items:start;
}
.allys .prop-stanga>section{padding-bottom:2.4rem; margin-bottom:2.4rem; border-bottom:1px solid var(--a-about-line,#e7eaee)}
.allys .prop-stanga>section:last-child{border-bottom:0; margin-bottom:0}
.allys .prop-stanga h2{margin:0 0 1.2rem; font-size:1.35rem; letter-spacing:-.02em}
.allys .prop-descriere p{margin:0 0 .9rem; font-size:.88rem; line-height:1.85; color:#5f6a77}
.allys .prop-descriere.scurtata{max-height:200px; overflow:hidden; -webkit-mask-image:linear-gradient(#000 62%,transparent); mask-image:linear-gradient(#000 62%,transparent)}
.allys .prop-mai-mult{
  margin-top:.4rem; padding:0; border:0; background:none; cursor:pointer;
  font:inherit; font-size:.74rem; font-weight:800; color:var(--primary);
}
.allys .prop-detalii{display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin:0}
.allys .prop-detalii>div{display:flex; justify-content:space-between; gap:12px; padding:.85rem 0; border-bottom:1px solid var(--a-about-line,#e7eaee)}
.allys .prop-detalii dt{font-size:.78rem; color:var(--a-about-muted,#717c88)}
.allys .prop-detalii dd{margin:0; font-size:.8rem; font-weight:700; color:var(--ink); text-align:right}
.allys .prop-facilitati{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none}
.allys .prop-facilitati li{
  padding:.55rem .85rem; border:1px solid var(--a-about-line,#e7eaee); border-radius:999px;
  background:var(--a-about-paper,#f5f7f9); font-size:.74rem; color:#5d6874;
}
.allys .prop-finisaje{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem}
.allys .prop-finisaje>div>span{display:block; margin-bottom:.5rem; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--a-about-muted,#717c88)}
.allys .prop-finisaje ul{display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none}
.allys .prop-finisaje li{padding:.4rem .7rem; border-radius:8px; background:var(--a-about-paper,#f5f7f9); font-size:.7rem; color:#5d6874}
.allys .prop-calculator{padding:20px; border:1px solid var(--a-about-line,#e7eaee); border-radius:18px; background:var(--a-about-paper,#f5f7f9)}
.allys .prop-calculator input[type=number],
.allys .prop-calculator input[type=text]{
  padding:.7rem .8rem; border:1px solid var(--a-about-line,#e7eaee); border-radius:10px;
  font:inherit; font-size:.8rem; background:#fff; color:var(--ink);
}
.allys .prop-calculator input[type=range]{accent-color:var(--primary)}
.allys .prop-video{position:relative; padding-top:56.25%; border-radius:18px; overflow:hidden}
.allys .prop-video iframe{position:absolute; inset:0; width:100%; height:100%; border:0}

/* Coloana lipicioasă — funcțională abia după ce `.allys` a trecut de la `overflow-x:hidden` la
   `clip`; cu `hidden`, învelișul devenea container de derulare și nimic nu se lipea. */
.allys .prop-lateral{align-self:start; display:grid; gap:14px}
.allys .prop-contact{position:sticky; top:102px; display:grid; gap:12px; z-index:2}
.allys .prop-agent{display:flex; align-items:center; gap:14px; padding:18px; border:1px solid var(--a-about-line,#e7eaee); border-radius:18px; background:#fff}
.allys .prop-agent img{width:56px; height:56px; border-radius:50%; object-fit:cover}
.allys .prop-agent small{display:block; font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--primary)}
.allys .prop-agent b{display:block; margin-top:.25rem; font-size:1rem}
.allys .prop-agent span{font-size:.72rem; color:var(--a-about-muted,#717c88)}
.allys .prop-actiuni{display:grid; gap:10px}
.allys .prop-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:.95rem 1.1rem;
  border-radius:14px; font-size:.78rem; font-weight:800;
}
.allys .prop-btn-tel{background:var(--navy); color:#fff}
.allys .prop-btn-wa{background:#25d366; color:#fff}
.allys .prop-formular{padding:20px; border:1px solid var(--a-about-line,#e7eaee); border-radius:18px; background:#fff}
.allys .prop-formular h3{margin:0 0 1rem; font-size:1rem}
/* Formularul partajat e în Tailwind; se restilizează scopat, fără să-l rescriem. */
.allys .prop-formular input,
.allys .prop-formular textarea{
  width:100%; padding:.8rem .9rem; border:1px solid var(--a-about-line,#e7eaee); border-radius:12px;
  font:inherit; font-size:.8rem; color:var(--ink); background:#fff;
}
.allys .prop-formular button[type=submit]{
  width:100%; padding:.9rem; border:0; border-radius:12px; background:var(--primary); color:#fff;
  font:inherit; font-size:.78rem; font-weight:800; cursor:pointer;
}
.allys .prop-vizualizari{font-size:.7rem; color:var(--a-about-muted,#717c88); text-align:center}
/* Linia de consimțământ din formularul partajat (bifă + text + două linkuri) nu se încadra la
   390px: ieșea 62px în afara ecranului. Se rupe pe rânduri, bifa rămâne sus. */
.allys .prop-formular label{display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px}
.allys .prop-formular label input[type=checkbox]{width:auto; flex:0 0 auto; margin-top:3px}
.allys .prop-formular label span{flex:1 1 0; min-width:0; font-size:.72rem; line-height:1.5; overflow-wrap:anywhere}
.allys .prop-formular a{overflow-wrap:anywhere}

.allys .prop-harta{max-width:1280px; margin:0 auto; padding-bottom:clamp(40px,5vw,72px)}
.allys .prop-harta header>span{display:block; margin-bottom:.8rem; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--primary)}
.allys .prop-harta h2{margin:0 0 .6rem; font-size:clamp(1.6rem,2.6vw,2.4rem); letter-spacing:-.03em}
.allys .prop-harta header p{margin:0 0 1.6rem; font-size:.82rem; color:#6f7986}
.allys .prop-harta-cutie{height:420px; border-radius:20px; overflow:hidden}
.allys .prop-scor{margin-top:20px}

.allys .prop-similare{padding:clamp(56px,7vw,110px) var(--pad); background:var(--navy); color:#fff}
.allys .prop-similare header{max-width:1280px; margin:0 auto 2.6rem}
.allys .prop-similare header>span{display:block; margin-bottom:.8rem; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--gold)}
.allys .prop-similare h2{margin:0; font-size:clamp(1.8rem,3vw,2.8rem); letter-spacing:-.03em}
.allys .prop-similare-banda{
  max-width:1280px; margin:0 auto; display:flex; gap:16px; overflow-x:auto;
  scroll-snap-type:x proximity; scrollbar-width:none; padding-bottom:6px;
}
.allys .prop-similare-banda::-webkit-scrollbar{display:none}
.allys .prop-similar{
  flex:0 0 clamp(220px,24vw,290px); scroll-snap-align:start; padding-bottom:16px;
  border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(255,255,255,.06); overflow:hidden;
}
.allys .prop-similar img{width:100%; height:180px; object-fit:cover}
.allys .prop-similar small{display:block; margin:1rem 16px .35rem; font-size:.6rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.55)}
.allys .prop-similar b{display:block; margin:0 16px; font-size:.9rem; line-height:1.3}
.allys .prop-similar em{display:block; margin:.7rem 16px 0; font-style:normal; font-size:.95rem; font-weight:700; color:var(--gold)}

/* Sub 1000px coloana cade sub conținut, deci contactul ar fi la câteva mii de pixeli de preț. */
.allys .prop-bara-mobil{display:none}
@media(max-width:1000px){
  .allys .prop-corp{grid-template-columns:1fr}
  .allys .prop-lateral{position:static}
  .allys .prop-detalii,
  .allys .prop-finisaje{grid-template-columns:1fr}
  .allys .prop-cap-rand{gap:1.4rem}
  .allys .prop-pret{text-align:left}
  .allys .property-page{padding-bottom:88px}
  .allys .prop-bara-mobil{
    display:flex; align-items:center; gap:12px; position:fixed; left:0; right:0; bottom:0; z-index:45;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
    background:#fff; border-top:1px solid var(--a-about-line,#e7eaee); box-shadow:0 -6px 22px rgba(15,23,42,.1);
  }
  .allys .prop-bara-mobil>b{flex:1 1 auto; font-size:1rem; letter-spacing:-.02em}
  .allys .prop-bara-actiuni{display:flex; gap:8px}
  .allys .prop-bara-mobil .prop-btn{padding:.7rem .9rem; font-size:.72rem}
}
/* Bara globală de jos există pe unele site-uri; a noastră stă deasupra ei. */
.allys .has-bottom-nav .prop-bara-mobil{bottom:4rem}

/* ── Ajustări cerute de Marius, 7 sep ────────────────────────────────────────────────────────
   „butonul Despre agentie din cardul Experienta care face diferenta e taiat, e prea jos, ar
   trebui putin mai mic tot cardul dar lasat pe centru, micsorat cu 20%"
   „lasa doar 3 agenti si fa-le cardurile mai inguste putin, mai mici si pe mijloc"
   „formularul de contact de jos sa fie mai ingust (e prea lung/fullwidth) si centrat" */

/* Cardul „despre": 105vh → 84vh (−20%), conținutul centrat pe verticală, butonul în flux normal
   ca să nu mai poată fi tăiat de marginea de jos. */
.allys .story{height:84vh; min-height:600px}
.allys .story-copy{top:50%; transform:translateY(-50%)}
.allys .story-stat{bottom:8vh}

/* Echipa pe homepage: trei portrete mai înguste, rândul centrat. */
.allys .team .team-grid{grid-template-columns:repeat(auto-fit,minmax(0,308px)); justify-content:center; gap:2rem}
.allys .team .portrait{height:456px}

/* Formularul de contact: era pe toată lățimea; acum mai îngust și centrat. */
.allys .contact-card{max-width:980px}

/* „Ultimele proprietăți adăugate" — același card ca în catalog. */
.allys .latest-properties{background:var(--a-paper,#f7f8fa)}
.allys .latest-cap{
  max-width:1280px; margin:0 auto 2.6rem; display:flex; justify-content:space-between;
  align-items:flex-end; gap:2rem; flex-wrap:wrap;
}
.allys .latest-cap>div>span{
  display:block; margin-bottom:.9rem; font-size:.66rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.14em; color:var(--gold);
}
.allys .latest-cap h2{margin:0; font-size:clamp(2rem,3.6vw,3.4rem); line-height:1; letter-spacing:-.04em}
.allys .latest-cap p{margin:.9rem 0 0; font-size:.86rem; color:#6f7986}
.allys .latest-toate{
  padding:1rem 1.4rem; border-radius:999px; background:var(--navy); color:#fff;
  font-size:.72rem; font-weight:800; white-space:nowrap;
}
.allys .latest-properties .standard-grid{margin-top:0}
@media(max-width:800px){
  .allys .story{height:78vh; min-height:520px}
  .allys .team .portrait{height:56vh}
}

/* ── 11 sep 2026 — corecții găsite pe primul site live pe allys (Autentic House) ─────────────── */

/* Sigla: plafonul din Navbar a urcat la 48px (bara are 64px); pe mobil bara are 58px. */
@media(max-width:800px){.allys .site-header .brand img{max-height:38px;width:auto}}

/* Formularul de contact de pe prima pagină întindea câmpurile pe toată lățimea (1296px). */
.allys .allys-contact-form{max-width:720px;margin-inline:auto}

/* Biografia agentului în panoul peste portret: panoul are plafon de înălțime, deci o biografie lungă
   era tăiată brut, la mijlocul rândului. 4 rânduri + „…".
   - `.agent-details` (prima pagină): plafonat la ORICE lățime — pe hover peste 800px, iar sub 800px
     panoul stă mereu deschis, tot cu `max-height:230px`. Deci clamp peste tot.
   - `.agent-hover` (/echipa): DOAR pe desktop. Sub 900px panoul e static și fără plafon, iar acolo
     clamp-ul ar ascunde biografia fără nicio cale de a o citi. */
.allys .agent-details p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media(min-width:901px){
  .allys .agent-hover p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
}

/* Cardul din caruselul de promovate: butonul „Vezi proprietatea" e un `::after` absolut la 4.8rem de
   jos (~46px înalt), iar când titlul avea 2+ rânduri acoperea rândul de caracteristici (măsurat:
   buton 612–658px, caracteristici 635–652px). Rezervăm jos loc pentru buton + preț, iar prețul
   devine absolut pe TOATE lățimile — pe mobil (regula din `@media(max-width:800px)`) era în flux.
   `:not(.allys-jurnal)`: aceeași clasă `.property-meta` e și pe fișele de blog. */
.allys .properties:not(.allys-jurnal) .property-meta{padding-bottom:8.9rem}
.allys .properties:not(.allys-jurnal) .property-meta>b{position:absolute;left:1.5rem;right:auto;top:auto;bottom:1.6rem;margin:0}
/* Butonul și prețul, ancorate jos în `.property-meta`, nu stăteau pe aceeași linie între carduri:
   titlurile au 1–3 rânduri, deci meta avea înălțimi diferite, deși cardurile (elemente flex într-o
   pistă cu `align-items:stretch`) au aceeași înălțime. Meta se întinde acum până jos. Pe card doar
   direcția — un `flex` aici ar călca `flex-basis`-ul din @media. `flex:1 0 auto`, nu `flex:1` (bază 0%
   strânge conținutul pe Safari vechi); poza nu se turtește (`overflow:hidden` îi face minimul 0). */
.allys .properties:not(.allys-jurnal) .property-card{display:flex;flex-direction:column}
.allys .properties:not(.allys-jurnal) .property-card>a{flex:1 0 auto;display:flex;flex-direction:column}
.allys .properties:not(.allys-jurnal) .property-photo{flex-shrink:0}
.allys .properties:not(.allys-jurnal) .property-meta{flex:1 0 auto}
/* Titlurile de anunț din erou ieșeau pe 5 rânduri la mărimea machetei (clamp 4.2–8.2rem, gândită
   pentru „Autentic House Company", nu pentru „Oportunitate excelentă de investiție în zona Mamaia
   Sat!") și împingeau „Descoperă selecția" PESTE săgețile de navigare — clicul pe săgeată nu mai
   ajungea. Titlurile lungi (>32 de caractere, clasa pusă în HeroSection): mai mici, max 3 rânduri. */
.allys .hero h1.titlu-lung{font-size:clamp(2.6rem,4.4vw,4.8rem);line-height:.98;letter-spacing:-.045em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;padding-bottom:.08em}
@media(max-width:800px){.allys .hero h1.titlu-lung{font-size:9.5vw;line-height:1}}
/* Titlurile foarte lungi (>48 de caractere): încă o treaptă mai mici și până la 4 rânduri, ca să încapă întregi
   (Brasadas, 17 oct 2026: „vrea titlul integral”). Limita rămâne pentru titlurile de proprietate fără sfârșit. */
.allys .hero h1.titlu-foarte-lung{font-size:clamp(2.2rem,3.5vw,3.7rem);-webkit-line-clamp:4}
@media(max-width:800px){.allys .hero h1.titlu-foarte-lung{font-size:8vw}}

/* Eroul derulează singur și pentru cine a cerut mai puțină mișcare (decizie Marius, 11 sep 2026 —
   vezi HeroSection). Pentru ei: fără zoom-ul lent al pozei (scale 1.09→1, 7.4s), doar o estompare. */
@media(prefers-reduced-motion:reduce){
  .allys .hero-image,.allys .hero-image.active{transform:none;transition:opacity .6s ease}
}

/* Cardul „Despre" de pe prima pagină: `.reveal.is-visible{transform:none}` (0,3,0) anula centrarea
   `translateY(-50%)` a lui `.story-copy` (0,2,0, l.135 și l.1419) — textul pornea de la jumătatea
   cardului, iar linkul „Despre agenție" ieșea pe jos, tăiat de `overflow:hidden` (măsurat: card
   756px, text 378–779px). Același tipar ca la erou (l.202–203); `transform`, nu `translate`, ca să
   meargă și pe browserele Android mai vechi. */
.allys .story-copy.reveal,.allys .story-copy.reveal.is-visible{transform:translateY(-50%)}
/* Textul mic și linkul de sub titlu: pe fontul textelor mici din allys, nu pe cel al corpului. */
.allys .story-copy>span{font-family:'Nunito Sans',sans-serif;font-size:.9rem;line-height:1.7}
.allys .story-copy a{font-family:'Nunito Sans',sans-serif;font-weight:800}

/* Subsol: titlurile coloanelor (8.8px) și linkurile spre pagini (11.2px) erau greu de citit. Le
   creștem moderat și aducem la aceeași scară blocurile vecine (zone, adresă, newsletter), ca
   linkurile să nu iasă mult mai mari decât restul subsolului. */
.allys .footer-links small{font-size:.66rem}
.allys .footer-links a{font-size:.84rem}
.allys .footer-zones a,.allys .footer-top p,.allys .footer-top>a:not(.brand),.allys .newsletter p{font-size:.76rem}

/* Caruselul de promovate (și fișele de blog, aceeași pistă): `justify-content:center` (l.328) făcea
   ca un conținut mai lat decât pista să iasă pe AMBELE părți, iar partea stângă nu se poate derula —
   primele carduri rămâneau inaccesibile (măsurat la 1440: la scrollLeft 0, primul card la x −505…−120,
   al doilea tăiat). Marginile auto: centrat când încape, de la primul card când nu. NU `safe center`:
   pe Safari vechi declarația cade și rămâne exact defectul. */
.allys .property-track{justify-content:flex-start}
.allys .property-track>:first-child{margin-left:auto}
.allys .property-track>:last-child{margin-right:auto}

/* „Proprietăți asemănătoare": săgeți ←/→ în antet. Antetul devine grilă, cu eticheta și titlul copii
   DIRECȚI (selectorul `header>span` de la l.1372 cere asta), butoanele în dreapta. Aspectul vine din
   `.slider-buttons` (global, deja gândit pe fundal închis). La capete, butoanele sunt `aria-disabled`
   (nu `disabled` — acela scoate butonul din Tab și focusul sare pe body). */
.allys .prop-similare header{display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:1.5rem}
.allys .prop-similare header>span,.allys .prop-similare header>h2{grid-column:1}
.allys .prop-similare header .slider-buttons{grid-column:2;grid-row:1/3;gap:.6rem}
.allys .slider-buttons button[aria-disabled="true"]{opacity:.35;cursor:default}
.allys .slider-buttons button[aria-disabled="true"]:hover{background:none;color:white}

/* ── Mobil, runda a patra (11 sep 2026) ───────────────────────────────────────────────────────── */

/* Meniul ☰ NU se deschidea deloc pe telefon: regula de la l.204 caută `.menu-open` ÎN INTERIORUL
   barei (`.allys .menu-open .site-header nav`), dar `Navbar.tsx` pune clasa chiar pe
   `<header class="site-header">`. Tapul bloca doar derularea paginii. Același tipar ca `.rp` și
   `.has-bottom-nav` (două clase pe ACELAȘI element citite ca strămoș + descendent). */
@media(max-width:800px){.allys .site-header.menu-open nav{opacity:1;visibility:visible;transform:none}}
/* Odată deschis, panoul (fundal `var(--navy)`) arăta linkurile în culoarea barei (`#1d2638`) —
   bleumarin pe bleumarin, practic invizibile. Nu se vedea până acum, fiindcă meniul nu se deschidea. */
@media(max-width:800px){.allys .site-header.menu-open nav a{color:#fff}}

/* Căutarea din erou pe telefon: câmpuri de 20px (sub ținta de 44px pentru deget), etichete de 9px. */
@media(max-width:800px){
  .allys .hero-search .search-choice{min-height:44px}
  .allys .hero-search .search-field small,.allys .hero-controls small{font-size:11px}
}

/* Pagina de anunț pe telefon — sub 768px, pragul la care galeria devine swipe (`md:hidden`); la
   768–1000px rămâne grila de 500px, care nu are ce căuta deasupra titlului. Galeria urcă imediat
   după firimituri: `.prop-cap` devine transparent (`display:contents`), iar ordinea e explicită.
   ⚠️ În flex pe coloană, `margin:… auto` (galerie, corp, hartă) OPREȘTE întinderea — iar pozele sunt
   `fill` (absolute), deci galeria ar fi ieșit de lățime 0. Lățime + margini puse explicit. */
@media(max-width:767px){
  .allys .property-page{display:flex;flex-direction:column}
  .allys .prop-cap{display:contents}
  .allys .property-page>*,.allys .prop-cap>*{order:10;width:100%;max-width:100%;margin-left:0;margin-right:0}
  .allys .prop-firimituri{order:1;margin-bottom:1rem}
  .allys .prop-galerie{order:2;margin-top:0;margin-bottom:1.6rem}
  .allys .prop-cap-rand{order:3}
  .allys .prop-fapte{order:4}
}

/* Bara fixă cu preț + contact stătea SUB bara de navigație de jos (z 50 peste z 45), la `bottom:0`:
   regula de mai sus `.allys .has-bottom-nav .prop-bara-mobil` nu se aplică niciodată — cele două
   clase sunt pe același element rădăcină. Bara de jos există doar sub 768px (`globals.css`) și are
   55px + zona de siguranță, care e deja în padding-ul ei — deci aici nu mai punem `env()` jos.
   Rezerva de spațiu e pe rădăcină, nu pe `.property-page`: subsolul e în afara ei. */
@media(max-width:767px){
  .allys.has-bottom-nav .prop-bara-mobil{bottom:calc(55px + env(safe-area-inset-bottom,0px));padding-bottom:10px}
  .allys.has-bottom-nav:has(.prop-bara-mobil){padding-bottom:calc(55px + 69px + env(safe-area-inset-bottom,0px))}
  /* …iar rezerva veche de pe `.property-page` (88px, l.1397) ar lăsa un gol între conținut și subsol.
     O scoatem doar unde există cea nouă (browsere fără `:has()` o păstrează). */
  .allys.has-bottom-nav:has(.prop-bara-mobil) .property-page{padding-bottom:0}
  /* Rezerva de mai sus presupune bara pe UN rând (69px). Sub 360px prețul („€ / 115.000") și
     „WhatsApp agent" treceau pe două rânduri ⇒ 78px și finalul subsolului acoperit. Eticheta scurtă
     „WhatsApp" e pusă în `allys/PropertyDetail.tsx`, doar pe bara asta. */
  .allys .prop-bara-mobil>b,.allys .prop-bara-mobil .prop-btn{white-space:nowrap}
}
@media(max-width:380px){
  .allys .prop-bara-mobil{gap:8px;padding-left:12px;padding-right:12px}
  /* aici prețul poate trece pe 2 rânduri („Preț la cerere" ieșea din bară cu 4px la 320): 2×~17px
     rămân sub butoanele de 48px, deci bara NU crește — creștea din „WhatsApp agent" pe 2 rânduri */
  .allys .prop-bara-mobil>b{font-size:.92rem;white-space:normal;line-height:1.15;flex:1 1 0;min-width:0}
  /* prețul ia exact ce rămâne după butoane (altfel se strângea proporțional cu ele și rupea „€ / 1.250.000") */
  .allys .prop-bara-actiuni{flex:none}
  .allys .prop-bara-mobil .prop-btn{padding:.7rem .55rem;gap:6px;font-size:.68rem}
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   PROFILUL DE AGENT (`/echipa/<slug>`) — ecran fără machetă, desenat din piesele paginii de
   proprietate: firimituri, supratitlu, coloana lipicioasă de contact (`.prop-contact`, `.prop-btn`),
   `EstateCard` în `.standard-grid`, caseta goală `.catalog-gol`, cifra `.catalog-counts`.
   Până pe 23 sep 2026 ruta randa marcajul generic în Tailwind, deformat de armonizarea de la
   l.487–501 (titluri „SPECIALIZĂRI" uriașe, telefon roșu pe roșu, iconițe de rețele invizibile).
   Spațiul de sus e al componentei, ca la pagina de proprietate (`--pad + 96px`): ruta de site și
   previzualizarea o randează la fel, fără înveliș (în previzualizare firimiturile intrau sub antet).
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.allys{--a-alb:#fff}
.allys .profil-agent{padding-top:calc(var(--pad) + 96px)}
.allys .profil-agent-cap,
.allys .profil-agent-portofoliu{width:min(1280px, calc(100% - 2 * var(--pad))); margin-left:auto; margin-right:auto}
.allys .profil-agent-corp{
  display:grid; grid-template-columns:minmax(0,1fr) 380px; grid-template-areas:"identitate lateral" "bio lateral";
  gap:0 clamp(28px,4vw,60px); align-items:start;
}
.allys .profil-agent-identitate{
  grid-area:identitate; display:grid; grid-template-columns:clamp(210px,21vw,290px) minmax(0,1fr);
  gap:clamp(24px,3vw,44px); align-items:center;
}
.allys .profil-agent-foto{position:relative; aspect-ratio:4/5; border-radius:26px; overflow:hidden; background:var(--a-portrait-bg)}
.allys .profil-agent-foto img{display:block; width:100%; height:100%; max-width:none; object-fit:cover}
.allys .profil-agent-foto>span{
  position:absolute; inset:0; display:grid; place-items:center; color:var(--ink); opacity:.18;
  font-size:clamp(3.5rem,7vw,6rem); font-weight:900; letter-spacing:-.04em;
}
.allys .profil-agent-text{min-width:0}
.allys .profil-agent-text h1{margin:0; font-size:clamp(2.2rem,4.2vw,4rem); line-height:.98; letter-spacing:-.045em; overflow-wrap:anywhere}
.allys .profil-agent-retele{display:flex; flex-wrap:wrap; gap:8px; margin:1.4rem 0 0; padding:0; list-style:none}
.allys .profil-agent-retele a{
  width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--a-about-line); border-radius:50%; background:var(--a-alb); color:var(--ink); transition:.25s;
}
.allys .profil-agent-retele a:hover{background:var(--navy); border-color:var(--navy); color:var(--a-alb)}
.allys .profil-agent-retele b{font-size:.62rem; font-weight:800}
.allys .profil-agent-fapte{display:grid; gap:1.1rem; margin:1.8rem 0 0; padding-top:1.4rem; border-top:1px solid var(--a-about-line)}
.allys .profil-agent-fapte dt{margin-bottom:.55rem; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--a-about-muted)}
.allys .profil-agent-fapte dd{margin:0; font-size:.85rem; line-height:1.6; color:var(--ink)}

.allys .profil-agent-lateral{grid-area:lateral; align-self:stretch}
.allys .profil-agent-contact{padding:18px; border:1px solid var(--a-about-line); border-radius:18px; background:var(--a-alb)}
.allys .profil-agent-contact small{display:block; font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--primary)}
.allys .profil-agent-contact b{display:block; margin-top:.35rem; font-size:1.05rem; line-height:1.3}
.allys .profil-agent-contact p{margin:.5rem 0 0; font-size:.78rem; line-height:1.6; color:var(--a-about-muted)}
.allys .profil-agent-linii{margin:0; padding:2px 18px; list-style:none; border:1px solid var(--a-about-line); border-radius:18px; background:var(--a-alb)}
.allys .profil-agent-linii li{display:flex; align-items:center; flex-wrap:wrap; gap:2px 10px; padding:.85rem 0; font-size:.8rem; font-weight:700; color:var(--ink)}
.allys .profil-agent-linii li+li{border-top:1px solid var(--a-about-line)}
.allys .profil-agent-linii svg{flex:none; color:var(--primary)}
.allys .profil-agent-linii a{min-width:0; overflow-wrap:anywhere}
.allys .profil-agent-linii small{flex-basis:100%; padding-left:25px; font-size:.62rem; font-weight:600; color:var(--a-about-muted)}
.allys .profil-agent-mesaj{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:.95rem 1.1rem;
  border:1px solid var(--a-about-line); border-radius:14px; background:var(--a-alb);
  font-size:.78rem; font-weight:800; color:var(--primary); transition:.25s;
}
.allys .profil-agent-mesaj:hover{border-color:var(--primary)}
.allys .profil-agent-mesaj i,.allys .profil-agent-mai-multe i{font-style:normal}

.allys .profil-agent-bio{grid-area:bio; padding-top:clamp(40px,5vw,64px)}
.allys .profil-agent-bio h2{margin:0 0 1.2rem; font-size:1.35rem; letter-spacing:-.02em}
.allys .profil-agent-bio .prop-descriere{max-width:760px}

.allys .profil-agent-portofoliu{padding:clamp(56px,7vw,110px) 0}
.allys .profil-agent-portofoliu>header{
  display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1.4rem 2.5rem;
  margin-bottom:2.4rem; padding-top:clamp(40px,5vw,64px); border-top:1px solid var(--a-about-line);
}
.allys .profil-agent-portofoliu h2{margin:0; font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.05; letter-spacing:-.03em; overflow-wrap:anywhere}
.allys .profil-agent .section-heading h2{overflow-wrap:anywhere}
.allys .profil-agent .catalog-counts>div{min-width:100px}
.allys .profil-agent-portofoliu .catalog-gol{margin:0 auto}
.allys .profil-agent-mai-multe{margin:2rem 0 0; text-align:center; font-size:.8rem; color:var(--a-about-muted)}
.allys .profil-agent-mai-multe a{font-weight:800; color:var(--primary)}

@media(max-width:1000px){
  .allys .profil-agent-corp{grid-template-columns:minmax(0,1fr); grid-template-areas:"identitate" "lateral" "bio"; gap:2rem 0}
  .allys .profil-agent .prop-contact{position:static}
  .allys .profil-agent-bio{padding-top:0}
}
@media(max-width:700px){
  .allys .profil-agent-identitate{grid-template-columns:minmax(0,1fr); align-items:start}
  .allys .profil-agent-foto{width:min(100%,240px)}
}

/* Bannerul de cookie (și butonul „sus", ambele fixe) era TRANSPARENT: regula de armonizare
   `.allys [class*="bg-white"]{background:transparent!important}` (l.496) e gândită pentru secțiunile
   comune de pe hârtie, dar prinde și ce plutește peste pagină — textul bannerului stătea direct pe
   poza eroului, ilizibil (live pe autentichouse.ro, constatat 11 sep 2026). */
.allys [role="dialog"] .bg-white,.allys .fixed.bg-white{background:#fff!important}

/* Fișele de blog moșteneau butonul „Vezi proprietatea" de la cardul de proprietate. */
.allys .allys-jurnal .property-meta:after{content:none}

/* ⚠️ ULTIMA regulă din fișier, intenționat. `.allys .difference-grid{repeat(3,1fr)}` din blocul de
   corecții e NECONDIȚIONATĂ și stă după `@media(max-width:800px)`, deci o bate prin ordine —
   exact capcana pe care o repară, cu un nivel mai sus: pe telefon rămâneau trei coloane de 164px,
   cu titlurile rupte și cardurile ieșind din ecran la 360.
   Orice regulă nouă pentru `.difference-grid` se pune ÎNAINTEA acestui bloc. */
@media(max-width:800px){
  .allys .difference-grid{grid-template-columns:1fr}
}

/* ⚠️ `overflow-x: clip`, NU `hidden`, pe `.allys`.
   `hidden` pe un strămoș îi calculează `overflow-y: auto`, ceea ce îl face container de derulare —
   iar `position: sticky` se raportează la el, nu la fereastră. Cum învelișul nu derulează niciodată,
   nimic lipicios nu se lipește: bara de filtre a catalogului rămânea la `top: -931px` după 1200px
   de derulare, iar coloana de agent de pe pagina de proprietate n-ar fi funcționat deloc.
   `clip` taie la fel pe orizontală, dar NU creează container de derulare, deci `sticky` merge. */
/* Brasadas (17 oct 2026): fotografii aeriene luminoase în erou (cer, oraș) — textul alb se pierdea. Umbră discretă doar
   cu `brand_strict`; site-urile Allys fără el rămân neschimbate. */
.allys[data-brand-strict] .hero h1,.allys[data-brand-strict] .hero .hero-lead,.allys[data-brand-strict] .hero .eyebrow{text-shadow:0 2px 14px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.35)}
.allys[data-brand-strict] .hero .hero-image{filter:brightness(.75)}
/* „Selecția noastră” pe albastrul agenției, în gradient (Brasadas, 17 oct 2026: „același albastru ca textele și butoanele,
   dar tot cu gradient”). Macheta avea aproape negru cu strălucire turcoaz. Doar cu `brand_strict`. */
.allys[data-brand-strict] .properties{background:linear-gradient(160deg,var(--a-navy) 0%,color-mix(in srgb,var(--a-navy) 55%,#000) 100%)}
.allys[data-brand-strict] .properties:before{background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.14),transparent 40%)}
/* Filtrul se aplică (navigare în curs): rezultatele estompate, fără clicuri pe jumătate. */
.allys .catalog-page.se-incarca .catalog-rezultate{opacity:.45;pointer-events:none;transition:opacity .2s}
.allys .catalog-page.se-incarca .catalog-search{cursor:progress}
