/* Functional scoped layout. The final emPAWer account/onboarding design is a later phase. */
.empawer-ht { max-width: 960px; min-width: 0; color: inherit; font: inherit; overflow-wrap: anywhere; }
.empawer-ht *, .empawer-ht *::before, .empawer-ht *::after { box-sizing: border-box; }
.empawer-ht--support { margin: 24px 20px 24px 0; }
.empawer-ht .empawer-ht-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }
.empawer-ht .empawer-ht-card, .empawer-ht fieldset { min-width: 0; padding: 20px; border: 1px solid #aaa78c; border-radius: 14px; margin: 16px 0; }
.empawer-ht .empawer-ht-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 20px 0; }
.empawer-ht .empawer-ht-form { max-width: 720px; }
.empawer-ht .empawer-ht-field { margin-bottom: 20px; }
.empawer-ht label, .empawer-ht small { display: block; margin-bottom: 6px; }
.empawer-ht input:not([type=hidden]):not([type=checkbox]):not([type=radio]), .empawer-ht select, .empawer-ht textarea { display: block; width: 100%; max-width: 100%; min-height: 44px; padding: 10px 12px; color: #202020; background: #fff; font: inherit; border: 1px solid #767676; border-radius: 8px; }
.empawer-ht textarea { resize: vertical; }
.empawer-ht button, .empawer-ht .empawer-ht-button { display: inline-block; min-height: 44px; padding: 11px 18px; border: 1px solid #746c20; border-radius: 24px; background: #ffd267; color: #202020; font: inherit; cursor: pointer; text-decoration: none; white-space: normal; text-align: center; }
.empawer-ht a { color: #713220; }
.empawer-ht :focus-visible { outline: 3px solid #27579d; outline-offset: 3px; }
.empawer-ht [hidden] { display: none !important; }
.empawer-ht .empawer-ht-checkbox { display: flex; gap: 12px; align-items: start; }
.empawer-ht .empawer-ht-checkbox input { margin-top: 5px; }
.empawer-ht .empawer-ht-error { border-left: 4px solid #a31330; background: #fff3f3; padding: 12px 18px; }
.empawer-ht .empawer-ht-field-error { color: #a31330; }
.empawer-ht .empawer-ht-notice { border-left: 4px solid #476039; padding: 12px 18px; background: #f4f8ef; }
.empawer-ht dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 8px 20px; }
.empawer-ht dt { font-weight: 600; }
.empawer-ht dd { margin: 0; }
.empawer-ht details { margin: 18px 0; }
.empawer-ht summary { cursor: pointer; min-height: 44px; padding: 10px 0; }
.empawer-ht fieldset.empawer-ht-field { border: 0; padding: 0; border-radius: 0; margin: 0 0 20px; }
.empawer-ht .empawer-ht-options { display: flex; flex-wrap: wrap; gap: 8px; }
.empawer-ht .empawer-ht-pill { display: flex; align-items: center; gap: 8px; border: 1px solid #767676; border-radius: 24px; padding: 10px 14px; min-height: 44px; cursor: pointer; }
.empawer-ht .empawer-ht-pill:has(input:checked) { background: #fff1c4; border-color: #746c20; }
.empawer-ht .empawer-ht-pill input { width: auto; min-height: 0; margin: 0; accent-color: #746c20; }
.empawer-ht .empawer-ht-age { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.empawer-ht .empawer-ht-progress { display: flex; flex-wrap: wrap; gap: 10px 30px; padding-left: 24px; }
.empawer-ht .empawer-ht-progress [aria-current] { font-weight: 700; text-decoration: underline; }
.empawer-ht button:disabled { opacity: .65; cursor: wait; }
@media (max-width: 600px) {
  .empawer-ht dl { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .empawer-ht dd { margin-bottom: 12px; }
  .empawer-ht .empawer-ht-card, .empawer-ht fieldset { padding: 16px; }
}

/* Daniela's approved visual system. Montserrat is supplied by the site's Elementor typography. */
.empawer-ht { --ht-ink:#0D0D0D; --ht-border:#B9B9B9; --ht-yellow:#FED168; --ht-accent:#DA8B73; --ht-selected:#F8E8E3; --ht-red:#C1263B; max-width:1100px; color:var(--ht-ink); font-family:Montserrat,sans-serif; }
.empawer-ht .empawer-ht-form { max-width:1100px; width:100%; margin:0 auto; color:var(--ht-ink); font-family:Montserrat,sans-serif; font-size:18px; font-weight:400; letter-spacing:.07em; }
.empawer-ht .empawer-ht-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.empawer-ht .empawer-ht-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:0 0 66px; gap:56px; text-align:center; font-size:18px; font-weight:600; text-transform:uppercase; line-height:1.5; }
.empawer-ht .empawer-ht-progress li { position:relative; min-width:0; }
.empawer-ht .empawer-ht-progress li span { display:block; font-size:14px; margin-bottom:2px; }
.empawer-ht .empawer-ht-progress li .empawer-ht-phase-name { font-size:inherit; }
.empawer-ht .empawer-ht-progress [aria-current] { color:var(--ht-red); font-weight:600; text-decoration:none; }
/* Each connector sits inside the 56px gap, leaving 14px clear on either side. */
.empawer-ht .empawer-ht-progress li:not(:last-child)::after { content:""; position:absolute; width:28px; height:1px; background:var(--ht-ink); right:-42px; top:32px; }
.empawer-ht .empawer-ht-panel { scroll-margin-top:30px; margin:0 auto; max-width:100%; min-width:0; }
.empawer-ht .empawer-ht-wizard .empawer-ht-panel { text-align:center; min-height:285px; }
.empawer-ht .empawer-ht-form .empawer-ht-field { margin:0 auto 30px; padding:0; max-width:100%; min-width:0; }
.empawer-ht .empawer-ht-form label, .empawer-ht .empawer-ht-form legend, .empawer-ht [data-ht-review] h3 { font:400 20px/1.5 Montserrat,sans-serif; color:var(--ht-ink); letter-spacing:.07em; float:none; width:auto; }
.empawer-ht .empawer-ht-form legend { width:100%; }
.empawer-ht .empawer-ht-form small { font:300 14px/1.5 Montserrat,sans-serif; letter-spacing:.04em; margin:8px auto; }
.empawer-ht .empawer-ht-wizard .empawer-ht-field > label, .empawer-ht .empawer-ht-wizard .empawer-ht-field > legend { margin-bottom:38px; }
.empawer-ht .empawer-ht-wizard .empawer-ht-field:has(>small[id^="ht-help-"]) > label, .empawer-ht .empawer-ht-wizard .empawer-ht-field:has(>small[id^="ht-help-"]) > legend { margin-bottom:0; }
.empawer-ht .empawer-ht-wizard small[id^="ht-help-"] { margin-bottom:30px; }
.empawer-ht .empawer-ht-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]), .empawer-ht .empawer-ht-form select, .empawer-ht .empawer-ht-form textarea { font:400 18px/1.5 Montserrat,sans-serif; letter-spacing:.06em; color:var(--ht-ink); background:transparent; border:1px solid var(--ht-border); border-radius:28px; min-height:48px; padding:10px 22px; width:100%; max-width:485px; margin-left:auto; margin-right:auto; box-shadow:none; }
.empawer-ht .empawer-ht-form textarea { max-width:650px; border-radius:24px; min-height:90px; text-align:left; }
.empawer-ht .empawer-ht-options { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:22px; }
.empawer-ht .empawer-ht-form .empawer-ht-pill { position:relative; width:auto; min-width:98px; padding:10px 22px; border:1px solid var(--ht-border); border-radius:26px; font:400 18px/1.5 Montserrat,sans-serif; letter-spacing:.06em; margin:0; justify-content:center; }
.empawer-ht .empawer-ht-pill input { position:absolute; opacity:0; width:1px; height:1px; }
.empawer-ht .empawer-ht-pill:has(input:checked), .empawer-ht .empawer-ht-pill:hover { background:var(--ht-selected); border-color:var(--ht-accent); }
.empawer-ht .empawer-ht-pill:focus-within { outline:2px solid var(--ht-accent); outline-offset:4px; }
.empawer-ht .empawer-ht-form input:hover, .empawer-ht .empawer-ht-form select:hover, .empawer-ht .empawer-ht-form textarea:hover { border-color:var(--ht-accent); background:var(--ht-selected); }
.empawer-ht .empawer-ht-form input:focus, .empawer-ht .empawer-ht-form select:focus, .empawer-ht .empawer-ht-form textarea:focus { outline:2px solid var(--ht-accent)!important; outline-offset:3px; border-color:var(--ht-accent)!important; background:var(--ht-selected); }
.empawer-ht [data-ht-field="species"] .empawer-ht-options { gap:80px; }
.empawer-ht [data-ht-field="species"] .empawer-ht-pill { flex-direction:column; border-radius:20px; padding:16px; width:166px; min-height:195px; }
.empawer-ht [data-ht-field="species"] img { display:block; object-fit:contain; width:130px; height:140px; }
.empawer-ht .empawer-ht-age { width:100%; max-width:100%; margin:0 auto; grid-template-columns:minmax(0,1fr) minmax(0,170px) minmax(0,170px) minmax(0,1fr); gap:12px 20px; }
.empawer-ht .empawer-ht-age [data-ht-field="age_value"] { display:contents; }
.empawer-ht .empawer-ht-age [data-ht-field="age_value"] > label { grid-column:1/-1; min-width:0; }
.empawer-ht .empawer-ht-age [data-ht-field="age_value"] small { grid-column:1/-1; grid-row:2; }
.empawer-ht .empawer-ht-age #ht-age_value { grid-column:2; grid-row:3; }
.empawer-ht .empawer-ht-age [data-ht-field="age_unit"] { grid-column:3; grid-row:3; width:100%; margin:0; }
/* Scoped geometry overrides keep theme/native select styles from shrinking this pair. */
.empawer-ht form.empawer-ht-form #ht-age_value, .empawer-ht form.empawer-ht-form #ht-age_unit { display:block!important; box-sizing:border-box!important; width:100%!important; max-width:none!important; min-width:0!important; height:50px!important; min-height:50px!important; border-radius:28px!important; padding:10px 18px!important; margin:0!important; font-family:Montserrat,sans-serif; border:1px solid var(--ht-border); }
.empawer-ht form.empawer-ht-form #ht-age_unit { -webkit-appearance:none!important; appearance:none!important; padding-right:38px!important; background-color:transparent; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%230D0D0D' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:14px 8px; }
.empawer-ht .empawer-ht-age [data-ht-field="age_unit"] > label,
.empawer-ht [data-ht-field="age_mode"] > legend,
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mode"] > legend,
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mix"] > label { position:absolute; width:1px!important; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.empawer-ht [data-ht-field="age_mode"] .empawer-ht-pill { font-size:18px; padding:6px 14px; min-height:44px; }
.empawer-ht .empawer-ht-form #ht-birth_date { width:230px; max-width:100%; }
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mode"] .empawer-ht-options { max-width:485px; margin:auto; align-items:stretch; flex-direction:column; gap:10px; }
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mode"] .empawer-ht-pill { justify-content:flex-start; border:0; border-radius:0; padding:6px 0; min-height:44px; text-align:left; background:transparent; }
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mode"] input { position:static; opacity:1; width:16px; height:16px; accent-color:var(--ht-ink); }
.empawer-ht .empawer-ht-enhanced label:has(#ht-breed_mode-named) { display:none; }
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_mix"] { width:100%; margin:0 0 12px; }
.empawer-ht .empawer-ht-enhanced [data-ht-field="breed_name"] { margin-bottom:16px; }
.empawer-ht [data-ht-field="allergy_sources"] { max-width:650px!important; }
.empawer-ht [data-ht-field="allergy_sources"] .empawer-ht-options { display:grid; grid-template-columns:repeat(2,max-content); justify-content:center; gap:20px 42px; }
.empawer-ht [data-ht-field="allergy_sources"] small { margin-top:18px; }
.empawer-ht .empawer-ht-form button { border:1px solid var(--ht-yellow); background:var(--ht-yellow); color:var(--ht-ink); border-radius:28px; font:400 18px/1.4 Montserrat,sans-serif; letter-spacing:.07em; min-height:48px; padding:10px 18px; }
.empawer-ht button:not(.empawer-ht-edit), .empawer-ht .empawer-ht-button { background:var(--ht-yellow); border-color:var(--ht-yellow); color:var(--ht-ink); transition:transform .15s ease; }
.empawer-ht .empawer-ht-form button:not(.empawer-ht-edit):hover, .empawer-ht button:not(.empawer-ht-edit):hover, .empawer-ht .empawer-ht-button:hover { background:var(--ht-yellow)!important; border-color:var(--ht-yellow)!important; color:var(--ht-ink)!important; }
.empawer-ht button:not(.empawer-ht-edit):not(:disabled):hover, .empawer-ht .empawer-ht-button:hover { transform:scale(.96); }
@media(prefers-reduced-motion:reduce) { .empawer-ht button:not(.empawer-ht-edit), .empawer-ht .empawer-ht-button { transition:none; } .empawer-ht button:not(.empawer-ht-edit):not(:disabled):hover, .empawer-ht .empawer-ht-button:hover { transform:none; } }
.empawer-ht .empawer-ht-wizard { min-height:calc(100vh - var(--ht-detected-scroll-offset,24px)); overflow-anchor:none; }
.empawer-ht .empawer-ht-navigation { justify-content:center; gap:40px; margin:48px 0 30px; }
.empawer-ht .empawer-ht-form button span[aria-hidden] { display:inline-block; font:400 28px/1 sans-serif; vertical-align:-2px; padding:0 4px; }
.empawer-ht .empawer-ht-finish { justify-content:center; }
.empawer-ht .empawer-ht-finish:empty { display:none; }
.empawer-ht .empawer-ht-exit { text-align:center; margin:28px 0; font-size:14px; }
.empawer-ht .empawer-ht-exit a { color:var(--ht-red); }
.empawer-ht [data-ht-summary] { border:1px solid var(--ht-accent); border-radius:30px; max-width:690px; margin:38px auto; padding:24px 30px; text-align:left; }
.empawer-ht [data-ht-summary] dl { display:block; margin:0; }
.empawer-ht .empawer-ht-summary-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:8px 18px; margin:0 0 22px; font-size:18px; }
.empawer-ht .empawer-ht-summary-row dt { font-weight:400; }
.empawer-ht .empawer-ht-form .empawer-ht-edit { padding:0; min-height:44px; border:0; border-radius:0; background:none; color:var(--ht-red); font-size:14px; letter-spacing:0; align-self:start; text-decoration:underline; text-underline-offset:3px; }
.empawer-ht .empawer-ht-form .empawer-ht-edit:hover { color:var(--ht-accent); background:none; }
.empawer-ht .empawer-ht-form:not(.empawer-ht-wizard) .empawer-ht-panel { margin-bottom:44px; }
.empawer-ht .empawer-ht-field-error { color:var(--ht-red); }
@media(max-width:600px) {
 .empawer-ht .empawer-ht-age { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; }
 .empawer-ht .empawer-ht-age #ht-age_value { grid-column:1; }
 .empawer-ht .empawer-ht-age [data-ht-field="age_unit"] { grid-column:2; }
 .empawer-ht .empawer-ht-form { font-size:16px; letter-spacing:.035em; }
 .empawer-ht .empawer-ht-progress { grid-template-columns:1fr 1fr 1fr; font-size:14px; gap:12px; margin-bottom:38px; letter-spacing:.015em; }
 .empawer-ht .empawer-ht-wizard .empawer-ht-progress { grid-template-columns:minmax(0,1fr); gap:0; }
 .empawer-ht .empawer-ht-wizard .empawer-ht-progress li:not([aria-current]) { display:none; }
 .empawer-ht .empawer-ht-progress li span { font-size:12px; }
 .empawer-ht .empawer-ht-progress li::after { display:none; }
 .empawer-ht .empawer-ht-form label, .empawer-ht .empawer-ht-form legend, .empawer-ht [data-ht-review] h3 { font-size:18px; letter-spacing:.035em; }
 .empawer-ht .empawer-ht-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]), .empawer-ht .empawer-ht-form select, .empawer-ht .empawer-ht-form textarea, .empawer-ht .empawer-ht-form .empawer-ht-pill, .empawer-ht .empawer-ht-form button { font-size:16px; letter-spacing:.035em; }
 .empawer-ht .empawer-ht-form small { font-size:12px; }
 .empawer-ht .empawer-ht-wizard .empawer-ht-panel { min-height:230px; }
 .empawer-ht .empawer-ht-wizard .empawer-ht-field > label, .empawer-ht .empawer-ht-wizard .empawer-ht-field > legend { margin-bottom:26px; }
 .empawer-ht [data-ht-field="species"] .empawer-ht-options { gap:20px; }
 .empawer-ht [data-ht-field="species"] .empawer-ht-pill { width:130px; min-width:0; padding:12px; min-height:170px; }
 .empawer-ht [data-ht-field="species"] img { width:100px; height:115px; }
 .empawer-ht .empawer-ht-options { gap:12px; }
 .empawer-ht .empawer-ht-form .empawer-ht-pill { padding:8px 14px; min-width:78px; }
 .empawer-ht [data-ht-field="allergy_sources"] .empawer-ht-options { gap:14px 20px; grid-template-columns:repeat(2,minmax(0,max-content)); }
 .empawer-ht .empawer-ht-navigation { gap:16px; margin-top:30px; }
 .empawer-ht [data-ht-summary] { padding:22px 18px; border-radius:24px; }
 .empawer-ht .empawer-ht-summary-row { grid-template-columns:minmax(0,1fr) auto; font-size:16px; }
 .empawer-ht .empawer-ht-summary-row dt { grid-column:1; font-weight:600; }
 .empawer-ht .empawer-ht-summary-row dd { grid-column:1; margin-bottom:0; }
 .empawer-ht .empawer-ht-summary-row button { grid-column:2; grid-row:1/3; }
}
