/* HeartStrings — Feature pages (Real Stories, Finances, Special Occasions) */

.hs-feature{ --hs-primary:#c1373d; --hs-primary-dark:#9d2a30; --hs-ink:#1a1a1f;
	--hs-muted:#6b6b76; --hs-line:#e9e9ee; --hs-bg:#fafafb; --hs-card-bg:#fff;
	--hs-shadow-sm:0 1px 2px rgba(20,20,30,.04),0 1px 3px rgba(20,20,30,.05);
	--hs-shadow-md:0 4px 12px rgba(20,20,30,.06),0 2px 4px rgba(20,20,30,.04);
	--hs-shadow-lg:0 24px 48px rgba(20,20,30,.10),0 8px 16px rgba(20,20,30,.06);
	--hs-radius:14px; }

/* layout shell (features.css loads standalone) */
.hs-feature.hs-ebooks-archive{ background:var(--hs-bg); padding:60px 0 80px; }
.hs-feature .hs-wrap{ max-width:1180px; margin:0 auto; padding:0 24px; box-sizing:border-box; }
.hs-feature .hs-hero{ text-align:center; max-width:760px; margin:0 auto 48px; }
.hs-feature .hs-hero .hs-eyebrow{ display:inline-block; text-transform:uppercase; letter-spacing:.08em;
	font-size:.74rem; font-weight:700; color:var(--hs-primary); background:rgba(193,55,61,.08);
	padding:6px 14px; border-radius:100px; margin-bottom:18px; }
.hs-feature .hs-hero h1{ font-size:clamp(2rem,4vw,3rem); line-height:1.15; margin:0 0 16px;
	color:var(--hs-ink); letter-spacing:-.02em; }
.hs-feature .hs-hero p{ font-size:1.1rem; line-height:1.6; color:var(--hs-muted); margin:0 0 22px; }

.hs-feature .hs-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px;
	background:var(--hs-primary); color:#fff; border:none; cursor:pointer;
	padding:14px 26px; border-radius:100px; font-size:1rem; font-weight:600;
	text-decoration:none; transition:background .15s, transform .1s; box-shadow:0 4px 14px rgba(193,55,61,.25); }
.hs-feature .hs-btn:hover{ background:var(--hs-primary-dark); transform:translateY(-1px); color:#fff; }

.hs-feature .hs-section-head{ text-align:center; max-width:640px; margin:0 auto 32px; }
.hs-feature .hs-section-head .hs-eyebrow{ display:inline-block; text-transform:uppercase; letter-spacing:.08em;
	font-size:.72rem; font-weight:700; color:var(--hs-primary); background:rgba(193,55,61,.08);
	padding:5px 13px; border-radius:100px; margin-bottom:14px; }
.hs-feature .hs-section-head h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); margin:0 0 10px; color:var(--hs-ink); letter-spacing:-.01em; }
.hs-feature .hs-section-head p{ color:var(--hs-muted); margin:0; line-height:1.6; }

