/* Modelo 01 · Executive Black — clases .xb */
.pmc-m-executive-black {
	--xb-bg: var(--pmc-secondary, #0b0b0c);
	--xb-gold: var(--pmc-primary, #c9a227);
	--xb-ink: #f4f1ea;
	--xb-muted: #a8a39a;
	--xb-line: rgba(244, 241, 234, .12);
	--xb-panel: rgba(255, 255, 255, .04);
	background: var(--xb-bg);
	color: var(--xb-ink);
	font-family: var(--pmc-font);
}
.xb { max-width: 34rem; margin: 0 auto; padding: 2.5rem 1.25rem 2rem; position: relative; }
.xb::before { content: ''; position: absolute; left: 1.25rem; right: 1.25rem; top: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--xb-gold), transparent); }

.xb-head { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1.25rem; align-items: center; margin: 1rem 0 2rem; }
.xb-photo { width: 6.5rem; aspect-ratio: 4 / 5; border: 1px solid var(--xb-gold); padding: 4px; }
.xb-photo-img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(.15); }
.xb-photo-img.xb-is-logo { object-fit: contain; background: #fff; }
.xb-photo.is-empty { display: grid; place-items: center; }
.xb-mono { font: 600 2.6rem/1 var(--pmc-display); color: var(--pmc-primary-ink, var(--xb-gold)); letter-spacing: .04em; }
.xb-name { font: 600 clamp(1.9rem, 7vw, 2.4rem)/1.05 var(--pmc-display); margin: 0; letter-spacing: .01em; }
.xb-firm { margin: .5rem 0 0; font-size: .78rem; text-transform: uppercase; letter-spacing: .18em; color: var(--pmc-primary-ink, var(--xb-gold)); font-weight: 600; }
.xb-role { margin: .45rem 0 0; color: var(--xb-muted); font-size: .98rem; }

.xb-contact ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--xb-line); }
.xb-contact li a { display: flex; gap: 1rem; align-items: center; padding: .95rem .25rem; border-bottom: 1px solid var(--xb-line); color: var(--xb-ink); text-decoration: none; }
.xb-contact li a:hover, .xb-contact li a:focus-visible { background: var(--xb-panel); }
.xb-contact .pmc-icon { color: var(--pmc-primary-ink, var(--xb-gold)); flex: none; }
.xb-contact span { display: flex; flex-direction: column; min-width: 0; word-break: break-word; font-size: 1.02rem; }
.xb-contact small { font-size: .7rem; text-transform: uppercase; letter-spacing: .16em; color: var(--xb-muted); margin-bottom: .1rem; }

.xb-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0 .5rem; }
.xb-btn {
	flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 3rem; padding: .7rem 1rem;
	border: 1px solid var(--xb-gold); color: var(--pmc-primary-ink, var(--xb-gold)); background: transparent; font: inherit; font-weight: 600;
	letter-spacing: .04em; text-decoration: none; cursor: pointer; border-radius: 0;
}
.xb-btn[hidden] { display: none; }
.xb-btn:hover { background: var(--xb-panel); }
.xb-btn-gold { flex-basis: 100%; background: var(--xb-gold); color: var(--pmc-on-primary); }
.xb-btn-gold:hover { background: var(--xb-gold); filter: brightness(1.08); }
.xb-btn:focus-visible, .xb-contact a:focus-visible, .xb-links a:focus-visible { outline: 2px solid var(--xb-gold); outline-offset: 3px; }

.xb-section { margin-top: 2.25rem; }
.xb-h2 { display: flex; align-items: center; gap: .8rem; font: 600 1.45rem/1.2 var(--pmc-display); margin: 0 0 1rem; color: var(--xb-ink); }
.xb-h2::after { content: ''; flex: 1; height: 1px; background: var(--xb-line); }
.xb-bio p { margin: 0 0 .9rem; color: #d9d4ca; line-height: 1.7; }
.xb-bio p:first-child { font: 500 1.3rem/1.45 var(--pmc-display); color: var(--xb-ink); }

.xb-services { list-style: none; margin: 0; padding: 0; }
.xb-services li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .5rem; padding: .9rem 0; border-bottom: 1px solid var(--xb-line); }
.xb-num { font: 600 1.35rem/1.2 var(--pmc-display); color: var(--pmc-primary-ink, var(--xb-gold)); }
.xb-svc-name { margin: 0; font-weight: 600; font-size: 1.05rem; }
.xb-price { float: right; font-weight: 500; color: var(--pmc-primary-ink, var(--xb-gold)); font-variant-numeric: tabular-nums; margin-left: .75rem; }
.xb-svc-desc { margin: .25rem 0 0; color: var(--xb-muted); font-size: .95rem; line-height: 1.5; }

.xb-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.xb-tags li { border: 1px solid var(--xb-line); padding: .35rem .75rem; font-size: .9rem; color: #d9d4ca; }

.xb-hours { width: 100%; border-collapse: collapse; }
.xb-hours th, .xb-hours td { padding: .5rem 0; border-bottom: 1px solid var(--xb-line); font-weight: 400; text-align: left; }
.xb-hours td { text-align: right; color: #d9d4ca; font-variant-numeric: tabular-nums; }
.xb-hours-note { margin: .6rem 0 0; color: var(--xb-muted); font-size: .9rem; font-style: italic; }

.xb-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.xb-gallery a { display: block; aspect-ratio: 1; overflow: hidden; }
.xb-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }

.xb-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 1.25rem; }
.xb-links a { color: var(--xb-ink); text-decoration: none; font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; padding: .5rem 0; display: inline-block; border-bottom: 1px solid var(--xb-gold); }
.xb-foot { text-align: center; margin-top: 2.5rem; font-size: .8rem; }
.xb-foot a { color: var(--xb-muted); }

@media (min-width: 40rem) {
	.xb { padding-top: 4rem; }
	.xb-head { grid-template-columns: 8.5rem 1fr; gap: 1.75rem; }
	.xb-photo { width: 8.5rem; }
	.xb-btn-gold { flex-basis: auto; }
}
.xb-name, .xb-svc-name { overflow-wrap: break-word; hyphens: auto; }
