/* com_gardens — jardina.me. Usa las variables de la plantilla (--jm-*) con valores de reserva. */
.gd {
  --gd-green: var(--jm-green, #375543);
  --gd-green-2: var(--jm-green-2, #4b6b57);
  --gd-rose: var(--jm-rose, #9c4f60);
  --gd-ink: var(--jm-ink, #2b2b2b);
  --gd-muted: var(--jm-muted, #5f6360);
  --gd-line: var(--jm-line, #e2ded5);
  --gd-paper: #fff;
  --gd-stone: var(--jm-stone, #ebe9e3);
  --gd-pale: #f0eee9;
  --gd-serif: var(--jm-serif, "Cormorant Garamond", Georgia, serif);
  --gd-radius: 8px;
  color: var(--gd-ink);
}
.gd h1, .gd h2, .gd h3 { font-family: var(--gd-serif); color: var(--gd-green); }
.gd a { color: var(--gd-green); }
.gd a:hover { color: var(--gd-rose); }
.gd .btn-primary { --bs-btn-bg: var(--gd-green); --bs-btn-border-color: var(--gd-green); --bs-btn-hover-bg: var(--gd-green-2); --bs-btn-hover-border-color: var(--gd-green-2); }
.gd .btn-outline-primary { --bs-btn-color: var(--gd-green); --bs-btn-border-color: var(--gd-green); --bs-btn-hover-bg: var(--gd-green); --bs-btn-hover-border-color: var(--gd-green); }
.gd .btn .gd-ico { vertical-align: -3px; }
.gd-ico { flex: none; }
.gd-muted, .gd-note { color: var(--gd-muted); }
.gd-note { font-size: .82rem; margin: .5rem 0 0; }
.gd-empty { padding: 2rem; text-align: center; background: var(--gd-pale); border-radius: var(--gd-radius); color: var(--gd-muted); }
.gd-eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gd-rose); margin: 0 0 .35rem; }
.gd-eyebrow a { color: inherit; text-decoration: none; }
.gd-more { font-size: .9rem; font-weight: 500; }
.gd-tag { display: inline-block; padding: .15rem .55rem; border-radius: 999px; font-size: .75rem; background: var(--gd-stone); color: var(--gd-green); }
.gd-tag--climate { background: #f3e6e6; color: var(--gd-rose); }

/* Avatares */
.gd-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; background: var(--gd-stone); }
.gd-avatar--lg { width: 64px; height: 64px; }
.gd-avatar--letter { display: inline-grid; place-items: center; font-weight: 600; color: #fff; background: var(--gd-green); }
.gd-avatar--lg.gd-avatar--letter { font-size: 1.6rem; font-family: var(--gd-serif); }

/* ------------------------------------------------------------- Lista */
.gd-hero { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 2rem; margin-bottom: 1.75rem; }
.gd-hero h1 { margin: 0 0 .35rem; font-size: clamp(2rem, 4vw, 2.8rem); }
.gd-hero__intro { max-width: 60ch; color: var(--gd-muted); margin: 0 0 .75rem; }
.gd-hero__stats { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; list-style: none; margin: 0; padding: 0; color: var(--gd-muted); }
.gd-hero__stats strong { font-family: var(--gd-serif); font-size: 1.6rem; color: var(--gd-green); font-weight: 600; }
.gd-hero__cta { display: flex; flex-wrap: wrap; gap: .5rem; }

.gd-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .75rem; margin-bottom: 1.25rem; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); }
.gd-toolbar__search { flex: 1 1 220px; }
.gd-toolbar .form-select { width: auto; flex: 0 1 auto; max-width: 220px; }
.gd-switch { display: inline-flex; margin-left: auto; border: 1px solid var(--gd-line); border-radius: 6px; overflow: hidden; }
.gd-switch__btn { display: grid; place-items: center; width: 2.4rem; height: 2.3rem; color: var(--gd-muted); background: var(--gd-paper); }
.gd-switch__btn + .gd-switch__btn { border-left: 1px solid var(--gd-line); }
.gd-switch__btn.is-active { background: var(--gd-green); color: #fff; }
.gd .gd-switch__btn:hover { color: var(--gd-green); }
.gd .gd-switch__btn.is-active:hover { color: #fff; }
.gd-active { font-size: .9rem; color: var(--gd-muted); }

.gd-garden-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.gd-garden-list { display: grid; gap: 1rem; }
.gd-gcard { display: flex; flex-direction: column; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); overflow: hidden; transition: box-shadow .15s, border-color .15s, transform .15s; }
.gd-gcard:hover { border-color: var(--gd-green); box-shadow: 0 6px 18px rgba(30, 50, 38, .08); transform: translateY(-2px); }
.gd-gcard.is-featured { border-top: 3px solid var(--gd-rose); }
.gd-gcard__img { display: block; aspect-ratio: 16 / 10; background: var(--gd-pale); overflow: hidden; }
.gd-gcard__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gd-gcard__body { display: flex; flex-direction: column; gap: .5rem; padding: .9rem 1rem 1rem; flex: 1; }
.gd-gcard__who { display: flex; gap: .65rem; align-items: center; }
.gd-gcard__title { font-size: 1.3rem; line-height: 1.15; margin: 0; }
.gd-gcard__title a { text-decoration: none; }
.gd-gcard__place { margin: .1rem 0 0; font-size: .82rem; color: var(--gd-muted); }
.gd-gcard__desc { margin: 0; font-size: .9rem; color: var(--gd-muted); }
.gd-gcard__tags { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; }
.gd-gcard__stats { display: flex; gap: 1rem; list-style: none; margin: auto 0 0; padding: .5rem 0 0; border-top: 1px solid var(--gd-line); font-size: .85rem; color: var(--gd-muted); }
.gd-gcard__stats li { display: inline-flex; align-items: center; gap: .3rem; }
@media (min-width: 768px) {
  .gd-garden-list .gd-gcard { flex-direction: row; }
  .gd-garden-list .gd-gcard__img { flex: 0 0 240px; aspect-ratio: auto; min-height: 170px; }
}

.gd-plant__noimg { display: grid; place-items: center; width: 100%; height: 100%; color: #b8c3b0; }

/* -------------------------------------------------------------- Mapas */
.gd-map { width: 100%; border-radius: var(--gd-radius); border: 1px solid var(--gd-line); background: var(--gd-pale); z-index: 0; }
.gd-map--big { height: min(70vh, 620px); }
.gd-map--small { height: 220px; }
.gd-map--pick { height: 320px; cursor: crosshair; }
.gd-pin { background: none; border: 0; }
.gd .leaflet-popup-content { font-size: .9rem; line-height: 1.45; }
.gd-map-tools { display: flex; gap: .5rem; margin: .5rem 0; }

/* ------------------------------------------------------------- Jardín */
.gd-ghead { display: grid; gap: 1.5rem; margin-bottom: 2rem; padding: 1.25rem; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); }
@media (min-width: 992px) { .gd-ghead.has-image { grid-template-columns: minmax(280px, 42%) 1fr; } }
.gd-ghead__img { display: block; border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--gd-pale); }
.gd-ghead__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gd-ghead__who { display: flex; gap: 1rem; align-items: center; margin-bottom: .75rem; }
.gd-ghead__title { margin: 0; font-size: clamp(1.8rem, 3.5vw, 2.5rem); line-height: 1.1; }
.gd-ghead__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .35rem 0 0; font-size: .9rem; color: var(--gd-muted); }
.gd-ghead__meta span { display: inline-flex; align-items: center; gap: .3rem; }
.gd-ghead__desc { margin: 0 0 1rem; line-height: 1.6; }
.gd-ghead__stats { display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; list-style: none; margin: 0 0 1rem; padding: .75rem 0; border-top: 1px solid var(--gd-line); border-bottom: 1px solid var(--gd-line); color: var(--gd-muted); font-size: .9rem; }
.gd-ghead__stats strong { font-family: var(--gd-serif); font-size: 1.45rem; color: var(--gd-green); font-weight: 600; margin-right: .2rem; }
.gd-ghead__links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; font-size: .92rem; }
.gd-ghead__links a { display: inline-flex; align-items: center; gap: .35rem; }
.gd-owner-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1rem 0 0; }

.gd-garden__cols { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 992px) { .gd-garden__cols { grid-template-columns: minmax(0, 1fr) 300px; } }
.gd-sechead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.gd-sechead h2 { margin: 0; font-size: 1.8rem; display: inline-flex; align-items: center; gap: .5rem; }
.gd-sechead__tools { display: flex; gap: .5rem; align-items: center; }
.gd-sechead__tools .form-select { width: auto; }
.gd-legend { display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; margin: 1rem 0 0; font-size: .8rem; color: var(--gd-muted); }
.gd-legend span { display: inline-flex; align-items: center; gap: .3rem; }

.gd-box { padding: 1rem 1.1rem; margin: 0 0 1.25rem; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); }
.gd-box__title { display: flex; align-items: center; gap: .45rem; margin: 0 0 .75rem; font-family: var(--gd-serif); font-size: 1.3rem; color: var(--gd-green); }
legend.gd-box__title { float: none; width: auto; padding: 0; }
.gd-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; margin-bottom: .5rem; }
.gd-photos a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: var(--gd-pale); }
.gd-photos img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .2s; }
.gd-photos a:hover img { transform: scale(1.05); }
.gd-topics { list-style: none; margin: 0 0 1rem; padding: 0; }
.gd-topics li { padding: .5rem 0; border-bottom: 1px solid var(--gd-line); }
.gd-topics li:last-child { border-bottom: 0; }
.gd-topics a { display: block; font-weight: 500; }
.gd-topics .gd-muted { font-size: .8rem; }