.hs-pagination{ display:flex; gap:8px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.hs-pagination .page-numbers{ display:inline-flex; min-width:40px; height:40px; align-items:center; justify-content:center;
	padding:0 12px; border:1px solid var(--hs-line); border-radius:10px; text-decoration:none; color:var(--hs-ink); background:#fff; }
.hs-pagination .page-numbers.current{ background:var(--hs-primary); color:#fff; border-color:var(--hs-primary); }
.hs-pagination .page-numbers:hover:not(.current){ border-color:var(--hs-primary); color:var(--hs-primary); }

/* ============ REAL STORIES ============ */
.hs-stories-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; }
.hs-story-card{ position:relative; background:var(--hs-card-bg); border:1px solid var(--hs-line);
	border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-sm); padding:28px 26px 22px;
	display:flex; flex-direction:column; transition:transform .2s, box-shadow .2s; overflow:hidden; }
.hs-story-card:hover{ transform:translateY(-4px); box-shadow:var(--hs-shadow-lg); }
.hs-story-card__quote{ position:absolute; top:-10px; right:18px; font-size:5rem; line-height:1;
	color:rgba(193,55,61,.10); font-family:Georgia,serif; pointer-events:none; }
.hs-story-card h2{ font-size:1.25rem; line-height:1.3; margin:0 0 12px; color:var(--hs-ink); position:relative; z-index:1; }
.hs-story-card__body{ color:#4a4a55; line-height:1.6; font-size:.98rem; margin:0 0 18px; flex:1; }
.hs-story-card__foot{ display:flex; justify-content:space-between; align-items:center; gap:10px;
	border-top:1px solid var(--hs-line); padding-top:14px; }
.hs-story-card__author{ font-weight:600; color:var(--hs-ink); font-size:.92rem; }
.hs-story-card__read{ color:var(--hs-primary); font-weight:600; text-decoration:none; font-size:.9rem; white-space:nowrap; }
.hs-story-card__read:hover{ text-decoration:underline; }
.hs-stories-empty{ text-align:center; padding:50px 20px; color:var(--hs-muted); background:#fff;
	border:1px dashed var(--hs-line); border-radius:var(--hs-radius); }

.hs-share{ margin-top:60px; }
.hs-share__inner{ background:linear-gradient(135deg,#fff 0%,#fff7f7 100%); border:1px solid var(--hs-line);
	border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-md); padding:40px 36px; max-width:760px; margin:0 auto; text-align:center; }
.hs-share__inner .hs-eyebrow{ display:inline-block; text-transform:uppercase; letter-spacing:.08em;
	font-size:.72rem; font-weight:700; color:var(--hs-primary); background:rgba(193,55,61,.08);
	padding:5px 13px; border-radius:100px; margin-bottom:14px; }
.hs-share__inner h2{ font-size:1.7rem; margin:0 0 8px; color:var(--hs-ink); }
.hs-share__inner > p{ color:var(--hs-muted); margin:0 0 24px; line-height:1.6; }
.hs-story-form{ text-align:left; }
.hs-form-row{ display:flex; gap:12px; margin-bottom:12px; }
.hs-form-row input{ flex:1 1 0; min-width:0; }
.hs-story-form input, .hs-story-form textarea{ width:100%; box-sizing:border-box; padding:13px 16px;
	border:1px solid var(--hs-line); border-radius:10px; font-size:1rem; font-family:inherit; outline:none;
	margin-bottom:12px; transition:border-color .15s, box-shadow .15s; background:#fff; }
.hs-form-row input{ margin-bottom:0; }
.hs-story-form input:focus, .hs-story-form textarea:focus{ border-color:var(--hs-primary); box-shadow:0 0 0 4px rgba(193,55,61,.10); }
.hs-story-form .hs-btn{ width:100%; margin-top:4px; }
.hs-form-msg{ text-align:center; font-weight:600; margin:14px 0 0; min-height:1.2em; }
.hs-form-msg.error{ color:var(--hs-primary); }
.hs-form-msg.success{ color:#1a8a4a; }

/* ============ FINANCES ============ */
.hs-fin-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; margin-bottom:64px; }
.hs-fin-card{ background:#fff; border:1px solid var(--hs-line); border-radius:var(--hs-radius);
	box-shadow:var(--hs-shadow-sm); padding:26px 24px; transition:transform .2s, box-shadow .2s; }
.hs-fin-card:hover{ transform:translateY(-3px); box-shadow:var(--hs-shadow-md); }
.hs-fin-card__icon{ font-size:1.8rem; display:block; margin-bottom:12px; }
.hs-fin-card h3{ font-size:1.15rem; margin:0 0 10px; color:var(--hs-ink); }
.hs-fin-card p{ color:#4a4a55; line-height:1.6; font-size:.96rem; margin:0; }

.hs-fin-track{ margin-bottom:64px; }
.hs-steps{ display:grid; gap:16px; max-width:760px; margin:0 auto; }
.hs-step{ display:flex; gap:18px; align-items:flex-start; background:#fff; border:1px solid var(--hs-line);
	border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-sm); padding:22px 24px; }
.hs-step__n{ flex:0 0 40px; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
	background:var(--hs-primary); color:#fff; border-radius:50%; font-weight:800; font-size:1.1rem; }
.hs-step h4{ margin:2px 0 6px; font-size:1.1rem; color:var(--hs-ink); }
.hs-step p{ margin:0; color:#4a4a55; line-height:1.55; font-size:.96rem; }

.hs-fin-tpl-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:18px; }
.hs-fin-tpl{ display:flex; flex-direction:column; gap:10px; text-decoration:none; background:#fff;
	border:1px solid var(--hs-line); border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-sm);
	padding:24px 22px; transition:transform .2s, box-shadow .2s, border-color .2s; }
.hs-fin-tpl:hover{ transform:translateY(-4px); box-shadow:var(--hs-shadow-lg); border-color:#ddd; }
.hs-fin-tpl__tag{ align-self:flex-start; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
	color:var(--hs-primary); background:rgba(193,55,61,.08); padding:5px 11px; border-radius:100px; }
.hs-fin-tpl h4{ margin:4px 0 0; font-size:1.1rem; color:var(--hs-ink); line-height:1.3; flex:1; }
.hs-fin-tpl__cta{ color:var(--hs-primary); font-weight:600; font-size:.92rem; }

/* ============ SPECIAL OCCASIONS ============ */
.hs-occ-nav{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.hs-occ-nav a{ text-decoration:none; color:var(--hs-ink); background:#fff; border:1px solid var(--hs-line);
	padding:9px 18px; border-radius:100px; font-weight:600; font-size:.92rem; transition:border-color .15s, color .15s; }
.hs-occ-nav a:hover{ border-color:var(--hs-primary); color:var(--hs-primary); }

.hs-occ{ background:#fff; border:1px solid var(--hs-line); border-radius:var(--hs-radius);
	box-shadow:var(--hs-shadow-sm); padding:34px 32px; margin-bottom:28px; scroll-margin-top:90px; }
.hs-occ__head{ display:flex; align-items:center; gap:18px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--hs-line); }
.hs-occ__emoji{ font-size:2.6rem; line-height:1; }
.hs-occ__head h2{ margin:0; font-size:1.6rem; color:var(--hs-ink); }
.hs-occ__tagline{ margin:4px 0 0; color:var(--hs-muted); }
.hs-occ__cols{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.hs-occ__col h3{ font-size:1.05rem; margin:0 0 14px; color:var(--hs-ink); }
.hs-occ__col ul{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.hs-occ__col li{ position:relative; padding-left:24px; color:#4a4a55; line-height:1.5; font-size:.97rem; }
.hs-occ__col li::before{ content:"♥"; position:absolute; left:0; top:0; color:var(--hs-primary); font-size:.85rem; }
.hs-occ__tip{ margin-top:24px; background:rgba(193,55,61,.05); border:1px solid rgba(193,55,61,.15);
	border-radius:10px; padding:16px 20px; color:#4a4a55; line-height:1.6; font-size:.97rem; }
.hs-occ__tip strong{ color:var(--hs-primary); }
.hs-occ-recs{ margin-top:48px; }

/* ============ SINGLE STORY ============ */
.hs-single-back{ margin:0 0 20px; }
.hs-single-back a{ color:var(--hs-muted); text-decoration:none; font-weight:600; }
.hs-single-back a:hover{ color:var(--hs-primary); }
.hs-single-card{ position:relative; background:#fff; border:1px solid var(--hs-line);
	border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-md); padding:40px 38px; overflow:hidden; }
.hs-single-card__quote{ position:absolute; top:-8px; right:24px; font-size:6rem; line-height:1;
	color:rgba(193,55,61,.08); font-family:Georgia,serif; pointer-events:none; }
.hs-single-card h1{ font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.2; margin:0 0 10px; color:var(--hs-ink); position:relative; z-index:1; }
.hs-single-card__author{ color:var(--hs-muted); margin:0 0 22px; }
.hs-single-card__author strong{ color:var(--hs-ink); }
.hs-single-card__body{ color:#33333c; line-height:1.75; font-size:1.08rem; }
.hs-single-card__body p{ margin:0 0 18px; }

.hs-single-comments{ margin-top:36px; }
.hs-single-comments .comments-area,
.hs-single-comments #comments{ background:#fff; border:1px solid var(--hs-line);
	border-radius:var(--hs-radius); box-shadow:var(--hs-shadow-sm); padding:30px 32px; }
.hs-single-comments .comment-respond .comment-reply-title,
.hs-single-comments .comments-title{ font-size:1.3rem; color:var(--hs-ink); margin-top:0; }
.hs-single-cta{ text-align:center; margin-top:36px; }

@media(max-width:640px){
	.hs-form-row{ flex-direction:column; }
	.hs-occ__cols{ grid-template-columns:1fr; gap:24px; }
	.hs-occ{ padding:26px 22px; }
	.hs-single-card{ padding:28px 24px; }
}
