/* OTTO IMÓVEIS · identidade digital V4. Mantém a geometria dos arquivos oficiais. */
:root {
  --otto-night: #0B2345;
  --otto-paper: #F5F1E8;
  --otto-cane: #B7D52A;
  --otto-graphite: #25282D;
  --ink: var(--otto-graphite);
  --forest: var(--otto-night);
  --forest-2: var(--otto-night);
  --paper: var(--otto-paper);
  --sun: var(--otto-cane);
  --blue: var(--otto-paper);
  --line: rgba(11, 35, 69, .2);
  --night-gradient: linear-gradient(135deg, var(--otto-night), var(--otto-night));
  --catalog-night: var(--otto-night);
  --catalog-blue: var(--otto-night);
  --catalog-paper: var(--otto-paper);
  --catalog-line: rgba(11, 35, 69, .18);
  --catalog-muted: #59626c;
  --detail-blue: var(--otto-night);
  --detail-paper: var(--otto-paper);
  --detail-line: rgba(11, 35, 69, .18);
  --detail-ink: var(--otto-graphite);
  --detail-accent: var(--otto-night);
  --detail-lagoon: var(--otto-cane);
  --profile-blue: var(--otto-night);
  --profile-ivory: var(--otto-paper);
  --profile-sand: var(--otto-cane);
  --profile-clay: var(--otto-night);
  --profile-lagoon: var(--otto-cane);
  --profile-graphite: var(--otto-graphite);
  --profile-line: rgba(11, 35, 69, .18);
}

body, .catalog-page, .detail-body, .profile-body, .privacy-body {
  background: var(--otto-paper);
  color: var(--otto-graphite);
}

.site-header.scrolled { background: rgba(245, 241, 232, .97); }
.catalog-header, .profile-body .catalog-header, .detail-header, footer, .catalog-footer {
  background: var(--otto-night);
}
.catalog-header { border-bottom: 3px solid var(--otto-cane); box-shadow: none; }
.site-header, .detail-header { border-bottom-color: rgba(183, 213, 42, .55); }
.catalog-mobile-nav { background: var(--otto-paper); }
.catalog-search, .catalog-hero, .catalog-toolbar, .neighborhood-detail-hero,
.neighborhood-facts, .neighborhood-properties { background: var(--otto-paper); }
.catalog-hero { background-image: none; }
.catalog-card, .property-card, .neighborhood-card, .team-card,
.development-card, .detail-contact-card, .profile-post { border-color: var(--catalog-line); }

/* Assinaturas oficiais: proporção preservada, sem fundo, corte ou efeito. */
.brand, .brand-logo, .catalog-brand, .detail-brand { overflow: visible; background: transparent; }
.brand-logo .official-logo, .catalog-brand .official-logo,
.detail-brand .official-logo { display: block; width: 100%; height: 100%; overflow: visible; }
.brand-logo .official-logo img, .catalog-brand .official-logo img,
.detail-brand .official-logo img { width: 100%; height: 100%; object-fit: contain; object-position: left center; max-width: 100%; }
.site-header.scrolled .brand-logo { background: transparent; padding: 0; }
.site-header.scrolled .brand-logo .official-logo {
  background: url('/logos/header-claro.webp') left center / contain no-repeat;
}
.site-header.scrolled .brand-logo .official-logo img { opacity: 0; }
.site-header .brand, .site-header .brand-logo { width: 240px; height: 70px; }
.site-header.scrolled .brand, .site-header.scrolled .brand-logo { width: 210px; height: 60px; }
.catalog-header .catalog-brand { width: 245px; height: 67px; }
.catalog-footer .catalog-brand, footer .brand, footer .brand-logo { width: 285px; height: 80px; }
.detail-brand { width: 225px; height: 64px; }

