/* Tin Cup Site Tools · Option B design (from the Tin Cup design canvas). Brand colors come from the Elementor kit. */
:root {
	--tc-navy: var(--e-global-color-primary, #00203F);
	--tc-mint: var(--e-global-color-secondary, #ADEFD1);
	--tc-text: var(--e-global-color-text, #2F4260);
	--tc-green: #1B6B57;
	--tc-mint-soft: #EAF8F3;
	--tc-paper: #F7F8F3;
	--tc-line: #E1E8F0;
	--tc-muted: #51627A;
	--tc-deep: #00152B;
	--tc-head: Copperplate, "Copperplate Gothic Bold", Cinzel, serif;
}

/* Headings use the brand's Copperplate where installed, Cinzel (loaded by Elementor) everywhere else */
.elementor h1, .elementor h2, .elementor h3, .elementor .elementor-heading-title, .tc-card-title, .tc-stat-value { font-family: var(--tc-head) !important; }

/* ---------- Header ---------- */
.tc-header { background: #FFFFFF; border-bottom: 1px solid var(--tc-line); }
.tc-header.elementor-sticky--effects { box-shadow: 0 8px 24px -18px rgba(0, 32, 63, .35); }
.tc-header-phone a { color: var(--tc-navy); font-weight: 900; text-decoration: none; white-space: nowrap; }
@media (max-width: 1200px) { .tc-header-phone { display: none; } }

/* ---------- Photos ---------- */
.tc-arch img { border-radius: 240px 240px 16px 16px !important; width: 100% !important; max-width: 480px !important; height: 560px !important; object-fit: cover; object-position: center top; }
.tc-round img { border-radius: 24px !important; width: 100% !important; height: 460px !important; object-fit: cover; object-position: center top; }
.tc-round-sm img { border-radius: 14px !important; width: 100% !important; height: 300px !important; object-fit: cover; object-position: center top; }
.tc-post-card .tc-round-sm img { border-radius: 14px 14px 0 0 !important; height: 210px !important; }
.tc-post-card > .e-con-inner > .elementor-widget:not(.tc-round-sm), .tc-post-card > .elementor-widget:not(.tc-round-sm) { padding: 0 24px; }
.tc-post-card { padding-bottom: 24px !important; overflow: hidden; }
.tc-square img { border-radius: 16px !important; width: 100% !important; max-width: 520px !important; aspect-ratio: 1 / 1; height: auto !important; object-fit: cover; object-position: center top; }
@media (max-width: 767px) { .tc-arch img { height: 420px !important; } .tc-round img { height: 300px !important; } }

/* ---------- Cards ---------- */
.tc-overlap { margin-top: -56px !important; position: relative; z-index: 2; }
.tc-num .elementor-heading-title { width: 52px; height: 52px; border-radius: 50%; background: var(--tc-navy); color: var(--tc-mint) !important; display: flex !important; align-items: center; justify-content: center; font-size: 22px !important; }
.tc-check ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.tc-check li { position: relative; padding-left: 30px; }
.tc-check li::before { content: ""; position: absolute; left: 2px; top: .35em; width: 14px; height: 7px; border-left: 2px solid var(--tc-green); border-bottom: 2px solid var(--tc-green); transform: rotate(-45deg); }

/* ---------- Stat cards ---------- */
.tc-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.tc-stat { border: 1px solid var(--tc-line); border-radius: 14px; background: #FFFFFF; padding: 22px; display: flex; flex-direction: column; gap: 4px; justify-content: center; align-items: center; text-align: center; }
.tc-stat-value { font-weight: 900; font-size: 34px; color: var(--tc-navy); line-height: 1.15; }
.tc-stat-label { font-size: 13px; font-weight: 900; letter-spacing: 1px; color: var(--tc-green); text-transform: uppercase; }
.tc-stat-source { font-size: 13px; color: var(--tc-muted); }
/* Elementor stat boxes (home, home value, about): center everything */
.tc-statbox, .tc-statbox > .e-con-inner { justify-content: center !important; align-items: center !important; text-align: center; }
.tc-statbox .elementor-widget, .tc-statbox .elementor-heading-title { text-align: center !important; width: 100%; }

/* ---------- Guide tiles ---------- */
.tc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.tc-card { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px; border-radius: 14px; overflow: hidden; background: #0B3358; color: #FFFFFF; text-decoration: none; }
.tc-card-img { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .8s ease; }
.tc-card:hover .tc-card-img, .tc-card:focus .tc-card-img { transform: scale(1.05); }
.tc-card:not(.tc-card--soon)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 32, 63, .92), rgba(0, 32, 63, .15) 65%); }
.tc-card-body { position: relative; z-index: 1; display: grid; gap: 4px; padding: 24px; }
.tc-card-title { font-weight: 900; font-size: 28px; line-height: 1.1; color: #FFFFFF; }
.tc-card-link { font-size: 15px; font-weight: 700; color: var(--tc-mint); }
.tc-card-badge { position: absolute; top: 16px; right: 16px; z-index: 1; background: var(--tc-mint); color: var(--tc-navy); font-size: 12px; font-weight: 900; letter-spacing: 1px; padding: 6px 10px; border-radius: 999px; }
.tc-empty { color: var(--tc-muted); }

/* ---------- Amenities ---------- */
.tc-amenities { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 0 0 1.6em; }
.tc-amenity { display: flex; gap: 14px; align-items: center; border: 1px solid var(--tc-line); border-radius: 14px; padding: 16px 18px; background: #FFFFFF; font-weight: 700; color: var(--tc-navy); font-size: 16px; line-height: 1.4; }
.tc-amenity-icon { flex: 0 0 44px; height: 44px; border-radius: 50%; background: var(--tc-mint-soft); color: var(--tc-green); display: flex; align-items: center; justify-content: center; }

/* ---------- Facts table ---------- */
.tc-facts { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--tc-line); border-radius: 14px; overflow: hidden; font-size: 16px; background: #FFFFFF; }
.tc-facts th, .tc-facts td { text-align: left; vertical-align: top; padding: 16px 20px; border: 0; border-bottom: 1px solid var(--tc-line); }
.tc-facts tr:last-child th, .tc-facts tr:last-child td { border-bottom: 0; }
.tc-facts th { width: 34%; font-size: 13px; font-weight: 900; letter-spacing: 1.5px; text-transform: uppercase; color: var(--tc-green); background: var(--tc-paper); }
.tc-facts td { color: var(--tc-text); }
.tc-facts-source, .tc-updated { font-size: 14px; color: var(--tc-muted); margin-top: 10px; }
.tc-quick-answer { font-size: 20px; line-height: 1.6; margin: 0; color: var(--tc-text); }

/* ---------- Buttons from shortcodes ---------- */
.tc-btn { display: inline-flex; align-items: center; gap: 8px; padding: 15px 28px; border-radius: 999px; background: var(--tc-navy); border: 2px solid var(--tc-navy); color: #FFFFFF !important; font-weight: 900; font-size: 16px; text-decoration: none; }
.tc-btn:hover, .tc-btn:focus { background: var(--tc-green); border-color: var(--tc-green); }

/* ---------- Long-form content (hub pages, guides) ---------- */
.tc-content { font-size: 18px; line-height: 1.75; color: var(--tc-text); }
.tc-content h2 { font-size: 32px; margin: 1.6em 0 .5em; color: var(--tc-navy); line-height: 1.15; }
.tc-content h3 { font-size: 22px; margin: 1.3em 0 .4em; color: var(--tc-navy); }
.tc-content > div > *:first-child, .tc-content .elementor-widget-container > *:first-child { margin-top: 0; }
.tc-content table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0 0 1.8em; font-size: 16px; line-height: 1.5; border: 1px solid var(--tc-line); border-radius: 14px; overflow: hidden; }
.tc-content thead th { background: var(--tc-navy); color: #FFFFFF; text-align: left; padding: 14px 18px; font-size: 15px; }
.tc-content td { padding: 14px 18px; border-bottom: 1px solid var(--tc-line); vertical-align: top; }
.tc-content tr:last-child td { border-bottom: 0; }
.tc-content td:first-child { font-weight: 900; color: var(--tc-navy); }
.tc-content a { color: var(--tc-navy); font-weight: 700; }
.tc-content blockquote { margin: 1.4em 0; background: var(--tc-mint-soft); border-radius: 12px; padding: 22px 26px; font-size: 19px; }
.tc-take { background: var(--tc-navy); color: #FFFFFF; border-radius: 16px; padding: 32px 36px; margin: 0 0 1.6em; }
.tc-take p { color: #FFFFFF; font-family: var(--tc-head); font-weight: 700; font-size: 21px; line-height: 1.4; margin: 0; }
.tc-confirm, .tc-content p[style*="FFF4D6"], .tc-take p[style*="FFF4D6"] { background: #FFF4D6 !important; color: #5A4300 !important; border-radius: 10px; padding: 12px 16px !important; font-family: Lato, sans-serif !important; font-size: 15px !important; font-weight: 700; }

/* ---------- FAQ ---------- */
.tc-faq h3 { font-family: Lato, sans-serif !important; font-size: 19px !important; font-weight: 900; margin: 0 !important; padding: 22px 40px 10px 0; border-top: 1px solid var(--tc-line); position: relative; color: var(--tc-navy); }
.tc-faq h3::after { content: "+"; position: absolute; right: 4px; top: 16px; color: var(--tc-green); font-size: 26px; font-weight: 400; }
.tc-faq p { margin: 0 0 18px; color: var(--tc-text); }
.tc-content .tc-faq-title + h3, .tc-content h2 + h3 { border-top: 1px solid var(--tc-line); }

/* ---------- Forms (Formidable) ---------- */
.tc-form .frm_forms input:not([type=checkbox]):not([type=radio]), .tc-form .frm_forms select, .tc-form .frm_forms textarea { border: 1px solid var(--tc-line) !important; border-radius: 999px !important; padding: 14px 20px !important; font-size: 16px !important; box-shadow: none !important; background: #FFFFFF !important; height: auto !important; }
.tc-form .frm_forms textarea { border-radius: 18px !important; }
.tc-form .frm_forms label.frm_primary_label { font: 900 13px/1.4 Lato, sans-serif !important; letter-spacing: 1px; text-transform: uppercase; color: var(--tc-navy) !important; }
.tc-form .frm_forms .frm_submit button { width: 100%; background: var(--tc-navy) !important; color: #FFFFFF !important; border: 0 !important; border-radius: 999px !important; padding: 16px 28px !important; font: 900 17px/1 Lato, sans-serif !important; }
.tc-form .frm_forms .frm_submit button:hover { background: var(--tc-green) !important; }
.tc-form .frm_forms .frm_description, .tc-form .frm_forms .frm_opt_container label { font-size: 13px; color: var(--tc-navy); }

/* ---------- Dark bands and footer ---------- */
.tc-dark a:not(.elementor-button):not(.tc-btn):not(.tc-card) { color: var(--tc-mint); }
.tc-footer a { color: #FFFFFF; text-decoration: none; }
.tc-footer a:hover, .tc-footer a:focus { color: var(--tc-mint); }
.tc-footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tc-crumbs a { color: var(--tc-muted); text-decoration: none; }

@media (max-width: 767px) {
	.tc-facts th { width: 40%; letter-spacing: 1px; }
	.tc-content table { display: block; overflow-x: auto; }
	.tc-overlap { margin-top: -32px !important; }
	.tc-card-title { font-size: 24px; }
}

/* Placeholders are for the owner's review only */
body:not(.logged-in) .tc-confirm { display: none !important; }
.tc-photo-credit { font-size: 13px !important; color: var(--tc-muted, #5B6B7A) !important; margin-top: 2.4em !important; }