/* ------------------------------------------------------ Tarjeta planta */
.gd-plants--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.gd-plants--compact { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.gd-plants--list { display: grid; gap: .75rem; }
.gd-plant { position: relative; display: flex; flex-direction: column; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.gd-plant:hover { border-color: var(--gd-green); box-shadow: 0 4px 14px rgba(30, 50, 38, .07); }
.gd-plant.is-hidden { opacity: .6; }
.gd-plant__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gd-pale); }
.gd-plant__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gd-plant__from { position: absolute; left: .4rem; bottom: .4rem; padding: .1rem .45rem; border-radius: 4px; font-size: .68rem; background: rgba(255, 255, 255, .88); color: var(--gd-muted); }
.gd-plant__body { display: flex; flex-direction: column; gap: .2rem; padding: .65rem .8rem .75rem; flex: 1; }
.gd-plant__name { margin: 0; font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.25; }
.gd-plant__name a { color: var(--gd-ink); text-decoration: none; }
.gd-plant__name a:hover { color: var(--gd-rose); }
.gd-plant__latin { margin: 0; font-size: .85rem; font-style: italic; color: var(--gd-muted); }
.gd-plant__owner { margin: .15rem 0 0; font-size: .8rem; color: var(--gd-muted); display: flex; align-items: center; gap: .25rem; }
.gd-plant__desc { margin: .25rem 0 0; font-size: .88rem; color: var(--gd-muted); }
@media (min-width: 640px) {
  .gd-plant--list { flex-direction: row; }
  .gd-plant--list .gd-plant__img { flex: 0 0 150px; aspect-ratio: auto; min-height: 112px; }
}

