/*
Theme Name:   Astra Child – iDefenses
Theme URI:    https://idefenses.com/
Description:  Child theme of Astra for idefenses.com. Palette and self-hosted Inter per visual-direction.md. No plugins, no external font calls.
Author:       idefenses.com
Template:     astra
Version:      2.3.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  astra-child-idefenses
*/

/* ---------- Inter, self-hosted (SIL OFL 1.1, see assets/fonts/OFL-Inter-LICENSE.txt) ---------- */
@font-face { font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap; src:url("assets/fonts/Inter-Regular.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:italic; font-weight:400; font-display:swap; src:url("assets/fonts/Inter-Italic.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap; src:url("assets/fonts/Inter-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:700; font-display:swap; src:url("assets/fonts/Inter-Bold.woff2") format("woff2"); }

/* ---------- Palette ---------- */
:root {
	--idf-navy:#1E3A5F; --idf-navy-dark:#16304F; --idf-teal:#0F766E; --idf-amber:#F59E0B;
	--idf-red:#DC2626; /* emergency only */
	--idf-bg:#F8FAFC; --idf-surface:#FFFFFF; --idf-ink:#0F172A; --idf-slate:#475569; --idf-border:#E2E8F0;
	--idf-radius:8px; --idf-shadow:0 1px 3px rgba(15,23,42,.08),0 4px 12px rgba(15,23,42,.06);
	--idf-font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

	/* Map Astra global colors onto the palette */
	--ast-global-color-0:#1E3A5F; /* brand / buttons */
	--ast-global-color-1:#0F766E; /* links hover / secondary */
	--ast-global-color-2:#1E3A5F; /* headings */
	--ast-global-color-3:#0F172A; /* body text */
	--ast-global-color-4:#F8FAFC; /* background */
	--ast-global-color-5:#FFFFFF; /* surface */
	--ast-global-color-6:#E2E8F0; /* borders */
	--ast-global-color-7:#475569; /* muted */
	--ast-global-color-8:#F59E0B; /* accent */
}

body, button, input, select, textarea, .ast-button, .wp-block-button__link {
	font-family:var(--idf-font);
}
body { background:var(--idf-bg); color:var(--idf-ink); font-size:17px; line-height:1.6; }
h1,h2,h3,h4,h5,h6,.entry-title,.site-title { font-family:var(--idf-font); font-weight:700; color:var(--idf-navy); letter-spacing:-.01em; }
a { color:var(--idf-teal); }
a:hover, a:focus { color:var(--idf-navy); }
.entry-meta, .entry-meta *, .wp-caption-text, figcaption { color:var(--idf-slate); }
hr, .wp-block-separator { border-color:var(--idf-border); }

/* Header & footer in navy */
.site-header .ast-primary-header-bar, .main-header-bar { background:var(--idf-navy); border-bottom:0; }
.site-header .site-title a, .site-header .main-header-menu > .menu-item > .menu-link,
.site-header .ast-builder-menu .menu-item > .menu-link { color:#FFFFFF; }
.site-header .main-header-menu > .menu-item > .menu-link:hover { color:var(--idf-amber); }
.site-footer, .site-footer .site-primary-footer-wrap, .site-footer .site-below-footer-wrap { background:var(--idf-navy); color:#E2E8F0; }
.site-footer a { color:#FFFFFF; }

/* Emergency top bar (red only here and on the Emergency page) */
.idf-emergency-bar { background:var(--idf-red); color:#FFFFFF; text-align:center; font-size:.875rem; font-weight:600; padding:6px 12px; }
.idf-emergency-bar a { color:#FFFFFF; text-decoration:underline; }
.idf-emergency-link, .idf-emergency-link a { color:var(--idf-red) !important; font-weight:600; }
.idf-hero .idf-emergency-link a, .idf-hero .idf-emergency-link { color:#FECACA !important; } /* light red for contrast on navy */
.idf-emergency-box { border-left:6px solid var(--idf-red); background:#FEF2F2; padding:16px 20px; border-radius:var(--idf-radius); }

/* Buttons */
.wp-block-button__link, .ast-button, button, input[type="submit"] { border-radius:var(--idf-radius); font-weight:600; }
.wp-block-button.is-style-idf-amber .wp-block-button__link, .idf-btn-amber .wp-block-button__link { background:var(--idf-amber); color:var(--idf-ink); border:2px solid var(--idf-amber); }
.wp-block-button.is-style-idf-amber .wp-block-button__link:hover, .idf-btn-amber .wp-block-button__link:hover { background:#D97706; border-color:#D97706; color:var(--idf-ink); }
.idf-btn-outline .wp-block-button__link { background:transparent; color:#FFFFFF; border:2px solid #FFFFFF; }
.idf-btn-outline .wp-block-button__link:hover { background:#FFFFFF; color:var(--idf-navy); }

/* Hero */
.idf-hero.wp-block-cover { min-height:520px; padding:48px 24px; }
.idf-hero h1 { color:#FFFFFF; font-size:clamp(2rem,4.2vw,3.25rem); line-height:1.15; margin:.25em 0 .4em; }
.idf-hero .idf-subline { color:#E2E8F0; font-size:clamp(1.05rem,1.6vw,1.25rem); }
.idf-hero .idf-hero-image img { border-radius:12px; box-shadow:var(--idf-shadow); }
@media (max-width:781px){ .idf-hero.wp-block-cover { min-height:420px; } }

/* Search strip */
.idf-search { background:var(--idf-surface); border-radius:var(--idf-radius); box-shadow:var(--idf-shadow); padding:16px; margin-top:20px;
	display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; }
.idf-search label { display:block; font-size:.8rem; font-weight:600; color:var(--idf-slate); margin-bottom:4px; }
.idf-search .idf-field { flex:1 1 180px; }
.idf-search select, .idf-search input[type="text"] { width:100%; border:1px solid var(--idf-border); border-radius:var(--idf-radius); padding:10px 12px; color:var(--idf-ink); background:#FFFFFF; }
.idf-search button { background:var(--idf-teal); color:#FFFFFF; border:0; padding:11px 22px; border-radius:var(--idf-radius); cursor:pointer; }
.idf-search button:hover { background:#0B5F58; }

/* Cards */
.idf-card { background:var(--idf-surface); border:1px solid var(--idf-border); border-radius:var(--idf-radius); box-shadow:var(--idf-shadow); padding:20px; }
.idf-tag { display:inline-block; background:#CCFBF1; color:var(--idf-teal); border-radius:999px; padding:2px 10px; font-size:.8rem; font-weight:600; }

/* Accessibility */
.screen-reader-text:focus { clip:auto !important; }

/* Front page: hide the "Home" title and let the hero sit under the header */
body.home.page .entry-header, body.home.page .ast-single-entry-banner { display:none; }
body.home.page .site-content > .ast-container, body.home.page #primary { padding-top:0; margin-top:0; }
.idf-hero .wp-block-cover__inner-container { max-width:1200px; margin:0 auto; padding:0 24px; }
.idf-hero p.idf-subline { color:#E2E8F0 !important; }
.idf-hero h1.wp-block-heading { color:#FFFFFF !important; }
.idf-home-cards { margin-top:40px; gap:24px; }
.site-header .menu-toggle, .site-header .ast-mobile-menu-trigger-minimal, .site-header .ast-button-wrap .menu-toggle { color:#FFFFFF; background:transparent; border-color:#FFFFFF; }
.site-header .menu-toggle svg, .site-header .ast-mobile-svg { fill:#FFFFFF; }
.ast-header-break-point .main-header-bar-navigation .menu-item > .menu-link, .ast-mobile-header-content .menu-item > .menu-link { color:var(--idf-ink); }

/* Lawyer self-registration form */
.idf-lawyer-form-wrap { max-width:720px; margin:8px 0 32px; }
.idf-lawyer-form { background:var(--idf-surface); border:1px solid var(--idf-border); border-radius:var(--idf-radius); box-shadow:var(--idf-shadow); padding:24px; }
.idf-lawyer-form .idf-field { margin:0 0 16px; }
.idf-lawyer-form label, .idf-lawyer-form legend { display:block; font-size:.9rem; font-weight:600; color:var(--idf-ink); margin-bottom:6px; }
.idf-lawyer-form .idf-req { font-weight:400; color:var(--idf-slate); font-size:.8rem; }
.idf-lawyer-form input[type="text"],
.idf-lawyer-form input[type="email"],
.idf-lawyer-form input[type="url"],
.idf-lawyer-form input[type="tel"],
.idf-lawyer-form select { width:100%; border:1px solid var(--idf-border); border-radius:var(--idf-radius); padding:10px 12px; color:var(--idf-ink); background:#FFFFFF; font-family:var(--idf-font); }
.idf-lawyer-form input:focus, .idf-lawyer-form select:focus { outline:2px solid var(--idf-teal); outline-offset:1px; }
.idf-row { display:flex; flex-wrap:wrap; gap:16px; }
.idf-row .idf-field { flex:1 1 220px; }
.idf-checkboxes { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px 16px; margin-top:4px; }
.idf-lawyer-form .idf-check { display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:.95rem; margin:0; }
.idf-lawyer-form .idf-check input { margin-top:4px; flex:0 0 auto; }
.idf-lawyer-form fieldset { border:0; padding:0; margin:0 0 16px; }
.idf-consent { background:var(--idf-bg); border-radius:var(--idf-radius); padding:12px 14px; }
.idf-actions { margin:20px 0 8px; }
.idf-lawyer-form .idf-submit { background:var(--idf-amber); color:var(--idf-ink); border:2px solid var(--idf-amber); border-radius:var(--idf-radius); font-weight:600; padding:11px 22px; cursor:pointer; }
.idf-lawyer-form .idf-submit:hover { background:#D97706; border-color:#D97706; }
.idf-form-note { font-size:.85rem; color:var(--idf-slate); margin:0; }
.idf-form-errors { background:#FEF2F2; border-left:6px solid var(--idf-red); border-radius:var(--idf-radius); padding:12px 16px; margin:0 0 16px; }
.idf-form-errors ul { margin:8px 0 0 1.1em; }
.idf-form-success { background:#CCFBF1; border-left:6px solid var(--idf-teal); border-radius:var(--idf-radius); padding:16px 20px; margin:8px 0 24px; }
.idf-hp { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }

/* ---------- Single post featured image (v2.2.0) ---------- */
.single .entry-header .post-thumb,
.single .entry-header .ast-blog-featured-section,
.single.ast-single-post .post-thumb {
	margin: 0 0 1.25rem;
}
.single .entry-header .post-thumb img,
.single .entry-header .ast-blog-featured-section img,
.single .entry-header .wp-post-image,
.single .ast-single-post-featured-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--idf-radius);
	box-shadow: var(--idf-shadow);
}
.single .wp-block-image img {
	border-radius: var(--idf-radius);
}


/* ---------- Conversation comments (v2.3.0, Option C) ---------- */
.idf-conv { background:var(--idf-surface); border:1px solid var(--idf-border); border-radius:12px; box-shadow:var(--idf-shadow); overflow:hidden; margin:2rem 0 1rem; }
.idf-conv-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:16px 16px 12px; border-bottom:1px solid var(--idf-border); }
.idf-conv-title, .idf-conv h2.comments-title { font-size:18px; font-weight:700; color:var(--idf-navy); margin:0; }
.idf-conv-count { font-size:12px; font-weight:600; color:var(--idf-slate); }
.idf-thread-list { padding:14px 16px 8px; }
.idf-c { display:flex; gap:10px; margin:0 0 16px; }
.idf-c:last-child { margin-bottom:0; }
.idf-av { width:36px; height:36px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; flex:0 0 auto; letter-spacing:.02em; line-height:36px; text-align:center; }
.idf-av.navy { background:var(--idf-navy); }
.idf-av.teal { background:var(--idf-teal); }
.idf-av.slate { background:#64748B; }
.idf-av-empty { background:#E2E8F0; color:var(--idf-navy); border:1px dashed #94A3B8; line-height:34px; }
.idf-c-body { flex:1; min-width:0; }
.idf-c-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; margin-bottom:3px; }
.idf-c-name { font-size:13.5px; font-weight:600; color:var(--idf-ink); }
.idf-c-date { font-size:11.5px; color:var(--idf-slate); }
.idf-c-pending { font-size:11.5px; color:var(--idf-teal); font-weight:600; }
.idf-c-text { font-size:13.5px; line-height:1.5; color:var(--idf-ink); }
.idf-c-text p { margin:0 0 .5em; }
.idf-c-text p:last-child { margin-bottom:0; }
.idf-c-reply a, .idf-c-reply .comment-reply-link { display:inline-block; margin-top:4px; font-size:12px; font-weight:600; color:var(--idf-teal); text-decoration:none; }
.idf-c-reply a:hover { color:var(--idf-navy); }
.idf-thread { margin:10px 0 0 18px; padding-left:12px; border-left:2px solid var(--idf-border); }
.idf-comment-nav { display:flex; justify-content:space-between; padding:0 16px 12px; font-size:13px; }

#respond.comment-respond, #respond.idf-composer { margin:0; padding:12px 16px 16px; background:#F8FAFC; border-top:1px solid var(--idf-border); }
#respond .idf-reply-title { font-size:15px; margin:0 0 8px; color:var(--idf-navy); }
#respond .idf-reply-title small { font-weight:600; margin-left:8px; }
#respond .idf-composer-row { display:flex; gap:10px; align-items:flex-start; }
#respond .idf-composer-main { flex:1; min-width:0; }
#respond .idf-composer-box, #respond textarea#comment {
	width:100%; border:1px solid var(--idf-border); border-radius:var(--idf-radius);
	background:#fff; color:var(--idf-ink); font-family:var(--idf-font); font-size:15px;
	padding:10px 12px; min-height:44px; resize:vertical; line-height:1.45;
}
#respond.is-open textarea#comment { min-height:88px; }
#respond textarea#comment:focus { border-color:var(--idf-teal); outline:0; box-shadow:0 0 0 3px rgba(15,118,110,.15); }
#respond:not(.is-open) .comment-form-author,
#respond:not(.is-open) .comment-form-email,
#respond:not(.is-open) .idf-privacy-note,
#respond:not(.is-open) .idf-composer-actions,
#respond:not(.is-open) .idf-hint,
#respond:not(.is-open) .idf-reply-title { display:none; }
#respond .comment-form-author, #respond .comment-form-email, #respond .idf-field { margin:0 0 10px; }
#respond .idf-field label, #respond .comment-form-author label, #respond .comment-form-email label {
	display:block; font-size:11px; font-weight:600; color:var(--idf-slate); margin-bottom:4px;
}
#respond .idf-field input, #respond .comment-form-author input, #respond .comment-form-email input {
	width:100%; border:1px solid var(--idf-border); border-radius:var(--idf-radius);
	padding:10px 12px; font-family:var(--idf-font); font-size:15px; color:var(--idf-ink); background:#fff;
}
#respond .idf-privacy-note, .idf-privacy-note { font-size:12px; color:var(--idf-slate); margin:0 0 10px; }
#respond .idf-composer-actions { display:flex; align-items:center; gap:8px; margin-top:8px; flex-wrap:wrap; }
#respond .idf-google-slot, #respond .idf-google-slot-sm { flex:1; min-width:160px; }
#respond .idf-btn-post, #respond input[type="submit"].idf-btn-post, #respond button.idf-btn-post {
	background:var(--idf-amber); color:var(--idf-ink); border:2px solid var(--idf-amber);
	border-radius:var(--idf-radius); font-family:var(--idf-font); font-weight:600; font-size:13.5px;
	padding:7px 14px; white-space:nowrap; cursor:pointer;
}
#respond .idf-btn-post:hover { background:#D97706; border-color:#D97706; }
#respond .idf-hint, .idf-hint { font-size:11.5px; color:var(--idf-slate); margin:8px 0 0; }
#respond .form-submit { margin:0; display:inline; }

/* Hide leftover Astra/WP comment chrome that the walker does not use */
.idf-conv .comment-form-cookies-consent, .idf-conv .comment-notes { display:none; }
.idf-conv .comment-form-url, #respond .comment-form-url { display:none; }
#respond .ast-comment-formwrap { display:block; margin:0; } /* let our fields stack */
#respond .ast-row.comment-textarea, #respond .comment-form-comment, #respond .comment-form-textarea { margin:0; padding:0; border:0; }

/* ---------- Recommendations (v2.3.0, Option D) ---------- */
.idf-recs { max-width:720px; }
.idf-rec-summary { display:flex; align-items:center; gap:14px; margin:0 0 16px; padding:12px 14px; background:var(--idf-bg); border:1px solid var(--idf-border); border-radius:var(--idf-radius); }
.idf-rec-avg { font-size:28px; font-weight:700; color:var(--idf-navy); letter-spacing:-.03em; line-height:1; }
.idf-rec-avg-meta { font-size:12px; color:var(--idf-slate); margin:3px 0 0; }
.idf-stars { display:inline-flex; gap:2px; align-items:center; vertical-align:middle; }
.idf-star { display:block; }
.idf-rec { border:1px solid var(--idf-border); border-radius:var(--idf-radius); padding:12px 14px; margin:0 0 10px; background:#fff; }
.idf-rec-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.idf-rec .idf-tag { display:inline-block; background:#CCFBF1; color:var(--idf-teal); border-radius:999px; padding:2px 8px; font-size:10.5px; font-weight:600; white-space:nowrap; }
.idf-rec .idf-tag-dir { background:#E0E7FF; color:var(--idf-navy); }
.idf-rec .idf-tag-other { background:#F1F5F9; color:var(--idf-slate); }
.idf-rec-title { font-size:14px; font-weight:600; color:var(--idf-ink); margin:4px 0; letter-spacing:-.01em; }
.idf-rec-text { font-size:13px; line-height:1.5; color:var(--idf-ink); margin:0; }
.idf-rec-by { font-size:11.5px; color:var(--idf-slate); margin:8px 0 0; }
.idf-rec-form-block { margin-top:18px; padding-top:16px; border-top:1px solid var(--idf-border); }
.idf-rec-form-block h2 { font-size:18px; margin:0 0 4px; }
.idf-helper { font-size:13px; line-height:1.5; color:var(--idf-slate); margin:0 0 16px; }
.idf-rec-form .idf-field { margin:0 0 14px; }
.idf-rec-form .idf-field label { display:block; font-size:11px; font-weight:600; color:var(--idf-slate); margin-bottom:6px; }
.idf-rec-form input[type="text"],
.idf-rec-form input[type="email"],
.idf-rec-form select,
.idf-rec-form textarea {
	width:100%; border:1px solid var(--idf-border); border-radius:var(--idf-radius);
	padding:10px 12px; color:var(--idf-ink); background:#fff; font-family:var(--idf-font); font-size:15px;
}
.idf-rec-form textarea { min-height:88px; resize:vertical; }
.idf-rec-form input:focus, .idf-rec-form select:focus, .idf-rec-form textarea:focus {
	border-color:var(--idf-teal); outline:0; box-shadow:0 0 0 3px rgba(15,118,110,.15);
}
.idf-rec-form .idf-submit { background:var(--idf-amber); color:var(--idf-ink); border:2px solid var(--idf-amber); border-radius:var(--idf-radius); font-weight:600; padding:11px 22px; cursor:pointer; font-family:var(--idf-font); }
.idf-rec-form .idf-submit:hover { background:#D97706; border-color:#D97706; }
.idf-signin-inline { display:flex; align-items:center; gap:8px; margin:-6px 0 14px; }
.idf-signin-inline span { font-size:12px; color:var(--idf-slate); }

.idf-star-input { border:0; padding:0; margin:0 0 14px; }
.idf-star-input legend { font-size:11px; font-weight:600; color:var(--idf-slate); margin-bottom:6px; }
.idf-star-radios { display:inline-flex; flex-direction:row-reverse; justify-content:flex-end; gap:2px; }
.idf-star-radios input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.idf-star-radios label { width:28px; height:28px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.idf-star-radios label::before { content:"\2605"; font-size:26px; line-height:1; color:#E2E8F0; }
.idf-star-radios input:checked + label::before,
.idf-star-radios input:checked ~ label::before,
.idf-star-radios label:hover::before,
.idf-star-radios label:hover ~ label::before { color:var(--idf-amber); }
.idf-star-radios input:focus-visible + label { outline:2px solid var(--idf-teal); outline-offset:2px; border-radius:4px; }

.idf-req { color:var(--idf-teal); font-weight:600; }
