/* ==========================================================================
   Steel Residence Timișoara — main.css
   Cald & Primitor · Ivory / Lemn / Nuc / Salvie
   ========================================================================== */

:root {
	--steel-white: #ffffff;
	--steel-cream: #f3e9db;            /* nisip cald */
	--steel-ivory: #fbf7f0;            /* fundal cald principal */
	--steel-anthracite: #2b2118;       /* espresso închis cald (secțiuni contrast) */
	--steel-anthracite-soft: #3d3023;  /* espresso mai deschis */
	--steel-gray: #8a7861;             /* maro-cald muted pentru text secundar */
	--steel-gray-light: #e0d4c2;       /* linie caldă deschisă */
	--steel-gold: #bb9a6c;             /* auriu-șampanie (accent one66) */
	--steel-gold-soft: #cdb287;        /* auriu deschis */
	--steel-gold-deep: #a07e4f;        /* auriu profund pentru hover */
	--steel-sage: #8a9a5b;             /* verde salvie (accent natural, discret) */
	--steel-line: #ece2d3;             /* linii/borduri calde */

	--font-display: 'Fraunces', 'Playfair Display', Georgia, serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

	--container: 1240px;
	--radius: 8px;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Reset & base ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.7;
	color: var(--steel-anthracite);
	background: var(--steel-ivory);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--steel-anthracite); text-decoration: none; transition: color .3s var(--ease); }
a:hover { color: var(--steel-gold); }

h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
h3 { font-size: 1.4rem; }

.steel-container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px);
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 16px; top: 16px; background: var(--steel-anthracite); color: #fff; padding: 10px 16px; z-index: 9999; }

