.guide-detail-preview { --detail-ink:#171816; --detail-muted:#666a65; --detail-line:#e7e5df; --detail-warm:#f6f2eb; --detail-orange:#f47721; --detail-red:#e4231f; background:#fbfaf8; color:var(--detail-ink); }
.guide-detail-preview .detail-main { overflow:clip; }
.detail-container { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.detail-loading,.detail-error { min-height:55vh; display:grid; place-items:center; color:var(--detail-muted); font-weight:650; }
.business-hero { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(370px,.94fr); min-height:570px; margin-top:40px; border:1px solid var(--detail-line); border-radius:32px; background:#fff; overflow:hidden; }
.business-media { position:relative; min-width:0; background:#f0eee9; overflow:hidden; }
.business-media>img { width:100%; height:100%; min-height:570px; display:block; object-fit:cover; }
.business-gallery { position:absolute; z-index:2; left:22px; bottom:22px; display:flex; gap:8px; padding:7px; border:1px solid rgba(255,255,255,.6); border-radius:16px; background:rgba(255,255,255,.72); backdrop-filter:blur(14px); box-shadow:0 8px 30px rgba(0,0,0,.11); }
.business-gallery,.company-related-grid,.tourism-related-grid,.news-related-grid { scrollbar-width:none; -ms-overflow-style:none; }
.business-gallery::-webkit-scrollbar,.company-related-grid::-webkit-scrollbar,.tourism-related-grid::-webkit-scrollbar,.news-related-grid::-webkit-scrollbar { display:none; width:0; height:0; }
.guide-detail-preview .public-ad-arrow,.guide-detail-preview .banner-arrow,.guide-detail-preview [data-banner-prev],.guide-detail-preview [data-banner-next] { display:none !important; }
.gallery-thumb { width:54px; height:54px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:11px; background:#fff; cursor:pointer; opacity:.72; transition:.18s ease; }
.gallery-thumb img { width:100%; height:100%; object-fit:cover; }.gallery-thumb:hover,.gallery-thumb.active { opacity:1; border-color:var(--detail-orange); }
.business-intro { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; margin-left:-38px; padding:62px 62px 58px 76px; border-radius:32px 0 0 32px; background:#fff; box-shadow:-14px 0 35px rgba(54,37,22,.06); }
.business-badges { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:30px; }
.business-badges a,.business-badges strong { display:inline-flex; align-items:center; min-height:28px; padding:6px 11px; border-radius:999px; font-size:.68rem; font-weight:800; letter-spacing:.075em; text-decoration:none; text-transform:uppercase; }
.business-badges a { color:#874317; background:#fff2e8; }.business-badges strong { color:#866311; background:#fff5cf; }
.business-kicker,.section-kicker,.detail-section-heading p { margin:0 0 12px; color:var(--orange); font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.business-intro h1 { max-width:650px; margin:0; font-size:clamp(2.55rem,4.6vw,4.65rem); line-height:.96; letter-spacing:-.055em; }
.business-summary { max-width:570px; margin:24px 0 0; color:#5f625e; font-size:1.03rem; line-height:1.7; }
.opening-state { display:flex; align-items:center; gap:8px; margin-top:24px; font-size:.82rem; }.opening-state i { width:8px; height:8px; border-radius:50%; }.opening-state.is-open i { background:#24945c; box-shadow:0 0 0 5px #e6f5ec; }.opening-state.is-open strong { color:#237c50; }.opening-state.is-closed i { background:#c46155; box-shadow:0 0 0 5px #faebe9; }.opening-state.is-closed strong { color:#a84b40; }.opening-state span { color:#777a75; }
.opening-quick,.business-address { display:flex; align-items:flex-start; gap:10px; margin:22px 0 0; color:#555a55; font-size:.9rem; line-height:1.5; }.opening-quick svg,.business-address svg { flex:0 0 19px; width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }
.business-actions { width:100%; display:flex; align-items:center; gap:14px; margin-top:34px; }
.primary-action { min-height:54px; display:inline-flex; align-items:center; justify-content:center; gap:11px; padding:0 22px; border-radius:999px; color:#fff; background:#16834c; text-decoration:none; font-size:.9rem; font-weight:800; box-shadow:0 12px 28px rgba(22,131,76,.18); }.primary-action:hover { background:#126f40; }.primary-action svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; }.primary-action>span:last-child { margin-left:5px; }.phone-primary { background:linear-gradient(110deg,var(--detail-red),var(--detail-orange)); }
.secondary-actions { display:flex; align-items:center; gap:8px; }.secondary-actions a,.secondary-actions button { width:46px; height:46px; display:grid; place-items:center; padding:0; border:1px solid var(--detail-line); border-radius:50%; color:#333632; background:#fff; cursor:pointer; transition:.18s ease; }.secondary-actions a:hover,.secondary-actions button:hover { transform:translateY(-2px); border-color:#c8c5bd; }.secondary-actions svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.65; }.secondary-actions button.copied { color:#237c50; border-color:#9ed1b6; }

.business-information { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr); gap:100px; padding-top:112px; padding-bottom:116px; }
.info-copy>h2 { max-width:650px; margin:0 0 54px; font-size:clamp(2rem,3.4vw,3.25rem); line-height:1.04; letter-spacing:-.045em; }
.info-block { display:grid; grid-template-columns:42px 1fr; gap:18px; align-items:start; padding:24px 0; border-top:1px solid var(--detail-line); }.info-block>span { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:var(--orange); background:#fff4e6; }.info-block svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }.info-block small { display:block; margin-bottom:5px; color:#858781; font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.info-block strong { display:block; font-size:1rem; line-height:1.45; }.info-block a { display:inline-flex; gap:5px; margin-top:7px; color:var(--orange); font-size:.8rem; font-weight:750; text-decoration:none; }
.contact-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:8px; border-top:1px solid var(--detail-line); border-bottom:1px solid var(--detail-line); }.contact-links>a { display:flex; gap:10px; align-items:center; min-width:0; padding:18px 10px 18px 0; color:inherit; text-decoration:none; }.contact-links svg { flex:0 0 18px; width:18px; height:18px; fill:none; stroke:var(--orange); stroke-width:1.7; }.contact-links span { min-width:0; }.contact-links strong { display:block; font-size:.78rem; white-space:nowrap; }.contact-links small { display:block; margin-top:3px; overflow:hidden; color:#858781; font-size:.66rem; white-space:nowrap; text-overflow:ellipsis; }
.hours-panel { align-self:start; padding:34px 34px 30px; border-radius:24px; background:var(--detail-warm); }.hours-title { display:flex; align-items:center; gap:13px; margin-bottom:24px; }.hours-title>svg { width:38px; height:38px; padding:9px; border-radius:50%; fill:none; stroke:var(--orange); stroke-width:1.6; background:#fff; }.hours-title p { margin:0 0 3px; color:#8c8e88; font-size:.65rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.hours-title h2 { margin:0; font-size:1.1rem; letter-spacing:-.025em; }.hours-list>div { display:flex; justify-content:space-between; gap:15px; padding:10px 0; border-top:1px solid #dfdcd4; font-size:.82rem; }.hours-list span { color:#737670; }.hours-list strong { text-align:right; font-weight:700; }.hours-list p,.hours-simple,.hours-note { margin:17px 0 0; color:#686b66; font-size:.78rem; line-height:1.55; }.hours-simple { font-size:.92rem; }

.detail-related { padding-top:105px; padding-bottom:110px; border-top:1px solid var(--detail-line); }
.detail-section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:42px; }.detail-section-heading h2 { margin:0; font-size:clamp(2rem,3.2vw,3rem); line-height:1.04; letter-spacing:-.045em; }.detail-section-heading span { display:block; margin-top:12px; color:var(--detail-muted); }.detail-section-heading>a { flex:0 0 auto; display:inline-flex; gap:8px; color:#1f211e; font-size:.84rem; font-weight:800; text-decoration:none; border-bottom:1px solid #acaea8; padding-bottom:5px; }
.company-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }.related-company { min-width:0; color:inherit; text-decoration:none; }.related-company>img,.related-placeholder { width:100%; aspect-ratio:1.48; display:grid; place-items:center; object-fit:cover; border-radius:20px; background:#f1eee8; }.related-placeholder { color:#aaa59c; font-size:.75rem; font-weight:750; }.related-company>div { padding:18px 3px 0; }.related-company small,.related-news-card small { color:#b64d21; font-size:.66rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.related-company h3,.related-news-card h3 { margin:7px 0 8px; font-size:1.18rem; letter-spacing:-.03em; }.related-company p,.related-news-card p { margin:0 0 14px; color:#6d706b; font-size:.84rem; line-height:1.55; }.related-company>div>span,.related-tourism span,.related-news-card>div>span { font-size:.77rem; font-weight:800; }
.tourism-related { padding:105px 0 112px; background:#f4efe7; }.tourism-related-grid { display:grid; grid-template-columns:1.25fr .875fr .875fr; gap:18px; }.related-tourism { position:relative; min-height:380px; overflow:hidden; border-radius:24px; color:#fff; text-decoration:none; background:#333; }.related-tourism:after { content:""; position:absolute; inset:38% 0 0; background:linear-gradient(transparent,rgba(10,10,8,.82)); }.related-tourism img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }.related-tourism:hover img { transform:scale(1.035); }.related-tourism div { position:absolute; z-index:1; left:25px; right:25px; bottom:24px; }.related-tourism small { font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.related-tourism h3 { margin:8px 0 16px; font-size:1.3rem; line-height:1.12; }.related-tourism span { display:inline-flex; gap:7px; }
.news-related-grid { display:grid; grid-template-columns:1.25fr .875fr .875fr; gap:26px; }.related-news-card { color:inherit; text-decoration:none; }.related-news-card img { width:100%; aspect-ratio:1.48; object-fit:cover; border-radius:18px; }.related-news-card>div { padding-top:17px; }.related-news-card h3 { font-size:1.1rem; line-height:1.25; }.related-news-card.is-featured h3 { font-size:1.45rem; }.related-news-card>div>span { display:inline-flex; gap:7px; }
#detail-final-ad-anchor { height:0; }
.guide-detail-preview .public-ad-zone[data-ad-zone="guia_rodape"] { margin:8px auto 90px; }

@media (max-width:900px) {
  .detail-container { width:min(100% - 32px,720px); }
  .business-hero { grid-template-columns:1fr; min-height:0; border-radius:26px; }
  .business-media>img { min-height:0; height:auto; aspect-ratio:1.35; }
  .business-intro { margin:-30px 0 0; padding:48px 38px 42px; border-radius:26px 26px 0 0; box-shadow:0 -12px 28px rgba(54,37,22,.07); }
  .business-information { grid-template-columns:1fr; gap:46px; padding-top:78px; padding-bottom:82px; }
  .company-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.company-related-grid .related-company:last-child { display:none; }
  .tourism-related-grid,.news-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.tourism-related-grid>*:first-child,.news-related-grid>*:first-child { grid-column:1/-1; }.related-tourism { min-height:310px; }.tourism-related-grid>*:first-child { min-height:400px; }
}

@media (max-width:600px) {
  .detail-container { width:calc(100% - 24px); }
  .business-hero { margin-top:24px; border-radius:22px; }.business-media>img { aspect-ratio:1.08; }.business-gallery { left:12px; bottom:14px; max-width:calc(100% - 24px); gap:5px; padding:5px; overflow:auto; }.gallery-thumb { flex:0 0 44px; width:44px; height:44px; border-radius:9px; }
  .business-intro { align-items:center; padding:25px 21px 28px; text-align:center; }.business-badges { justify-content:center; margin-bottom:15px; }.business-intro h1 { font-size:clamp(2.2rem,12vw,3.3rem); }.business-summary { margin-top:16px; font-size:.9rem; line-height:1.58; }.opening-state { margin-top:18px; }.opening-quick,.business-address { justify-content:center; margin-top:17px; text-align:left; font-size:.82rem; }
  .business-actions { flex-direction:column; margin-top:25px; }.primary-action { width:100%; min-height:51px; }.secondary-actions { justify-content:center; }
  .business-information { gap:34px; padding-top:66px; padding-bottom:72px; }.info-copy>h2 { margin-bottom:35px; font-size:2rem; }.info-block { grid-template-columns:37px 1fr; gap:13px; padding:19px 0; }.contact-links { grid-template-columns:repeat(2,minmax(0,1fr)); }.contact-links>a { padding:16px 8px 16px 0; }.hours-panel { padding:27px 22px 23px; border-radius:20px; }
  .detail-related,.tourism-related { padding-top:68px; padding-bottom:72px; }.detail-section-heading { align-items:flex-start; margin-bottom:30px; }.detail-section-heading h2 { font-size:2rem; }.detail-section-heading span { font-size:.88rem; line-height:1.55; }.detail-section-heading>a { display:none; }
  .company-related-grid { display:flex; gap:14px; overflow:auto; scroll-snap-type:x mandatory; padding-bottom:8px; }.related-company { flex:0 0 79%; scroll-snap-align:start; }.company-related-grid .related-company:last-child { display:block; }.related-company>div { padding-top:14px; }
  .tourism-related-grid,.news-related-grid { display:flex; gap:13px; overflow:auto; scroll-snap-type:x mandatory; }.related-tourism,.related-news-card,.tourism-related-grid>*:first-child,.news-related-grid>*:first-child { flex:0 0 82%; min-height:330px; scroll-snap-align:start; }.related-news-card { min-height:0; }.related-news-card img { aspect-ratio:1.3; }.related-news-card.is-featured h3 { font-size:1.12rem; }
  .guide-detail-preview .public-ad-zone[data-ad-zone="guia_rodape"] { margin-bottom:60px; }
}

@media (prefers-reduced-motion:reduce) { .related-tourism img,.secondary-actions a,.secondary-actions button { transition:none; } }