/* Verde Cana nos controles e detalhes, com Azul Noturno para contraste. */
.catalog-search-button, .catalog-card-cta, .property-card-cta,
.catalog-empty button, .catalog-pagination button[aria-current='page'],
.detail-contact-card button, .detail-mobile-cta button,
.social-action.primary, .button.dark, .button.sun,
.development-card-cta, .team-card-cta,
.guide-whatsapp-button, .guide-cta a,
.neighborhood-cta a, .rental-bottom-cta a,
.hero-search-actions button {
  background: var(--otto-cane);
  background-image: none;
  color: var(--otto-night);
  border-color: var(--otto-cane);
}
.catalog-card-cta span, .property-card-cta span,
.neighborhood-link b { color: var(--otto-night); }
.catalog-search-button:hover, .catalog-card-cta:hover,
.property-card-cta:hover, .detail-contact-card button:hover,
.social-action.primary:hover { filter: brightness(.94); }
.catalog-contact, .header-cta { border-color: var(--otto-cane); }
.catalog-contact span, .header-cta span,
.catalog-header nav a:hover, .detail-header nav a:hover,
.catalog-favorite, .property-favorite, .detail-favorite,
.detail-share, .profile-carousel-arrow,
.catalog-card-facts svg, .property-card-facts svg {
  color: var(--otto-cane);
}
.catalog-header nav a:hover { border-bottom-color: var(--otto-cane); }
.catalog-kicker { border-left-color: var(--otto-cane); }
.detail-gallery-toolbar button { background: var(--otto-cane); color: var(--otto-night); }

/* O verde é destaque, sem substituir o azul-noturno nos textos e controles principais. */
.catalog-card-badge, .property-badge, .development-card-status,
.neighborhood-label { background: var(--otto-night); color: var(--otto-paper); }
.catalog-card-cta, .property-card-cta, .neighborhood-link,
.catalog-search-button, .catalog-empty button,
.detail-contact-card button, .social-action.primary {
  background: var(--otto-cane);
  color: var(--otto-night);
}
.catalog-card-cta span, .property-card-cta span,
.neighborhood-link b { color: var(--otto-night); }
.catalog-contact span { color: var(--otto-cane); }
.catalog-chip.active, .catalog-chip:hover,
.catalog-mobile-nav a[aria-current='page'] {
  background: var(--otto-night);
  border-color: var(--otto-night);
  color: var(--otto-paper);
}
.catalog-kicker, .eyebrow, .catalog-heading > p,
.detail-title-block p, .detail-contact-card > p {
  color: var(--otto-night);
}
.catalog-kicker { border-left: 3px solid var(--otto-cane); padding-left: 10px; }
.hero .eyebrow { color: var(--otto-paper); }
.social-avatar-ring { background: conic-gradient(var(--otto-cane), var(--otto-night), var(--otto-cane)); }
.listing-broker-avatar { border-color: var(--otto-cane); background: var(--otto-paper); }
.detail-gallery:focus-visible { outline-color: var(--otto-cane); }
.detail-features b { color: var(--otto-night); }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--otto-cane);
  outline-offset: 3px;
}

@media (max-width: 850px) {
  .site-header .brand, .site-header .brand-logo { width: 190px; height: 58px; }
  .site-header.scrolled .brand, .site-header.scrolled .brand-logo { width: 180px; height: 55px; }
  .catalog-header .catalog-brand { width: 190px; height: 60px; }
  .catalog-footer .catalog-brand, footer .brand, footer .brand-logo { width: 230px; height: 72px; }
  .detail-brand { width: 185px; height: 58px; }
}

.catalog-favorite, .property-favorite, .detail-favorite,
.detail-share, .profile-carousel-arrow {
  background: var(--otto-cane);
  color: var(--otto-night);
  border-color: var(--otto-cane);
}
.catalog-favorite.active, .property-favorite.active,
.detail-favorite.active { background: var(--otto-night); color: var(--otto-cane); }
.catalog-chip.active, .catalog-mobile-nav a[aria-current='page'] {
  background: var(--otto-cane);
  border-color: var(--otto-cane);
  color: var(--otto-night);
}
.catalog-contact, .detail-header nav button, .header-cta,
.otto-analytics-actions button:last-child,
.otto-analytics-control button {
  background: var(--otto-cane);
  color: var(--otto-night);
  border-color: var(--otto-cane);
}
.catalog-contact span, .header-cta span { color: var(--otto-night); }
.catalog-footer nav a:hover, .detail-footer nav a:hover,
.footer-bottom a:hover { color: var(--otto-cane); }