/* Buttons ----------------------------------------------------------------- */
.steel-btn {
	display: inline-block;
	padding: 15px 34px;
	font-family: var(--font-body);
	font-weight: 500;
	font-size: .82rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-radius: var(--radius);
	border: 1px solid transparent;
	cursor: pointer;
	transition: all .35s var(--ease);
}
.steel-btn-gold { background: var(--steel-gold); color: #fff; }
.steel-btn-gold:hover { background: var(--steel-gold-deep); color: #fff; }
.steel-btn-gold:hover { background: var(--steel-anthracite); color: #fff; }
.steel-btn-ghost { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; }
.steel-btn-ghost:hover { background: rgba(255,255,255,.12); color: #fff; border-color: #fff; }
.steel-btn-dark { background: var(--steel-anthracite); color: #fff; }
.steel-btn-dark:hover { background: var(--steel-gold); color: #fff; }

/* Header ------------------------------------------------------------------ */
.steel-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
	background: rgba(251,247,240,.94);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--steel-line);
	transition: transform .4s var(--ease);
}
.steel-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 78px; }
.steel-logo .custom-logo-link { display: inline-block; line-height: 0; }
.steel-logo .custom-logo { max-height: 56px; width: auto; height: auto; display: block; }
.steel-logo-name { font-family: var(--font-display); font-size: 1.35rem; letter-spacing: .04em; display: block; line-height: 1; }
.steel-logo-sub { font-size: .62rem; letter-spacing: .42em; color: var(--steel-gold); display: block; margin-top: 3px; }
.steel-menu { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; }
.steel-menu a { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 400; }
.steel-header-cta { padding: 12px 26px; }
.steel-menu-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 8px; }
.steel-menu-toggle span { width: 26px; height: 2px; background: var(--steel-anthracite); transition: .3s; }

/* Hero -------------------------------------------------------------------- */
.steel-hero {
	position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center;
	text-align: center; color: #fff; overflow: hidden;
}
.steel-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: -2; }
.steel-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(61,48,35,.30) 0%, rgba(61,48,35,.62) 100%); z-index: -1; }
.steel-hero-content { max-width: 760px; padding: 0 24px; animation: steelFadeUp 1.2s var(--ease) both; }
.steel-hero h1 { color: #fff; margin-bottom: .25em; }
.steel-hero-sub { font-size: 1.15rem; letter-spacing: .04em; font-weight: 300; margin-bottom: 2.2em; opacity: .95; }
.steel-hero-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.steel-hero-eyebrow { font-size: .7rem; letter-spacing: .45em; text-transform: uppercase; color: var(--steel-gold-soft); margin-bottom: 1.4em; display: block; }

@keyframes steelFadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

/* Sections ---------------------------------------------------------------- */
.steel-section { padding: 110px 0; }
.steel-section--cream { background: var(--steel-cream); }
.steel-section--dark { background: var(--steel-anthracite); color: #fff; }
.steel-section--dark h2 { color: #fff; }
.steel-section-head { text-align: center; max-width: 640px; margin: 0 auto 64px; }
.steel-eyebrow { font-size: .72rem; letter-spacing: .4em; text-transform: uppercase; color: var(--steel-gold); display: block; margin-bottom: 16px; }
.steel-section-head h2 { position: relative; display: inline-block; padding-bottom: 22px; }
.steel-section-head h2::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 64px; height: 2px; background: var(--steel-gold); }
.steel-section-head p { color: var(--steel-gray); margin-top: 8px; }

/* Facilities -------------------------------------------------------------- */
.steel-facilities-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1px; background: var(--steel-line); border: 1px solid var(--steel-line); }
.steel-facility { background: var(--steel-ivory); padding: 38px 28px; text-align: center; transition: background .35s var(--ease); }
.steel-facility:hover { background: var(--steel-cream); }
.steel-facility-icon { color: var(--steel-gold); margin-bottom: 16px; display: inline-flex; }
.steel-icon { display: inline-block; vertical-align: middle; }
.steel-card-meta .steel-icon { color: var(--steel-gold); }
.steel-facility h3 { font-size: 1.05rem; font-family: var(--font-body); font-weight: 500; }

/* Apartment cards --------------------------------------------------------- */
.steel-apartments-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 36px; }
@media (max-width: 768px) { .steel-apartments-grid { grid-template-columns: 1fr; } }
.steel-card { background: #fff; border: 1px solid var(--steel-line); border-radius: var(--radius); overflow: hidden; transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.steel-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px -28px rgba(61,48,35,.30); }
.steel-card-img { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.steel-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.steel-card:hover .steel-card-img img { transform: scale(1.05); }
.steel-card-price { position: absolute; bottom: 14px; right: 14px; background: rgba(61,48,35,.88); color: #fff; padding: 7px 14px; border-radius: var(--radius); font-size: .8rem; }
.steel-card-price strong { font-family: var(--font-display); font-size: 1.05rem; color: var(--steel-gold-soft); }
.steel-card-body { padding: 26px 26px 30px; }
.steel-card-body h3 { margin-bottom: 8px; }
.steel-card-meta { display: flex; flex-wrap: wrap; gap: 16px; color: var(--steel-gray); font-size: .82rem; margin: 16px 0 22px; }
.steel-card-meta span { display: inline-flex; align-items: center; gap: 6px; }
.steel-card-excerpt { color: var(--steel-gray); font-size: .92rem; }

/* Gallery ----------------------------------------------------------------- */
.steel-gallery-grid { columns: 3; column-gap: 14px; }
.steel-gallery-grid a { display: block; overflow: hidden; border-radius: var(--radius); margin-bottom: 14px; break-inside: avoid; }
.steel-gallery-img { width: 100%; height: auto; display: block; transition: transform .6s var(--ease); }
.steel-gallery-grid a:hover .steel-gallery-img { transform: scale(1.05); }
@media (max-width: 900px) { .steel-gallery-grid { columns: 2; } }
@media (max-width: 560px) { .steel-gallery-grid { columns: 1; } }

/* Reviews ----------------------------------------------------------------- */
.steel-reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }
.steel-review-card { background: var(--steel-white); padding: 36px; border: 1px solid var(--steel-line); border-radius: var(--radius); }
.steel-stars { color: var(--steel-gold); letter-spacing: 3px; margin-bottom: 14px; }
.steel-review-text { font-family: var(--font-display); font-size: 1.15rem; line-height: 1.55; font-style: italic; margin-bottom: 18px; }
.steel-review-name { font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--steel-gray); }

/* CTA --------------------------------------------------------------------- */
.steel-cta { text-align: center; }
.steel-cta h2 { color: #fff; max-width: 640px; margin: 0 auto .6em; }
.steel-cta p { color: rgba(255,255,255,.8); max-width: 520px; margin: 0 auto 2.2em; }

/* Booking form ------------------------------------------------------------ */
.steel-booking { max-width: 920px; margin: 0 auto; }
.steel-booking-steps { display: flex; justify-content: center; gap: 8px; margin-bottom: 44px; flex-wrap: wrap; }
.steel-step-dot { width: 30px; height: 30px; border-radius: 50%; background: var(--steel-line); color: var(--steel-gray); display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 500; transition: .3s; }
.steel-step-dot.active { background: var(--steel-gold); color: #fff; }
.steel-step-dot.done { background: var(--steel-anthracite); color: #fff; }
.steel-booking-panel { display: none; }
.steel-booking-panel.active { display: block; animation: steelFadeUp .5s var(--ease) both; }
.steel-field-group { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.steel-field label { display: block; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--steel-gray); margin-bottom: 8px; }
.steel-field input, .steel-field select, .steel-field textarea {
	width: 100%; padding: 14px 16px; border: 1px solid var(--steel-line); border-radius: var(--radius);
	font-family: var(--font-body); font-size: 1rem; background: #fff; transition: border-color .3s;
}
.steel-field input:focus, .steel-field select:focus, .steel-field textarea:focus { outline: none; border-color: var(--steel-gold); }
.steel-booking-nav { display: flex; justify-content: space-between; margin-top: 32px; }
.steel-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 24px; }
.steel-result-card { border: 1px solid var(--steel-line); border-radius: var(--radius); overflow: hidden; cursor: pointer; transition: .3s; }
.steel-result-card.selected { border-color: var(--steel-gold); box-shadow: 0 0 0 2px var(--steel-gold); }
.steel-result-card img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.steel-result-body { padding: 18px; }
.steel-summary-table { width: 100%; border-collapse: collapse; }
.steel-summary-table td { padding: 12px 0; border-bottom: 1px solid var(--steel-line); }
.steel-summary-table td:last-child { text-align: right; font-weight: 500; }
.steel-notice { padding: 16px; border-radius: var(--radius); margin: 16px 0; }
.steel-notice-error { background: #fdecea; color: #b42318; }
.steel-notice-success { background: #ecfdf3; color: #027a48; }
.steel-loader { text-align: center; padding: 40px; color: var(--steel-gray); }

/* Breadcrumbs ------------------------------------------------------------- */
.steel-breadcrumbs { padding: 100px 0 0; }
.steel-breadcrumbs ol { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0 24px; max-width: var(--container); margin-inline: auto; font-size: .8rem; color: var(--steel-gray); }
.steel-breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: 8px; color: var(--steel-gray-light); }

/* Single apartment -------------------------------------------------------- */
.steel-single-hero { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; padding-top: 40px; }
.steel-single-gallery img { border-radius: var(--radius); margin-bottom: 12px; }
.steel-single-specs { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin: 28px 0; }
.steel-spec { padding: 18px; background: var(--steel-cream); border-radius: var(--radius); }
.steel-spec strong { display: block; font-family: var(--font-display); font-size: 1.4rem; }
.steel-spec span { font-size: .8rem; color: var(--steel-gray); }
.steel-amenities-list { list-style: none; padding: 0; columns: 2; }
.steel-amenities-list li { padding: 6px 0 6px 24px; position: relative; }
.steel-amenities-list li::before { content: '✓'; position: absolute; left: 0; color: var(--steel-gold); }

/* Contact ----------------------------------------------------------------- */
.steel-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.steel-contact-info p { margin: 14px 0; }
.steel-map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; border-radius: var(--radius); }

/* Footer ------------------------------------------------------------------ */
.steel-footer { background: var(--steel-anthracite); color: #cfcfcf; padding: 72px 0 0; }
.steel-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px; padding-bottom: 48px; }
.steel-footer h4 { color: #fff; font-family: var(--font-body); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 18px; }
.steel-footer .steel-logo-name { color: #fff; }
.steel-footer a { color: #cfcfcf; }
.steel-footer a:hover { color: var(--steel-gold); }
.steel-footer-menu { list-style: none; padding: 0; margin: 0; }
.steel-footer-menu li { margin-bottom: 10px; }
.steel-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 24px 0; font-size: .82rem; color: #8a8a8a; }

/* WhatsApp float ---------------------------------------------------------- */
.steel-whatsapp-float {
	position: fixed; bottom: 26px; right: 26px; z-index: 999;
	width: 58px; height: 58px; border-radius: 50%;
	background: #25d366; color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 24px -6px rgba(37,211,102,.6);
	transition: transform .3s var(--ease);
}
.steel-whatsapp-float:hover { transform: scale(1.08); color: #fff; }

/* Scroll reveal ----------------------------------------------------------- */
.steel-reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.steel-reveal.is-visible { opacity: 1; transform: none; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 980px) {
	.steel-single-hero, .steel-contact-grid { grid-template-columns: 1fr; }
	.steel-footer-grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 768px) {
	.steel-nav, .steel-header-cta { display: none; }
	.steel-menu-toggle { display: flex; }
	.steel-nav.open { display: block; position: absolute; top: 78px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--steel-line); padding: 20px 24px; }
	.steel-nav.open .steel-menu { flex-direction: column; gap: 18px; }
	.steel-section { padding: 70px 0; }
	.steel-field-group { grid-template-columns: 1fr; }
	.steel-single-specs { grid-template-columns: 1fr; }
	.steel-amenities-list { columns: 1; }
}

/* Reduced motion ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Carousel apartament ----------------------------------------------------- */
.steel-carousel { position: relative; border-radius: var(--radius); overflow: hidden; background: var(--steel-anthracite); }
.steel-carousel-track { position: relative; aspect-ratio: 16/10; }
.steel-carousel-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease); pointer-events: none; }
.steel-carousel-slide.active { opacity: 1; pointer-events: auto; }
.steel-carousel-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.steel-carousel-arrow {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 46px; height: 46px; border-radius: 50%;
	background: rgba(251,247,240,.9); color: var(--steel-anthracite);
	border: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
	transition: background .3s var(--ease), transform .3s var(--ease); z-index: 2;
}
.steel-carousel-arrow:hover { background: var(--steel-gold); color: #fff; }
.steel-carousel-prev { left: 16px; }
.steel-carousel-next { right: 16px; }
.steel-carousel-counter {
	position: absolute; bottom: 16px; right: 16px; z-index: 2;
	background: rgba(43,33,24,.78); color: #fff; padding: 6px 14px;
	border-radius: 20px; font-size: .82rem; letter-spacing: .05em;
}
.steel-carousel-thumbs { display: flex; gap: 8px; padding: 12px; background: var(--steel-ivory); overflow-x: auto; }
.steel-carousel-thumb {
	flex: 0 0 auto; width: 76px; height: 56px; padding: 0; border: 2px solid transparent;
	border-radius: 4px; overflow: hidden; cursor: pointer; opacity: .6; transition: opacity .3s, border-color .3s; background: none;
}
.steel-carousel-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.steel-carousel-thumb.active { opacity: 1; border-color: var(--steel-gold); }
.steel-carousel-thumb:hover { opacity: 1; }
@media (max-width: 768px) {
	.steel-carousel-arrow { width: 38px; height: 38px; }
	.steel-carousel-thumb { width: 60px; height: 44px; }
}

/* Stil iconițe: SOLID (badge umplut) ------------------------------------- */
.steel-icons-solid .steel-facility-icon {
	width: 64px; height: 64px; border-radius: 50%;
	background: var(--steel-gold); color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
}
.steel-icons-solid .steel-facility-icon .steel-icon { color: #fff; }

/* Facilități pe pagina apartamentului -------------------------------------- */
.steel-single-amenities, .steel-single-rules { margin: 32px 0; }
.steel-single-amenities h3, .steel-single-rules h3 {
	font-family: var(--font-display, Georgia, serif); font-size: 1.3rem;
	margin-bottom: 16px; color: var(--steel-anthracite, #2b2118);
}
.steel-amenities-list {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px;
}
.steel-amenities-list li {
	display: flex; align-items: center; gap: 10px;
	font-size: .98rem; color: var(--steel-anthracite, #2b2118);
}
.steel-amenity-icon { display: inline-flex; color: var(--steel-gold, #bb9a6c); flex: 0 0 auto; }
.steel-rules-list { list-style: none; padding: 0; margin: 0; }
.steel-rules-list li {
	padding: 8px 0 8px 22px; position: relative;
	color: var(--steel-gray, #6b6c70); border-bottom: 1px solid var(--steel-line, #ece2d3);
}
.steel-rules-list li::before {
	content: '·'; position: absolute; left: 6px; color: var(--steel-gold, #bb9a6c); font-weight: 700;
}
@media (max-width: 600px) { .steel-amenities-list { grid-template-columns: 1fr; } }

/* Ascunde meta-ul "publicat de admin" pe apartamente ---------------------- */
.single-apartamente .entry-meta,
.single-apartamente .posted-by,
.single-apartamente .ast-author-meta,
.single-apartamente .post-meta,
.single-apartamente .entry-header .posted-on,
.post-type-archive-apartamente .entry-meta,
.tax-tip_apartament .entry-meta { display: none !important; }

/* Forțează 2 pe rând și în arhiva Astra a apartamentelor ------------------ */
.post-type-archive-apartamente .ast-row,
.post-type-archive-apartamente .site-main .ast-article-post { }
.post-type-archive-apartamente .steel-apartments-grid,
.tax-tip_apartament .steel-apartments-grid { grid-template-columns: repeat(2, 1fr) !important; }
@media (max-width: 768px) {
	.post-type-archive-apartamente .steel-apartments-grid,
	.tax-tip_apartament .steel-apartments-grid { grid-template-columns: 1fr !important; }
}

/* Nume apartament vizibil în card ----------------------------------------- */
.steel-card-body h3 { font-size: 1.3rem; margin: 0 0 10px; line-height: 1.2; }
.steel-card-body h3 a { color: var(--steel-anthracite, #2b2118); text-decoration: none; }
.steel-card-body h3 a:hover { color: var(--steel-gold, #bb9a6c); }


/* Fix header fix pe mobil — împinge conținutul sub header (înălțime ~142px) */
@media (max-width: 921px) {
	.steel-single-wrap,
	.steel-archive-wrap { padding-top: 160px !important; }
}
