/* Gillow 1875 — estilos del tema.
   Colores y fuentes vienen de theme.json (Apariencia → Editor → Estilos). */

:root {
	--g-ground: var(--wp--preset--color--cantera, #F3F0EE);
	--g-paper: var(--wp--preset--color--papel, #FFFFFF);
	--g-ink: var(--wp--preset--color--tinta, #231A1C);
	--g-muted: var(--wp--preset--color--gris, #6A5C5F);
	--g-line: var(--wp--preset--color--linea, #DDD4D2);
	--g-wine: var(--wp--preset--color--vino, #7A2731);
	--g-brass: var(--wp--preset--color--laton, #A9803F);
	--g-brass-soft: var(--wp--preset--color--laton-claro, #EFE3CC);
	--g-wa: var(--wp--preset--color--whatsapp, #1E8E4E);
	--g-ok: #1F7A4D;
	--g-display: var(--wp--preset--font-family--display, "Federo", sans-serif);
	--g-body: var(--wp--preset--font-family--body, "Figtree", system-ui, sans-serif);
	--g-read: var(--wp--preset--font-family--read, "Spectral", Georgia, serif);
	--g-r: 4px;
	--g-wrap: 1120px;
	--g-gutter: clamp(16px, 4vw, 32px);
}

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* Sin márgenes automáticos entre encabezado, contenido y pie */
.wp-site-blocks > * { margin-block: 0; }
.wp-site-blocks { padding-bottom: 76px; }
@media (min-width: 860px) { .wp-site-blocks { padding-bottom: 0; } }

/* El espaciado del sitio se maneja con gap; se quitan márgenes heredados */
.g-notice :is(p), .g-top :is(p, .wp-block-buttons),
.g-main :is(p, h1, h2, h3, h4, figure, ul, ol, details, .wp-block-group, .wp-block-buttons),
.g-footer :is(p, .wp-block-group) { margin-block: 0; }
.g-main figure.wp-block-image { margin: 0; }
.wp-site-blocks .g-wrap { margin-inline: auto; }

.g-wrap { max-width: var(--g-wrap); margin-inline: auto; padding-inline: var(--g-gutter); width: 100%; box-sizing: border-box; }
.g-main :is(h1, h2, h3) { text-wrap: balance; }
:focus-visible { outline: 2px solid var(--g-brass); outline-offset: 3px; }

.g-eyebrow { font: 600 .74rem/1 var(--g-body); letter-spacing: .16em; text-transform: uppercase; color: var(--g-brass); }
.g-lede { color: var(--g-muted); max-width: 62ch; }
.g-sec { padding-block: clamp(48px, 7vw, 88px); }
.g-sec.g-sec-tight { padding-top: 0; }
.g-sec-head { display: grid; gap: 12px; margin-bottom: 32px !important; }
.g-stack { display: grid; gap: 20px; }

/* Botones (estilos de bloque registrados en functions.php) */
.wp-block-button__link { transition: transform .15s, background-color .15s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.is-style-g-ghost .wp-block-button__link { background: transparent; color: var(--g-ink); border: 1px solid currentColor; }
.is-style-g-light .wp-block-button__link { background: var(--g-paper); color: var(--g-wine); }
.is-style-g-ghost-light .wp-block-button__link { background: transparent; color: var(--g-ground); border: 1px solid currentColor; }

/* ---------- Aviso superior ---------- */
.g-notice { background: var(--g-ink); color: var(--g-ground); font-size: .82rem; }
.g-notice-row { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: space-between; align-items: center; padding-block: 8px; }
.g-notice strong { color: var(--g-brass); }
.g-notice a { color: inherit; }

/* ---------- Encabezado ---------- */
.g-top { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 40; background: color-mix(in srgb, var(--g-ground) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--g-line); }
.g-top-row { display: flex; align-items: center; gap: 20px; min-height: 64px; }
.g-brand { margin-right: auto !important; }
.g-brand a { font: 400 1.55rem/1 var(--g-display); color: var(--g-wine); text-decoration: none; letter-spacing: .02em; }
.g-brand sup { font: 600 .68rem/1 var(--g-body); letter-spacing: .18em; color: var(--g-brass); vertical-align: baseline; margin-left: 6px; }
.g-nav { display: none; gap: 22px; font-size: .93rem; }
.g-nav a { color: var(--g-muted); text-decoration: none; }
.g-nav a:hover { color: var(--g-ink); }
@media (min-width: 980px) { .g-nav { display: flex; } }
.g-lang { display: flex; border: 1px solid var(--g-line); border-radius: var(--g-r); overflow: hidden; }
.g-lang a { font: 600 .78rem/1 var(--g-body); padding: 8px 10px; color: var(--g-muted); text-decoration: none; }
.g-lang a[aria-current="true"] { background: var(--g-ink); color: var(--g-ground); }
.g-hdr-btn .wp-block-button__link { padding: 11px 16px; font-size: .92rem; }
.g-top .wp-block-buttons { display: none; }
@media (min-width: 640px) { .g-top .wp-block-buttons { display: flex; } }

/* ---------- Portada ---------- */
.g-hero { padding-block: clamp(24px, 4vw, 48px) clamp(40px, 6vw, 72px); }
.g-hero-grid { display: grid; gap: 28px; align-items: stretch; }
@media (min-width: 900px) { .g-hero-grid { grid-template-columns: 1.15fr .85fr; gap: 40px; } }
.g-hero-img { position: relative; border-radius: var(--g-r); overflow: hidden; min-height: 420px; background: var(--g-wine); }
@media (min-width: 900px) { .g-hero-img { min-height: 540px; } }
.g-main .g-hero-img .g-hero-photo { position: absolute; inset: 0; margin: 0; }
.g-main .g-hero-img .g-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.g-hero-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(20, 10, 12, .78)); pointer-events: none; }
.g-year { position: absolute; top: 18px; left: 18px; z-index: 2; font: 400 .9rem/1 var(--g-display); letter-spacing: .3em; color: #fff; border: 1px solid rgba(255, 255, 255, .6); padding: 8px 10px 7px; }
.g-hero-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: clamp(18px, 3vw, 32px); color: #fff; display: grid; gap: 10px; }
.g-hero-title { color: #fff; }
.g-hero-sub { max-width: 46ch; opacity: .92; }

/* Tarjeta de reserva [gillow_reserva] */
.g-book { position: relative; background: var(--g-paper); border: 1px solid var(--g-line); border-radius: var(--g-r); padding: clamp(20px, 3vw, 32px); display: grid; gap: 18px; align-content: start; }
.g-book::before, .g-book::after { content: ""; position: absolute; width: 26px; height: 26px; border: 2px solid var(--g-brass); }
.g-book::before { top: 8px; left: 8px; border-right: 0; border-bottom: 0; }
.g-book::after { bottom: 8px; right: 8px; border-left: 0; border-top: 0; }
.g-book p, .g-book h2, .g-book ul { margin: 0; }
.g-book-title { font: 400 1.6rem/1.15 var(--g-display); }
.g-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.g-field { display: grid; gap: 6px; min-width: 0; }
.g-field label { font: 600 .74rem/1 var(--g-body); letter-spacing: .12em; text-transform: uppercase; color: var(--g-muted); }
.g-field input, .g-field select { width: 100%; box-sizing: border-box; font: 500 1rem var(--g-body); padding: 13px 12px; border: 1px solid var(--g-line); border-radius: var(--g-r); background: var(--g-ground); color: var(--g-ink); }
.g-stay { font-size: .9rem; color: var(--g-muted); font-variant-numeric: tabular-nums; min-height: 1.4em; }
.g-go { display: flex; justify-content: center; align-items: center; padding: 18px; border-radius: var(--g-r); background: var(--g-wine); color: #fff !important; font: 600 1.05rem/1 var(--g-body); text-decoration: none; transition: transform .15s; }
.g-go:hover { transform: translateY(-1px); }
.g-perks { list-style: none; padding: 0; display: grid; gap: 9px; font-size: .93rem; }
.g-perks li { position: relative; padding-left: 26px; }
.g-perks li::before { content: ""; position: absolute; left: 2px; top: .35em; width: 12px; height: 7px; border-left: 2.5px solid var(--g-ok); border-bottom: 2.5px solid var(--g-ok); transform: rotate(-45deg); }
.g-alt { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: .9rem; color: var(--g-muted); border-top: 1px solid var(--g-line); padding-top: 16px; }
.g-alt a { color: var(--g-wa); font-weight: 600; }

/* Cifras */
.g-proof { border-block: 1px solid var(--g-line); background: var(--g-paper); }
.g-stats { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px) { .g-stats { grid-template-columns: repeat(5, 1fr); } }
.g-stat { padding: 22px 12px; display: grid; gap: 4px; text-align: center; border-right: 1px solid var(--g-line); border-bottom: 1px solid var(--g-line); }
@media (max-width: 759px) { .g-stat:nth-child(2n) { border-right: 0; } .g-stat:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; } }
@media (min-width: 760px) { .g-stat { border-bottom: 0; } .g-stat:last-child { border-right: 0; } }
.g-stat-num { font: 400 2rem/1 var(--g-display); color: var(--g-wine); font-variant-numeric: tabular-nums; }
.g-stat-label { font-size: .82rem; color: var(--g-muted); }

/* Banda de reserva directa */
.g-direct { background: var(--g-wine); color: #fff; }
.g-direct .g-eyebrow { color: var(--g-brass-soft); }
.g-direct h2 { color: #fff; }
.g-direct .g-lede { color: rgba(255, 255, 255, .82); }
.g-dgrid { display: grid; gap: 1px; background: rgba(255, 255, 255, .22); border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--g-r); overflow: hidden; }
@media (min-width: 760px) { .g-dgrid { grid-template-columns: repeat(4, 1fr); } }
.g-dcell { background: var(--g-wine); padding: 24px; display: grid; gap: 8px; align-content: start; }
.g-dcell p { font-size: .93rem; color: rgba(255, 255, 255, .84); }
.g-dcell p.g-big { font: 400 2.1rem/1 var(--g-display); color: #fff; }
.g-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 28px !important; }
.g-fine { font-size: .8rem; opacity: .75; }

/* Habitaciones */
.g-rooms { display: grid; gap: 20px; }
@media (min-width: 700px) { .g-rooms { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1060px) { .g-rooms { grid-template-columns: repeat(4, 1fr); } }
.g-room { background: var(--g-paper); border: 1px solid var(--g-line); border-radius: var(--g-r); overflow: hidden; display: grid; grid-template-rows: auto 1fr; }
.g-main .g-room-img { aspect-ratio: 4 / 3; overflow: hidden; }
.g-main .g-room-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.g-room-ph { aspect-ratio: 4 / 3; display: grid; place-items: center; text-align: center; background: var(--g-brass-soft) repeating-linear-gradient(45deg, transparent 0 14px, rgba(169, 128, 63, .14) 14px 15px); }
.g-ph-label { color: var(--g-brass); font: 400 1rem/1.3 var(--g-display); letter-spacing: .08em; }
.g-room-body { padding: 18px; display: grid; gap: 10px; grid-template-rows: auto auto 1fr auto; }
.g-specs { font-size: .8rem; color: var(--g-wine); font-weight: 600; letter-spacing: .02em; }
.g-room-desc { font-size: .92rem; color: var(--g-muted); }
.g-room .wp-block-button, .g-room .wp-block-button__link { width: 100%; }
.g-room .wp-block-button__link { padding: 13px; }

/* Ubicación */
.g-loc { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .g-loc { grid-template-columns: 1fr 1fr; } }
.g-main .g-loc-img img { width: 100%; border-radius: var(--g-r); display: block; }
.g-loc-text { display: grid; gap: 12px; }
.g-dist { list-style: none; padding: 0; margin: 8px 0 !important; border-top: 1px solid var(--g-line); }
.g-dist li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--g-line); font-variant-numeric: tabular-nums; }
.g-dist strong { color: var(--g-wine); white-space: nowrap; }
.g-addr { font-size: .95rem; color: var(--g-muted); }

/* Historia */
.g-hist { background: var(--g-paper); border-block: 1px solid var(--g-line); }
.g-hist-grid { display: grid; gap: 40px; }
@media (min-width: 900px) { .g-hist-grid { grid-template-columns: .8fr 1.2fr; } }
.g-hist-pics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-content: start; }
.g-hist-pics img { width: 100%; display: block; border-radius: var(--g-r); filter: grayscale(1) contrast(1.05); }
.g-hist-pics .g-wide { grid-column: 1 / -1; }
.g-hist-pics figcaption { font-size: .78rem; color: var(--g-muted); margin-top: 6px; text-align: left; }
.g-tl { list-style: none; padding: 0; display: grid; }
.g-tl li { display: grid; grid-template-columns: 96px 1fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--g-line); font: 400 1.05rem/1.55 var(--g-read); }
.g-tl strong { font: 400 1.35rem/1.2 var(--g-display); color: var(--g-wine); font-variant-numeric: tabular-nums; }

/* Restaurante */
.g-eat { display: grid; gap: 32px; }
@media (min-width: 900px) { .g-eat { grid-template-columns: 1.1fr .9fr; align-items: center; } }
.g-mosaic { display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; gap: 10px; aspect-ratio: 4 / 3; max-width: 100%; }
.g-mosaic figure { min-height: 0; overflow: hidden; border-radius: var(--g-r); }
.g-mosaic figure:first-child { grid-row: 1 / 3; }
.g-main .g-mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.g-eat-text { display: grid; gap: 14px; justify-items: start; }
.g-price { display: inline-flex; align-items: baseline; gap: 8px; margin-top: 4px !important; padding: 12px 16px; border: 1px solid var(--g-brass); border-radius: var(--g-r); }
.g-price strong { font: 400 1.8rem/1 var(--g-display); color: var(--g-wine); }

/* Servicios */
.g-svc { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); border-top: 1px solid var(--g-line); }
.g-svc li { padding: 14px 4px 14px 22px; border-bottom: 1px solid var(--g-line); position: relative; font-size: .95rem; }
.g-svc li::before { content: ""; position: absolute; left: 4px; top: 50%; width: 7px; height: 7px; background: var(--g-brass); transform: translateY(-50%) rotate(45deg); }

/* Preguntas */
.g-faq { display: grid; gap: 10px; max-width: 820px; }
.g-faq details { background: var(--g-paper); border: 1px solid var(--g-line); border-radius: var(--g-r); padding: 0 18px; }
.g-faq summary { cursor: pointer; padding: 16px 0; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.g-faq summary::-webkit-details-marker { display: none; }
.g-faq summary::after { content: "+"; font: 400 1.4rem/1 var(--g-display); color: var(--g-brass); }
.g-faq details[open] summary::after { content: "–"; }
.g-faq details p { padding-bottom: 16px; color: var(--g-muted); }

/* Cierre */
.g-final { background: var(--g-ink); color: var(--g-ground); }
.g-final h2 { color: var(--g-ground); font-size: clamp(1.9rem, 4vw, 3rem); }
.g-final .g-lede { color: rgba(243, 240, 238, .75); }
.g-final-grid { display: grid; gap: 24px; }
@media (min-width: 860px) { .g-final-grid { grid-template-columns: 1.2fr .8fr; align-items: end; } }
.g-final-text { display: grid; gap: 14px; }

/* ---------- Pie ---------- */
.g-footer { padding-block: 40px; font-size: .88rem; color: var(--g-muted); }
.g-foot-grid { display: grid; gap: 24px; }
@media (min-width: 760px) { .g-foot-grid { grid-template-columns: repeat(3, 1fr); } }
.g-foot-grid > .wp-block-group { display: grid; gap: 4px; align-content: start; }
.g-fh { font: 600 .74rem/1 var(--g-body); letter-spacing: .14em; text-transform: uppercase; color: var(--g-ink); margin-bottom: 8px !important; }
.g-footer a { color: inherit; }

/* ---------- Páginas internas ---------- */
.g-page-body { padding-block: clamp(32px, 5vw, 64px); }

/* ---------- Barra fija en celular ---------- */
.g-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--g-paper); border-top: 1px solid var(--g-line); box-shadow: 0 -6px 20px rgba(0, 0, 0, .08); }
.g-mbar a { display: inline-flex; align-items: center; justify-content: center; padding: 14px 16px; border-radius: var(--g-r); font: 600 1rem/1 var(--g-body); text-decoration: none; }
.g-mbar-book { background: var(--g-wine); color: #fff !important; }
.g-mbar-wa { background: var(--g-wa); color: #fff !important; }
.g-mbar svg { width: 20px; height: 20px; }
@media (min-width: 860px) { .g-mbar { display: none; } }

/* En el editor, la tarjeta de reserva se ve como texto del shortcode */
.editor-styles-wrapper .g-hero-img { min-height: 420px; }