/* Legibilidade dos elementos verdes. */
.catalog-search-button, .catalog-card-cta, .property-card-cta,
.catalog-empty button, .catalog-pagination button[aria-current='page'],
.detail-contact-card button, .detail-mobile-cta button,
.social-action.primary, .button.dark, .button.sun,
.development-card-cta, .team-card-cta,
.guide-whatsapp-button, .guide-cta a,
.neighborhood-cta a, .rental-bottom-cta a,
.hero-search-actions button, .catalog-contact,
.detail-header nav button, .header-cta,
.otto-analytics-actions button:last-child,
.otto-analytics-control button, .catalog-chip.active,
.catalog-mobile-nav a[aria-current='page'] {
  color: #fff;
  font-size: max(.94rem, 15px);
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(11, 35, 69, .65);
}
.catalog-card-cta, .property-card-cta { min-height: 50px; padding: 12px 15px; }
.catalog-card-cta b, .property-card-cta b,
.catalog-card-cta span, .property-card-cta span,
.catalog-contact span, .catalog-contact svg,
.header-cta span, .neighborhood-link b { color: #fff; }
.catalog-contact svg { width: 20px; height: 20px; display: block; }
.catalog-card-badge.is-closed, .catalog-card-badge.is-rented,
.catalog-card-cta.is-closed, .property-badge.is-closed {
  background: var(--otto-cane);
  background-image: none;
  color: #fff;
  font-size: max(.88rem, 14px);
  font-weight: 800;
  text-shadow: 0 1px 2px rgba(11, 35, 69, .7);
}
.catalog-card-badge.is-closed, .catalog-card-badge.is-rented {
  padding: 9px 13px;
  letter-spacing: .02em;
}
.catalog-card-cta.is-closed { font-size: max(.94rem, 15px); }
.catalog-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; padding: 10px 13px; }
.catalog-contact span { display: inline-flex; align-items: center; margin: 0; }
@media (max-width: 560px) {
  .catalog-contact { width: 48px; height: 48px; padding: 0; font-size: 0; gap: 0; }
}