.gd-badges { display: flex; flex-wrap: wrap; gap: .3rem; list-style: none; margin: auto 0 0; padding: .4rem 0 0; }
.gd-badge { display: inline-flex; align-items: center; gap: .2rem; padding: .1rem .4rem; border-radius: 4px; font-size: .72rem; line-height: 1.4; background: var(--gd-stone); color: var(--gd-green); }
.gd-badge--hot { background: #f6e1d6; color: #9b4a1f; }
.gd-badge--popular { background: #f8edc8; color: #7a5a00; }
.gd-badge--shared { background: #e3ece4; }
.gd-badge--rating { background: #fff6dc; color: #7a5a00; }
.gd-badge--hidden { background: #eee; color: #666; }
.gd-badges--big { margin: .75rem 0; }
.gd-badges--big .gd-badge { font-size: .82rem; padding: .25rem .6rem; }

.gd-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(170px, 190px); gap: 1rem; overflow-x: auto; padding-bottom: .5rem; scroll-snap-type: x proximity; }
.gd-strip > * { scroll-snap-align: start; }

/* ------------------------------------------------------- Ficha planta */
.gd-pmain { display: grid; gap: 1.75rem; margin-bottom: 2rem; }
@media (min-width: 900px) { .gd-pmain { grid-template-columns: minmax(300px, 46%) 1fr; } }
.gd-pmain__img { display: block; border-radius: var(--gd-radius); overflow: hidden; background: var(--gd-pale); aspect-ratio: 4 / 3; }
.gd-pmain__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gd-pmain__img--empty { display: grid; place-items: center; color: #b8c3b0; }
.gd-pmain__name { margin: 0; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.05; }
.gd-pmain__latin { margin: .2rem 0 0; font-style: italic; color: var(--gd-muted); font-size: 1.05rem; }
.gd-pmain__desc { margin: 1rem 0; line-height: 1.65; }
.gd-pmain__owner { display: flex; align-items: center; gap: .6rem; margin: 1rem 0 0; font-size: .92rem; color: var(--gd-muted); }

.gd-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; margin: .25rem 0 .5rem; }
.gd-stars { display: inline-flex; }
.gd-star { border: 0; background: none; padding: 0 .1rem; font-size: 1.6rem; line-height: 1; color: #d9d4c7; cursor: pointer; transition: color .1s, transform .1s; }
.gd-star:disabled { cursor: default; }
.gd-star.is-on { color: #e2a93b; }
.gd-star.is-hover { color: var(--gd-rose); transform: scale(1.1); }
.gd-rating__text { font-size: .88rem; color: var(--gd-muted); }

.gd-cardbox { display: grid; gap: 1.25rem; align-items: start; padding: 1.25rem; margin-bottom: 2rem; background: var(--gd-pale); border-left: 3px solid var(--gd-green); border-radius: 0 var(--gd-radius) var(--gd-radius) 0; }
@media (min-width: 640px) { .gd-cardbox { grid-template-columns: 180px 1fr; } }
.gd-cardbox__img { display: block; border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 3; }
.gd-cardbox__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.gd-cardbox__title { margin: 0; font-size: 1.6rem; }
.gd-cardbox__title a { text-decoration: none; }
.gd-section { margin: 0 0 2.25rem; }
.gd-ask { padding: 1.25rem; background: var(--gd-paper); border: 1px solid var(--gd-line); border-radius: var(--gd-radius); }
.gd-askform { max-width: 720px; }

/* --------------------------------------------------------- Formularios */
.gd-form h1 { margin-bottom: .5rem; }
.gd-formgrid { display: grid; gap: 1.25rem; max-width: 860px; }
.gd-formgrid .gd-box { margin: 0; }
.gd-formpic { max-width: 260px; border-radius: 6px; }
.gd-formactions { display: flex; flex-wrap: wrap; gap: .5rem; }
.gd-lookup { position: relative; }
.gd-lookup__list { position: absolute; z-index: 20; left: 0; right: 0; max-height: 340px; overflow-y: auto; margin: -.5rem 0 0; padding: .25rem 0; list-style: none; background: #fff; border: 1px solid var(--gd-line); border-radius: 6px; box-shadow: 0 10px 24px rgba(0, 0, 0, .1); }
.gd-lookup__item { display: flex; align-items: center; gap: .6rem; padding: .4rem .7rem; cursor: pointer; }
.gd-lookup__item.is-active, .gd-lookup__item:hover { background: var(--gd-pale); }
.gd-lookup__item img, .gd-lookup__noimg { width: 44px; height: 33px; object-fit: cover; border-radius: 3px; background: var(--gd-stone); flex: none; }
.gd-lookup__item strong { display: block; font-weight: 600; }
.gd-lookup__item em { display: block; font-size: .82rem; color: var(--gd-muted); }
.gd-lookup__empty { padding: .5rem .75rem; color: var(--gd-muted); }
.gd-picker__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: .4rem; max-height: 320px; overflow-y: auto; padding: .25rem; }
.gd-picker__item { aspect-ratio: 1; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: var(--gd-pale); cursor: pointer; }
.gd-picker__item img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gd-picker__item.is-on { border-color: var(--gd-rose); box-shadow: 0 0 0 2px #fff inset; }
.gd-picker__none { font-size: .78rem; color: var(--gd-muted); }

/* -------------------------------------------- En la ficha de la enciclopedia */
.gd-encbox { margin: 2rem 0; padding: 1.25rem; background: var(--jm-paper, #fff); border: 1px solid var(--jm-line, #e2ded5); border-radius: 8px; }
.gd-encbox__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.gd-encbox__head h2 { margin: 0; font-size: 1.6rem; }

/* Títulos enlazados sin el subrayado general de la plantilla */
.gd .gd-gcard__title a, .gd .gd-plant__name a, .gd .gd-cardbox__title a, .gd .gd-switch__btn, .gd .gd-topics a { text-decoration: none; }
.gd .gd-gcard__title a:hover, .gd .gd-plant__name a:hover, .gd .gd-cardbox__title a:hover { text-decoration: underline; text-underline-offset: .15em; }
.gd a.btn { color: var(--bs-btn-color); text-decoration: none; }
.gd a.btn:hover, .gd a.btn:focus { color: var(--bs-btn-hover-color); }
.gd .btn-primary { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--gd-green-2); }
.gd .btn-outline-primary { --bs-btn-hover-color: #fff; }
.gd-encbox__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .75rem; list-style: none; margin: 0; padding: 0; }
.gd-encbox__item { display: flex; flex-direction: column; gap: .15rem; text-decoration: none; color: var(--gd-ink); }
.gd-encbox__img { display: block; aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; background: var(--gd-pale); }
.gd-encbox__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.gd-encbox__who { font-weight: 600; font-size: .9rem; }
.gd-encbox__place { font-size: .78rem; color: var(--gd-muted); }
.gd .gd-encbox__item:hover .gd-encbox__who { color: var(--gd-rose); }
.gd-cardbox--noimg { grid-template-columns: 1fr !important; }
@media (max-width: 639.98px) { .gd-cardbox__img { max-width: 220px; } }
.gd-formgrid fieldset.gd-box > legend.gd-box__title { float: left; width: 100%; margin-bottom: 1rem; }
.gd-formgrid fieldset.gd-box > legend.gd-box__title + * { clear: left; }

/* Botones con contorno: verde de la plantilla también al pasar el ratón (la plantilla los ponía azules) */
.gd .btn-outline-primary { color: var(--gd-green); border-color: var(--gd-green); background-color: transparent; }
.gd .btn-outline-primary:hover,
.gd .btn-outline-primary:focus-visible,
.gd .btn-outline-primary:active { color: #fff; border-color: var(--gd-green); background-color: var(--gd-green); }
.gd .btn-outline-primary:focus-visible { box-shadow: 0 0 0 .2rem rgba(55, 85, 67, .25); }
.gd-pmain__dates { margin: .6rem 0 0; font-size: .82rem; color: var(--gd-muted); }

/* Navegación tipo álbum entre las plantas de un jardín */
.gd-album { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .75rem; margin: 0 0 1.25rem; }
.gd-album--bottom { margin: -.5rem 0 2rem; padding-top: 1rem; border-top: 1px solid var(--gd-line); }
.gd .gd-album__btn { display: flex; align-items: center; gap: .6rem; min-width: 0; padding: .4rem .6rem; border: 1px solid var(--gd-line); border-radius: var(--gd-radius); background: var(--gd-paper); color: var(--gd-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.gd .gd-album__btn:hover, .gd .gd-album__btn:focus-visible { border-color: var(--gd-green); box-shadow: 0 3px 10px rgba(30, 50, 38, .08); color: var(--gd-green); }
.gd-album__btn--next { justify-content: flex-end; text-align: right; }
.gd-album__btn img { width: 48px; height: 36px; object-fit: cover; border-radius: 4px; flex: none; }
.gd-album__label { display: flex; flex-direction: column; min-width: 0; font-weight: 600; font-size: .92rem; line-height: 1.25; }
.gd-album__label, .gd-album__label small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gd-album__label small { font-weight: 400; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gd-rose); }
.gd-album__arrow { font-size: 1.25rem; color: var(--gd-green); flex: none; }
.gd-album__pos { font-size: .85rem; color: var(--gd-muted); white-space: nowrap; }
@media (max-width: 575.98px) {
  .gd-album__btn img, .gd-album__label small { display: none; }
  .gd-album__label { font-size: .85rem; }
}
