/* Eagle Harbor Core - plugin component styles (theme independent) */

/* --- Grids --------------------------------------------------------------- */
.eh-grid { display: grid; gap: 1.5rem; }
.eh-grid--1 { grid-template-columns: minmax(0,1fr); max-width: 34rem; }
.eh-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.eh-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 980px) { .eh-grid--3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 680px) {
	.eh-grid--2, .eh-grid--3 { grid-template-columns: 1fr; }
}

/* --- Text link ----------------------------------------------------------- */
.eh-textlink { font-weight: 700; text-decoration: none; color: var(--wp--preset--color--harbor-dark, #164E69); }
.eh-textlink:hover, .eh-textlink:focus { text-decoration: underline; }

/* --- Buttons (plugin-rendered) ------------------------------------------- */
.eh-btn {
	display: inline-block;
	padding: .9rem 1.6rem;
	border-radius: 6px;
	border: 2px solid transparent;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.3;
	min-height: 44px;
}
.eh-btn--accent { background: var(--wp--preset--color--accent, #A85A24); border-color: var(--wp--preset--color--accent, #A85A24); color: #fff; }
.eh-btn--accent:hover, .eh-btn--accent:focus { background: var(--wp--preset--color--accent-dark, #8E4A1D); border-color: var(--wp--preset--color--accent-dark, #8E4A1D); color: #fff; }
.eh-btn--outline { border-color: var(--wp--preset--color--harbor-dark, #164E69); color: var(--wp--preset--color--harbor-dark, #164E69); background: transparent; }
.eh-btn--outline:hover, .eh-btn--outline:focus { background: var(--wp--preset--color--harbor-dark, #164E69); color: #fff; }

/* --- CTA box ------------------------------------------------------------- */
.eh-cta-box {
	background: var(--wp--preset--color--sea, #E6EEF3);
	border-radius: 14px;
	padding: clamp(1.75rem, 4vw, 3rem);
	margin-block: 3rem;
}
.eh-cta-box h2 { margin-top: 0; }
.eh-cta-box__buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 0; }

/* --- Residence single ---------------------------------------------------- */
.eh-residence__meta--single { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }

.eh-residence-details { margin-block: 2.5rem; }
.eh-specs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 1px;
	background: var(--wp--preset--color--line, #D6DFE6);
	border: 1px solid var(--wp--preset--color--line, #D6DFE6);
	border-radius: 12px;
	overflow: hidden;
	margin: 0 0 2rem;
}
.eh-spec { background: #fff; padding: 1.1rem 1.25rem; }
.eh-spec dt { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--harbor, #1B5E7E); margin-bottom: .3rem; }
.eh-spec dd { margin: 0; font-weight: 600; color: var(--wp--preset--color--navy, #0F3350); }

.eh-spec-list { margin-bottom: 2rem; }
.eh-spec-list h3 { margin-bottom: .75rem; }
.eh-spec-list ul { margin: 0; padding-left: 1.25rem; }
.eh-spec-list li { margin-block: .35rem; }

.eh-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; margin-block: 2rem; }
.eh-gallery figure { margin: 0; }
.eh-gallery img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; aspect-ratio: 4/3; display: block; }

/* --- Breadcrumbs --------------------------------------------------------- */
.eh-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0 0 1.25rem; font-size: .875rem; }
.eh-breadcrumbs li + li::before { content: "/"; margin-right: .4rem; color: var(--wp--preset--color--slate, #54646F); }
.eh-breadcrumbs a { color: var(--wp--preset--color--harbor-dark, #164E69); }
.eh-breadcrumbs [aria-current="page"] { color: var(--wp--preset--color--slate, #54646F); }

/* --- Included features --------------------------------------------------- */
.eh-included {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .75rem;
}
.eh-included__item {
	display: flex; align-items: flex-start; gap: .65rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line, #D6DFE6);
	border-radius: 8px;
	padding: .9rem 1.1rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy, #0F3350);
}
.eh-included__tick {
	flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.4rem; height: 1.4rem; border-radius: 50%;
	background: var(--wp--preset--color--harbor, #1B5E7E); color: #fff;
	font-size: .75rem;
}

/* --- Contact details ----------------------------------------------------- */
.eh-contact-details { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.eh-contact-details li { margin-block: .5rem; }
.eh-contact-details__label {
	display: inline-block; min-width: 4.5rem;
	font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--wp--preset--color--harbor, #1B5E7E);
}

/* --- Admin status pills -------------------------------------------------- */
.eh-pill { display: inline-block; padding: .15rem .55rem; border-radius: 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; background: #EDF0F2; color: #45535E; }
.eh-pill--new { background: #E6EEF3; color: #164E69; }
.eh-pill--placed, .eh-pill--accepted, .eh-pill--approved { background: #E3F1EA; color: #14503A; }
.eh-pill--waitlisted { background: #FBF0DF; color: #6E4708; }
.eh-pill--closed { background: #EDF0F2; color: #45535E; }

/* Screen-reader-only helper, in case the theme does not define it */
.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}

/* --- Contact form context panels ---------------------------------------- */
.eh-cond {
	grid-column: 1 / -1;
	border-left: 4px solid var(--wp--preset--color--harbor, #1B5E7E);
	background: var(--wp--preset--color--sea, #E6EEF3);
	border-radius: 0 10px 10px 0;
	padding: 1rem 1.25rem;
	margin-bottom: .25rem;
}
.eh-cond[hidden] { display: none !important; }
.eh-cond__title {
	font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--wp--preset--color--harbor-dark, #164E69); margin: 0 0 .35rem;
}
.eh-cond p:last-child { margin-bottom: 0; font-size: .9375rem; }

/* The notice receives focus after submission; don't paint a focus ring on it. */
.eh-notice:focus { outline: none; }
.eh-notice:focus-visible { outline: 3px solid var(--wp--preset--color--accent, #A85A24); outline-offset: 2px; }