/* Acabamento corporativo. O verde permanece como acento; ações usam azul com contraste. */
:root { --otto-muted:#526176; --otto-border:#d8dfe5; }
.catalog-page, .detail-body { font-size:1rem; line-height:1.55; }
.catalog-header, .detail-header { border-bottom:2px solid var(--otto-cane); }
.catalog-header .official-logo, .catalog-footer .official-logo { background:url('/logos/header-escuro.webp') left center / contain no-repeat; }
.catalog-header .official-logo img, .catalog-footer .official-logo img { opacity:0; }
.catalog-contact, .detail-header nav button { background:var(--otto-night); border-color:var(--otto-night); color:#fff; text-shadow:none; }
.catalog-contact span, .catalog-contact svg { color:#fff; }
.catalog-header nav a, .detail-header nav a { font-size:.9rem; font-weight:650; }
.catalog-footer, .detail-footer { border-top:3px solid var(--otto-cane); }
.catalog-footer nav a, .detail-footer nav a { font-size:.9rem; line-height:1.5; }
.catalog-hero { padding-block:clamp(30px,4vw,56px); }
.catalog-hero h1 { font-size:clamp(2.1rem,4.2vw,4rem); line-height:1.08; letter-spacing:-.045em; }
.rental-page .catalog-hero { padding-block:clamp(26px,3vw,44px); }
.rental-page .catalog-hero h1 { font-size:clamp(2rem,3.7vw,3.5rem); }
.catalog-hero-copy { color:var(--otto-muted); font-size:1rem; line-height:1.6; }
.catalog-results-grid { gap:clamp(16px,2vw,24px); }
.catalog-card, .property-card { border:1px solid var(--otto-border); border-radius:14px; box-shadow:0 5px 18px rgba(11,35,69,.06); }
.catalog-card-media { aspect-ratio:1.42/1; }
.catalog-card-media[style] { background-color:var(--otto-night); }
.catalog-card-media.no-photo { background:linear-gradient(135deg,#102d51,#0b2345); }
.catalog-card-media.no-photo:before { content:'Foto em atualização'; font-size:.78rem; letter-spacing:.03em; text-transform:none; }
.catalog-card-body { padding:18px; gap:3px; }
.catalog-card-price { color:var(--otto-night); font-size:1.18rem; line-height:1.25; font-weight:800; }
.catalog-card-type { color:var(--otto-muted); font-size:.8rem; }
.catalog-card h2, .property-card h2 { font-size:clamp(1rem,1.05vw,1.12rem) !important; line-height:1.35 !important; letter-spacing:-.015em; font-weight:700; margin:0; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.catalog-card-location { color:var(--otto-muted); font-size:.82rem; min-height:0; }
.catalog-card-facts span { font-size:.78rem; color:var(--otto-muted); }
.catalog-card-badge { border-radius:6px; font-size:.75rem; letter-spacing:.03em; }
.catalog-card-cta, .catalog-search-button, .property-card-cta, .rental-bottom-cta button, .rental-card-interest, .detail-contact-card button, .detail-mobile-cta button { background:var(--otto-night); color:#fff; border-color:var(--otto-night); text-shadow:none; font-size:.9rem; min-height:48px; }
.catalog-card-cta b, .catalog-card-cta span, .property-card-cta b, .property-card-cta span { color:#fff; }
.catalog-card-badge.is-closed, .catalog-card-badge.is-rented, .catalog-card-cta.is-closed { background:var(--otto-night); color:#fff; text-shadow:none; }
.catalog-search { border-block:1px solid var(--otto-border); }
.rental-page .catalog-search form { grid-template-columns:minmax(170px,1.5fr) repeat(3,minmax(125px,1fr)) minmax(110px,.65fr); }
.rental-page .catalog-search-button:before { content:none; }
.catalog-search label span, .catalog-toolbar label { font-size:.82rem; font-weight:700; }
.catalog-empty { border:1px solid var(--otto-border); border-radius:14px; }
.catalog-empty h2 { font-size:clamp(1.2rem,2vw,1.6rem); }
.rental-page .catalog-content { padding-top:34px; }
.rental-lead-dialog { background:#fff; border:1px solid var(--otto-border); }
.rental-lead-dialog :is(input:not([type=checkbox]),textarea) { border-color:#9aaabb; }
.rental-lead-dialog :is(input,textarea):focus-visible { outline:3px solid var(--otto-cane); outline-offset:2px; }
.detail-gallery, .detail-gallery.single { height:clamp(320px,32vw,490px); }
.detail-gallery img { object-fit:cover; }
.detail-page-wrap { padding-top:16px; }
.detail-breadcrumb { font-size:.82rem; }
.detail-title-block { gap:18px; }
.detail-title-block { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.detail-title-block>div:first-child { grid-column:1/-1; }
.detail-price { grid-column:1; text-align:left; padding-left:0; }
.detail-title-actions { grid-column:2; grid-row:2; }
.detail-title-block h1 { font-size:clamp(1.9rem,2.7vw,2.9rem); line-height:1.14; letter-spacing:-.035em; }
.detail-title-block>div:first-child>span { color:var(--otto-muted); font-size:.95rem; }
.detail-price strong { color:var(--otto-night); font-size:1.5rem; }
.detail-price small { font-size:.78rem; }
.detail-contact-card { border-color:var(--otto-border); box-shadow:0 12px 35px rgba(11,35,69,.08); }
.detail-contact-card>h2 { font-size:1.35rem; line-height:1.25; }
.detail-contact-card>span, .detail-broker-profile strong { font-size:.9rem; }
.detail-copy-text p { max-width:72ch; line-height:1.75; }
.detail-features { gap:10px; }
.detail-features span { background:#fff; border:1px solid var(--otto-border); border-radius:8px; padding:10px 12px; font-size:.87rem; }
.detail-broker-links a { font-size:.78rem; min-height:40px; display:inline-flex; align-items:center; }
.detail-cost-note { display:block; color:var(--otto-muted); font-size:.78rem; line-height:1.45; margin-top:5px; }
.detail-similar { margin-top:46px; padding-top:28px; border-top:1px solid var(--otto-border); }
.detail-similar-heading p { color:var(--otto-muted); font-size:.72rem; font-weight:800; letter-spacing:.12em; margin:0 0 4px; }
.detail-similar-heading h2 { font-size:clamp(1.35rem,2.2vw,1.8rem); margin:0 0 18px; }
.detail-similar-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.detail-similar-grid a { min-width:0; display:block; overflow:hidden; border:1px solid var(--otto-border); border-radius:12px; background:#fff; }
.detail-similar-photo { aspect-ratio:1.65/1; background:#e9edf0; }
.detail-similar-photo span { display:grid; place-items:center; height:100%; min-height:130px; color:var(--otto-muted); font-size:.85rem; }
.detail-similar-photo img { width:100%; height:100%; object-fit:cover; }
.detail-similar-grid a>div:last-child { padding:15px; }
.detail-similar-grid small { color:var(--otto-muted); font-size:.72rem; }
.detail-similar-grid h3 { font-size:.96rem; line-height:1.35; margin:5px 0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.detail-similar-grid p { color:var(--otto-muted); font-size:.78rem; margin:0 0 9px; }
.detail-similar-grid strong { color:var(--otto-night); font-size:.98rem; }
:where(.catalog-page,.detail-body) :where(a,button,input,select,textarea):focus-visible { outline:3px solid #6d8813; outline-offset:3px; }
@media (max-width:900px) { .catalog-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .detail-main-grid { gap:26px; } .rental-page .catalog-search form { grid-template-columns:repeat(2,minmax(0,1fr)); } .rental-page .catalog-search-button { grid-column:1/-1; } }
@media (max-width:620px) {
  .catalog-results-grid { grid-template-columns:1fr; }
  .catalog-card h2, .property-card h2 { font-size:1.08rem !important; }
  .catalog-hero { padding-block:28px; }
  .catalog-hero-copy { font-size:.94rem; }
  .detail-gallery, .detail-gallery.single { height:260px; }
  .detail-gallery img { height:260px; }
  .detail-title-block h1 { font-size:clamp(1.65rem,7vw,2.1rem); }
  .detail-price strong { font-size:1.3rem; }
  .detail-mobile-cta { padding-block:10px; }
  .detail-similar-grid { grid-template-columns:1fr; }
  .detail-similar-grid a { display:grid; grid-template-columns:36% 1fr; }
  .detail-similar-photo { aspect-ratio:auto; min-height:145px; }
}

/* Visual global 2026-09: tokens and shared interaction states. */
:root {
  --otto-navy:#0B2345; --otto-ivory:#F5F1E8; --otto-green:#B7D52A;
  --otto-white:#FFFFFF; --otto-radius:12px; --otto-control-height:48px;
  --otto-focus:3px solid var(--otto-green);
}
:where(button,[role="button"],input,select,textarea,a):focus-visible {
  outline:var(--otto-focus); outline-offset:3px;
}
:where(button,[role="button"]):disabled { opacity:.55; cursor:not-allowed; filter:none; }
:where(button,[role="button"]):active { transform:translateY(1px); }
.catalog-header,.detail-header { border-bottom:2px solid var(--otto-green); }
.catalog-contact,.detail-header nav button,.header-cta {
  background:var(--otto-green); border-color:var(--otto-green); color:var(--otto-navy);
  text-shadow:none; min-height:44px; font-weight:800;
}
.catalog-contact span,.catalog-contact svg,.header-cta span { color:var(--otto-navy); }
.catalog-contact:hover,.detail-header nav button:hover,.header-cta:hover,
.team-card-cta:hover { background:#a8c527; border-color:#a8c527; color:var(--otto-navy); filter:none; }
.catalog-search-button,.catalog-card-cta,.property-card-cta,.rental-card-interest,
.detail-contact-card button,.detail-mobile-cta button,.rental-bottom-cta button,
.catalog-empty button,.development-card-cta,.guide-whatsapp-button {
  background:var(--otto-navy); border-color:var(--otto-navy); color:#fff;
  text-shadow:none; min-height:var(--otto-control-height); font-weight:700;
}
.catalog-card-cta :is(b,span),.property-card-cta :is(b,span) { color:#fff; }
.catalog-card-cta.is-closed,.neighborhood-cta a,.team-card-cta {
  background:var(--otto-green); border-color:var(--otto-green); color:var(--otto-navy); text-shadow:none;
}
.catalog-card-cta.is-closed :is(b,span),.team-card-cta :is(b,span) { color:var(--otto-navy); }
.catalog-search-button:before { content:none !important; }
.catalog-search-button { padding-inline:20px; white-space:nowrap; }
.catalog-search form { grid-template-columns:180px minmax(250px,1.5fr) 170px 120px 170px minmax(110px,.65fr); }
.rental-lead-dialog :is(input,textarea),
.detail-contact-card :is(input,select,textarea) {
  min-height:var(--otto-control-height); border-color:#8f9ba9; border-radius:8px;
  color:var(--otto-navy); background:#fff;
}
.catalog-search label { height:auto; min-height:72px; gap:4px; }
.catalog-search label :is(input,select) {
  height:30px; min-height:30px; border:0; border-radius:0; padding:0;
  color:var(--otto-navy); background:transparent;
}
.catalog-search-button { min-height:72px; }
.catalog-search :is(input,select):focus-visible,.rental-lead-dialog :is(input,textarea):focus-visible {
  border-color:var(--otto-navy); outline:var(--otto-focus); outline-offset:2px;
}
.catalog-search input::placeholder,.rental-lead-dialog input::placeholder { color:#526176; opacity:1; }
.catalog-card,.property-card,.development-card,.team-card,.neighborhood-card {
  border:1px solid #d8dfe5; border-radius:var(--otto-radius);
  box-shadow:0 4px 15px rgba(11,35,69,.06); overflow:hidden;
}
.catalog-card :is(.catalog-card-cta,.rental-card-interest) { margin-top:auto; }
.catalog-card-badge,.property-badge,.development-card-status {
  border-radius:6px; padding:8px 12px; font-size:.76rem; font-weight:800;
  letter-spacing:.035em; text-shadow:none; opacity:1; box-shadow:0 2px 8px rgba(11,35,69,.18);
}
.catalog-card-badge.is-sale,.property-badge:not(.is-rental):not(.is-closed) {
  background:var(--otto-green); color:var(--otto-navy);
}
.catalog-card-badge.is-rental,.catalog-card-badge:not(.is-sale):not(.is-closed),
.property-badge.is-rental { background:var(--otto-navy); color:#fff; }
.catalog-card-badge.is-closed,.catalog-card-badge.is-rented,
.property-badge.is-closed { background:var(--otto-green); color:var(--otto-navy); text-shadow:none; }
.catalog-pagination button { min-width:44px; min-height:44px; background:#fff; color:var(--otto-navy); border:1px solid #d8dfe5; }
.catalog-pagination button[aria-current="page"] { background:var(--otto-navy); border-color:var(--otto-navy); color:#fff; text-shadow:none; }
.catalog-pagination button:not([aria-current="page"]):hover { border-color:var(--otto-green); color:var(--otto-navy); }
.catalog-mobile-nav a[aria-current="page"],.catalog-chip.active { background:var(--otto-navy); border-color:var(--otto-navy); color:#fff; text-shadow:none; }
.detail-gallery-toolbar button,.catalog-favorite,.property-favorite,.detail-favorite,.detail-share {
  background:var(--otto-green); color:var(--otto-navy); border-color:var(--otto-green); text-shadow:none;
}
.team-card-cta { min-height:44px; display:flex; align-items:center; justify-content:center; font-weight:800; }
.team-card-body :is(h2,h3),.neighborhood-card :is(h2,h3) { color:var(--otto-navy); }
.team-card-specialty { color:#526176; }
.neighborhood-link { border-color:#d8dfe5; color:var(--otto-navy); }
.neighborhood-link b { color:var(--otto-navy); }
.neighborhood-link:hover { border-color:var(--otto-green); }
.detail-features span,.catalog-empty,.detail-contact-card { background:#fff; }

@media (max-width:1900px) {
  .catalog-header>nav { display:none; }
  .catalog-header { gap:16px; }
  .catalog-header .catalog-contact { margin-left:auto; }
  .catalog-mobile-nav { display:flex; overflow-x:auto; scrollbar-width:thin; white-space:nowrap; }
}
@media (max-width:1200px) {
  .catalog-search form { grid-template-columns:160px minmax(230px,1fr) 160px 120px; }
}
@media (max-width:850px) {
  .catalog-search form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-header { grid-template-columns:minmax(0,1fr) auto auto; gap:8px; }
}
@media (max-width:620px) {
  .catalog-header,.detail-header { min-height:72px; }
  .catalog-header .catalog-contact { width:44px; min-width:44px; height:44px; }
  .catalog-search form,.rental-page .catalog-search form { grid-template-columns:1fr; }
  .catalog-search-button,.rental-page .catalog-search-button { width:100%; grid-column:1/-1; }
  .catalog-search-button { min-height:50px; }
  .catalog-card-cta,.rental-card-interest,.property-card-cta { width:100%; text-align:center; }
  .catalog-card-media { aspect-ratio:1.45/1; }
  .catalog-card-badge { font-size:.78rem; }
  .catalog-header { grid-template-columns:minmax(0,1fr) 44px 44px; }
  .detail-header nav { display:none; }
  .detail-header .otto-menu-toggle { margin-left:auto; }
  .has-otto-menu .catalog-mobile-nav { display:none; }
  .otto-menu-toggle { display:flex !important; }
  .otto-menu-panel:not([hidden]) { display:flex; }
}
@media (max-width:430px) {
  .catalog-header .catalog-brand { width:clamp(138px,43vw,168px); height:52px; }
  .detail-brand { width:clamp(145px,45vw,175px); height:52px; }
  .catalog-header,.detail-header { gap:7px; }
}
.otto-menu-toggle { display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:44px; padding:0; margin-left:8px; border:1px solid rgba(255,255,255,.55); border-radius:8px; background:transparent; color:#fff; cursor:pointer; }
.otto-menu-toggle span { display:block; width:21px; height:2px; border-radius:2px; background:currentColor; }
.otto-menu-panel[hidden] { display:none !important; }
.otto-menu-panel { position:absolute; z-index:80; left:0; right:0; background:var(--otto-navy); border-bottom:2px solid var(--otto-green); padding:10px 18px 18px; flex-direction:column; box-shadow:0 15px 25px rgba(11,35,69,.18); }
.otto-menu-panel a { color:#fff; text-decoration:none; font-size:.95rem; font-weight:700; min-height:44px; display:flex; align-items:center; padding:8px 10px; border-radius:8px; }
.otto-menu-panel a[aria-current="page"] { color:var(--otto-green); }
.otto-menu-panel a:hover,.otto-menu-panel a:focus-visible { background:rgba(255,255,255,.1); }
