/*
 * HomeFactory inner pages
 * This stylesheet deliberately stays scoped to .hf-page and its components so
 * it can live alongside the homepage without changing its presentation.
 */

.hf-page {
    --hf-page-radius: 22px;
    --hf-page-shadow: 0 18px 48px rgba(0, 48, 41, .10);
    --hf-page-shadow-soft: 0 10px 28px rgba(0, 48, 41, .07);
    overflow: hidden;
    color: var(--hf-ink);
    background: var(--hf-white);
}

/* Blog */
.hf-blog-hero,
.hf-blog-article__hero {
    padding: clamp(46px, 5.5vw, 72px) 0;
    color: #fff;
    background: radial-gradient(circle at 84% 20%, rgba(32, 145, 128, .82) 0, rgba(0, 63, 53, 0) 30%), linear-gradient(120deg, var(--hf-forest-deep) 0%, var(--hf-forest) 58%, #006b60 100%);
}

.hf-blog-hero .hf-shell {
    max-width: 940px;
    margin: 0 auto;
}

.hf-blog-hero h1,
.hf-blog-article__hero h1 {
    max-width: 860px;
    margin: 15px 0 20px;
    font-size: clamp(38px, 5.6vw, 78px);
    line-height: .98;
    letter-spacing: -.065em;
}

.hf-blog-hero h1 em { color: #71ccbf; font-style: normal; }
.hf-blog-hero p,
.hf-blog-article__hero p { max-width: 640px; margin: 0; color: rgba(255,255,255,.76); font-size: 18px; line-height: 1.58; }
.hf-blog-list-section { padding: clamp(56px, 8vw, 112px) 0; background: #f8f5ef; }
.hf-blog-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 32px; }
.hf-blog-list-heading span { color: #004d42; font-size: 28px; font-weight: 800; letter-spacing: -.04em; }
.hf-blog-list-heading p { max-width: 340px; margin: 0; color: #60706c; line-height: 1.5; }
.hf-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.hf-blog-card { overflow: hidden; display: grid; grid-template-rows: 156px 1fr; min-height: 430px; border: 1px solid #dbe3df; background: #fff; box-shadow: 0 15px 34px rgba(0, 57, 48, .07); transition: transform .22s ease, box-shadow .22s ease; }
.hf-blog-card:hover { transform: translateY(-5px); box-shadow: 0 21px 42px rgba(0, 57, 48, .13); }
.hf-blog-card__visual { display: grid; place-content: center; gap: 2px; color: #fff; text-align: center; background: linear-gradient(135deg, #008978, #00483f); }
.hf-blog-card__visual span { font-size: 58px; line-height: .9; font-weight: 800; letter-spacing: -.07em; }
.hf-blog-card__visual small { font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.hf-blog-card__content { display: flex; flex-direction: column; align-items: flex-start; padding: 27px; }
.hf-blog-card__label { color: #008978; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hf-blog-card h2 { margin: 12px 0; font-size: 25px; line-height: 1.08; letter-spacing: -.045em; }
.hf-blog-card h2 a { color: #003f35; text-decoration: none; }
.hf-blog-card p { margin: 0; color: #5b6965; line-height: 1.55; }
.hf-blog-card__link { margin-top: auto; padding-top: 24px; color: #005c50; font-weight: 800; text-decoration: none; }
.hf-blog-card__link span { padding-left: 6px; font-size: 20px; }
.hf-blog-back { display: inline-block; margin-bottom: 30px; color: #88d5ca; font-weight: 800; text-decoration: none; }
.hf-blog-article__hero .hf-inner-eyebrow { color: #a0e0d5; }
.hf-blog-article__hero { padding: clamp(30px, 4vw, 52px) 0; }
.hf-blog-article__hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); align-items: stretch; overflow: hidden; border: 1px solid rgba(159, 226, 214, .27); background: rgba(0, 29, 25, .22); box-shadow: 0 24px 60px rgba(0, 23, 20, .18); }
.hf-blog-article__hero-copy { padding: clamp(34px, 5vw, 70px); }
.hf-blog-article__hero h1 { max-width: 720px; margin-bottom: 20px; font-size: clamp(36px, 4.3vw, 66px); }
.hf-blog-article__hero-image { min-height: 430px; background: linear-gradient(90deg, #003f35 0%, rgba(0,63,53,.13) 40%, rgba(0,0,0,.05)), url('../images/lgsf-house-home-desktop-v3.png') center / cover no-repeat; }
.hf-blog-article__meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; color: #b8e9e2; font-size: 13px; font-weight: 700; letter-spacing: .03em; }
.hf-blog-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: clamp(36px, 7vw, 110px); padding-top: clamp(58px, 8vw, 110px); padding-bottom: clamp(70px, 9vw, 132px); }
.hf-blog-article__content { max-width: 760px; color: #203a35; font-size: 18px; line-height: 1.72; }
.hf-blog-article__content > *:first-child { margin-top: 0; }
.hf-blog-article__content h2 { margin: 48px 0 14px; color: #003f35; font-size: clamp(27px, 3vw, 38px); line-height: 1.08; letter-spacing: -.045em; }
.hf-blog-article__content p { margin: 0 0 21px; }
.hf-blog-article__content ul,
.hf-blog-article__content ol { display: grid; gap: 12px; margin: 26px 0; padding: 25px 28px 25px 48px; border-left: 3px solid #009680; background: #f2f7f4; }
.hf-blog-article__content li { margin: 0; padding-left: 4px; }
.hf-blog-article__content a { color: #007b6b; font-weight: 700; }
.hf-blog-article__summary { margin: 0 0 42px; padding: 28px 31px; border-left: 4px solid #008978; background: linear-gradient(120deg, #e8f5f1, #f8fbf9); }
.hf-blog-article__summary span,
.hf-blog-article__aside-label { display: block; margin-bottom: 9px; color: #008978; font-size: 11px !important; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hf-blog-article__summary p { margin: 0; color: #004d42; font-size: 20px; line-height: 1.45; font-weight: 700; letter-spacing: -.025em; }
.hf-blog-article__aside { align-self: start; position: sticky; top: 106px; padding: 30px; color: #fff; background: linear-gradient(145deg, #007b6b, #003f35); box-shadow: 0 17px 34px rgba(0, 63, 53, .18); }
.hf-blog-article__aside > span:not(.hf-blog-article__aside-label) { display: block; font-size: 22px; font-weight: 800; line-height: 1.05; }
.hf-blog-article__aside p { color: rgba(255,255,255,.76); line-height: 1.5; }
.hf-blog-article__aside a { display: inline-flex; padding: 13px 15px; color: #004d42; font-weight: 800; text-decoration: none; background: #fff; }

@media (max-width: 960px) {
    .hf-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hf-blog-article__hero-grid { grid-template-columns: 1fr; }
    .hf-blog-article__hero-image { min-height: 280px; background-position: center 58%; }
    .hf-blog-article__layout { grid-template-columns: 1fr; }
    .hf-blog-article__aside { position: static; max-width: 500px; }
}

@media (max-width: 600px) {
    .hf-blog-hero h1,
    .hf-blog-article__hero h1 { font-size: 41px; }
    .hf-blog-article__hero-copy { padding: 30px 24px 35px; }
    .hf-blog-article__hero-image { min-height: 235px; }
    .hf-blog-hero p,
    .hf-blog-article__hero p { font-size: 16px; }
    .hf-blog-list-heading { display: block; }
    .hf-blog-list-heading p { margin-top: 8px; }
    .hf-blog-grid { grid-template-columns: 1fr; }
    .hf-blog-card { min-height: 0; }
    .hf-blog-article__content { font-size: 16px; }
    .hf-blog-article__summary { margin-bottom: 33px; padding: 22px; }
    .hf-blog-article__summary p { font-size: 18px; }
    .hf-blog-article__content ul,
    .hf-blog-article__content ol { padding: 20px 20px 20px 38px; }
}

/* Single project page */
.hf-project-single { background: #f7f5f0; }

.hf-project-single__hero { position: relative; display: grid; min-height: min(73vw, 690px); overflow: hidden; align-items: end; background: #103f38; color: #fff; }

.hf-project-single__hero--empty { min-height: 430px; background: radial-gradient(circle at 80% 0, #168879 0%, #06483f 47%, #06362f 100%); }

.hf-project-single__hero-image, .hf-project-single__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }

.hf-project-single__hero-image { object-fit: cover; }

.hf-project-single__overlay { background: linear-gradient(90deg, rgba(0, 35, 30, .83) 0%, rgba(0, 35, 30, .38) 52%, rgba(0, 35, 30, .12) 100%), linear-gradient(0deg, rgba(0, 22, 19, .73) 0%, rgba(0, 22, 19, 0) 58%); }

.hf-project-single__hero-content { position: relative; z-index: 1; padding-top: 54px; padding-bottom: clamp(42px, 7vw, 90px); }

.hf-project-single__back { display: inline-flex; margin-bottom: clamp(44px, 9vw, 116px); color: rgba(255, 255, 255, .86); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }

.hf-project-single__terms { margin: 0 0 12px; color: #99e5d9; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.hf-project-single__terms a { color: inherit; text-decoration: none; }

.hf-project-single h1 { max-width: 850px; margin: 0; color: #fff; font-size: clamp(42px, 6vw, 82px); font-weight: 800; letter-spacing: -.06em; line-height: .95; }

.hf-project-single__lead { max-width: 610px; margin: 20px 0 0; color: rgba(255, 255, 255, .86); font-size: clamp(16px, 2vw, 21px); line-height: 1.55; }

.hf-project-single__hero-facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }

.hf-project-single__hero-facts > div { display: grid; gap: 4px; min-width: 122px; padding: 12px 15px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 7px; background: rgba(0, 27, 23, .23); backdrop-filter: blur(8px); }

.hf-project-single__hero-facts span { color: rgba(255, 255, 255, .62); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.hf-project-single__hero-facts strong { color: #fff; font-size: 15px; line-height: 1.2; }

.hf-project-single__content { padding: clamp(32px, 5vw, 64px) 0 clamp(75px, 10vw, 140px); }

.hf-project-single__grid { display: grid; align-items: start; grid-template-columns: minmax(0, 1fr); gap: clamp(42px, 6vw, 74px); }

.hf-project-single__details { display: grid; padding: 19px 22px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px; border: 1px solid rgba(0, 63, 53, .1); border-radius: 12px; background: #fffdf9; box-shadow: 0 10px 26px rgba(0, 50, 43, .07); }

.hf-project-single__details .hf-section-kicker { margin: 0; white-space: nowrap; }

.hf-project-single__details dl { display: grid; margin: 0; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 0; }

.hf-project-single__details dl > div { display: grid; gap: 3px; padding: 0 14px; border-left: 1px solid rgba(0, 63, 53, .12); }

.hf-project-single__details dt { color: var(--hf-muted); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.hf-project-single__details dd { margin: 0; color: var(--hf-forest); font-size: 14px; font-weight: 800; line-height: 1.25; }

.hf-project-single__details-empty { margin: 0; color: var(--hf-muted); font-size: 13px; line-height: 1.45; }

/* Portfolio project detail */
.hf-portfolio-single { background: #f4f7f4; }
.hf-portfolio-single__hero { min-height: min(68vw, 650px); }
.hf-portfolio-single__summary { position: relative; z-index: 2; margin-top: clamp(-56px, -4vw, -28px); }
.hf-portfolio-single__summary-card { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr); gap: clamp(28px, 5vw, 78px); padding: clamp(29px, 5vw, 62px); border: 1px solid rgba(0, 63, 53, .12); border-radius: 20px; background: #fffdf9; box-shadow: 0 22px 54px rgba(0, 52, 44, .13); }
.hf-portfolio-single__summary-card .hf-section-kicker { margin: 0 0 18px; }
.hf-portfolio-single__summary-card h2 { max-width: 590px; margin: 0; color: var(--hf-forest); font-size: clamp(29px, 4vw, 52px); letter-spacing: -.06em; line-height: 1; }
.hf-portfolio-single__summary-card > div > p:last-child { max-width: 620px; margin: 20px 0 0; color: var(--hf-muted); font-size: clamp(16px, 1.6vw, 19px); line-height: 1.6; }
.hf-portfolio-single__summary-card dl { display: grid; align-content: center; gap: 11px; margin: 0; }
.hf-portfolio-single__summary-card dl div { padding: 19px 21px; border-radius: 12px; background: #e7f2ee; }
.hf-portfolio-single__summary-card dt { color: #52726a; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hf-portfolio-single__summary-card dd { margin: 8px 0 0; color: var(--hf-forest); font-size: clamp(25px, 3vw, 37px); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.hf-portfolio-single__story { padding: clamp(54px, 8vw, 104px) 0; }
.hf-portfolio-single__story .hf-project-single__article { max-width: 790px; margin: auto; }
.hf-portfolio-single__gallery-section { padding: clamp(55px, 8vw, 108px) 0; background: #003f36; }
.hf-portfolio-single__gallery-section header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .58fr); column-gap: 46px; align-items: end; margin-bottom: clamp(29px, 4vw, 50px); }
.hf-portfolio-single__gallery-section .hf-section-kicker { grid-column: 1 / -1; margin: 0 0 16px; color: #a8e9dc; }
.hf-portfolio-single__gallery-section .hf-section-kicker::before { background: #a8e9dc; }
.hf-portfolio-single__gallery-section h2 { margin: 0; color: #fff; font-size: clamp(34px, 4.8vw, 62px); letter-spacing: -.065em; line-height: .96; }
.hf-portfolio-single__gallery-section header > span { max-width: 380px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.6; }
.hf-portfolio-single__gallery-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(9px, 1.4vw, 19px); }
.hf-portfolio-single__gallery-grid figure { position: relative; min-height: 250px; margin: 0; overflow: hidden; border-radius: 13px; background: #123f38; grid-column: span 4; }
.hf-portfolio-single__gallery-grid figure:nth-child(5n + 1) { min-height: 510px; grid-column: span 7; grid-row: span 2; }
.hf-portfolio-single__gallery-grid figure:nth-child(5n + 2) { grid-column: span 5; }
.hf-portfolio-single__gallery-grid figure:nth-child(5n + 3) { grid-column: span 5; }
.hf-portfolio-single__gallery-grid figure:nth-child(5n + 4) { grid-column: span 5; }
.hf-portfolio-single__gallery-grid figure:nth-child(5n + 5) { grid-column: span 7; }
.hf-portfolio-single__gallery-grid .hf-project-gallery-trigger { position: relative; overflow: hidden; }
.hf-portfolio-single__gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.hf-portfolio-single__gallery-grid .hf-project-gallery-trigger::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 42, 35, .45), transparent 52%); content: ''; opacity: 0; transition: opacity .3s ease; }
.hf-portfolio-single__gallery-grid .hf-project-gallery-trigger > span { position: absolute; z-index: 1; right: 15px; bottom: 14px; display: grid; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; place-items: center; background: rgba(0, 58, 49, .65); color: #fff; font-size: 19px; opacity: 0; transform: translateY(7px); transition: opacity .3s ease, transform .3s ease; }
.hf-portfolio-single__gallery-grid figure:hover img { transform: scale(1.055); }
.hf-portfolio-single__gallery-grid figure:hover .hf-project-gallery-trigger::after, .hf-portfolio-single__gallery-grid figure:hover .hf-project-gallery-trigger > span { opacity: 1; }
.hf-portfolio-single__gallery-grid figure:hover .hf-project-gallery-trigger > span { transform: translateY(0); }
@media (max-width: 760px) { .hf-portfolio-single__summary { margin-top: -26px; } .hf-portfolio-single__summary-card { grid-template-columns: 1fr; gap: 26px; padding: 28px 23px; border-radius: 16px; } .hf-portfolio-single__summary-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hf-portfolio-single__summary-card dl div { padding: 16px 14px; } .hf-portfolio-single__gallery-section header { display:block; } .hf-portfolio-single__gallery-section header > span { display:block; margin-top:17px; } .hf-portfolio-single__gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:9px; } .hf-portfolio-single__gallery-grid figure, .hf-portfolio-single__gallery-grid figure:nth-child(n) { min-height:190px; grid-column:span 1; grid-row:auto; } .hf-portfolio-single__gallery-grid figure:nth-child(5n + 1) { min-height:310px; grid-column:1 / -1; } .hf-portfolio-single__gallery-grid .hf-project-gallery-trigger > span { opacity:1; transform:none; } }

/* Compact, widescreen gallery for portfolio project pages. */
.hf-portfolio-single__gallery-section .hf-shell { width: min(calc(100% - 48px), 1780px); max-width: none; }
.hf-portfolio-single__gallery-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.hf-portfolio-single__gallery-grid figure,
.hf-portfolio-single__gallery-grid figure:nth-child(n) { min-height: 0; aspect-ratio: 4 / 3; grid-column: span 1; grid-row: auto; }
@media (max-width: 1180px) { .hf-portfolio-single__gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .hf-portfolio-single__gallery-section .hf-shell { width: min(calc(100% - 32px), 1780px); } .hf-portfolio-single__gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; } .hf-portfolio-single__gallery-grid figure:nth-child(n) { min-height: 0; aspect-ratio: 4 / 3; grid-column: span 1; } }

.hf-portfolio-related { padding: clamp(58px, 8vw, 112px) 0; background: #e6f0ec; }
.hf-portfolio-related .hf-about-projects__top { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: clamp(27px, 4vw, 48px); }
.hf-portfolio-related .hf-about-projects__carousel { grid-auto-columns: minmax(255px, 30%); }
.hf-portfolio-related-card { box-shadow: 0 15px 30px rgba(0, 58, 49, .1); }
.hf-portfolio-related-card .hf-about-project-card__image { height: 255px; min-height: 0; flex: 0 0 255px; }
.hf-portfolio-related-card .hf-about-project-card__image img { height: 255px; min-height: 0; }
.hf-portfolio-related-card .hf-about-project-card__body > strong { display: inline-flex; margin-top: 14px; padding: 7px 10px; border-radius: 6px; background: #e5f3ef; color: #005447; font-size: 12px; font-weight: 800; }
.hf-portfolio-related-card .hf-about-project-card__body > strong::before { margin-right: 6px; color: #168b7b; content: 'Площ'; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
@media (max-width: 760px) { .hf-portfolio-related .hf-about-projects__top { align-items: flex-start; } .hf-portfolio-related .hf-about-projects__carousel { grid-auto-columns: minmax(255px, 82%); } .hf-portfolio-related-card .hf-about-project-card__image, .hf-portfolio-related-card .hf-about-project-card__image img { height:230px; flex-basis:230px; } }

/* Editorial masonry gallery: varied card heights keep the project photos visually alive. */
.hf-portfolio-single__gallery-section header { grid-template-columns: minmax(0, 1fr) minmax(230px, .45fr); max-width: 1420px; margin-right: auto; margin-left: auto; }
.hf-portfolio-single__gallery-section h2 { max-width: 820px; font-size: clamp(34px, 4vw, 54px); }
.hf-portfolio-single__gallery-grid { display: block !important; column-count: 5; column-gap: clamp(10px, 1vw, 16px); }
.hf-portfolio-single__gallery-grid figure,
.hf-portfolio-single__gallery-grid figure:nth-child(n) { display: block; min-height: 0 !important; margin: 0 0 clamp(10px, 1vw, 16px); aspect-ratio: 4 / 3; break-inside: avoid; grid-column: auto !important; grid-row: auto !important; border-radius: 12px; }
.hf-portfolio-single__gallery-grid figure:nth-child(7n + 1) { aspect-ratio: 4 / 5; }
.hf-portfolio-single__gallery-grid figure:nth-child(7n + 2) { aspect-ratio: 16 / 10; }
.hf-portfolio-single__gallery-grid figure:nth-child(7n + 3) { aspect-ratio: 1 / 1; }
.hf-portfolio-single__gallery-grid figure:nth-child(7n + 5) { aspect-ratio: 3 / 4; }
@media (max-width: 1180px) { .hf-portfolio-single__gallery-grid { column-count: 4; } }
@media (max-width: 760px) { .hf-portfolio-single__gallery-section header { display: block; } .hf-portfolio-single__gallery-grid { column-count: 2; } }

/* Desktop keeps the project facts in the left-side panel; compact layouts
   continue to show them above the article. */
@media (min-width: 761px) {
    .hf-project-single__grid {
        grid-template-columns: minmax(250px, 310px) minmax(0, 1fr);
    }

    .hf-project-single__details {
        display: block;
        padding: 29px 27px;
        border-radius: 16px;
    }

    .hf-project-single__details .hf-section-kicker {
        margin-bottom: 22px;
    }

    .hf-project-single__details dl {
        grid-template-columns: 1fr;
    }

    .hf-project-single__details dl > div {
        padding: 15px 0;
        border-top: 1px solid rgba(0, 63, 53, .12);
        border-left: 0;
    }

    .hf-project-single__details dl > div:first-child {
        padding-top: 0;
        border-top: 0;
    }

    .hf-project-single__details dt {
        font-size: 10px;
    }

    .hf-project-single__details dd {
        font-size: 18px;
    }
}

.hf-project-single__article { width: min(100%, 960px); min-width: 0; color: var(--hf-ink); font-size: 17px; line-height: 1.72; }

.hf-project-single__article > h2 { margin: 0 0 18px; color: var(--hf-forest); font-size: clamp(29px, 3.8vw, 48px); font-weight: 800; letter-spacing: -.05em; line-height: 1.04; }

.hf-project-single__article p { margin: 0 0 20px; }

.hf-project-single__article h2:not(.wp-block-heading) { margin: 42px 0 17px; color: var(--hf-forest); font-size: clamp(26px, 3vw, 39px); font-weight: 800; letter-spacing: -.045em; line-height: 1.08; }

.hf-project-single__article h3 { margin: 31px 0 12px; color: var(--hf-forest); font-size: 22px; font-weight: 800; letter-spacing: -.035em; line-height: 1.16; }

.hf-project-single__article ul, .hf-project-single__article ol { display: grid; gap: 9px; margin: 0 0 27px; padding: 20px 0 20px 24px; border-top: 1px solid rgba(0, 63, 53, .15); border-bottom: 1px solid rgba(0, 63, 53, .15); }

.hf-project-single__article li::marker { color: var(--hf-teal); font-weight: 800; }

.hf-project-single__article .wp-block-gallery { margin: 37px 0; gap: 14px; }

.hf-project-single__article .wp-block-gallery figure { overflow: hidden; border-radius: 8px; }

.hf-project-single__article .wp-block-gallery img { transition: transform .35s ease; }

.hf-project-single__article .wp-block-gallery figure:hover img { transform: scale(1.04); }

.hf-project-single__gallery { margin-top: 58px; padding-top: 37px; border-top: 1px solid rgba(0, 63, 53, .15); }

.hf-project-single__gallery > h2 { margin: 0 0 23px; color: var(--hf-forest); font-size: clamp(29px, 3.6vw, 46px); font-weight: 800; letter-spacing: -.05em; line-height: 1.05; }

.hf-project-single__gallery > div { column-count: 2; column-gap: 14px; counter-reset: project-gallery; }

.hf-project-single__gallery figure { position: relative; width: 100%; margin: 0 0 14px; overflow: hidden; break-inside: avoid; border-radius: 10px; background: #dce5e2; counter-increment: project-gallery; }

.hf-project-single__gallery figure:nth-child(4n + 1) { aspect-ratio: 4 / 5; }

.hf-project-single__gallery figure:nth-child(4n + 2) { aspect-ratio: 4 / 3; }

.hf-project-single__gallery figure:nth-child(4n + 3) { aspect-ratio: 5 / 6; }

.hf-project-single__gallery figure:nth-child(4n + 4) { aspect-ratio: 4 / 3; }

.hf-project-single__gallery figure::after { position: absolute; right: 10px; bottom: 9px; display: grid; width: 26px; height: 26px; border-radius: 50%; place-items: center; background: rgba(0, 47, 40, .75); color: rgba(255, 255, 255, .9); content: counter(project-gallery, decimal-leading-zero); font-size: 8px; font-weight: 800; letter-spacing: .04em; opacity: 0; pointer-events: none; transform: translateY(5px); transition: opacity .25s ease, transform .25s ease; }

.hf-project-gallery-trigger { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }

.hf-project-gallery-trigger:focus-visible { outline: 3px solid var(--hf-teal); outline-offset: -3px; }

.hf-project-single__gallery img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; transition: transform .45s ease; }

.hf-project-single__gallery figure:hover img { transform: scale(1.05); }

.hf-project-single__gallery figure:hover::after { opacity: 1; transform: translateY(0); }

.hf-project-single__layouts { margin-top: 58px; padding-top: 37px; border-top: 1px solid rgba(0, 63, 53, .15); }

.hf-project-single__layouts > h2 { margin: 0 0 23px; color: var(--hf-forest); font-size: clamp(29px, 3.6vw, 46px); font-weight: 800; letter-spacing: -.05em; line-height: 1.05; }

.hf-project-single__layouts > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.hf-project-single__layouts figure { margin: 0; overflow: hidden; border: 1px solid rgba(0, 63, 53, .12); border-radius: 10px; background: #fff; }

.hf-project-single__layouts button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }

.hf-project-single__layouts img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; transition: transform .35s ease; }

.hf-project-single__layouts figure:hover img { transform: scale(1.025); }

@media (min-width: 761px) {
    .hf-project-single__layouts figure {
        aspect-ratio: 4 / 3;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .hf-project-single__layouts button { height: 100%; }

    .hf-project-single__layouts img {
        height: 100%;
        aspect-ratio: auto;
        object-fit: cover;
        object-position: center;
    }
}

.hf-project-lightbox[hidden] { display: none; }

.hf-project-lightbox { position: fixed; z-index: 3000; inset: 0; display: grid; padding: 42px clamp(10px, 3vw, 48px); grid-template-columns: 56px minmax(0, 1fr) 56px; align-items: center; background: rgba(0, 24, 20, .92); backdrop-filter: blur(9px); }

.hf-project-lightbox__frame { display: grid; width: min(100%, 1180px); max-height: min(82vh, 900px); margin: 0 auto; overflow: hidden; place-items: center; }

.hf-project-lightbox__frame img { display: block; max-width: 100%; max-height: min(76vh, 840px); border-radius: 8px; box-shadow: 0 20px 70px rgba(0, 0, 0, .35); cursor: zoom-in; object-fit: contain; transition: transform .2s ease; user-select: none; will-change: transform; }

.hf-project-lightbox__frame.is-zoomed img { cursor: grab; }
.hf-project-lightbox__frame.is-dragging img { cursor: grabbing; transition: none; }

.hf-project-lightbox__frame p { margin: 12px 0 0; color: rgba(255, 255, 255, .74); font-size: 11px; font-weight: 800; letter-spacing: .12em; }

.hf-project-lightbox__close, .hf-project-lightbox__nav { display: grid; width: 46px; height: 46px; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .26); border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; transition: background .2s ease, transform .2s ease; }

.hf-project-lightbox__close:hover, .hf-project-lightbox__nav:hover { background: var(--hf-teal); transform: scale(1.06); }

.hf-project-lightbox__close:focus-visible, .hf-project-lightbox__nav:focus-visible { outline: 3px solid #8ce3d5; outline-offset: 3px; }

.hf-project-lightbox__close { position: absolute; top: 22px; right: 24px; font-size: 29px; font-weight: 300; line-height: 1; }

.hf-project-lightbox__nav { z-index: 1; width: 46px; height: 56px; border: 0; border-radius: 0; background: transparent; color: #fff; font-size: 0; line-height: 1; }

.hf-project-lightbox__nav:hover { background: transparent; color: #fff; transform: scale(1.12); }

.hf-project-lightbox__nav::before { width: 13px; height: 13px; border: solid currentColor; border-width: 0 4px 4px 0; content: ''; }

.hf-project-lightbox__nav--previous::before { transform: rotate(135deg); }

.hf-project-lightbox__nav--next::before { transform: rotate(-45deg); }

.hf-project-lightbox__nav--previous { grid-column: 1; }

.hf-project-lightbox__nav--next { grid-column: 3; }

.hf-project-lightbox-open { overflow: hidden; }

@media (max-width: 760px) {
    .hf-project-single__hero { min-height: 570px; }
    .hf-project-single__grid { grid-template-columns: 1fr; }
    .hf-project-single__details { display: grid; padding: 17px; grid-template-columns: 1fr; gap: 15px; order: 0; }
    .hf-project-single__details dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 0; }
    .hf-project-single__details dl > div { padding: 0 10px; }
    .hf-project-single__details dl > div:nth-child(odd) { padding-left: 0; border-left: 0; }
    .hf-project-single__article { font-size: 16px; }
    .hf-project-single__hero-facts { margin-top: 23px; }
    .hf-project-single__hero-facts > div { min-width: 108px; }
    .hf-project-single__gallery > div { column-count: 2; column-gap: 9px; }
    .hf-project-single__gallery figure { margin-bottom: 9px; }
    .hf-project-single__gallery figure::after { opacity: 1; transform: none; }
    .hf-project-single__layouts > div { grid-template-columns: 1fr; gap: 12px; }
    .hf-project-single__layouts figure { aspect-ratio: 4 / 3; }
    .hf-project-single__layouts button { height: 100%; }
    .hf-project-single__layouts img { height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center; }
    .hf-project-lightbox { padding: 36px 6px 18px; grid-template-columns: 38px minmax(0, 1fr) 38px; }
    .hf-project-lightbox__frame img { max-height: 76vh; border-radius: 5px; }
    .hf-project-lightbox__close, .hf-project-lightbox__nav { width: 36px; height: 36px; }
    .hf-project-lightbox__close { top: 11px; right: 12px; font-size: 24px; }
    .hf-project-lightbox__nav::before { width: 10px; height: 10px; border-width: 0 3px 3px 0; }
}

/* Projects portfolio */
.hf-project-technology-picker { max-height: 900px; padding: clamp(42px, 5vw, 72px) 0; overflow: hidden; background: #f2f7f5; opacity: 1; transition: max-height .7s cubic-bezier(.65,0,.35,1), padding .55s ease, opacity .35s ease; }

.hf-project-technology-picker.is-selection-made { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; pointer-events: none; }

.hf-project-technology-picker__heading { max-width: 610px; margin: 0 auto clamp(25px, 3vw, 38px); text-align: center; }

.hf-project-technology-picker__heading h2 { margin: 0; color: var(--hf-ink); font-size: clamp(31px, 3.3vw, 46px); font-weight: 800; letter-spacing: -.058em; line-height: 1.03; }

.hf-project-technology-picker__heading > p:last-child { margin: 13px 0 0; color: var(--hf-muted); font-size: 15px; line-height: 1.55; }

.hf-project-technology-picker__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.hf-project-technology-picker__card { position: relative; display: block; min-height: clamp(250px, 21vw, 350px); overflow: hidden; background: var(--hf-forest); color: #fff; text-decoration: none; isolation: isolate; }

.hf-project-technology-picker__card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.8,.2,1); }

.hf-project-technology-picker__shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(0, 40, 34, .18) 10%, rgba(0, 40, 34, .86) 100%); }

.hf-project-technology-picker__copy { position: absolute; right: clamp(25px, 3vw, 44px); bottom: clamp(25px, 3vw, 38px); left: clamp(25px, 3vw, 44px); display: grid; align-items: start; justify-items: start; }

.hf-project-technology-picker__copy small { margin-bottom: 15px; color: #a6e6db; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

.hf-project-technology-picker__copy strong { font-size: clamp(29px, 3.15vw, 44px); font-weight: 800; letter-spacing: -.062em; line-height: .99; }

.hf-project-technology-picker__copy em { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; color: #fff; font-size: 11px; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.hf-project-technology-picker__copy em b { color: #a6e6db; font-size: 20px; font-weight: 400; }

.hf-project-technology-picker__card:hover img { transform: scale(1.06); }

.hf-project-technology-picker__card:hover .hf-project-technology-picker__copy em { color: #a6e6db; }

.hf-project-house-type-picker { max-height: 1100px; padding: clamp(52px, 7vw, 100px) 0; overflow: hidden; background: #fffdf9; opacity: 1; transition: max-height .75s cubic-bezier(.65,0,.35,1), padding .55s ease, opacity .35s ease; }

.hf-project-house-type-picker.is-selection-made { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; pointer-events: none; }

.hf-project-house-type-picker__heading { max-width: 670px; margin: 0 auto clamp(30px, 4vw, 48px); text-align: center; }

.hf-project-house-type-picker__heading h2 { margin: 0; color: var(--hf-ink); font-size: clamp(32px, 3.5vw, 50px); font-weight: 800; letter-spacing: -.058em; line-height: 1.03; }

.hf-project-house-type-picker__heading > p:last-child { margin: 13px 0 0; color: var(--hf-muted); font-size: 15px; line-height: 1.55; }

.hf-project-house-type-picker__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }

.hf-project-house-type-picker__card { position: relative; display: flex; height: clamp(310px, 22vw, 360px); min-height: 0; padding: 26px; align-items: flex-end; overflow: hidden; background: #0c4038; color: #fff; isolation: isolate; text-decoration: none; }

.hf-project-house-type-picker__card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.8,.2,1); }

.hf-project-house-type-picker__card::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(0, 47, 40, .12), rgba(0, 47, 40, .9)); content: ''; }

.hf-project-house-type-picker__card > span { display: grid; width: 100%; height: 100%; grid-template-rows: 14px minmax(0, 1fr) 38px 20px; align-items: start; justify-items: start; }

.hf-project-house-type-picker__card small { color: #a6e6db; font-size: 10px; font-weight: 800; letter-spacing: .14em; }

.hf-project-house-type-picker__card strong { margin-top: 15px; color: #fff; font-size: clamp(24px, 2.2vw, 32px); font-weight: 800; letter-spacing: -.05em; line-height: 1.04; }

.hf-project-house-type-picker__card em { min-height: 38px; margin: 0; color: rgba(255,255,255,.76); font-size: 12px; font-style: normal; line-height: 1.55; }

.hf-project-house-type-picker__card b { display: inline-flex; align-items: center; gap: 9px; margin: 0; color: #fff; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }

.hf-project-house-type-picker__card i { color: #a6e6db; font-size: 18px; font-style: normal; font-weight: 400; }

.hf-project-house-type-picker__card:hover img { transform: scale(1.06); }

/* Full-bleed project types on the home page. */
.hf-home-house-types { padding-bottom: clamp(58px, 8vw, 105px); }
.hf-inner-page--projects .hf-home-house-types { padding-top: clamp(26px, 3vw, 46px); }
.hf-home-house-types .hf-shell { width: 100%; max-width: none; padding-right: 0; padding-left: 0; }
.hf-home-house-types .hf-project-house-type-picker__heading { padding-right: 24px; padding-left: 24px; }
.hf-home-house-types .hf-project-house-type-picker__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; overflow: hidden; }
.hf-home-house-types .hf-project-house-type-picker__card { height: clamp(580px, 38vw, 760px); padding: clamp(22px, 2vw, 34px); clip-path: none; }
.hf-home-house-types .hf-project-house-type-picker__card + .hf-project-house-type-picker__card { margin-left: 0; }
.hf-home-house-types .hf-project-house-type-picker__card:first-child,
.hf-home-house-types .hf-project-house-type-picker__card:last-child { clip-path: none; }
.hf-home-house-types .hf-project-house-type-picker__card::after { display: block; background: linear-gradient(180deg, transparent 42%, rgba(0, 47, 40, .18) 58%, rgba(0, 47, 40, .82) 100%); }
.hf-home-house-types .hf-project-house-type-picker__card > span { display: flex; height: auto; flex-direction: column; justify-content: center; }
.hf-home-house-types .hf-project-house-type-picker__card small { margin-bottom: 24px; }
.hf-home-house-types .hf-project-house-type-picker__card strong { margin-top: 0; }
.hf-home-house-types .hf-project-house-type-picker__card em { margin-top: 20px; }
.hf-home-house-types .hf-project-house-type-picker__card b { margin-top: 22px; }

[data-projects-type-picker-slot].is-revealing .hf-project-house-type-picker { animation: hfProjectResultsReveal .8s cubic-bezier(.16,1,.3,1) both; }

.hf-projects-section { padding-bottom: clamp(70px, 9vw, 128px); }

.hf-inner-page .hf-projects-section.is-awaiting-selection { max-height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; opacity: 0; pointer-events: none; }

.hf-projects-section.is-revealing [data-projects-results] { animation: hfProjectResultsReveal .8s cubic-bezier(.16,1,.3,1) both; }

.hf-projects-section [data-projects-results] { transition: opacity .22s ease, transform .22s ease; }

.hf-projects-section [data-projects-results].is-loading { opacity: .42; pointer-events: none; transform: translateY(6px); }

@keyframes hfProjectResultsReveal {
    from { opacity: 0; transform: translateY(20px); filter: blur(4px); }
    to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

.hf-project-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: clamp(31px, 4vw, 52px); padding: 12px; border: 1px solid rgba(0, 63, 53, .11); border-radius: 17px; background: #e8f0ed; box-shadow: 0 12px 31px rgba(0, 53, 45, .06); }

.hf-project-filters > div { display: flex; min-width: 0; flex-wrap: wrap; align-content: flex-start; gap: 7px; padding: 16px; border: 1px solid rgba(0, 63, 53, .09); border-radius: 11px; background: rgba(255, 255, 255, .86); }

.hf-project-filters span { display: flex; width: 100%; align-items: center; gap: 8px; margin: 0 0 6px; color: var(--hf-forest); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }

.hf-project-filters span::before { display: block; width: 17px; height: 2px; flex: 0 0 17px; background: var(--hf-teal); content: ""; }

.hf-project-filters a { display: inline-flex; min-height: 32px; align-items: center; padding: 0 10px; border: 1px solid rgba(0, 63, 53, .13); border-radius: 999px; background: #fff; color: var(--hf-forest); font-size: 11px; font-weight: 700; line-height: 1.15; text-decoration: none; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }

.hf-project-filters a:hover, .hf-project-filters a.is-active { border-color: var(--hf-forest); background: var(--hf-forest); color: #fff; transform: translateY(-1px); }

.hf-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 35px); }

.hf-project-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid rgba(0, 63, 53, .1); border-radius: 13px; background: #fffdf9; box-shadow: 0 15px 38px rgba(0, 50, 43, .08); transition: box-shadow .25s ease, transform .25s ease; }

.hf-project-card:hover { box-shadow: 0 22px 48px rgba(0, 50, 43, .15); transform: translateY(-5px); }

.hf-project-card__image { position: relative; display: block; height: clamp(245px, 18vw, 330px); flex: 0 0 clamp(245px, 18vw, 330px); overflow: hidden; background: linear-gradient(135deg, #0c4b41, #18302c); color: rgba(255, 255, 255, .76); font-size: 13px; font-weight: 700; text-decoration: none; }

.hf-project-card__image img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .45s ease; }

.hf-project-card:hover .hf-project-card__image img { transform: scale(1.045); }

.hf-project-card__body { display: flex; min-height: 274px; flex: 1; flex-direction: column; padding: 22px 22px 24px; }

.hf-project-card__terms { min-height: 17px; color: var(--hf-teal); font-size: 10px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }

.hf-project-card__terms a { color: inherit; text-decoration: none; }

.hf-project-card h2 { min-height: 51px; margin: 9px 0 0; color: var(--hf-forest); font-size: 23px; font-weight: 800; letter-spacing: -.04em; line-height: 1.1; }

.hf-project-card h2 a { color: inherit; text-decoration: none; }

.hf-project-card p { min-height: 43px; margin: 11px 0 0; color: var(--hf-muted); font-size: 14px; line-height: 1.55; }

.hf-project-card .hf-project-card__price { min-height: 20px; margin-top: 20px; color: var(--hf-forest); font-size: 17px; font-weight: 800; letter-spacing: -.025em; line-height: 1.2; }

.hf-project-card__link { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 19px; color: var(--hf-forest); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }

.hf-project-card__link span { color: var(--hf-teal); font-size: 18px; font-weight: 400; }

.hf-project-empty-state { max-width: 760px; padding: clamp(31px, 5vw, 60px); border: 1px dashed rgba(0, 63, 53, .28); border-radius: 16px; background: #fffdf9; }

.hf-project-empty-state h2 { margin: 0; color: var(--hf-forest); font-size: clamp(27px, 3.4vw, 44px); font-weight: 800; letter-spacing: -.05em; line-height: 1.05; }

.hf-project-empty-state p:last-child { max-width: 630px; margin: 16px 0 0; color: var(--hf-muted); font-size: 15px; line-height: 1.65; }

@media (max-width: 840px) { .hf-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 960px) {
    .hf-project-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 9px; }
    .hf-project-filters > div { min-height: 112px; padding: 14px; }
    .hf-project-filters > div:first-child { align-self: start; min-height: 0; }
}

@media (max-width: 640px) {
    .hf-project-technology-picker { padding: 38px 0; }
    .hf-project-technology-picker__cards { grid-template-columns: 1fr; gap: 10px; }
    .hf-project-technology-picker__card { min-height: 230px; }
    .hf-project-technology-picker__copy { right: 25px; bottom: 26px; left: 25px; }
    .hf-project-technology-picker__copy strong { font-size: 33px; }
    .hf-project-house-type-picker { padding: 48px 0; }
    .hf-project-house-type-picker:not(.is-selection-made) { max-height: none; overflow: visible; }
    .hf-project-house-type-picker__cards { grid-template-columns: 1fr; gap: 10px; }
    .hf-project-house-type-picker__card { height: 280px; min-height: 0; }
    .hf-home-house-types .hf-project-house-type-picker__cards { grid-template-columns: 1fr; }
    .hf-home-house-types .hf-project-house-type-picker__card, .hf-home-house-types .hf-project-house-type-picker__card:first-child, .hf-home-house-types .hf-project-house-type-picker__card:last-child { height: 250px; margin-left: 0; clip-path: none; }
    .hf-project-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hf-project-filters a { min-height: 30px; padding: 0 9px; font-size: 10px; }
}

@media (max-width: 760px) {
    .hf-home-house-types .hf-project-house-type-picker__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; overflow: hidden; }
    .hf-home-house-types .hf-project-house-type-picker__card,
    .hf-home-house-types .hf-project-house-type-picker__card:first-child,
    .hf-home-house-types .hf-project-house-type-picker__card:last-child { height: 390px; margin-left: 0; padding: 22px 18px; clip-path: none; }
    .hf-home-house-types .hf-project-house-type-picker__card:nth-child(even),
    .hf-home-house-types .hf-project-house-type-picker__card:nth-child(odd) { margin-left: 0; clip-path: none; }
    .hf-home-house-types .hf-project-house-type-picker__card > span { display: grid; height: 100%; grid-template-rows: 18px minmax(0, 1fr) 72px 52px 20px; align-items: start; }
    .hf-home-house-types .hf-project-house-type-picker__card small,
    .hf-home-house-types .hf-project-house-type-picker__card strong,
    .hf-home-house-types .hf-project-house-type-picker__card em,
    .hf-home-house-types .hf-project-house-type-picker__card b { margin: 0; }
    .hf-home-house-types .hf-project-house-type-picker__card em { align-self: start; }
    .hf-home-house-types .hf-project-house-type-picker__card b { align-self: end; }
    .hf-home-house-types .hf-project-house-type-picker__card strong { grid-row: 3; font-size: clamp(18px, 5vw, 24px); line-height: 1.08; overflow-wrap: normal; }
    .hf-home-house-types .hf-project-house-type-picker__card em { grid-row: 4; min-height: 0; font-size: 11px; line-height: 1.4; }
    .hf-home-house-types .hf-project-house-type-picker__card b { grid-row: 5; font-size: 9px; }
}

@media (max-width: 390px) {
    .hf-project-filters { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .hf-project-grid { grid-template-columns: 1fr; }
    .hf-project-card__image { height: 225px; flex-basis: 225px; }
    .hf-project-card__body { min-height: 0; }
}

.hf-configurator__hero { padding:clamp(38px,5vw,64px) 0; background:radial-gradient(circle at 80% 15%,rgba(110,217,194,.34),transparent 27%),linear-gradient(125deg,#002e28,#006758); color:#fff; text-align:center; }
.hf-configurator__hero .hf-shell { max-width:930px; }.hf-configurator__hero .hf-section-kicker { justify-content:center; width:max-content; margin:0 auto 12px; color:#fff !important; }.hf-configurator__hero .hf-section-kicker::before { background:#fff; }
.hf-configurator__hero h1 { margin:0; color:#fff; font-size:clamp(34px,4.2vw,58px); font-weight:800; letter-spacing:-.06em; line-height:.98; }.hf-configurator__hero p:last-child { max-width:670px; margin:14px auto 0; color:rgba(255,255,255,.86); font-size:16px; line-height:1.45; }
.hf-configurator__section { padding:clamp(42px,6vw,88px) 0; background:#f5f7f4; }.hf-configurator__layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); grid-template-areas:'steps steps' 'form summary'; gap:clamp(24px,4vw,58px); align-items:start; }.hf-configurator__steps { grid-area:steps; display:grid; grid-template-columns:repeat(3,1fr); gap:9px; padding:8px; border:1px solid rgba(0,63,53,.12); border-radius:15px; background:#fffdf9; }.hf-configurator__steps button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:48px; border:0; border-radius:10px; background:transparent; color:var(--hf-muted); font:inherit; cursor:pointer; }.hf-configurator__steps button span { display:grid; width:22px; height:22px; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:9px; font-weight:800; }.hf-configurator__steps button b { font-size:13px; }.hf-configurator__steps button.is-active { background:var(--hf-forest); color:#fff; box-shadow:0 8px 18px rgba(0,63,53,.16); }.hf-configurator__steps button.is-complete { color:var(--hf-teal); }.hf-configurator__form { grid-area:form; display:grid; gap:15px; }.hf-configurator__step { display:none; gap:15px; }.hf-configurator__step.is-active { display:grid; animation:hfConfiguratorStep .28s ease both; }.hf-configurator__actions { display:grid; grid-template-columns:minmax(116px,.55fr) minmax(160px,1fr); gap:12px; padding-top:4px; }.hf-configurator__actions .hf-button,.hf-configurator__back { display:flex; align-items:center; justify-content:center; min-height:52px; margin:0; padding:0 18px; border-radius:10px; font-size:13px; font-weight:800; letter-spacing:.02em; }.hf-configurator__back { border:1px solid rgba(0,63,53,.18); background:#fff; color:var(--hf-forest); font-family:inherit; cursor:pointer; }.hf-configurator__actions .hf-button { box-shadow:0 10px 22px rgba(0,63,53,.16); }.hf-configurator__back:disabled { visibility:hidden; } @keyframes hfConfiguratorStep { from { opacity:0; transform:translateX(12px); } to { opacity:1; transform:none; } }
.hf-configurator__form fieldset { min-width:0; margin:0; padding:23px; border:1px solid rgba(0,63,53,.12); border-radius:14px; background:#fffdf9; }.hf-configurator__form legend { padding:0 8px 0 0; color:var(--hf-forest); font-size:16px; font-weight:800; }.hf-configurator__form legend span { display:inline-grid; width:25px; height:25px; margin-right:8px; place-items:center; border-radius:50%; background:var(--hf-forest); color:#fff; font-size:10px; }
.hf-configurator__field-intro { display:flex; align-items:center; gap:12px; margin:0 0 16px; padding:11px 13px; border-radius:9px; background:#f0f5f2; }.hf-configurator__field-intro img { width:58px; height:48px; flex:0 0 auto; border-radius:7px; object-fit:cover; }.hf-configurator__field-intro p { margin:0; color:var(--hf-muted); font-size:13px; line-height:1.45; }
.hf-configurator__choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.hf-configurator__choices--three { grid-template-columns:repeat(3,minmax(0,1fr)); }.hf-configurator__choices label { cursor:pointer; }.hf-configurator__choices input, .hf-configurator__extras input { position:absolute; opacity:0; pointer-events:none; }.hf-configurator__choices span { display:block; min-height:67px; padding:14px; border:1px solid rgba(0,63,53,.16); border-radius:9px; background:#fff; transition:border-color .2s ease,background .2s ease,box-shadow .2s ease; }.hf-configurator__choices strong,.hf-configurator__choices small { display:block; }.hf-configurator__choices strong { color:var(--hf-forest); font-size:14px; }.hf-configurator__choices small { margin-top:4px; color:var(--hf-muted); font-size:11px; }.hf-configurator__choices input:checked + span { border-color:var(--hf-forest); background:#e5f1ed; box-shadow:inset 0 0 0 1px var(--hf-forest); }
.hf-configurator__choices label:has(> input[name="technology"]) span { position:relative; }.hf-configurator__choices label:has(> input[name="technology"]) strong { padding-right:130px; }.hf-configurator__technology-price { position:absolute; top:14px; right:14px; color:var(--hf-teal); font-size:clamp(16px,1.7vw,22px); font-weight:800; letter-spacing:-.04em; line-height:1; white-space:nowrap; }.hf-configurator__package { margin-top:14px; border:1px solid rgba(0,63,53,.14); border-radius:10px; overflow:hidden; background:#f0f6f3; }.hf-configurator__package p { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:13px 15px; background:var(--hf-forest); color:#fff; }.hf-configurator__package p strong { font-size:14px; }.hf-configurator__package p span { color:rgba(255,255,255,.7); font-size:11px; font-weight:700; }.hf-configurator__package ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; padding:0; list-style:none; }.hf-configurator__package li { position:relative; padding:11px 14px 11px 28px; border-top:1px solid rgba(0,63,53,.1); color:var(--hf-forest); font-size:12px; line-height:1.4; }.hf-configurator__package li::before { position:absolute; top:13px; left:13px; width:7px; height:7px; border-radius:50%; background:var(--hf-teal); content:''; }
.hf-configurator__choices--three img { display:block; width:100%; height:76px; margin:-14px -14px 11px; width:calc(100% + 28px); border-radius:8px 8px 0 0; object-fit:cover; }
.hf-configurator__choices:not(.hf-configurator__choices--three) img { display:block; width:100%; height:72px; margin:-14px -14px 11px; width:calc(100% + 28px); border-radius:8px 8px 0 0; object-fit:cover; }
.hf-configurator__fields { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(145px,.5fr); gap:24px; align-items:end; }.hf-configurator__fields label { display:grid; gap:10px; color:var(--hf-forest); font-size:13px; font-weight:700; }.hf-configurator__fields output { color:var(--hf-teal); font-size:21px; font-weight:800; }.hf-configurator__fields input { width:100%; accent-color:var(--hf-forest); }.hf-configurator__fields select { height:42px; padding:0 12px; border:1px solid rgba(0,63,53,.2); border-radius:7px; background:#fff; color:var(--hf-forest); font:inherit; }
.hf-configurator__house-type-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:10px; }.hf-configurator__house-type-cards label { min-width:0; cursor:pointer; }.hf-configurator__house-type-cards label[hidden] { display:none; }.hf-configurator__house-type-cards input { position:absolute; opacity:0; pointer-events:none; }.hf-configurator__house-type-cards span { position:relative; display:grid; min-height:210px; padding:17px; grid-template-rows:16px minmax(0,1fr) auto 36px; overflow:hidden; background:#0c4038; color:#fff; isolation:isolate; transition:transform .2s ease,box-shadow .2s ease; }.hf-configurator__house-type-cards img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }.hf-configurator__house-type-cards span::after { position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(0,47,40,.04) 28%,rgba(0,47,40,.82) 100%); content:''; }.hf-configurator__house-type-cards i { color:#a6e6db; font-size:10px; font-style:normal; font-weight:800; letter-spacing:.14em; }.hf-configurator__house-type-cards strong { align-self:end; color:#fff; font-size:22px; letter-spacing:-.05em; line-height:1.04; }.hf-configurator__house-type-cards small { min-height:32px; margin-top:9px; color:rgba(255,255,255,.8); font-size:11px; line-height:1.4; }.hf-configurator__house-type-cards label:hover img { transform:scale(1.05); }.hf-configurator__house-type-cards input:checked + span { box-shadow:inset 0 0 0 3px #8ce2cf,0 10px 18px rgba(0,63,53,.18); transform:translateY(-2px); }
.hf-configurator__floor-count { align-content:start; }.hf-configurator__floor-count-control { display:grid; grid-template-columns:46px minmax(70px,1fr) 46px; width:min(100%,230px); margin-top:9px; overflow:hidden; border:1px solid rgba(0,63,53,.2); border-radius:8px; background:#fff; }.hf-configurator__floor-count-control button { border:0; background:#e5f1ed; color:var(--hf-forest); font:inherit; font-size:23px; font-weight:700; cursor:pointer; }.hf-configurator__floor-count-control button:hover,.hf-configurator__floor-count-control button:focus-visible { background:var(--hf-forest); color:#fff; }.hf-configurator__floor-count-control input { min-width:0; height:46px; border:0; border-right:1px solid rgba(0,63,53,.15); border-left:1px solid rgba(0,63,53,.15); border-radius:0; color:var(--hf-forest); font:800 18px/1 inherit; text-align:center; appearance:textfield; }.hf-configurator__floor-count-control input::-webkit-inner-spin-button,.hf-configurator__floor-count-control input::-webkit-outer-spin-button { margin:0; appearance:none; }.hf-configurator__floor-count small { margin-top:7px; color:var(--hf-muted); font-size:11px; font-weight:600; }
.hf-configurator__extras { display:grid; gap:20px; }.hf-configurator__extras label { cursor:pointer; }.hf-configurator__extras span { display:block; color:var(--hf-forest); }.hf-configurator__extras input:checked + span { border-color:var(--hf-forest); box-shadow:inset 0 0 0 2px var(--hf-forest); }
.hf-configurator__option-group { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:10px; width:100%; padding:16px 0 0; border-top:1px solid rgba(0,63,53,.1); }.hf-configurator__option-group[hidden] { display:none !important; }.hf-configurator__option-group>strong { grid-column:1/-1; display:flex; justify-content:space-between; color:var(--hf-forest); font-size:14px; }.hf-configurator__option-group>strong small { color:var(--hf-muted); font-size:11px; font-weight:600; }
.hf-configurator__extra-option { min-width:0; }.hf-configurator__extra-option span { display:grid; min-height:146px; overflow:hidden; border:1px solid rgba(0,63,53,.16); border-radius:10px; background:#fff; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }.hf-configurator__extra-option:hover span { transform:translateY(-2px); }.hf-configurator__extra-option img,.hf-configurator__extra-option i { display:block; width:100%; height:88px; background-position:center; background-repeat:no-repeat; background-size:cover; object-fit:cover; }.hf-configurator__extra-option--foundation i { background-image:url('../images/configurator/foundation.png'); }.hf-configurator__extra-option--roof i { background-image:url('../images/configurator/roof.png'); }.hf-configurator__extra-option--floor i { background-image:url('../images/configurator/floor.png'); }.hf-configurator__extra-option--door i { background-image:url('../images/configurator/door.png'); }.hf-configurator__extra-option--facade i { background-image:url('../images/configurator/facade.png'); }.hf-configurator__extra-option--addition i { background-image:url('../images/configurator/facade.png'); filter:saturate(.8); }.hf-configurator__extra-option b { padding:10px 10px 0; font-size:12px; line-height:1.25; }.hf-configurator__extra-option small { padding:5px 10px 10px; color:var(--hf-teal); font-size:11px; font-weight:800; }
.hf-configurator__summary { grid-area:summary; align-self:start; height:max-content; padding:clamp(25px,3vw,38px); border-radius:15px; background:var(--hf-forest); color:#fff; box-shadow:0 22px 48px rgba(0,50,43,.2); }.hf-configurator__summary>p { margin:0; color:rgba(255,255,255,.7); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.hf-configurator__summary>strong { display:block; margin-top:8px; font-size:clamp(37px,4vw,54px); letter-spacing:-.06em; line-height:1; }.hf-configurator__summary>span { display:block; margin-top:7px; color:rgba(255,255,255,.65); font-size:12px; }.hf-configurator__summary dl { margin:31px 0 26px; border-top:1px solid rgba(255,255,255,.18); }.hf-configurator__summary dl div { display:flex; justify-content:space-between; gap:13px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.18); font-size:13px; }.hf-configurator__summary dt { color:rgba(255,255,255,.66); }.hf-configurator__summary dd { margin:0; font-weight:700; text-align:right; }.hf-configurator__summary .hf-button { width:100%; justify-content:center; }.hf-configurator__summary small { display:block; margin-top:18px; color:rgba(255,255,255,.62); font-size:11px; line-height:1.5; } @media (min-width:861px) { .hf-configurator__summary { position:sticky; top:96px; } }
.hf-configurator__mobile-price { display:none; }
.hf-portfolio-page { background:#f5f8f6; }
.hf-portfolio-page__hero { padding:clamp(62px,9vw,122px) 0 clamp(38px,6vw,72px); background:linear-gradient(135deg,#003f36,#007f70); color:#fff; text-align:center; }
.hf-portfolio-page__hero .hf-shell { max-width:900px; }
.hf-portfolio-page__hero .hf-section-kicker { justify-content:center; width:max-content; margin:0 auto 16px; color:#8ce2cf; }
.hf-portfolio-page__hero .hf-section-kicker::before { background:#8ce2cf; }
.hf-portfolio-page__hero h1 { margin:0; color:#fff; font-size:clamp(40px,6vw,76px); line-height:.96; letter-spacing:-.065em; }
.hf-portfolio-page__hero p:last-child { max-width:580px; margin:20px auto 0; color:rgba(255,255,255,.8); font-size:17px; line-height:1.5; }
.hf-portfolio-page__gallery { padding:clamp(18px,3vw,46px); }
.hf-portfolio-page__tabs { display:flex; width:fit-content; gap:6px; margin:0 auto clamp(22px,3vw,34px); padding:5px; border:1px solid rgba(0,63,53,.15); border-radius:999px; background:#fffdf9; box-shadow:0 8px 18px rgba(0,50,43,.06); }
.hf-portfolio-page__tabs button { min-width:96px; padding:11px 19px; border:0; border-radius:999px; background:transparent; color:#49635c; cursor:pointer; font:800 13px/1 inherit; letter-spacing:.07em; transition:background .2s ease,color .2s ease,transform .2s ease; }
.hf-portfolio-page__tabs button[aria-selected="true"] { background:#005447; color:#fff; box-shadow:0 5px 11px rgba(0,63,53,.2); }
.hf-portfolio-page__tabs button:hover { transform:translateY(-1px); }
.hf-portfolio-projects-panel[hidden] { display:none; }
.hf-portfolio-page__technology-empty { max-width:1180px; margin:0 auto; padding:50px 28px; border:1px dashed rgba(0,63,53,.24); border-radius:18px; background:#fffdf9; color:#587069; text-align:center; }
.hf-portfolio-projects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,2vw,25px); max-width:1280px; margin:auto; }.hf-portfolio-project-card { display:flex; overflow:hidden; border:1px solid rgba(0,63,53,.13); border-radius:18px; background:#fffdf9; box-shadow:0 14px 32px rgba(0,55,47,.08); color:var(--hf-forest); flex-direction:column; }.hf-portfolio-project-card.is-featured { grid-column:1 / -1; display:grid; min-height:490px; grid-template-columns:1.35fr 1fr; }.hf-portfolio-project-card__image { display:block; min-height:235px; overflow:hidden; background:#0b302b; }.hf-portfolio-project-card__image img { display:block; width:100%; height:100%; min-height:235px; object-fit:cover; transition:transform .5s ease; }.hf-portfolio-project-card__image > span { display:grid; min-height:235px; place-items:center; color:#d9e7e2; font-size:13px; }.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__image,.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__image img { min-height:100%; }.hf-portfolio-project-card__body { display:flex; padding:25px; flex:1; flex-direction:column; align-items:flex-start; }.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__body { justify-content:center; padding:clamp(30px,5vw,64px); }.hf-portfolio-project-card__body p { margin:0; color:#168b7b; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hf-portfolio-project-card__body h2 { margin:13px 0 12px; color:var(--hf-forest); font-size:clamp(25px,2.4vw,37px); letter-spacing:-.055em; line-height:1.02; }.hf-portfolio-project-card__body h2 a { color:inherit; text-decoration:none; }.hf-portfolio-project-card__body > span { color:var(--hf-muted); font-size:14px; line-height:1.6; }.hf-portfolio-project-card__area { display:inline-flex; margin-top:18px; padding:9px 12px; border-radius:7px; background:#e5f3ef; color:#005447; font-size:13px; font-weight:800; letter-spacing:-.02em; }.hf-portfolio-project-card__area::before { margin-right:7px; color:#168b7b; content:'Площ'; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }.hf-portfolio-project-card__link { display:inline-flex; align-items:center; gap:9px; margin-top:auto; padding-top:24px; color:#00695a; font-size:11px; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }.hf-portfolio-project-card__link b { color:#168b7b; font-size:19px; font-weight:400; }.hf-portfolio-project-card:hover .hf-portfolio-project-card__image img { transform:scale(1.05); }

/* Portfolio overview: equal two-column cards, independent of image orientation. */
.hf-portfolio-project-card__area { align-items: center; }
.hf-portfolio-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1180px; }
.hf-portfolio-project-card,
.hf-portfolio-project-card.is-featured { min-height: 0; grid-column: auto; display: flex; grid-template-columns: none; flex-direction: column; }
.hf-portfolio-project-card__image,
.hf-portfolio-project-card__image img { height: 260px; min-height: 0; flex: 0 0 260px; }
.hf-portfolio-project-card__image > span { min-height: 260px; }
.hf-portfolio-project-card__body,
.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__body { min-height: 228px; padding: 27px; justify-content: flex-start; }
@media (max-width: 600px) { .hf-portfolio-projects { grid-template-columns: 1fr; } .hf-portfolio-project-card__image, .hf-portfolio-project-card__image img { height: 230px; } .hf-portfolio-project-card__image > span { min-height: 230px; } }
.hf-portfolio-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-flow:dense; gap:clamp(8px,1.2vw,18px); max-width:1800px; margin:auto; }
.hf-portfolio-grid__item { position:relative; display:block; min-height:270px; overflow:hidden; background:#0b302b; cursor:zoom-in; }
.hf-portfolio-grid__item:nth-child(6n+1),.hf-portfolio-grid__item:nth-child(6n+4) { grid-column:span 2; grid-row:span 2; min-height:560px; }
.hf-portfolio-grid__item img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease; }
.hf-portfolio-grid__item::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(0,42,35,.65)); content:''; opacity:0; transition:opacity .25s ease; }
.hf-portfolio-grid__item span { position:absolute; z-index:1; right:18px; bottom:15px; color:#fff; font-size:11px; font-weight:800; letter-spacing:.08em; opacity:0; text-transform:uppercase; transform:translateY(7px); transition:opacity .25s ease,transform .25s ease; }
.hf-portfolio-grid__item:hover img { transform:scale(1.06); filter:brightness(.82); }
.hf-portfolio-grid__item:hover::after,.hf-portfolio-grid__item:hover span { opacity:1; }
.hf-portfolio-grid__item:hover span { transform:none; }
.hf-portfolio-page__empty { max-width:680px; margin:50px auto; padding:36px; border:1px dashed rgba(0,63,53,.3); border-radius:16px; color:#416058; text-align:center; }
.hf-portfolio-lightbox { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:55px 20px; background:rgba(0,38,32,.94); opacity:0; pointer-events:none; transition:opacity .28s ease; }
.hf-portfolio-lightbox.is-open { opacity:1; pointer-events:auto; }
.hf-portfolio-lightbox img { max-width:92vw; max-height:80vh; box-shadow:0 24px 70px rgba(0,0,0,.4); transform:scale(.96); transition:transform .3s ease; }
.hf-portfolio-lightbox.is-open img { transform:scale(1); }
.hf-portfolio-lightbox button { position:absolute; top:18px; right:22px; width:44px; height:44px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:none; color:#fff; cursor:pointer; font-size:30px; }
.hf-portfolio-lightbox p { position:absolute; bottom:18px; margin:0; color:#fff; font-size:14px; font-weight:700; }
@media (max-width:850px) { .hf-portfolio-projects { grid-template-columns:repeat(2,minmax(0,1fr)); } .hf-portfolio-project-card.is-featured { min-height:0; grid-template-columns:1fr; } .hf-portfolio-project-card.is-featured .hf-portfolio-project-card__image,.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__image img { min-height:300px; } .hf-portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .hf-portfolio-grid__item { min-height:210px; } .hf-portfolio-grid__item:nth-child(6n+1),.hf-portfolio-grid__item:nth-child(6n+4) { min-height:430px; } }
@media (max-width:520px) { .hf-portfolio-page__gallery { padding:8px; } .hf-portfolio-projects,.hf-portfolio-grid { grid-template-columns:1fr; } .hf-portfolio-project-card__body,.hf-portfolio-project-card.is-featured .hf-portfolio-project-card__body { padding:24px; } .hf-portfolio-grid__item,.hf-portfolio-grid__item:nth-child(6n+1),.hf-portfolio-grid__item:nth-child(6n+4) { grid-column:auto; grid-row:auto; min-height:310px; } .hf-portfolio-page__hero { padding-top:55px; } }
.hf-configurator__steps { display:none; }
.hf-configurator__layout { grid-template-areas:'form summary'; }
@media (max-width:860px) { .hf-configurator__layout { grid-template-areas:'form' 'summary'; } }
@media (max-width:860px) { .hf-configurator__layout { grid-template-columns:1fr; grid-template-areas:'steps' 'form' 'summary'; }.hf-configurator__summary { position:static; }.hf-configurator__choices--three { grid-template-columns:1fr; }.hf-configurator__package ul { grid-template-columns:1fr; } } @media (max-width:540px) { .hf-configurator__form fieldset { padding:18px; }.hf-configurator__steps { gap:4px; padding:5px; }.hf-configurator__steps button { gap:4px; min-height:44px; }.hf-configurator__steps button b { font-size:11px; }.hf-configurator__steps button span { display:none; }.hf-configurator__actions { position:sticky; bottom:10px; z-index:10; grid-template-columns:88px minmax(0,1fr); gap:8px; padding:10px; border:1px solid rgba(0,63,53,.11); border-radius:13px; background:rgba(255,253,249,.94); box-shadow:0 8px 24px rgba(0,49,42,.11); backdrop-filter:blur(10px); }.hf-configurator__actions .hf-button,.hf-configurator__back { min-height:50px; padding:0 10px; border-radius:8px; font-size:12px; }.hf-configurator__choices,.hf-configurator__fields { grid-template-columns:1fr; }.hf-configurator__option-group { grid-template-columns:repeat(2,minmax(0,1fr)); }.hf-configurator__hero h1 { font-size:38px; }.hf-configurator__summary { padding:25px; }.hf-configurator__mobile-price { position:fixed; z-index:80; top:var(--hf-mobile-bubble-top,76px); right:14px; display:grid; gap:2px; min-width:108px; padding:9px 15px 10px; border:1px solid rgba(255,255,255,.36); border-radius:14px; background:linear-gradient(135deg,#006758,#003f36); color:#fff; box-shadow:0 12px 28px rgba(0,49,42,.28); font:inherit; text-align:left; transition:top .22s ease,opacity .22s ease,transform .22s ease; }.hf-configurator__mobile-price span { color:rgba(255,255,255,.67); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.hf-configurator__mobile-price strong { font-size:15px; line-height:1.1; letter-spacing:-.02em; }.hf-configurator__mobile-price.is-hidden { pointer-events:none; opacity:0; transform:translateY(-10px); } }

/* Metal houses catalogue */
.hf-metal-houses-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(48px, 6vw, 78px) 0 clamp(38px, 4vw, 54px);
    background: radial-gradient(circle at 84% 18%, rgba(109, 209, 191, .35), transparent 25%), linear-gradient(125deg, #002e28 0%, #005348 59%, #007a6a 100%);
    color: var(--hf-white);
    text-align: center;
}

.hf-metal-houses-hero > .hf-shell {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hf-metal-houses-hero--video { min-height: clamp(560px, 54vw, 760px); padding: 0; background: #003f35; text-align: left; }
.hf-metal-houses-hero--video::before { z-index: 1; inset: 0; width: auto; height: auto; border: 0; border-radius: 0; background: linear-gradient(90deg, rgba(0, 34, 29, .88) 0%, rgba(0, 44, 38, .64) 43%, rgba(0, 37, 31, .2) 78%, rgba(0, 37, 31, .1) 100%); box-shadow: none; }
.hf-metal-houses-hero__video { position: absolute; z-index: 0; inset: 0; overflow: hidden; background: #003f35; }
.hf-metal-houses-hero__video iframe, .hf-metal-houses-hero__video video { position: absolute; top: 50%; left: 50%; width: max(100%, 177.78vh); height: max(100%, 56.25vw); border: 0; object-fit: cover; transform: translate(-50%, -50%); }
.hf-metal-houses-hero__video iframe { pointer-events: none; }
.hf-metal-houses-hero--video > .hf-shell { position: relative; z-index: 2; min-height: inherit; align-items: flex-start; justify-content: flex-end; padding-top: clamp(90px, 10vw, 150px); padding-bottom: clamp(42px, 5vw, 78px); }
.hf-metal-houses-hero--video .hf-section-kicker { margin: 0 0 16px; }
.hf-metal-houses-hero--video h1 { max-width: 790px; margin: 0; }
.hf-metal-houses-hero--video > .hf-shell > p:last-child { max-width: 680px; margin: 15px 0 0; }
.hf-metal-houses-hero--video .hf-metal-houses-hero__proof { max-width: 690px; margin: clamp(22px, 3vw, 32px) 0 0; }

.hf-metal-houses-hero::before { position: absolute; top: -280px; right: -50px; width: 550px; height: 550px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; box-shadow: 0 0 0 54px rgba(255,255,255,.035), 0 0 0 108px rgba(255,255,255,.02); content: ""; }

.hf-metal-houses-hero .hf-section-kicker {
    justify-content: center;
    width: max-content;
    margin: 0 auto 18px;
    padding: 10px 18px;
    border: 1px solid rgba(220, 255, 248, .8);
    border-radius: 999px;
    background: rgba(0, 39, 33, .48);
    box-shadow: 0 8px 24px rgba(0, 20, 17, .18);
    color: var(--hf-white) !important;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .14em;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .22);
}

.hf-metal-houses-hero .hf-section-kicker::before {
    width: 20px;
    flex-basis: 20px;
    background: var(--hf-white);
}

.hf-metal-houses-hero h1 {
    max-width: 960px;
    margin: 0 auto;
    color: inherit;
    font-size: clamp(34px, 4.2vw, 58px);
    font-weight: 800;
    letter-spacing: -.06em;
    line-height: 1;
}

.hf-metal-houses-hero > .hf-shell > p:last-child {
    max-width: 710px;
    margin: 15px auto 0;
    color: rgba(255, 255, 255, .81);
    font-size: clamp(16px, 1.65vw, 20px);
    line-height: 1.55;
}

.hf-metal-houses-hero__proof { display: flex; max-width: 780px; margin: clamp(24px, 3vw, 34px) auto 0; justify-content: center; gap: 0; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.hf-metal-houses-hero__proof span { display: grid; flex: 1; gap: 4px; padding: 13px 16px; text-align: center; }
.hf-metal-houses-hero__proof span + span { border-left: 1px solid rgba(255,255,255,.2); }
.hf-metal-houses-hero__proof strong { color: #fff; font-size: 13px; font-weight: 800; letter-spacing: -.02em; }
.hf-metal-houses-hero__proof em { color: rgba(255,255,255,.66); font-size: 11px; font-style: normal; line-height: 1.35; }

/* Keep video hero copy compact and readable over moving footage. */
.hf-metal-houses-hero--video > .hf-shell { align-items: flex-start; justify-content: flex-end; }
.hf-metal-houses-hero--video .hf-section-kicker { margin-right: 0; margin-left: 0; }
.hf-metal-houses-hero--video h1 { max-width: 680px; margin: 0; font-size: clamp(30px, 3.1vw, 48px); line-height: 1.06; text-align: left; text-shadow: 0 3px 16px rgba(0, 0, 0, .55); }
.hf-metal-houses-hero--video > .hf-shell > p:last-child { max-width: 620px; margin: 13px 0 0; font-size: clamp(14px, 1.2vw, 17px); text-align: left; text-shadow: 0 2px 12px rgba(0, 0, 0, .62); }
.hf-metal-houses-hero--video .hf-metal-houses-hero__proof { display: none; }

.hf-metal-houses-list {
    padding: clamp(42px, 5vw, 68px) 0 clamp(48px, 6vw, 82px);
    background: linear-gradient(145deg, #faf7f1, #eff6f3);
}

.hf-technology-landing-more { padding: clamp(48px, 7vw, 88px) 0; background: #003f35; }
.hf-technology-landing-more__inner { display: flex; align-items: center; justify-content: space-between; gap: 34px; max-width: 1040px; }
.hf-technology-landing-more .hf-section-kicker { color: #9ee4d7; }
.hf-technology-landing-more .hf-section-kicker::before { background: #9ee4d7; }
.hf-technology-landing-more h2 { max-width: 650px; margin: 0; color: #fff; font-size: clamp(29px, 3.6vw, 47px); font-weight: 800; letter-spacing: -.06em; line-height: 1.05; }
.hf-technology-landing-more p:last-child { max-width: 650px; margin: 16px 0 0; color: rgba(255, 255, 255, .78); line-height: 1.6; }
.hf-technology-landing-more .hf-button { flex: 0 0 auto; background: #9ee4d7; color: #003f35; }
.hf-technology-landing-more .hf-button:hover { background: #fff; }

.hf-metal-houses-list__heading { max-width: 680px; margin: 0 auto clamp(24px, 3vw, 34px); text-align: center; }
.hf-metal-houses-list__heading .hf-section-kicker { justify-content: center; }
.hf-metal-houses-list__heading h2 { margin: 0; color: var(--hf-forest); font-size: clamp(28px, 3.2vw, 43px); font-weight: 800; letter-spacing: -.06em; line-height: 1.02; }
.hf-metal-houses-list__heading > p:last-child { margin: 12px auto 0; color: var(--hf-muted); font-size: 14px; line-height: 1.52; }

.hf-metal-houses-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12px, 1.5vw, 20px);
}

.hf-metal-houses-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hf-inner-page--sip-houses .hf-metal-houses-hero {
    background: radial-gradient(circle at 84% 18%, rgba(225, 189, 121, .26), transparent 25%), linear-gradient(125deg, #123f37 0%, #216456 59%, #547c58 100%);
}

.hf-inner-page--sip-houses .hf-metal-house-card--family img { object-position: 46% 49%; }
.hf-inner-page--sip-houses .hf-metal-house-card--hotel img { object-position: 70% 52%; filter: saturate(.83) brightness(.94); }
.hf-inner-page--sip-houses .hf-metal-house-card--mobile img { object-position: 28% 56%; filter: saturate(.74) brightness(1.02); }

.hf-metal-house-card {
    position: relative;
    display: grid;
    min-height: clamp(300px, 27vw, 390px);
    overflow: hidden;
    border-radius: 14px;
    background: var(--hf-forest);
    box-shadow: 0 18px 42px rgba(2, 47, 40, .12);
    color: var(--hf-white);
    isolation: isolate;
    text-decoration: none;
    transition: box-shadow .3s ease, transform .3s ease;
}

.hf-metal-house-card:hover {
    box-shadow: 0 26px 54px rgba(2, 47, 40, .2);
    transform: translateY(-5px);
}

.hf-metal-house-card img {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}

.hf-metal-house-card::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(0, 31, 26, .05) 15%, rgba(0, 40, 34, .24) 45%, rgba(0, 42, 36, .94) 100%); content: ""; }

.hf-metal-house-card:hover img {
    transform: scale(1.045);
}

.hf-metal-house-card--family img {
    object-position: 48% 46%;
}

.hf-metal-house-card--hotel img {
    object-position: 73% 49%;
    filter: saturate(.82) contrast(1.04);
}

.hf-metal-house-card--mobile img {
    object-position: 29% 58%;
    filter: saturate(.7) brightness(1.08);
}

.hf-metal-house-card--wheels img {
    object-position: 84% 59%;
    filter: sepia(.16) saturate(1.15);
}

.hf-metal-house-card__body {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: clamp(18px, 2vw, 27px);
}

.hf-metal-house-card h2 {
    margin: 0;
    color: inherit;
    font-size: clamp(21px, 2vw, 30px);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.13;
}

.hf-metal-house-card__number { display: grid; width: 33px; height: 33px; margin-bottom: auto; place-items: center; border: 1px solid rgba(255,255,255,.56); border-radius: 50%; color: var(--hf-white); font-size: 9px; font-weight: 800; letter-spacing: .08em; }

.hf-metal-house-card p {
    margin: 11px 0 0;
    max-width: 250px;
    color: rgba(255,255,255,.82);
    font-size: 13px;
    line-height: 1.45;
}

.hf-metal-house-card__link {
    display: inline-flex;
    margin-top: 15px;
    align-items: center;
    gap: 10px;
    color: #bdece4;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    transition: color .2s ease, gap .2s ease;
}

.hf-metal-house-card:hover .hf-metal-house-card__link { gap: 15px; color: var(--hf-white); }

.hf-metal-house-card__link b {
    font-size: 18px;
    font-weight: 400;
}

@media (max-width: 1000px) {
    .hf-metal-houses-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hf-metal-houses-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hf-metal-house-card { min-height: min(52vw, 410px); }
}

@media (max-width: 540px) {
    .hf-metal-houses-hero {
        text-align: center;
    }

    .hf-metal-houses-hero .hf-section-kicker {
        justify-content: center;
        margin-right: auto;
        margin-left: auto;
    }

    .hf-metal-houses-hero h1 {
        margin: 0 auto;
    }

    .hf-metal-houses-hero > .hf-shell > p:last-child {
        margin-right: auto;
        margin-left: auto;
    }

    .hf-metal-houses-hero--video { min-height: 600px; text-align: left; }
    .hf-metal-houses-hero--video::before { background: linear-gradient(0deg, rgba(0, 31, 27, .92) 0%, rgba(0, 43, 37, .62) 58%, rgba(0, 39, 34, .24) 100%); }
    .hf-metal-houses-hero--video > .hf-shell { align-items: flex-start; padding-right: 24px; padding-left: 24px; }
    .hf-metal-houses-hero--video .hf-section-kicker,
    .hf-metal-houses-hero--video h1,
    .hf-metal-houses-hero--video > .hf-shell > p:last-child { margin-right: 0; margin-left: 0; }
    .hf-metal-houses-hero--video h1 { font-size: clamp(34px, 10.4vw, 46px); }
    .hf-metal-houses-hero--video .hf-metal-houses-hero__proof { width: 100%; margin-left: 0; }

    .hf-metal-houses-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .hf-metal-houses-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .hf-metal-houses-hero__proof { display: grid; grid-template-columns: 1fr; text-align: center; }
    .hf-metal-houses-hero__proof span + span { border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }

    .hf-metal-houses-list { padding: 38px 0 48px; }
    .hf-technology-landing-more__inner { align-items: flex-start; flex-direction: column; }
    .hf-metal-houses-list__heading { margin-bottom: 24px; text-align: left; }
    .hf-metal-houses-list__heading .hf-section-kicker { justify-content: flex-start; }
    .hf-metal-houses-list__heading h2 { font-size: 30px; }
    .hf-metal-houses-list__heading > p:last-child { margin-left: 0; }
    .hf-metal-house-card { min-height: 280px; max-height: none; border-radius: 12px; }
    .hf-metal-house-card__body { padding: 16px; }
    .hf-metal-house-card h2 { font-size: 20px; }
    .hf-metal-house-card p { display: none; }
    .hf-metal-house-card__link { margin-top: 9px; font-size: 9px; }
}

/* Contacts page */
.hf-inner-page--contacts {
    display: flex;
    flex-direction: column;
}

.hf-contacts-hero {
    padding: clamp(54px, 8vw, 110px) 0 clamp(40px, 6vw, 82px);
    background: #f7f5f0;
}

.hf-contacts-hero__intro {
    max-width: 610px;
}

.hf-contacts-hero__intro h1 {
    margin: 0;
    color: var(--hf-forest);
    font-size: clamp(46px, 6vw, 82px);
    font-weight: 800;
    letter-spacing: -.06em;
    line-height: .94;
    text-transform: uppercase;
}

.hf-contacts-hero__intro > p:last-child {
    max-width: 500px;
    margin: 18px 0 0;
    color: var(--hf-muted);
    font-size: 17px;
    line-height: 1.6;
}

.hf-contact-card {
    position: relative;
    overflow: hidden;
    display: grid;
    min-height: 348px;
    margin-top: clamp(34px, 5vw, 70px);
    padding: clamp(30px, 4.7vw, 60px);
    border-radius: 0 24px 24px 24px;
    grid-template-columns: 1fr auto;
    grid-template-rows: 1fr auto;
    gap: 28px;
    background: radial-gradient(circle at 84% 8%, rgba(57, 153, 139, .24), transparent 28%), linear-gradient(135deg, #1b2321 0%, #212024 52%, #17191b 100%);
    color: #f6f4ef;
    box-shadow: 0 24px 52px rgba(9, 35, 31, .18);
}

.hf-contact-card::before,
.hf-contact-card::after {
    position: absolute;
    border: 1px solid rgba(137, 222, 210, .18);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.hf-contact-card::before {
    top: -174px;
    right: -116px;
    width: 390px;
    height: 390px;
}

.hf-contact-card::after {
    right: 74px;
    bottom: -214px;
    width: 338px;
    height: 338px;
    border-color: rgba(255, 255, 255, .06);
}

.hf-contact-card__address,
.hf-contact-card__socials,
.hf-contact-card__details {
    position: relative;
    z-index: 1;
}

.hf-contact-card__label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 25px;
    color: #8edfd3;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.hf-contact-card__label::before {
    width: 26px;
    height: 1px;
    background: currentColor;
    content: "";
}

.hf-contact-card address {
    font-style: normal;
    color: rgba(255, 255, 255, .88);
    font-size: clamp(24px, 2.7vw, 36px);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1.3;
}

.hf-contact-card__map {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 26px;
    color: #8edfd3;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
}

.hf-contact-card__map span {
    font-size: 17px;
    line-height: .7;
    transition: transform .2s ease;
}

.hf-contact-card__map:hover span {
    transform: translate(3px, -3px);
}

.hf-contact-card__socials {
    display: flex;
    align-items: center;
    align-self: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    max-width: 200px;
}

.hf-contact-card__socials p {
    width: 100%;
    margin: 0 0 2px;
    color: rgba(255, 255, 255, .58);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-align: right;
    text-transform: uppercase;
}

.hf-contact-card__socials span {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.hf-contact-card__socials span:hover {
    border-color: #8edfd3;
    background: rgba(142, 223, 211, .2);
    transform: translateY(-3px);
}

.hf-contact-card__socials span:first-child {
    font-size: 15px;
    text-transform: uppercase;
}

.hf-contact-card__details {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    gap: 28px;
    padding-top: 23px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.hf-contact-card__details > div {
    display: grid;
    gap: 8px;
}

.hf-contact-card__details > div:last-child {
    text-align: right;
}

.hf-contact-card__details span {
    color: rgba(255, 255, 255, .55);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.hf-contact-card__details a {
    color: #fff;
    font-size: clamp(21px, 2.2vw, 31px);
    letter-spacing: -.03em;
    text-decoration: none;
    transition: color .2s ease;
}

.hf-contact-card__details a:hover {
    color: #7cddd0;
}

.hf-contact-form-section {
    order: -1;
    padding-top: clamp(58px, 8vw, 112px);
    padding-bottom: clamp(70px, 9vw, 128px);
}

.hf-contact-form-layout {
    display: grid;
    align-items: start;
    grid-template-columns: minmax(0, .76fr) minmax(0, 1fr);
    gap: clamp(36px, 7vw, 118px);
}

.hf-contact-form-copy {
    max-width: 420px;
}

.hf-contact-form-copy h2 {
    margin: 0;
    color: var(--hf-forest);
    font-size: clamp(32px, 4vw, 55px);
    font-weight: 800;
    letter-spacing: -.055em;
    line-height: 1.02;
}

.hf-contact-form-copy > p:last-child {
    margin: 20px 0 0;
    color: var(--hf-muted);
    font-size: 16px;
    line-height: 1.65;
}

.hf-contact-form {
    display: grid;
    gap: 19px;
    padding: clamp(24px, 3.4vw, 46px);
    border: 1px solid rgba(0, 63, 53, .12);
    border-radius: 18px;
    background: #fffdf9;
    box-shadow: 0 18px 54px rgba(0, 50, 43, .08);
}

.hf-contact-form.is-success { min-height:220px; place-content:center; }
.hf-contact-form.is-success > :not(.hf-form-message--success) { display:none; }
.hf-contact-form.is-success .hf-form-message--success { display:grid; max-width:500px; margin:0; justify-items:center; gap:9px; padding:32px 38px; border:1px solid rgba(0,120,107,.18); border-radius:16px; background:#f1faf7; color:var(--hf-forest); text-align:center; box-shadow:0 14px 32px rgba(0,63,53,.08); }.hf-form-message__icon { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--hf-teal); color:#fff; font-size:24px; font-weight:800; }.hf-form-message--success strong { font-size:20px; letter-spacing:-.025em; }.hf-form-message--success span:last-child { color:var(--hf-muted); font-size:14px; line-height:1.5; }
.hf-contact-form-layout:has(.hf-contact-form.is-success) { grid-template-columns:1fr; }.hf-contact-form-layout:has(.hf-contact-form.is-success) .hf-contact-form-copy { display:none; }

.hf-contact-form label {
    display: grid;
    gap: 8px;
    color: var(--hf-forest);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .025em;
}

.hf-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.hf-contact-form input:not([type="checkbox"]),
.hf-contact-form textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid rgba(0, 63, 53, .2);
    border-radius: 7px;
    outline: 0;
    padding: 13px 14px;
    background: #fff;
    color: var(--hf-ink);
    font: inherit;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.hf-contact-configuration { position:relative; margin:22px 0; overflow:hidden; border:1px solid rgba(0,63,53,.16); border-radius:10px; background:#f4faf7; }.hf-contact-configuration p { margin:0; padding:11px 16px; background:var(--hf-forest); color:#fff; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.hf-contact-configuration div { padding:15px 16px; color:var(--hf-forest); font-size:14px; font-weight:600; line-height:1.6; }.hf-contact-configuration__edit { position:absolute; top:7px; right:10px; display:grid; width:28px; height:28px; place-items:center; border-radius:50%; color:#fff; font-size:19px; font-weight:800; text-decoration:none; }.hf-contact-configuration__edit:hover { background:rgba(255,255,255,.16); }

.hf-contact-form textarea {
    min-height: 128px;
    resize: vertical;
}

.hf-contact-form__comment { width:100%; }
.hf-contact-form__comment textarea { min-height:78px; }
.hf-contact-form__plot { margin: 0; padding: 0; border: 0; }
.hf-contact-form__plot legend { margin: 0 0 10px; padding: 0; color: var(--hf-forest); font-size: 12px; font-weight: 800; letter-spacing: .025em; }
.hf-contact-form__plot legend span { color: var(--hf-teal); }
.hf-contact-form__plot-options { display: flex; gap: 9px; }
.hf-contact-form__plot-options label { display: block; }
.hf-contact-form__plot-options input { position: absolute; opacity: 0; pointer-events: none; }
.hf-contact-form__plot-options span { display: inline-flex; min-width: 74px; min-height: 42px; align-items: center; justify-content: center; padding: 0 17px; border: 1px solid rgba(0, 63, 53, .2); border-radius: 7px; background: #fff; color: var(--hf-forest); cursor: pointer; font-size: 13px; font-weight: 800; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.hf-contact-form__plot-options label:hover span { border-color: var(--hf-teal); transform: translateY(-1px); }
.hf-contact-form__plot-options input:checked + span { border-color: var(--hf-teal); background: var(--hf-teal); color: #fff; }
.hf-contact-form__plot-options input:focus-visible + span { outline: 3px solid rgba(18, 134, 119, .22); outline-offset: 2px; }

.hf-contact-form input:focus,
.hf-contact-form textarea:focus {
    border-color: var(--hf-teal);
    box-shadow: 0 0 0 3px rgba(18, 134, 119, .14);
}

.hf-contact-form__consent {
    grid-template-columns: auto 1fr;
    align-items: start;
    color: var(--hf-muted) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.45;
}

.hf-contact-form__consent input {
    width: 16px;
    height: 16px;
    margin: 1px 0 0;
    accent-color: var(--hf-teal);
}

.hf-contact-form .hf-button {
    justify-self: start;
    border: 0;
    background: var(--hf-teal);
    color: #fff;
    cursor: pointer;
}

.hf-contact-form__honeypot {
    position: absolute;
    overflow: hidden;
    width: 1px;
    height: 1px;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.hf-form-message {
    margin: 0;
    padding: 12px 14px;
    border-radius: 7px;
    font-size: 14px;
    line-height: 1.45;
}

.hf-form-message--success {
    background: #e2f4ed;
    color: #075c50;
}

.hf-form-message--error {
    background: #fff0ed;
    color: #9a3122;
}

@media (max-width: 720px) {
    .hf-contact-card {
        min-height: 0;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        border-radius: 0 16px 16px 16px;
    }

    .hf-contact-card__socials {
        align-self: auto;
        justify-content: flex-start;
        max-width: none;
    }

    .hf-contact-card__socials p {
        text-align: left;
    }

    .hf-contact-card__details {
        display: grid;
        grid-column: auto;
        gap: 14px;
    }

    .hf-contact-card__details > div:last-child {
        text-align: left;
    }

    .hf-contact-form-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .hf-contacts-hero__intro > p:last-child {
        font-size: 15px;
    }

    .hf-contact-card address {
        font-size: 24px;
    }

    .hf-contact-card__details a {
        font-size: 20px;
    }

    .hf-contact-form {
        padding: 23px 19px;
    }

    .hf-contact-form__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .hf-contact-form .hf-button {
        width: 100%;
        justify-content: center;
    }
}

.hf-page-shell {
    width: min(1240px, calc(100% - 64px));
    margin: 0 auto;
}

.hf-page a:focus-visible {
    outline: 3px solid rgba(0, 120, 107, .45);
    outline-offset: 4px;
}

.hf-page-button,
.hf-page-cta__button,
.hf-tech-card__link,
.hf-article-card__link,
.hf-certificate-card__link,
.hf-foundation__link {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 21px;
    border: 1px solid var(--hf-forest);
    border-radius: 7px;
    background: var(--hf-forest);
    color: var(--hf-white);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .015em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}

.hf-page-button:hover,
.hf-page-cta__button:hover,
.hf-tech-card__link:hover,
.hf-article-card__link:hover,
.hf-certificate-card__link:hover,
.hf-foundation__link:hover {
    box-shadow: 0 9px 18px rgba(0, 63, 53, .17);
    transform: translateY(-2px);
}

.hf-page-button--light,
.hf-page-cta__button--light {
    border-color: var(--hf-white);
    background: var(--hf-white);
    color: var(--hf-forest);
}

.hf-page-button--outline {
    background: transparent;
    color: var(--hf-forest);
}

.hf-page-button svg,
.hf-page-cta__button svg,
.hf-tech-card__link svg,
.hf-article-card__link svg,
.hf-certificate-card__link svg,
.hf-foundation__link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}

/* Page hero */
.hf-page-hero {
    position: relative;
    min-height: clamp(390px, 39vw, 540px);
    overflow: hidden;
    isolation: isolate;
    background: var(--hf-forest);
    color: var(--hf-white);
}

.hf-page-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 45, 39, .93) 0%, rgba(0, 52, 45, .81) 38%, rgba(0, 47, 41, .18) 74%, rgba(0, 47, 41, .05) 100%);
    content: "";
}

.hf-page-hero--light {
    color: var(--hf-forest);
    background: var(--hf-cream);
}

.hf-page-hero--light::before {
    background: linear-gradient(90deg, rgba(250, 246, 239, .98) 0%, rgba(250, 246, 239, .91) 42%, rgba(250, 246, 239, .24) 76%, rgba(250, 246, 239, .04) 100%);
}

.hf-page-hero__media {
    position: absolute;
    z-index: -2;
    inset: 0;
}

.hf-page-hero__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 42, 35, .05), rgba(0, 42, 35, .22));
    content: "";
}

.hf-page-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hf-page-hero .hf-page-shell {
    display: flex;
    min-height: inherit;
    align-items: center;
}

.hf-page-hero__content {
    width: min(590px, 58%);
    padding: 70px 0;
}

.hf-page-hero__eyebrow,
.hf-section-heading__eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 13px;
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.2;
    text-transform: uppercase;
}

.hf-page-hero__eyebrow::before,
.hf-section-heading__eyebrow::before {
    display: block;
    width: 28px;
    height: 2px;
    flex: 0 0 28px;
    background: currentColor;
    content: "";
}

.hf-page-hero h1 {
    max-width: 720px;
    margin: 0;
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 800;
    letter-spacing: -.06em;
    line-height: .99;
}

.hf-page-hero__lead {
    max-width: 550px;
    margin: 22px 0 0;
    color: inherit;
    font-size: clamp(16px, 1.45vw, 19px);
    line-height: 1.55;
    opacity: .92;
}

.hf-page-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 31px;
}

.hf-page-hero--light .hf-page-button--outline {
    border-color: rgba(0, 63, 53, .32);
}

/* Reusable section shell and headings */
.hf-section {
    padding: clamp(58px, 7vw, 106px) 0;
}

.hf-section--cream {
    background: var(--hf-cream);
}

.hf-section--forest {
    background: radial-gradient(circle at 65% -70%, #0b7463 0%, var(--hf-forest) 48%, var(--hf-forest-deep) 100%);
    color: var(--hf-white);
}

.hf-section--mist {
    background: #f2f7f5;
}

.hf-section--compact {
    padding: clamp(42px, 5vw, 72px) 0;
}

.hf-section-heading {
    display: grid;
    max-width: 780px;
    gap: 13px;
    margin: 0 0 clamp(30px, 4vw, 50px);
}

.hf-section-heading--center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.hf-section-heading--center .hf-section-heading__eyebrow {
    justify-content: center;
}

.hf-section-heading h2 {
    margin: 0;
    color: inherit;
    font-size: clamp(31px, 3.6vw, 51px);
    font-weight: 800;
    letter-spacing: -.052em;
    line-height: 1.04;
}

.hf-section-heading p:not(.hf-section-heading__eyebrow) {
    max-width: 670px;
    margin: 0;
    color: var(--hf-muted);
    font-size: 16px;
    line-height: 1.65;
}

.hf-section--forest .hf-section-heading p:not(.hf-section-heading__eyebrow) {
    color: rgba(255, 255, 255, .82);
}

.hf-section-heading--center p:not(.hf-section-heading__eyebrow) {
    margin-right: auto;
    margin-left: auto;
}

/* Technology links and cards */
.hf-tech-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.hf-tech-card {
    position: relative;
    display: flex;
    min-height: 440px;
    overflow: hidden;
    flex-direction: column;
    justify-content: flex-end;
    border: 1px solid rgba(0, 63, 53, .10);
    border-radius: var(--hf-page-radius);
    background: var(--hf-forest);
    box-shadow: var(--hf-page-shadow-soft);
    color: var(--hf-white);
    isolation: isolate;
}

.hf-tech-card::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 32, 28, .04) 12%, rgba(0, 37, 32, .86) 82%, rgba(0, 37, 32, .97) 100%);
    content: "";
}

.hf-tech-card--sip {
    background: #eee2d1;
    color: var(--hf-forest);
}

.hf-tech-card--sip::after {
    background: linear-gradient(180deg, rgba(255, 252, 247, 0) 11%, rgba(255, 251, 244, .73) 67%, rgba(255, 251, 244, .97) 100%);
}

.hf-tech-card__media {
    position: absolute;
    z-index: -2;
    inset: 0;
}

.hf-tech-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.hf-tech-card:hover .hf-tech-card__media img {
    transform: scale(1.035);
}

.hf-tech-card__body {
    position: relative;
    padding: clamp(28px, 3.1vw, 42px);
}

.hf-tech-card__kicker {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 9px;
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.hf-tech-card__kicker svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.hf-tech-card h3 {
    max-width: 510px;
    margin: 0;
    color: inherit;
    font-size: clamp(28px, 2.8vw, 41px);
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1.05;
}

.hf-tech-card p:not(.hf-tech-card__kicker) {
    max-width: 470px;
    margin: 14px 0 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.55;
    opacity: .9;
}

.hf-tech-card__link {
    margin-top: 23px;
    border-color: currentColor;
    background: transparent;
    color: inherit;
}

.hf-tech-card--sip .hf-tech-card__link {
    border-color: var(--hf-forest);
}

.hf-tech-card__link:hover {
    background: currentColor;
    color: var(--hf-forest);
}

.hf-tech-card--sip .hf-tech-card__link:hover {
    background: var(--hf-forest);
    color: var(--hf-white);
}

/* Article and project cards */
.hf-article-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.hf-article-grid--two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hf-article-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--hf-line);
    border-radius: 16px;
    background: var(--hf-white);
    box-shadow: 0 7px 24px rgba(0, 53, 45, .04);
    transition: box-shadow .25s ease, transform .25s ease;
}

.hf-article-card:hover {
    box-shadow: var(--hf-page-shadow);
    transform: translateY(-4px);
}

.hf-article-card__media {
    position: relative;
    aspect-ratio: 1.55 / 1;
    overflow: hidden;
    background: #dce5e1;
}

.hf-article-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
}

.hf-article-card:hover .hf-article-card__media img {
    transform: scale(1.04);
}

.hf-article-card__tag {
    position: absolute;
    top: 15px;
    left: 15px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: var(--hf-forest);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.hf-article-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 25px;
}

.hf-article-card h3 {
    margin: 0;
    color: var(--hf-ink);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.038em;
    line-height: 1.12;
}

.hf-article-card p {
    margin: 12px 0 0;
    color: var(--hf-muted);
    font-size: 14px;
    line-height: 1.58;
}

.hf-article-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 18px 0 0;
    color: #42615b;
    font-size: 12px;
    font-weight: 700;
}

.hf-article-card__link {
    width: fit-content;
    min-height: 40px;
    margin-top: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--hf-teal);
    box-shadow: none;
}

.hf-article-card__link:hover {
    box-shadow: none;
    color: var(--hf-forest);
}

/* Structured content, material cards and feature lists */
.hf-content-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(34px, 6vw, 88px);
    align-items: start;
}

.hf-content-grid--media {
    align-items: center;
}

.hf-content-grid__media {
    overflow: hidden;
    border-radius: var(--hf-page-radius);
    box-shadow: var(--hf-page-shadow);
}

.hf-content-grid__media img {
    width: 100%;
    aspect-ratio: 1.1 / 1;
    object-fit: cover;
}

.hf-rich-content {
    color: var(--hf-muted);
    font-size: 16px;
    line-height: 1.72;
}

.hf-rich-content > :first-child {
    margin-top: 0;
}

.hf-rich-content > :last-child {
    margin-bottom: 0;
}

.hf-rich-content h2,
.hf-rich-content h3 {
    margin: 0 0 15px;
    color: var(--hf-ink);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.12;
}

.hf-rich-content h2 {
    font-size: clamp(27px, 2.8vw, 40px);
}

.hf-rich-content h3 {
    font-size: 22px;
}

.hf-rich-content p,
.hf-rich-content ul,
.hf-rich-content ol {
    margin: 0 0 18px;
}

.hf-rich-content li + li {
    margin-top: 8px;
}

.hf-key-points {
    display: grid;
    gap: 13px;
    margin: 27px 0 0;
    padding: 0;
    list-style: none;
}

.hf-key-points li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--hf-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}

.hf-key-points li::before {
    display: grid;
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
    margin-top: 1px;
    border: 1.5px solid var(--hf-teal);
    border-radius: 50%;
    color: var(--hf-teal);
    content: "✓";
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    place-items: center;
}

.hf-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.hf-spec-card {
    min-height: 124px;
    padding: 21px;
    border: 1px solid var(--hf-line);
    border-radius: 13px;
    background: var(--hf-white);
}

.hf-spec-card__icon {
    display: grid;
    width: 37px;
    height: 37px;
    margin-bottom: 13px;
    border-radius: 10px;
    background: #e7f2ef;
    color: var(--hf-teal);
    place-items: center;
}

.hf-spec-card__icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.hf-spec-card h3 {
    margin: 0;
    color: var(--hf-ink);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
}

.hf-spec-card p {
    margin: 7px 0 0;
    color: var(--hf-muted);
    font-size: 12px;
    line-height: 1.5;
}

/* Build process */
.hf-process {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--hf-page-radius);
    background: rgba(255, 255, 255, .05);
}

.hf-process__step {
    position: relative;
    min-height: 210px;
    padding: 28px 25px;
}

.hf-process__step + .hf-process__step {
    border-left: 1px solid rgba(255, 255, 255, .16);
}

.hf-process__number {
    display: grid;
    width: 34px;
    height: 34px;
    margin-bottom: 22px;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 50%;
    color: var(--hf-white);
    font-size: 13px;
    font-weight: 800;
    place-items: center;
}

.hf-process__step h3 {
    margin: 0;
    color: var(--hf-white);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.15;
}

.hf-process__step p {
    margin: 10px 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: 13px;
    line-height: 1.52;
}

/* Foundation callout */
.hf-foundation {
    position: relative;
    display: grid;
    overflow: hidden;
    grid-template-columns: minmax(0, 1.08fr) minmax(270px, .92fr);
    border: 1px solid rgba(0, 63, 53, .14);
    border-radius: var(--hf-page-radius);
    background: linear-gradient(135deg, #f8f1e8 0%, #fffdf9 50%, #e5f1ed 100%);
    box-shadow: var(--hf-page-shadow-soft);
}

.hf-foundation::after {
    position: absolute;
    right: -36px;
    bottom: -85px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(0, 120, 107, .16);
    border-radius: 50%;
    content: "";
}

.hf-foundation__content {
    position: relative;
    z-index: 1;
    padding: clamp(31px, 4vw, 54px);
}

.hf-foundation__eyebrow {
    margin: 0 0 10px;
    color: var(--hf-teal);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.hf-foundation h2 {
    max-width: 520px;
    margin: 0;
    color: var(--hf-forest);
    font-size: clamp(28px, 3.1vw, 43px);
    font-weight: 800;
    letter-spacing: -.052em;
    line-height: 1.05;
}

.hf-foundation p:not(.hf-foundation__eyebrow) {
    max-width: 620px;
    margin: 16px 0 0;
    color: var(--hf-muted);
    font-size: 15px;
    line-height: 1.65;
}

.hf-foundation__price {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    margin-top: 25px;
    color: var(--hf-forest);
}

.hf-foundation__price strong {
    font-size: clamp(35px, 4vw, 52px);
    font-weight: 800;
    letter-spacing: -.065em;
    line-height: 1;
}

.hf-foundation__price span {
    font-size: 14px;
    font-weight: 800;
}

.hf-foundation__link {
    margin-top: 23px;
}

.hf-foundation__aside {
    position: relative;
    z-index: 1;
    display: grid;
    padding: clamp(30px, 4vw, 50px);
    align-content: center;
    border-left: 1px solid rgba(0, 63, 53, .12);
    background: rgba(0, 63, 53, .94);
    color: var(--hf-white);
}

.hf-foundation__aside h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.16;
}

.hf-foundation__aside p {
    margin: 13px 0 0;
    color: rgba(255, 255, 255, .81);
    font-size: 13px;
    line-height: 1.58;
}

.hf-foundation__aside ul {
    display: grid;
    gap: 10px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.hf-foundation__aside li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: rgba(255, 255, 255, .92);
    font-size: 13px;
    line-height: 1.4;
}

.hf-foundation__aside li::before {
    color: #71d3c5;
    content: "✓";
    font-weight: 900;
}

/* FAQ */
.hf-faq {
    max-width: 940px;
    margin: 0 auto;
}

.hf-faq__item {
    border-top: 1px solid var(--hf-line);
}

.hf-faq__item:last-child {
    border-bottom: 1px solid var(--hf-line);
}

.hf-faq__item summary {
    position: relative;
    display: flex;
    min-height: 78px;
    align-items: center;
    padding: 19px 48px 19px 0;
    color: var(--hf-ink);
    cursor: pointer;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.3;
    list-style: none;
}

.hf-faq__item summary::-webkit-details-marker {
    display: none;
}

.hf-faq__item summary::after {
    position: absolute;
    top: 50%;
    right: 6px;
    width: 14px;
    height: 14px;
    border-right: 2px solid var(--hf-teal);
    border-bottom: 2px solid var(--hf-teal);
    content: "";
    transform: translateY(-70%) rotate(45deg);
    transition: transform .22s ease;
}

.hf-faq__item[open] summary::after {
    transform: translateY(-28%) rotate(225deg);
}

.hf-faq__answer {
    max-width: 810px;
    padding: 0 48px 26px 0;
    color: var(--hf-muted);
    font-size: 15px;
    line-height: 1.68;
}

.hf-faq__answer > :first-child {
    margin-top: 0;
}

.hf-faq__answer > :last-child {
    margin-bottom: 0;
}

/* Certificates and intentionally empty galleries */
.hf-certificate-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.hf-certificate-card {
    display: flex;
    overflow: hidden;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid var(--hf-line);
    border-radius: 15px;
    background: var(--hf-white);
    box-shadow: 0 6px 20px rgba(0, 48, 41, .04);
}

.hf-certificate-card__preview {
    display: grid;
    min-height: 220px;
    overflow: hidden;
    background: #eef4f1;
    place-items: center;
}

.hf-certificate-card__preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hf-certificate-card__preview svg {
    width: 58px;
    height: 58px;
    color: #7a9690;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
}

.hf-certificate-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 21px;
}

.hf-certificate-card h3 {
    margin: 0;
    color: var(--hf-ink);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.22;
}

.hf-certificate-card p {
    margin: 8px 0 0;
    color: var(--hf-muted);
    font-size: 13px;
    line-height: 1.5;
}

.hf-certificate-card__link {
    align-self: flex-start;
    min-height: 36px;
    margin-top: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--hf-teal);
    box-shadow: none;
}

.hf-certificate-card__link:hover {
    box-shadow: none;
    color: var(--hf-forest);
}

.hf-empty-state {
    display: grid;
    min-height: 270px;
    padding: 38px;
    border: 1px dashed rgba(0, 63, 53, .28);
    border-radius: var(--hf-page-radius);
    background: #f4f8f6;
    text-align: center;
    place-items: center;
}

.hf-empty-state__inner {
    max-width: 520px;
}

.hf-empty-state__icon {
    display: grid;
    width: 58px;
    height: 58px;
    margin: 0 auto 17px;
    border-radius: 50%;
    background: #dceee8;
    color: var(--hf-teal);
    place-items: center;
}

.hf-empty-state__icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.hf-empty-state h2,
.hf-empty-state h3 {
    margin: 0;
    color: var(--hf-forest);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.15;
}

.hf-empty-state p {
    margin: 10px auto 0;
    color: var(--hf-muted);
    font-size: 14px;
    line-height: 1.58;
}

/* Final contact call-to-action */
.hf-page-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(45px, 6vw, 80px);
    border-radius: var(--hf-page-radius);
    background: radial-gradient(circle at 14% 5%, #118879 0%, var(--hf-forest) 43%, var(--hf-forest-deep) 100%);
    color: var(--hf-white);
}

.hf-page-cta::after {
    position: absolute;
    top: -120px;
    right: -100px;
    width: 380px;
    height: 380px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    box-shadow: 0 0 0 48px rgba(255, 255, 255, .035), 0 0 0 96px rgba(255, 255, 255, .025);
    content: "";
}

.hf-page-cta__inner {
    position: relative;
    z-index: 1;
    display: flex;
    max-width: 940px;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.hf-page-cta__content {
    max-width: 600px;
}

.hf-page-cta__eyebrow {
    margin: 0 0 12px;
    color: #9ee1d6;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.hf-page-cta h2 {
    margin: 0;
    color: var(--hf-white);
    font-size: clamp(30px, 3.8vw, 50px);
    font-weight: 800;
    letter-spacing: -.052em;
    line-height: 1.04;
}

.hf-page-cta p:not(.hf-page-cta__eyebrow) {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, .81);
    font-size: 15px;
    line-height: 1.6;
}

.hf-page-cta__actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 11px;
}

.hf-page-cta__button {
    white-space: nowrap;
}

@media (max-width: 960px) {
    .hf-page-shell {
        width: min(100% - 40px, 720px);
    }

    .hf-page-hero {
        min-height: 470px;
    }

    .hf-page-hero__content {
        width: min(650px, 68%);
        padding: 65px 0;
    }

    .hf-tech-grid,
    .hf-article-grid,
    .hf-article-grid--two-columns,
    .hf-certificate-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hf-article-grid > :last-child:nth-child(odd),
    .hf-certificate-grid > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .hf-content-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .hf-content-grid__media {
        max-width: 680px;
    }

    .hf-process {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .hf-process__step:nth-child(4) {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .16);
    }

    .hf-process__step:nth-child(5) {
        border-top: 1px solid rgba(255, 255, 255, .16);
    }

    .hf-foundation {
        grid-template-columns: 1fr;
    }

    .hf-foundation__aside {
        border-top: 1px solid rgba(0, 63, 53, .12);
        border-left: 0;
    }

    .hf-page-cta__inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    .hf-page-shell {
        width: calc(100% - 30px);
    }

    .hf-page-button,
    .hf-page-cta__button,
    .hf-tech-card__link,
    .hf-article-card__link,
    .hf-certificate-card__link,
    .hf-foundation__link {
        min-height: 44px;
        padding: 0 16px;
        font-size: 10px;
    }

    .hf-page-hero {
        min-height: 510px;
    }

    .hf-page-hero::before {
        background: linear-gradient(90deg, rgba(0, 45, 39, .97) 0%, rgba(0, 52, 45, .86) 51%, rgba(0, 47, 41, .28) 100%);
    }

    .hf-page-hero--light::before {
        background: linear-gradient(90deg, rgba(250, 246, 239, .98) 0%, rgba(250, 246, 239, .89) 51%, rgba(250, 246, 239, .24) 100%);
    }

    .hf-page-hero__content {
        width: 73%;
        padding: 55px 0;
    }

    .hf-page-hero__eyebrow,
    .hf-section-heading__eyebrow {
        margin-bottom: 10px;
        font-size: 10px;
    }

    .hf-page-hero__eyebrow::before,
    .hf-section-heading__eyebrow::before {
        width: 22px;
        flex-basis: 22px;
    }

    .hf-page-hero h1 {
        font-size: clamp(37px, 11.5vw, 55px);
    }

    .hf-page-hero__lead {
        margin-top: 17px;
        font-size: 14px;
        line-height: 1.5;
    }

    .hf-page-hero__actions {
        margin-top: 24px;
    }

    .hf-section {
        padding: 54px 0;
    }

    .hf-section--compact {
        padding: 43px 0;
    }

    .hf-section-heading {
        gap: 11px;
        margin-bottom: 29px;
    }

    .hf-section-heading h2 {
        font-size: clamp(29px, 8.7vw, 39px);
    }

    .hf-section-heading p:not(.hf-section-heading__eyebrow) {
        font-size: 14px;
        line-height: 1.58;
    }

    .hf-tech-grid,
    .hf-article-grid,
    .hf-article-grid--two-columns,
    .hf-certificate-grid,
    .hf-spec-grid {
        grid-template-columns: 1fr;
    }

    .hf-article-grid > :last-child:nth-child(odd),
    .hf-certificate-grid > :last-child:nth-child(odd) {
        grid-column: auto;
    }

    .hf-tech-grid,
    .hf-article-grid,
    .hf-certificate-grid {
        gap: 17px;
    }

    .hf-tech-card {
        min-height: 390px;
        border-radius: 16px;
    }

    .hf-tech-card__body {
        padding: 26px;
    }

    .hf-tech-card h3 {
        font-size: 31px;
    }

    .hf-tech-card p:not(.hf-tech-card__kicker) {
        margin-top: 11px;
        font-size: 14px;
    }

    .hf-article-card__body {
        padding: 21px;
    }

    .hf-article-card h3 {
        font-size: 20px;
    }

    .hf-content-grid {
        gap: 28px;
    }

    .hf-content-grid__media {
        border-radius: 15px;
    }

    .hf-rich-content {
        font-size: 15px;
        line-height: 1.65;
    }

    .hf-spec-grid {
        gap: 12px;
    }

    .hf-process {
        grid-template-columns: 1fr;
        border-radius: 16px;
    }

    .hf-process__step {
        min-height: 0;
        padding: 22px;
    }

    .hf-process__step + .hf-process__step,
    .hf-process__step:nth-child(4),
    .hf-process__step:nth-child(5) {
        border-top: 1px solid rgba(255, 255, 255, .16);
        border-left: 0;
    }

    .hf-process__number {
        margin-bottom: 14px;
    }

    .hf-foundation {
        border-radius: 16px;
    }

    .hf-foundation__content,
    .hf-foundation__aside {
        padding: 29px 23px;
    }

    .hf-foundation h2 {
        font-size: 30px;
    }

    .hf-foundation p:not(.hf-foundation__eyebrow) {
        font-size: 14px;
    }

    .hf-foundation__price strong {
        font-size: 43px;
    }

    .hf-faq__item summary {
        min-height: 69px;
        padding: 18px 38px 18px 0;
        font-size: 16px;
    }

    .hf-faq__answer {
        padding: 0 20px 22px 0;
        font-size: 14px;
    }

    .hf-certificate-card__preview {
        min-height: 190px;
    }

    .hf-empty-state {
        min-height: 240px;
        padding: 28px 20px;
        border-radius: 16px;
    }

    .hf-empty-state h2,
    .hf-empty-state h3 {
        font-size: 22px;
    }

    .hf-page-cta {
        padding: 35px 24px;
        border-radius: 16px;
    }

    .hf-page-cta h2 {
        font-size: 31px;
    }

    .hf-page-cta p:not(.hf-page-cta__eyebrow) {
        font-size: 14px;
    }

    .hf-page-cta__actions {
        width: 100%;
    }

    .hf-page-cta__button {
        width: 100%;
    }
}

/*
 * Virtual inner-page templates
 *
 * The selectors below map directly to template-parts/inner-pages.php.  They
 * intentionally sit at the end of this file: the generic building blocks
 * above remain available, while the live page templates get their exact
 * presentation without affecting the homepage.
 */

.hf-inner-page {
    overflow: hidden;
    color: var(--hf-ink);
    background: var(--hf-white);
}

/* Sticky budget panel needs an unclipped scrolling ancestor. */
.hf-inner-page.hf-configurator {
    overflow: visible;
}

.hf-inner-page a:focus-visible {
    outline: 3px solid rgba(0, 120, 107, .45);
    outline-offset: 4px;
}

.hf-inner-page-hero {
    position: relative;
    display: flex;
    min-height: clamp(275px, 22vw, 345px);
    overflow: hidden;
    align-items: center;
    background: radial-gradient(circle at 84% 20%, rgba(32, 145, 128, .82) 0, rgba(0, 63, 53, 0) 30%), linear-gradient(120deg, var(--hf-forest-deep) 0%, var(--hf-forest) 58%, #006b60 100%);
    color: var(--hf-white);
    isolation: isolate;
}

.hf-inner-page-hero::before,
.hf-inner-page-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    content: "";
}

.hf-inner-page-hero::before {
    top: -230px;
    right: -60px;
    width: 510px;
    height: 510px;
    box-shadow: 0 0 0 53px rgba(255, 255, 255, .035), 0 0 0 106px rgba(255, 255, 255, .025);
}

.hf-inner-page-hero::after {
    right: 23%;
    bottom: -260px;
    width: 410px;
    height: 410px;
    border-color: rgba(116, 212, 197, .30);
}

/* Blog uses the exact same hero treatment as the Technologies page. */
.hf-blog-page .hf-blog-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: radial-gradient(circle at 84% 20%, rgba(32, 145, 128, .82) 0, rgba(0, 63, 53, 0) 30%), linear-gradient(120deg, var(--hf-forest-deep) 0%, var(--hf-forest) 58%, #006b60 100%) !important;
}

.hf-blog-page .hf-blog-hero::before,
.hf-blog-page .hf-blog-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    content: "";
}

.hf-blog-page .hf-blog-hero::before {
    top: -230px;
    right: -60px;
    width: 510px;
    height: 510px;
    box-shadow: 0 0 0 53px rgba(255, 255, 255, .035), 0 0 0 106px rgba(255, 255, 255, .025);
}

.hf-blog-page .hf-blog-hero::after {
    right: 23%;
    bottom: -260px;
    width: 410px;
    height: 410px;
    border-color: rgba(116, 212, 197, .30);
}

.hf-inner-page-hero--sip {
    background: radial-gradient(circle at 78% 12%, rgba(201, 160, 98, .26) 0, rgba(201, 160, 98, 0) 31%), linear-gradient(120deg, #fffdf9 0%, #f7eee2 60%, #e9dfcf 100%);
    color: var(--hf-forest);
}

.hf-inner-page-hero--sip::before {
    border-color: rgba(0, 63, 53, .11);
    box-shadow: 0 0 0 53px rgba(0, 63, 53, .025), 0 0 0 106px rgba(0, 63, 53, .018);
}

.hf-inner-page-hero--sip::after {
    border-color: rgba(0, 120, 107, .16);
}

.hf-inner-page-hero--lgsf {
    background: radial-gradient(circle at 80% 18%, rgba(71, 128, 138, .50) 0, rgba(71, 128, 138, 0) 28%), linear-gradient(120deg, #092d32 0%, #104b50 58%, #0a6860 100%);
}

.hf-inner-page-hero--projects {
    background: radial-gradient(circle at 84% 20%, rgba(32, 145, 128, .82) 0, rgba(0, 63, 53, 0) 30%), linear-gradient(120deg, var(--hf-forest-deep) 0%, var(--hf-forest) 58%, #006b60 100%);
}

.hf-inner-page-hero--certificates {
    background: radial-gradient(circle at 79% 18%, rgba(202, 174, 109, .33) 0, rgba(202, 174, 109, 0) 28%), linear-gradient(120deg, #082c28 0%, #0b4a40 59%, #0b6659 100%);
}

.hf-inner-page-hero__inner {
    width: min(1240px, calc(100% - 64px));
    margin: 0 auto;
    padding: clamp(48px, 5.5vw, 72px) 0;
}

.hf-inner-page-eyebrow,
.hf-blog-page .hf-inner-eyebrow,
.hf-inner-page .hf-section-kicker,
.hf-inner-page .hf-card-label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 13px;
    color: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .115em;
    line-height: 1.2;
    text-transform: uppercase;
}

.hf-inner-page-eyebrow::before,
.hf-blog-page .hf-inner-eyebrow::before,
.hf-inner-page .hf-section-kicker::before {
    display: block;
    width: 28px;
    height: 2px;
    flex: 0 0 28px;
    background: currentColor;
    content: "";
}

.hf-inner-page-hero h1 {
    max-width: 810px;
    margin: 0;
    color: inherit;
    font-size: clamp(32px, 3.8vw, 52px);
    font-weight: 800;
    letter-spacing: -.062em;
    line-height: .99;
}

.hf-inner-page-lead {
    max-width: 630px;
    margin: 22px 0 0;
    color: inherit;
    font-size: clamp(16px, 1.45vw, 19px);
    line-height: 1.58;
    opacity: .88;
}

/* Shared presentation for the primary pages: Technologies, Projects, About, Services and Blog. */
.hf-blog-page .hf-blog-hero {
    display: flex;
    min-height: clamp(275px, 22vw, 345px);
    align-items: center;
    padding: 0;
}

.hf-blog-page .hf-blog-hero .hf-shell {
    width: min(1240px, calc(100% - 64px));
    max-width: none;
    margin: 0 auto;
    padding: clamp(48px, 5.5vw, 72px) 0;
}

.hf-blog-page .hf-blog-hero h1,
.hf-inner-page-hero h1 {
    max-width: 810px;
    margin: 0;
    font-size: clamp(32px, 3.8vw, 52px);
    font-weight: 800;
    letter-spacing: -.062em;
    line-height: .99;
}

.hf-blog-page .hf-blog-hero p,
.hf-inner-page-lead {
    max-width: 630px;
    margin: 22px 0 0;
    font-size: clamp(16px, 1.45vw, 19px);
    line-height: 1.58;
}

.hf-inner-page .hf-inner-section {
    padding: clamp(58px, 7vw, 105px) 0;
}

.hf-inner-page .hf-inner-section--muted {
    background: #f2f7f5;
}

.hf-inner-page .hf-inner-section--faq {
    background: var(--hf-cream);
}

.hf-inner-page .hf-section-heading {
    display: grid;
    max-width: 790px;
    gap: 13px;
    margin: 0 0 clamp(29px, 4vw, 49px);
}

.hf-inner-page .hf-section-heading h2 {
    margin: 0;
    color: var(--hf-ink);
    font-size: clamp(30px, 3.5vw, 50px);
    font-weight: 800;
    letter-spacing: -.053em;
    line-height: 1.05;
}

.hf-inner-page .hf-section-heading > p:not(.hf-section-kicker) {
    max-width: 680px;
    margin: 0;
    color: var(--hf-muted);
    font-size: 16px;
    line-height: 1.65;
}

.hf-inner-page .hf-section-kicker {
    color: var(--hf-teal);
}

/* Technology overview */
.hf-technology-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.hf-technology-card {
    position: relative;
    display: flex;
    min-height: 420px;
    overflow: hidden;
    flex-direction: column;
    padding: clamp(30px, 4vw, 49px);
    border: 1px solid rgba(0, 63, 53, .12);
    border-radius: 21px;
    background: linear-gradient(135deg, #fdf8f1 0%, #f0e3d2 100%);
    box-shadow: 0 16px 37px rgba(0, 51, 44, .08);
    color: var(--hf-forest);
    isolation: isolate;
}

.hf-technology-card::before,
.hf-technology-card::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(0, 63, 53, .12);
    border-radius: 50%;
    content: "";
}

.hf-technology-card::before {
    top: -160px;
    right: -113px;
    width: 315px;
    height: 315px;
}

.hf-technology-card::after {
    top: -102px;
    right: -54px;
    width: 195px;
    height: 195px;
}

.hf-technology-card--lgsf {
    border-color: rgba(255, 255, 255, .18);
    background: radial-gradient(circle at 87% 15%, rgba(55, 139, 130, .70) 0%, rgba(55, 139, 130, 0) 27%), linear-gradient(135deg, #003e36 0%, #005e53 100%);
    color: var(--hf-white);
}

.hf-technology-card--lgsf::before,
.hf-technology-card--lgsf::after {
    border-color: rgba(255, 255, 255, .16);
}

.hf-inner-page .hf-card-label {
    color: var(--hf-teal);
}

.hf-technology-card--lgsf .hf-card-label {
    color: #9ee1d6;
}

.hf-technology-card h2 {
    max-width: 510px;
    margin: 0;
    color: inherit;
    font-size: clamp(28px, 3.1vw, 42px);
    font-weight: 800;
    letter-spacing: -.052em;
    line-height: 1.05;
}

.hf-technology-card > p:not(.hf-card-label) {
    max-width: 510px;
    margin: 16px 0 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.62;
    opacity: .89;
}

.hf-check-list {
    display: grid;
    gap: 10px;
    margin: 25px 0 0;
    padding: 0;
    list-style: none;
}

.hf-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    color: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.47;
}

.hf-check-list li::before {
    display: grid;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    margin-top: 1px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    color: inherit;
    content: "✓";
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    place-items: center;
}

.hf-text-link {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 26px;
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
    transition: color .2s ease, transform .2s ease;
}

.hf-text-link span {
    font-size: 19px;
    line-height: .8;
    transition: transform .2s ease;
}

.hf-text-link:hover {
    color: var(--hf-teal);
}

.hf-technology-card--lgsf .hf-text-link:hover {
    color: #a8e9dc;
}

.hf-text-link:hover span {
    transform: translateX(4px);
}

.hf-technology-comparison {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.hf-technology-tabs {
    display: none;
}

.hf-tech-panel {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: clamp(27px, 3.7vw, 48px);
    border: 1px solid rgba(0, 63, 53, .14);
    border-radius: 20px;
    background: linear-gradient(145deg, #fffdf9 0%, #efe3d1 100%);
    box-shadow: 0 16px 37px rgba(0, 51, 44, .08);
    color: var(--hf-forest);
}

.hf-tech-panel[data-technology-url] { cursor: pointer; }
.hf-tech-panel[data-technology-url]:focus-visible { outline: 3px solid var(--hf-teal); outline-offset: 4px; }

.hf-tech-panel--lgsf {
    border-color: rgba(255, 255, 255, .17);
    background: radial-gradient(circle at 90% 8%, rgba(98, 184, 169, .42) 0%, transparent 27%), linear-gradient(145deg, #003c35 0%, #006157 100%);
    color: var(--hf-white);
}

.hf-tech-panel__image {
    position: relative;
    min-height: clamp(260px, 27vw, 370px);
    overflow: hidden;
    margin: calc(clamp(27px, 3.7vw, 48px) * -1) calc(clamp(27px, 3.7vw, 48px) * -1) clamp(31px, 3vw, 43px);
    border-radius: 19px 19px 0 0;
    background: #dfe8e5;
}

.hf-tech-panel__image::after {
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(transparent, rgba(0, 38, 33, .74));
    content: "";
}

.hf-tech-panel__image img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    transition: transform .5s ease;
}

.hf-tech-panel:hover .hf-tech-panel__image img {
    transform: scale(1.025);
}

.hf-tech-panel__image figcaption {
    position: absolute;
    z-index: 1;
    right: 24px;
    bottom: 22px;
    left: 24px;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    color: var(--hf-white);
}

.hf-tech-panel__image figcaption strong {
    font-size: clamp(25px, 3vw, 43px);
    font-weight: 900;
    letter-spacing: -.05em;
}

.hf-tech-panel__image figcaption span {
    max-width: 190px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.35;
    text-align: right;
    text-transform: uppercase;
}

.hf-tech-panel header > .hf-card-label {
    margin-bottom: 15px;
}

.hf-tech-panel--lgsf .hf-card-label {
    color: #9ee1d6;
}

.hf-tech-panel header h2 {
    max-width: 560px;
    margin: 0;
    color: inherit;
    font-size: clamp(29px, 3.25vw, 46px);
    font-weight: 800;
    letter-spacing: -.057em;
    line-height: 1.03;
}

.hf-tech-panel header > p:last-child {
    margin: 18px 0 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.65;
    opacity: .84;
}

.hf-tech-panel__facts {
    display: grid;
    gap: 0;
    margin-top: clamp(28px, 3vw, 42px);
    border-top: 1px solid rgba(0, 63, 53, .18);
}

.hf-tech-panel__facts section {
    padding: 18px 0 19px;
    border-bottom: 1px solid rgba(0, 63, 53, .18);
}

.hf-tech-panel--lgsf .hf-tech-panel__facts,
.hf-tech-panel--lgsf .hf-tech-panel__facts section {
    border-color: rgba(255, 255, 255, .18);
}

.hf-tech-panel__facts span {
    display: block;
    margin-bottom: 7px;
    color: var(--hf-teal);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}

.hf-tech-panel--lgsf .hf-tech-panel__facts span {
    color: #9ee1d6;
}

.hf-tech-panel__facts h3 {
    margin: 0;
    color: inherit;
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.hf-tech-panel__facts p {
    margin: 8px 0 0;
    color: inherit;
    font-size: 13px;
    line-height: 1.56;
    opacity: .8;
}

.hf-tech-panel .hf-check-list {
    margin-top: 27px;
}

.hf-tech-panel .hf-check-list li {
    font-size: 13px;
}

.hf-tech-panel--lgsf .hf-check-list li::before {
    border-color: rgba(255, 255, 255, .72);
}

.hf-tech-panel--lgsf .hf-text-link:hover {
    color: #a8e9dc;
}

.hf-tech-panel__cta { display:inline-flex; align-items:center; justify-content:center; align-self:flex-start; width:100%; max-width:580px; min-height:54px; margin-top:32px; padding:0 24px; border:1px solid var(--hf-forest); border-radius:10px; background:var(--hf-forest); box-shadow:0 11px 21px rgba(0,63,53,.18); color:#fff; font-size:13px; font-weight:800; letter-spacing:.025em; text-decoration:none; text-transform:uppercase; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.hf-tech-panel__cta span { font-size:20px; line-height:1; transition:transform .2s ease; }
.hf-tech-panel__cta:hover { background:#007f70; box-shadow:0 15px 27px rgba(0,63,53,.28); color:#fff; transform:translateY(-2px); }
.hf-tech-panel__cta:hover span { transform:translateX(4px); }
.hf-tech-panel__cta:focus-visible { outline:3px solid rgba(0,132,116,.38); outline-offset:3px; }
.hf-tech-panel--lgsf .hf-tech-panel__cta { border-color:#b9f0e5; background:#fff; color:#00483f; box-shadow:0 12px 25px rgba(0,22,19,.2); }
.hf-tech-panel--lgsf .hf-tech-panel__cta:hover { background:#a8e9dc; color:#003f36; }

.hf-tech-panel__process {
    margin-top: 34px;
    padding-top: 25px;
    border-top: 1px solid rgba(0, 63, 53, .18);
}

.hf-tech-panel--lgsf .hf-tech-panel__process {
    border-color: rgba(255, 255, 255, .18);
}

.hf-tech-panel__process > h3 {
    margin: 0 0 17px;
    color: inherit;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.hf-tech-panel__process ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hf-tech-panel__process li {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(0, 63, 53, .13);
    border-radius: 8px;
    background: rgba(255, 255, 255, .36);
}

.hf-tech-panel--lgsf .hf-tech-panel__process li {
    border-color: rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .055);
}

.hf-tech-panel__process b {
    color: var(--hf-teal);
    font-size: 10px;
    letter-spacing: .06em;
}

.hf-tech-panel--lgsf .hf-tech-panel__process b {
    color: #9ee1d6;
}

.hf-tech-panel__process span {
    color: inherit;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.hf-tech-panel__uses {
    margin-top: 25px;
    padding: 17px 19px;
    border-left: 3px solid var(--hf-teal);
    background: rgba(255, 255, 255, .35);
}

.hf-tech-panel--lgsf .hf-tech-panel__uses {
    border-color: #9ee1d6;
    background: rgba(255, 255, 255, .06);
}

.hf-tech-panel__uses > span {
    display: block;
    margin-bottom: 7px;
    color: var(--hf-teal);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
}

.hf-tech-panel--lgsf .hf-tech-panel__uses > span {
    color: #9ee1d6;
}

.hf-tech-panel__uses p {
    margin: 0;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

/* Detail pages */
.hf-two-column-content {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(38px, 8vw, 125px);
    align-items: start;
}

.hf-two-column-content .hf-section-heading {
    margin-bottom: 0;
}

.hf-lgsf-overview {
    grid-template-columns: minmax(0, .7fr) minmax(0, 1fr);
}

.hf-lgsf-overview__image {
    grid-column: 1 / -1;
    position: relative;
    min-height: clamp(250px, 35vw, 460px);
    margin: clamp(5px, 2vw, 22px) 0 0;
    overflow: hidden;
    border-radius: 16px;
    background: var(--hf-forest);
}

.hf-lgsf-overview__image img,
.hf-lgsf-benefit-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hf-lgsf-overview__image::after {
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(transparent, rgba(0, 41, 35, .76));
    content: "";
}

.hf-lgsf-overview__image figcaption {
    position: absolute;
    z-index: 1;
    right: 26px;
    bottom: 22px;
    left: 26px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.hf-lgsf-benefits article {
    padding-top: 0;
    overflow: hidden;
}

.hf-lgsf-benefits article::before {
    display: none;
}

.hf-lgsf-benefits h3,
.hf-lgsf-benefits p {
    margin-right: 22px;
    margin-left: 22px;
}

.hf-lgsf-benefits p {
    padding-bottom: 22px;
}

.hf-lgsf-benefit-image {
    position: relative;
    height: 160px;
    margin-bottom: 20px;
    overflow: hidden;
    background: #0d5148;
}

.hf-lgsf-benefit-image::after {
    position: absolute;
    inset: 50% 0 0;
    background: linear-gradient(transparent, rgba(0, 37, 31, .7));
    content: "";
}

.hf-lgsf-benefit-image span {
    position: absolute;
    z-index: 1;
    top: 14px;
    left: 16px;
    color: #b7f3e8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}

.hf-framex-lgsf-title {
    padding: clamp(76px, 10vw, 144px) 0 clamp(48px, 6vw, 82px);
    background: #fff;
    text-align: center;
}

.hf-framex-lgsf-title h1 {
    margin: 0;
    color: var(--hf-forest);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 600;
    letter-spacing: -.04em;
}

.hf-framex-lgsf-intro {
    background: #f2efea;
}

.hf-framex-lgsf-intro__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: min(58vw, 650px);
}

.hf-framex-lgsf-intro__grid--reversed .hf-framex-lgsf-intro__copy { order: 2; }

.hf-framex-lgsf-intro__grid--reversed .hf-framex-lgsf-intro__image { order: 1; }

.hf-framex-lgsf-intro__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(38px, 6vw, 94px);
    background: #f7f5f2;
}

.hf-framex-lgsf-intro__copy h2 {
    max-width: 530px;
    margin: 0 0 26px;
    color: var(--hf-forest);
    font-size: clamp(32px, 4.1vw, 61px);
    font-weight: 800;
    letter-spacing: -.055em;
    line-height: 1.05;
}

.hf-framex-lgsf-intro__copy p {
    max-width: 600px;
    margin: 0 0 18px;
    color: var(--hf-forest);
    font-size: clamp(15px, 1.45vw, 20px);
    line-height: 1.7;
}

.hf-framex-lgsf-intro__image {
    position: relative;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    background: #313033;
}

.hf-framex-lgsf-intro__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hf-framex-lgsf-intro__image figcaption {
    position: absolute;
    right: 24px;
    bottom: 22px;
    left: 24px;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

@media (max-width: 760px) {
    .hf-framex-lgsf-title { padding: 62px 0 42px; }
    .hf-framex-lgsf-intro__grid { grid-template-columns: 1fr; min-height: 0; }
    .hf-framex-lgsf-intro__grid--reversed .hf-framex-lgsf-intro__copy,
    .hf-framex-lgsf-intro__grid--reversed .hf-framex-lgsf-intro__image { order: initial; }
    .hf-framex-lgsf-intro__copy { padding: 44px 24px; }
    .hf-framex-lgsf-intro__image { min-height: 330px; }
}

.hf-rich-copy {
    color: var(--hf-muted);
    font-size: 16px;
    line-height: 1.72;
}

.hf-rich-copy > :first-child {
    margin-top: 0;
}

.hf-rich-copy > :last-child {
    margin-bottom: 0;
}

.hf-rich-copy h2,
.hf-rich-copy h3 {
    margin: 0 0 16px;
    color: var(--hf-ink);
    font-weight: 800;
    letter-spacing: -.042em;
    line-height: 1.1;
}

.hf-rich-copy h2 {
    font-size: clamp(28px, 3vw, 40px);
}

.hf-rich-copy h3 {
    font-size: 23px;
}

.hf-rich-copy p,
.hf-rich-copy ul,
.hf-rich-copy ol {
    margin: 0 0 18px;
}

.hf-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
}

.hf-detail-grid article {
    min-height: 190px;
    padding: 25px 22px;
    border: 1px solid rgba(0, 63, 53, .13);
    border-radius: 14px;
    background: var(--hf-white);
    box-shadow: 0 8px 21px rgba(0, 53, 46, .04);
}

.hf-detail-grid article::before {
    display: block;
    width: 34px;
    height: 3px;
    margin-bottom: 20px;
    border-radius: 99px;
    background: var(--hf-teal);
    content: "";
}

.hf-detail-grid h3 {
    margin: 0;
    color: var(--hf-ink);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.16;
}

.hf-detail-grid p {
    margin: 10px 0 0;
    color: var(--hf-muted);
    font-size: 13px;
    line-height: 1.56;
}

/* Process */
.hf-process-grid {
    display: grid;
    grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr);
    gap: clamp(32px, 6vw, 85px);
    align-items: center;
}

.hf-process-grid .hf-section-heading {
    margin-bottom: 0;
}

.hf-steps-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hf-steps-list--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.hf-steps-list li {
    display: grid;
    min-height: 165px;
    padding: 22px;
    align-content: start;
    border: 1px solid rgba(0, 63, 53, .12);
    border-radius: 14px;
    background: var(--hf-white);
}

.hf-steps-list li::before {
    display: grid;
    width: 33px;
    height: 33px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #e2f1ed;
    color: var(--hf-teal);
    content: "";
    place-items: center;
}

.hf-steps-list li:nth-child(1)::before {
    content: "1";
}

.hf-steps-list li:nth-child(2)::before {
    content: "2";
}

.hf-steps-list li:nth-child(3)::before {
    content: "3";
}

.hf-steps-list li:nth-child(4)::before {
    content: "4";
}

.hf-steps-list strong {
    color: var(--hf-ink);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.hf-steps-list span {
    display: block;
    margin-top: 8px;
    color: var(--hf-muted);
    font-size: 13px;
    line-height: 1.5;
}

/* Foundation page */
.hf-foundation-intro {
    display: grid;
    grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
    gap: clamp(32px, 6vw, 89px);
    align-items: center;
}

.hf-foundation-price-card {
    position: relative;
    overflow: hidden;
    padding: clamp(31px, 4vw, 48px);
    border-radius: 20px;
    background: radial-gradient(circle at 80% 9%, #168877 0%, var(--hf-forest) 54%, var(--hf-forest-deep) 100%);
    color: var(--hf-white);
    box-shadow: 0 17px 39px rgba(0, 56, 48, .18);
}

.hf-foundation-price-card::after {
    position: absolute;
    right: -60px;
    bottom: -88px;
    width: 220px;
    height: 220px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 50%;
    box-shadow: 0 0 0 36px rgba(255, 255, 255, .035);
    content: "";
}

.hf-foundation-price-card p,
.hf-foundation-price-card span,
.hf-foundation-price-card strong {
    position: relative;
    z-index: 1;
    display: block;
}

.hf-foundation-price-card p {
    margin: 0;
    color: #a8e9dc;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .105em;
    text-transform: uppercase;
}

.hf-foundation-price-card strong {
    margin: 15px 0 10px;
    font-size: clamp(39px, 4.2vw, 59px);
    font-weight: 800;
    letter-spacing: -.065em;
    line-height: .95;
}

.hf-foundation-price-card span {
    max-width: 235px;
    color: rgba(255, 255, 255, .84);
    font-size: 14px;
    line-height: 1.48;
}

.hf-information-note {
    max-width: 980px;
    padding: clamp(29px, 4vw, 48px);
    border: 1px solid rgba(0, 120, 107, .22);
    border-left: 5px solid var(--hf-teal);
    border-radius: 0 17px 17px 0;
    background: #fbfdfc;
}

.hf-information-note h2 {
    margin: 0;
    color: var(--hf-forest);
    font-size: clamp(25px, 2.8vw, 36px);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.1;
}

.hf-information-note p {
    max-width: 790px;
    margin: 14px 0 0;
    color: var(--hf-muted);
    font-size: 15px;
    line-height: 1.66;
}

/* Future-proof gallery and document states */
.hf-projects-empty-grid,
.hf-certificates-empty-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.hf-projects-empty-card,
.hf-certificate-empty-card {
    position: relative;
    display: flex;
    min-height: 300px;
    overflow: hidden;
    flex-direction: column;
    padding: clamp(29px, 4vw, 48px);
    border: 1px dashed rgba(0, 63, 53, .28);
    border-radius: 20px;
    background: linear-gradient(135deg, #f8fcfa 0%, #eff6f3 100%);
}

.hf-projects-empty-card::after,
.hf-certificate-empty-card::after {
    position: absolute;
    right: -58px;
    bottom: -78px;
    width: 210px;
    height: 210px;
    border: 1px solid rgba(0, 120, 107, .14);
    border-radius: 50%;
    content: "";
}

.hf-certificate-empty-card {
    background: linear-gradient(135deg, #fdfaf4 0%, #f2e8d9 100%);
}

.hf-projects-empty-card h2,
.hf-certificate-empty-card h2 {
    position: relative;
    z-index: 1;
    max-width: 425px;
    margin: 0;
    color: var(--hf-forest);
    font-size: clamp(26px, 2.9vw, 38px);
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1.06;
}

.hf-projects-empty-card > p:not(.hf-card-label),
.hf-certificate-empty-card > p:not(.hf-card-label) {
    position: relative;
    z-index: 1;
    max-width: 450px;
    margin: 15px 0 0;
    color: var(--hf-muted);
    font-size: 15px;
    line-height: 1.62;
}

.hf-projects-empty-card .hf-text-link {
    position: relative;
    z-index: 1;
}

/* FAQ */
.hf-faq-list {
    max-width: 940px;
}

.hf-faq-item {
    border-top: 1px solid rgba(0, 63, 53, .16);
}

.hf-faq-item:last-child {
    border-bottom: 1px solid rgba(0, 63, 53, .16);
}

.hf-faq-item summary {
    position: relative;
    display: flex;
    min-height: 78px;
    align-items: center;
    padding: 19px 49px 19px 0;
    color: var(--hf-ink);
    cursor: pointer;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.35;
    list-style: none;
}

.hf-faq-item summary::-webkit-details-marker {
    display: none;
}

.hf-faq-item summary::after {
    position: absolute;
    top: 50%;
    right: 7px;
    width: 14px;
    height: 14px;
    border-right: 2px solid var(--hf-teal);
    border-bottom: 2px solid var(--hf-teal);
    content: "";
    transform: translateY(-70%) rotate(45deg);
    transition: transform .22s ease;
}

.hf-faq-item[open] summary::after {
    transform: translateY(-28%) rotate(225deg);
}

.hf-faq-item > p {
    max-width: 820px;
    margin: 0;
    padding: 0 48px 26px 0;
    color: var(--hf-muted);
    font-size: 15px;
    line-height: 1.68;
}

/* Final call to action */
.hf-inner-page-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(48px, 6vw, 80px) 0;
    background: radial-gradient(circle at 82% 18%, #118879 0%, var(--hf-forest) 46%, var(--hf-forest-deep) 100%);
    color: var(--hf-white);
}

.hf-inner-page-cta::after {
    position: absolute;
    top: -145px;
    right: 5%;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    box-shadow: 0 0 0 48px rgba(255, 255, 255, .035), 0 0 0 96px rgba(255, 255, 255, .02);
    content: "";
}

.hf-inner-page-cta__inner {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(1240px, calc(100% - 64px));
    margin: 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.hf-inner-page-cta h2 {
    max-width: 690px;
    margin: 0;
    color: var(--hf-white);
    font-size: clamp(30px, 3.8vw, 51px);
    font-weight: 800;
    letter-spacing: -.055em;
    line-height: 1.04;
}

.hf-inner-page-cta p {
    max-width: 660px;
    margin: 14px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: 15px;
    line-height: 1.6;
}

.hf-inner-page .hf-button {
    display: inline-flex;
    min-height: 48px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid var(--hf-white);
    border-radius: 7px;
    background: var(--hf-white);
    color: var(--hf-forest);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .015em;
    text-align: center;
    text-transform: uppercase;
    transition: transform .2s ease, box-shadow .2s ease;
    white-space: nowrap;
}

.hf-inner-page .hf-button:hover {
    box-shadow: 0 10px 22px rgba(0, 26, 22, .22);
    transform: translateY(-2px);
}

.hf-inner-page .hf-contact-form .hf-button {
    border-color: var(--hf-teal);
    background: var(--hf-teal);
    color: #fff;
}

/* Configurator progression button intentionally differs from generic inner-page CTAs. */
.hf-inner-page.hf-configurator .hf-configurator__actions .hf-button {
    border-color: var(--hf-forest);
    background: linear-gradient(135deg, #006758, #003f36);
    color: #fff;
    box-shadow: 0 12px 24px rgba(0, 63, 53, .24);
}

.hf-inner-page.hf-configurator .hf-configurator__actions .hf-button:hover {
    background: linear-gradient(135deg, #078274, #004b40);
    box-shadow: 0 16px 30px rgba(0, 63, 53, .3);
}

/* The final step has no following screen, so its progression button stays hidden. */
.hf-inner-page.hf-configurator .hf-configurator__actions .hf-button[hidden] {
    display: none !important;
}

.hf-configurator__actions:has(.hf-configurator__back:disabled) {
    grid-template-columns: 1fr;
}

.hf-configurator__actions:has(.hf-configurator__back:disabled) .hf-configurator__back {
    display: none;
}

/* About */
.hf-about-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
    gap: clamp(42px, 7vw, 114px);
    align-items: center;
}

.hf-about-intro__statement h2,
.hf-about-process__heading h2 {
    max-width: 720px;
    margin: 0;
    color: var(--hf-ink);
    font-size: clamp(35px, 4.2vw, 59px);
    font-weight: 800;
    letter-spacing: -.058em;
    line-height: 1.02;
}

.hf-about-intro__statement > p:not(.hf-section-kicker) {
    max-width: 620px;
    margin: 24px 0 0;
    color: var(--hf-muted);
    font-size: 17px;
    line-height: 1.72;
}

.hf-about-intro__principles {
    border-top: 1px solid rgba(0, 63, 53, .18);
}

.hf-about-intro__principles article {
    display: grid;
    grid-template-columns: 54px 1fr;
    column-gap: 17px;
    padding: 23px 0 25px;
    border-bottom: 1px solid rgba(0, 63, 53, .18);
}

.hf-about-intro__principles span,
.hf-about-solution__number,
.hf-about-process__steps span {
    color: var(--hf-teal);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
}

.hf-about-intro__principles h3 {
    margin: 0;
    color: var(--hf-ink);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.hf-about-intro__principles p {
    grid-column: 2;
    margin: 7px 0 0;
    color: var(--hf-muted);
    font-size: 14px;
    line-height: 1.56;
}

.hf-about-accreditation { padding-bottom: clamp(70px, 9vw, 128px); }

.hf-about-accreditation__grid { display: grid; overflow: hidden; grid-template-columns: minmax(0, .82fr) minmax(380px, 1.18fr); align-items: stretch; border: 1px solid rgba(0, 63, 53, .14); border-radius: 16px; background: #f2f7f5; box-shadow: 0 14px 34px rgba(0, 50, 43, .06); }

.hf-about-accreditation__copy { padding: clamp(31px, 4vw, 54px); }

.hf-about-accreditation__copy h2 { max-width: 470px; margin: 0; color: var(--hf-forest); font-size: clamp(28px, 3.4vw, 48px); font-weight: 800; letter-spacing: -.055em; line-height: 1.03; }

.hf-about-accreditation__copy > p:not(.hf-section-kicker) { max-width: 460px; margin: 19px 0 0; color: var(--hf-muted); font-size: 15px; line-height: 1.65; }

.hf-about-accreditation__logo { display: grid; min-height: 230px; margin: 0; padding: clamp(20px, 3vw, 42px); place-items: center; background: #fff; }

.hf-about-accreditation__logo img { display: block; width: 100%; height: 100%; min-height: 156px; max-height: 245px; object-fit: cover; object-position: center; }

.hf-about-story {
    padding-bottom: clamp(74px, 9vw, 140px);
    background: linear-gradient(to bottom, var(--hf-white) 0 38%, #f2f7f5 38% 100%);
}

.hf-about-story__frame {
    position: relative;
    display: grid;
    min-height: clamp(490px, 48vw, 640px);
    grid-template-columns: minmax(330px, .76fr) minmax(0, 1.24fr);
    overflow: hidden;
    background: var(--hf-forest);
}

.hf-about-story__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(35px, 5vw, 77px);
    color: var(--hf-white);
}

.hf-about-story__content .hf-section-kicker {
    color: #86d7cb;
}

.hf-about-story__content h2 {
    max-width: 510px;
    margin: 0;
    color: inherit;
    font-size: clamp(36px, 4.5vw, 64px);
    font-weight: 800;
    letter-spacing: -.065em;
    line-height: .96;
}

.hf-about-story__content > p:not(.hf-section-kicker) {
    max-width: 410px;
    margin: 23px 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.67;
}

.hf-about-story__signature {
    margin-top: 46px;
    color: #86d7cb;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.35;
}

.hf-about-story figure {
    margin: 0;
}

.hf-about-story__main {
    position: relative;
    min-height: 100%;
}

.hf-about-story__main::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 53, 46, .4), transparent 35%);
    content: "";
}

.hf-about-story__main img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hf-about-story__inset {
    position: absolute;
    z-index: 3;
    right: clamp(22px, 3.5vw, 54px);
    bottom: clamp(-43px, -3vw, -26px);
    width: clamp(180px, 19vw, 290px);
    overflow: hidden;
    border: 8px solid var(--hf-white);
    box-shadow: 0 17px 34px rgba(0, 29, 25, .28);
}

.hf-about-story__inset img {
    display: block;
    width: 100%;
    aspect-ratio: .89;
    object-fit: cover;
}

.hf-about-story__inset figcaption {
    padding: 14px 15px 15px;
    background: var(--hf-white);
    color: var(--hf-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.hf-about-solutions__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.hf-about-solution {
    position: relative;
    display: flex;
    min-height: 365px;
    overflow: hidden;
    flex-direction: column;
    padding: clamp(29px, 4vw, 48px);
    border-radius: 20px;
    color: var(--hf-forest);
    isolation: isolate;
    transition: transform .25s ease, box-shadow .25s ease;
}

.hf-about-solution::before,
.hf-about-solution::after {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    content: "";
}

.hf-about-solution::before {
    top: -130px;
    right: -100px;
    width: 315px;
    height: 315px;
    border: 1px solid currentColor;
    opacity: .16;
}

.hf-about-solution::after {
    right: -46px;
    bottom: -145px;
    width: 310px;
    height: 310px;
    background: currentColor;
    opacity: .06;
}

.hf-about-solution--sip {
    background: linear-gradient(135deg, #fffdf8 0%, #f0e4d1 100%);
}

.hf-about-solution--lgsf {
    background: linear-gradient(135deg, #063a35 0%, #006b60 100%);
    color: var(--hf-white);
}

.hf-about-solution:hover {
    box-shadow: 0 18px 35px rgba(0, 49, 42, .17);
    transform: translateY(-5px);
}

.hf-about-solution .hf-card-label {
    margin-top: auto;
}

.hf-about-solution h3 {
    max-width: 400px;
    margin: 0;
    color: inherit;
    font-size: clamp(31px, 3.4vw, 46px);
    font-weight: 800;
    letter-spacing: -.06em;
    line-height: 1;
}

.hf-about-solution > p:not(.hf-card-label) {
    max-width: 410px;
    margin: 16px 0 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.62;
    opacity: .8;
}

.hf-about-solution__link {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    margin-top: 28px;
    color: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.hf-about-solution__link b {
    font-size: 22px;
    font-weight: 400;
    line-height: .5;
}

.hf-about-process {
    background: var(--hf-cream);
}

.hf-about-process__heading {
    display: grid;
    grid-template-columns: minmax(0, 760px) 1fr;
    gap: 32px;
    margin-bottom: clamp(42px, 6vw, 80px);
}

.hf-about-process__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 0;
    margin: 0;
    border-top: 1px solid rgba(0, 63, 53, .2);
    list-style: none;
}

.hf-about-process__steps li {
    min-height: 244px;
    padding: 26px clamp(17px, 2.2vw, 32px) 23px 0;
    border-right: 1px solid rgba(0, 63, 53, .2);
}

.hf-about-process__steps li + li {
    padding-left: clamp(17px, 2.2vw, 32px);
}

.hf-about-process__steps li:last-child {
    border-right: 0;
}

.hf-about-process__steps h3 {
    margin: 35px 0 0;
    color: var(--hf-ink);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.hf-about-process__steps p {
    margin: 12px 0 0;
    color: var(--hf-muted);
    font-size: 14px;
    line-height: 1.6;
}

.hf-about-projects {
    overflow: hidden;
    background: #f2f7f5;
}

.hf-about-projects__top {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: clamp(30px, 4vw, 52px);
}

.hf-about-projects__top h2 {
    max-width: 670px;
    margin: 0;
    color: var(--hf-ink);
    font-size: clamp(31px, 3.8vw, 51px);
    font-weight: 800;
    letter-spacing: -.055em;
    line-height: 1.04;
}

.hf-carousel-controls {
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
}

.hf-carousel-control {
    display: grid;
    width: 47px;
    height: 47px;
    border: 1px solid rgba(0, 63, 53, .25);
    border-radius: 50%;
    place-items: center;
    background: transparent;
    color: var(--hf-forest);
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.hf-carousel-control:hover,
.hf-carousel-control:focus-visible {
    background: var(--hf-forest);
    color: var(--hf-white);
    outline: none;
    transform: translateY(-2px);
}

.hf-about-projects__carousel {
    display: grid;
    grid-auto-columns: minmax(270px, 31.4%);
    grid-auto-flow: column;
    gap: clamp(16px, 2vw, 25px);
    overflow-x: auto;
    padding: 2px 1px 20px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 63, 53, .32) transparent;
}

.hf-about-projects__carousel::-webkit-scrollbar {
    height: 5px;
}

.hf-about-projects__carousel::-webkit-scrollbar-thumb {
    border-radius: 99px;
    background: rgba(0, 63, 53, .27);
}

.hf-about-project-card {
    overflow: hidden;
    border-radius: 12px;
    background: var(--hf-white);
    box-shadow: 0 12px 28px rgba(0, 50, 43, .08);
    scroll-snap-align: start;
}

.hf-about-project-card__image {
    display: grid;
    min-height: 255px;
    overflow: hidden;
    place-items: center;
    background: linear-gradient(135deg, #0e554a, #0a2f2a);
    color: rgba(255, 255, 255, .75);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
}

.hf-about-project-card__image img {
    width: 100%;
    height: 100%;
    min-height: 255px;
    object-fit: cover;
    transition: transform .4s ease;
}

.hf-about-project-card:hover .hf-about-project-card__image img {
    transform: scale(1.05);
}

.hf-about-project-card__body {
    padding: 20px 20px 22px;
}

.hf-about-project-card__body > p {
    min-height: 15px;
    margin: 0;
    color: var(--hf-teal);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.hf-about-project-card__body > p a {
    color: inherit;
    text-decoration: none;
}

.hf-about-project-card__body h3 {
    margin: 9px 0 0;
    color: var(--hf-forest);
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.08;
}

.hf-about-project-card__body h3 a,
.hf-about-project-card__body > a {
    color: inherit;
    text-decoration: none;
}

.hf-about-project-card__body > a {
    display: inline-flex;
    gap: 9px;
    margin-top: 19px;
    color: var(--hf-forest);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.hf-about-project-card__body > a span {
    color: var(--hf-teal);
    font-size: 18px;
    line-height: .55;
}

.hf-about-projects__all {
    margin-top: 21px;
}

@media (max-width: 960px) {
    .hf-inner-page-hero {
        min-height: 275px;
    }

    .hf-inner-page-hero__inner,
    .hf-inner-page-cta__inner {
        width: min(100% - 40px, 720px);
    }

    .hf-technology-cards,
    .hf-technology-comparison,
    .hf-projects-empty-grid,
    .hf-certificates-empty-grid {
        gap: 18px;
    }

    .hf-two-column-content,
    .hf-process-grid,
    .hf-foundation-intro {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .hf-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hf-steps-list--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hf-about-intro__grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .hf-about-story__frame {
        grid-template-columns: minmax(280px, .83fr) minmax(0, 1.17fr);
    }

    .hf-about-process__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hf-about-process__steps li:nth-child(2) {
        border-right: 0;
    }

    .hf-about-process__steps li:nth-child(n + 3) {
        border-top: 1px solid rgba(0, 63, 53, .2);
    }

    .hf-about-projects__carousel {
        grid-auto-columns: minmax(280px, 46%);
    }

    .hf-inner-page-cta__inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    .hf-inner-page-hero,
    .hf-blog-page .hf-blog-hero {
        min-height: 290px;
    }

    .hf-inner-page--projects .hf-inner-page-hero {
        min-height: 290px;
    }

    .hf-inner-page--projects .hf-inner-page-hero__inner {
        padding: 46px 0;
    }

    .hf-inner-page-hero__inner,
    .hf-blog-page .hf-blog-hero .hf-shell,
    .hf-inner-page-cta__inner {
        width: calc(100% - 30px);
    }

    .hf-inner-page-hero__inner,
    .hf-blog-page .hf-blog-hero .hf-shell {
        padding: 46px 0;
    }

    .hf-inner-page-eyebrow,
    .hf-blog-page .hf-inner-eyebrow,
    .hf-inner-page .hf-section-kicker,
    .hf-inner-page .hf-card-label {
        margin-bottom: 10px;
        font-size: 10px;
    }

    .hf-inner-page-eyebrow::before,
    .hf-blog-page .hf-inner-eyebrow::before,
    .hf-inner-page .hf-section-kicker::before {
        width: 22px;
        flex-basis: 22px;
    }

    .hf-inner-page-hero h1,
    .hf-blog-page .hf-blog-hero h1 {
        font-size: clamp(30px, 8.8vw, 41px);
    }

    .hf-inner-page-lead,
    .hf-blog-page .hf-blog-hero p {
        margin-top: 17px;
        font-size: 14px;
        line-height: 1.52;
    }

    .hf-inner-page .hf-inner-section {
        padding: 54px 0;
    }

    .hf-inner-page .hf-section-heading {
        gap: 10px;
        margin-bottom: 28px;
    }

    .hf-inner-page .hf-section-heading h2 {
        font-size: clamp(29px, 8.5vw, 39px);
    }

    .hf-inner-page .hf-section-heading > p:not(.hf-section-kicker) {
        font-size: 14px;
        line-height: 1.57;
    }

    .hf-about-accreditation { padding-bottom: 54px; }

    .hf-about-accreditation__grid { grid-template-columns: 1fr; border-radius: 12px; }

    .hf-about-accreditation__copy { padding: 27px 23px 24px; }

    .hf-about-accreditation__copy h2 { font-size: 30px; }

    .hf-about-accreditation__copy > p:not(.hf-section-kicker) { margin-top: 15px; font-size: 14px; line-height: 1.55; }

    .hf-about-accreditation__logo { min-height: 148px; padding: 18px; }

    .hf-about-accreditation__logo img { min-height: 110px; }

    .hf-technology-cards,
    .hf-projects-empty-grid,
    .hf-certificates-empty-grid,
    .hf-detail-grid,
    .hf-steps-list,
    .hf-steps-list--four {
        grid-template-columns: 1fr;
    }

    .hf-technology-card {
        min-height: 368px;
        padding: 28px 24px;
        border-radius: 16px;
    }

    .hf-tech-panel {
        padding: 28px 24px;
        border-radius: 16px;
    }

    .hf-technology-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        margin: 0 0 16px;
        padding: 5px;
        border: 1px solid rgba(0, 63, 53, .14);
        border-radius: 12px;
        background: #f1e7d9;
    }

    .hf-technology-tabs__tab {
        min-height: 46px;
        padding: 10px 14px;
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: var(--hf-forest);
        cursor: pointer;
        font: inherit;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
        transition: background .2s ease, color .2s ease, box-shadow .2s ease;
    }

    .hf-technology-tabs__tab.is-active {
        background: var(--hf-forest);
        box-shadow: 0 4px 12px rgba(0, 51, 44, .18);
        color: var(--hf-white);
    }

    .hf-technology-tabs__tab:focus-visible {
        outline: 3px solid var(--hf-teal);
        outline-offset: 2px;
    }

    .hf-technology-comparison.is-tabs-ready {
        display: block;
    }

    .hf-technology-comparison.is-tabs-ready .hf-tech-panel[hidden] {
        display: none;
    }

    .hf-tech-panel header h2 {
        font-size: 31px;
    }

    .hf-tech-panel header > p:last-child {
        font-size: 14px;
        line-height: 1.56;
    }

    .hf-tech-panel__facts {
        margin-top: 27px;
    }

    .hf-tech-panel__image {
        min-height: 235px;
        margin: -28px -24px 27px;
        border-radius: 15px 15px 0 0;
    }

    .hf-tech-panel__image figcaption {
        right: 18px;
        bottom: 17px;
        left: 18px;
    }

    .hf-tech-panel__process ol {
        grid-template-columns: 1fr;
    }

    .hf-technology-card h2 {
        font-size: 31px;
    }

    .hf-technology-card > p:not(.hf-card-label) {
        font-size: 14px;
        line-height: 1.55;
    }

    .hf-check-list {
        gap: 9px;
        margin-top: 20px;
    }

    .hf-check-list li {
        font-size: 12px;
    }

    .hf-text-link {
        padding-top: 21px;
        font-size: 10px;
    }

    .hf-two-column-content,
    .hf-process-grid,
    .hf-foundation-intro {
        gap: 28px;
    }

    .hf-rich-copy {
        font-size: 15px;
        line-height: 1.66;
    }

    .hf-detail-grid {
        gap: 12px;
    }

    .hf-detail-grid article {
        min-height: 0;
        padding: 22px 20px;
    }

    .hf-detail-grid h3 {
        font-size: 17px;
    }

    .hf-steps-list li {
        min-height: 0;
        padding: 20px;
    }

    .hf-foundation-price-card {
        padding: 31px 25px;
        border-radius: 16px;
    }

    .hf-foundation-price-card strong {
        font-size: 46px;
    }

    .hf-information-note {
        padding: 27px 22px;
        border-radius: 0 14px 14px 0;
    }

    .hf-information-note p {
        font-size: 14px;
        line-height: 1.58;
    }

    .hf-projects-empty-card,
    .hf-certificate-empty-card {
        min-height: 265px;
        padding: 27px 23px;
        border-radius: 16px;
    }

    .hf-projects-empty-card h2,
    .hf-certificate-empty-card h2 {
        font-size: 29px;
    }

    .hf-projects-empty-card > p:not(.hf-card-label),
    .hf-certificate-empty-card > p:not(.hf-card-label) {
        font-size: 14px;
        line-height: 1.56;
    }

    .hf-faq-item summary {
        min-height: 69px;
        padding: 18px 38px 18px 0;
        font-size: 16px;
    }

    .hf-faq-item > p {
        padding: 0 18px 22px 0;
        font-size: 14px;
        line-height: 1.6;
    }

    .hf-inner-page-cta {
        padding: 45px 0;
    }

    .hf-inner-page-cta h2 {
        font-size: 31px;
    }

    .hf-inner-page-cta p {
        font-size: 14px;
        line-height: 1.55;
    }

    .hf-inner-page .hf-button {
        width: 100%;
        min-height: 44px;
        font-size: 10px;
    }

    .hf-about-intro__statement h2,
    .hf-about-process__heading h2 {
        font-size: clamp(32px, 9.2vw, 43px);
    }

    .hf-about-intro__statement > p:not(.hf-section-kicker) {
        font-size: 15px;
        line-height: 1.62;
    }

    .hf-about-solutions__grid,
    .hf-about-process__steps {
        grid-template-columns: 1fr;
    }

    .hf-about-story {
        padding-bottom: 62px;
        background: linear-gradient(to bottom, var(--hf-white) 0 24%, #f2f7f5 24% 100%);
    }

    .hf-about-story__frame {
        display: flex;
        min-height: 0;
        flex-direction: column;
    }

    .hf-about-story__content {
        min-height: 385px;
        padding: 38px 28px 42px;
    }

    .hf-about-story__main {
        min-height: 410px;
    }

    .hf-about-story__inset {
        right: 20px;
        bottom: -42px;
        width: 150px;
        border-width: 6px;
    }

    .hf-about-story__inset figcaption {
        padding: 10px;
        font-size: 10px;
    }

    .hf-about-solution {
        min-height: 325px;
        padding: 27px 24px;
        border-radius: 16px;
    }

    .hf-about-process__heading {
        display: block;
        margin-bottom: 35px;
    }

    .hf-about-process__steps li,
    .hf-about-process__steps li + li {
        min-height: 0;
        padding: 22px 0;
        border-right: 0;
        border-top: 1px solid rgba(0, 63, 53, .2);
    }

    .hf-about-process__steps li:first-child {
        border-top: 0;
    }

    .hf-about-process__steps h3 {
        margin-top: 18px;
    }

    .hf-about-projects__top {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .hf-about-projects__carousel {
        grid-auto-columns: minmax(258px, 82%);
        padding-bottom: 17px;
    }

    .hf-about-project-card__image,
    .hf-about-project-card__image img {
        min-height: 230px;
    }
}

/* Pricing */
.hf-price-addon-detail__hero { padding:clamp(34px,4vw,58px) 0 clamp(70px,9vw,122px); background:#e8f1ed; }.hf-price-addon-detail__hero .hf-shell { max-width:1120px; }.hf-price-addon-detail__layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(34px,6vw,82px); }.hf-price-addon-detail__media { min-height:390px; overflow:hidden; border-radius:22px; box-shadow:0 22px 45px rgba(0,63,53,.14); }.hf-price-addon-detail__media img { display:block; width:100%; height:100%; min-height:390px; object-fit:cover; }.hf-price-addon-detail__copy > p { margin:0 0 13px; color:#168b7b; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hf-price-addon-detail__copy h1 { margin:0; color:var(--hf-forest); font-size:clamp(40px,5vw,64px); letter-spacing:-.06em; line-height:1; }.hf-price-addon-detail__text { margin-top:26px; color:#48625b; font-size:18px; line-height:1.7; }.hf-price-addon-detail__text p { margin:0 0 16px; }.hf-price-addon-detail__copy .hf-button { margin-top:12px; }
@media (max-width:700px) { .hf-price-addon-detail__hero { padding:52px 0 62px; }.hf-price-addon-detail__layout { grid-template-columns:1fr; gap:28px; }.hf-price-addon-detail__media, .hf-price-addon-detail__media img { min-height:240px; }.hf-price-addon-detail__media { border-radius:16px; }.hf-price-addon-detail__text { margin-top:20px; font-size:16px; } }
@media (min-width:701px) { .hf-price-addon-detail { height:calc(100svh - var(--hf-header-height)); overflow:hidden; }.hf-price-addon-detail__hero { height:100%; padding:clamp(26px,3vw,44px) 0; box-sizing:border-box; }.hf-price-addon-detail__hero .hf-shell { height:100%; }.hf-price-addon-detail__layout { height:100%; align-items:stretch; }.hf-price-addon-detail__media { min-height:0; height:100%; position:sticky; top:0; }.hf-price-addon-detail__media img { min-height:0; height:100%; }.hf-price-addon-detail__copy { height:100%; padding:clamp(12px,2vw,28px) 18px clamp(12px,2vw,28px) 0; overflow-y:auto; scrollbar-width:thin; }.hf-price-addon-detail__copy::-webkit-scrollbar { width:6px; }.hf-price-addon-detail__copy::-webkit-scrollbar-thumb { border-radius:999px; background:rgba(0,77,66,.3); } }
.hf-price-plans { padding: clamp(58px, 8vw, 112px) 0; background: #f5f2eb; }
.hf-price-plans__intro { display: flex; align-items: end; justify-content: space-between; gap: 28px; max-width: 980px; margin: 0 auto clamp(30px, 4vw, 52px); }
.hf-price-plans__intro p { margin: 0; color: var(--hf-forest); font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -.055em; line-height: 1; }
.hf-price-plans__intro span { max-width: 440px; color: var(--hf-muted); font-size: 14px; line-height: 1.6; }
.hf-price-plans__tabs { display:inline-flex; gap:6px; margin:0 0 30px; padding:5px; border:1px solid rgba(0,63,53,.15); border-radius:999px; background:#fffdf9; box-shadow:0 8px 18px rgba(0,50,43,.06); }
.hf-price-plans__tabs button { min-width:96px; padding:11px 19px; border:0; border-radius:999px; background:transparent; color:#49635c; cursor:pointer; font:800 13px/1 inherit; letter-spacing:.07em; transition:background .2s ease,color .2s ease,transform .2s ease; }
.hf-price-plans__tabs button[aria-selected="true"] { background:#005447; color:#fff; box-shadow:0 5px 11px rgba(0,63,53,.2); }
.hf-price-plans__tabs button:hover { transform:translateY(-1px); }
.hf-price-plans__panel[hidden] { display:none; }
.hf-price-plans__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 18px; }
.hf-price-plan { position: relative; display: flex; min-height: 590px; padding: 31px; border: 1px solid rgba(0, 63, 53, .12); border-radius: 18px; background: #fffdf9; box-shadow: 0 15px 34px rgba(0, 50, 43, .07); color: var(--hf-forest); flex-direction: column; }
.hf-price-plan.is-featured { border-color: #007b69; background: linear-gradient(155deg, #075a4e 0%, #003e35 100%); box-shadow: 0 23px 48px rgba(0, 60, 50, .23); color: #fff; transform: translateY(-14px); }
.hf-price-plan__tag { position: absolute; top: -13px; left: 50%; padding: 7px 13px; border-radius: 999px; background: #9be1d5; color: #003e35; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }
.hf-price-plan__image { height: 148px; margin: -31px -31px 25px; overflow: hidden; border-radius: 17px 17px 0 0; background: #dfe9e5; }
.hf-price-plan__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.hf-price-plan:hover .hf-price-plan__image img { transform: scale(1.04); }
.hf-price-plan__head { padding-bottom: 24px; border-bottom: 1px solid rgba(0, 63, 53, .12); }
.hf-price-plan.is-featured .hf-price-plan__head { border-color: rgba(255,255,255,.22); }
.hf-price-plan__head > p { margin: 0; color: #168b7b; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hf-price-plan.is-featured .hf-price-plan__head > p { color: #a9e8dd; }
.hf-price-plan h2 { margin: 11px 0 25px; font-size: clamp(29px, 2.5vw, 38px); letter-spacing: -.055em; line-height: 1; }
.hf-price-plan__head div { display: flex; align-items: end; gap: 10px; }
.hf-price-plan__head strong { font-size: clamp(39px, 4vw, 57px); letter-spacing: -.075em; line-height: .84; }
.hf-price-plan__head div span { color: var(--hf-muted); font-size: 11px; font-weight: 700; line-height: 1.35; }
.hf-price-plan.is-featured .hf-price-plan__head div span { color: rgba(255,255,255,.68); }
.hf-price-plan ul { display: grid; gap: 0; margin: 20px 0 28px; padding: 0; list-style: none; }
.hf-price-plan li { position: relative; padding: 13px 0 13px 22px; border-bottom: 1px solid rgba(0, 63, 53, .1); color: #52645f; font-size: 13px; line-height: 1.48; }
.hf-price-plan li::before { position: absolute; top: 19px; left: 1px; width: 8px; height: 8px; border-radius: 50%; background: #31a995; content: ''; }
.hf-price-plan.is-featured li { border-color: rgba(255,255,255,.16); color: rgba(255,255,255,.84); }
.hf-price-plan.is-featured li::before { background: #9be1d5; }
.hf-price-plan > a { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding: 14px 16px; border-radius: 8px; background: #e5f3ef; color: #005447; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.hf-price-plan > a:hover { background: #ccece5; transform: translateY(-2px); }
.hf-price-plan.is-featured > a { background: #fff; color: #004d42; }
.hf-price-plans__note { max-width: 710px; margin: 38px auto 0; color: var(--hf-muted); font-size: 13px; line-height: 1.6; text-align: center; }
@media (min-width:901px) { .hf-price-plans__note { font-size:16px; } }
.hf-price-addons { padding:clamp(58px,8vw,105px) 0; background:#e8f1ed; }.hf-price-addons .hf-price-plans__intro { max-width:980px; }.hf-price-addons__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.hf-price-addons__grid.is-single { width:min(100%, 480px); margin-right:auto; margin-left:auto; grid-template-columns:minmax(0,1fr); }.hf-price-addons__grid.is-two { max-width:calc(((100% - 36px) / 3) * 2 + 18px); margin-right:auto; margin-left:auto; grid-template-columns:repeat(2,minmax(0,1fr)); }.hf-price-addon-plan { min-height:540px; }.hf-price-addon-plan .hf-price-plan__image { height:auto; aspect-ratio:4 / 3; }
.hf-build-process { padding:clamp(58px,8vw,105px) 0; background:#fffdf9; }.hf-build-process__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(28px,4vw,52px) 28px; }.hf-build-process__grid article { position:relative; min-width:0; padding:0 0 8px; }.hf-build-process__number { position:absolute; top:-8px; left:clamp(112px,8vw,138px); color:#a8aaa4; font-size:clamp(28px,2.2vw,38px); font-weight:300; letter-spacing:-.06em; line-height:1; }.hf-build-process__visual { display:grid; width:112px; height:112px; margin-bottom:29px; overflow:hidden; border:10px solid #eee6d9; border-radius:50%; background:#9a7a51; box-shadow:0 7px 13px rgba(91,68,38,.13); place-items:center; }.hf-build-process__visual img { display:block; width:100%; height:100%; object-fit:cover; opacity:.82; mix-blend-mode:luminosity; }.hf-build-process__visual span { color:#fff; font-size:42px; line-height:1; }.hf-build-process__grid article > div:last-child { max-width:340px; }.hf-build-process__grid h2 { margin:0 0 10px; color:var(--hf-forest); font-size:23px; letter-spacing:-.04em; }.hf-build-process__grid p { margin:0; color:var(--hf-muted); font-size:17px; line-height:1.45; }
.hf-build-process .hf-price-plans__intro { display:block; text-align:center; }.hf-build-process .hf-price-plans__intro span { display:block; max-width:560px; margin:16px auto 0; }.hf-build-process__grid article { text-align:center; }.hf-build-process__visual { margin-right:auto; margin-left:auto; }.hf-build-process__number { left:calc(50% + 58px); }.hf-build-process__grid article > div:last-child { margin-right:auto; margin-left:auto; }
.hf-price-warranty { padding:clamp(46px,6vw,82px) 0; background:#e8f1ed; }.hf-price-warranty__card { display:flex; align-items:center; justify-content:center; gap:30px; padding:clamp(30px,5vw,58px); border-radius:20px; background:linear-gradient(135deg,#004d42,#087b6d); box-shadow:0 20px 46px rgba(0,63,53,.18); color:#fff; flex-direction:column; text-align:center; }.hf-price-warranty__intro { max-width:720px; }.hf-price-warranty__card p { margin:0 0 11px; color:#a9e8dd; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hf-price-warranty__card h2 { margin:0; font-size:clamp(31px,4vw,52px); letter-spacing:-.055em; line-height:1; }.hf-price-warranty__card span { display:block; margin-top:17px; color:rgba(255,255,255,.82); font-size:15px; line-height:1.6; }.hf-price-warranty__duration { padding:23px 27px; border:1px solid rgba(255,255,255,.28); border-radius:12px; background:rgba(255,255,255,.11); color:#fff; font-size:clamp(28px,3.4vw,48px); letter-spacing:-.055em; line-height:1; }.hf-price-warranty__items { display:grid; width:min(100%,900px); grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin:0; padding:0; list-style:none; }.hf-price-warranty__items li { display:flex; min-height:94px; padding:18px 20px; border:1px solid rgba(255,255,255,.25); border-radius:12px; background:rgba(255,255,255,.1); flex-direction:column; justify-content:center; }.hf-price-warranty__items span { margin:0; color:rgba(255,255,255,.78); font-size:13px; }.hf-price-warranty__items strong { margin-top:8px; color:#fff; font-size:23px; letter-spacing:-.04em; }
.hf-price-configurator { padding:clamp(44px,6vw,76px) 0; background:#fffdf9; }.hf-price-configurator__inner { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:clamp(28px,4vw,48px); border-radius:18px; background:linear-gradient(130deg,#003e35,#007665); color:#fff; box-shadow:0 18px 42px rgba(0,63,53,.19); }.hf-price-configurator p { margin:0 0 10px; color:#a8e9dc; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hf-price-configurator h2 { max-width:630px; margin:0; font-size:clamp(28px,3.6vw,46px); letter-spacing:-.055em; line-height:1.04; }.hf-price-configurator span { display:block; max-width:650px; margin-top:14px; color:rgba(255,255,255,.78); line-height:1.55; }.hf-price-configurator .hf-button { flex:0 0 auto; min-width:220px; background:#fff; color:#004c42; }
.hf-client-reviews { padding:clamp(62px,8vw,110px) 0; background:#eef5f1; }.hf-client-reviews header { margin-bottom:30px; text-align:center; }.hf-client-reviews header p { margin:0 0 8px; color:#087b6d; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hf-client-reviews h2 { margin:0; color:var(--hf-forest); font-size:clamp(34px,4vw,52px); letter-spacing:-.055em; }.hf-client-reviews__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }.hf-client-reviews article { padding:28px; border:1px solid rgba(0,63,53,.13); border-radius:16px; background:#fffdf9; }.hf-client-reviews article img { width:54px; height:54px; border-radius:50%; object-fit:cover; }.hf-client-reviews blockquote { margin:18px 0; color:#23483f; font-size:17px; line-height:1.55; }.hf-client-reviews footer { display:flex; justify-content:space-between; gap:10px; color:var(--hf-muted); font-size:12px; }.hf-client-reviews footer strong { color:var(--hf-forest); }
.hf-client-reviews__avatar { display:grid; width:54px; height:54px; place-items:center; border-radius:50%; background:#007b69; color:#fff; font-size:22px; font-weight:800; }

@media (max-width: 900px) {
    .hf-price-plans__grid { grid-template-columns: 1fr; max-width: 570px; margin: 0 auto; gap: 24px; }
    .hf-price-addons__grid.is-single, .hf-price-addons__grid.is-two { max-width:570px; }
    .hf-build-process__grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:680px; margin:0 auto; }
    .hf-price-plan { min-height: 0; }
    .hf-price-plan.is-featured { transform: none; }
    .hf-price-configurator__inner { align-items:flex-start; flex-direction:column; }
    .hf-price-warranty__card { align-items:center; flex-direction:column; }
    .hf-client-reviews__grid { grid-template-columns:1fr; }
}

@media (max-width: 600px) {
    .hf-price-plans__intro { display: block; }
    .hf-price-plans__intro span { display: block; margin-top: 14px; }
    .hf-build-process__grid { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; margin:0; gap:28px 8px; }
    .hf-build-process__number { top:-3px; right:2px; left:auto; font-size:26px; }
    .hf-build-process__visual { width:54px; height:54px; margin:0 auto 15px; border-width:5px; }
    .hf-build-process__grid article > div:last-child { max-width:none; text-align:center; }
    .hf-build-process__grid h2 { margin-bottom:6px; font-size:16px; line-height:1.1; }
    .hf-build-process__grid p { font-size:12px; line-height:1.35; }
    .hf-price-plans__tabs { display:flex; width:100%; margin-bottom:25px; }
    .hf-price-plans__tabs button { flex:1; min-width:0; }
    .hf-price-plan { padding: 27px 22px; border-radius: 14px; }
    .hf-price-plan__image { height: 132px; margin: -27px -22px 22px; border-radius: 13px 13px 0 0; }
    .hf-price-addons__grid,
    .hf-price-addons__grid.is-two { width: 100%; max-width: 570px; grid-template-columns: minmax(0, 1fr); }
    .hf-price-addon-plan { min-width: 0; }
    .hf-price-addon-plan h2 { font-size: clamp(30px, 10vw, 38px); overflow-wrap: anywhere; }
}

/* Interactive company history */
.hf-history { display: grid; min-height: min(780px, 54vw); grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr); background: #070a09; color: #fff; }
.hf-history__visual { position: relative; overflow: hidden; background: #193b35; }
.hf-history__visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 48%, rgba(7, 10, 9, .92) 100%); content: ''; pointer-events: none; }
.hf-history__visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 1; transition: opacity .42s ease; }
.hf-history.is-switching .hf-history__visual img { opacity: .18; }
.hf-history__content { display: flex; width: min(100%, 720px); padding: clamp(54px, 7vw, 122px) clamp(34px, 7vw, 128px) clamp(38px, 5vw, 85px) clamp(34px, 7vw, 128px); flex-direction: column; justify-content: center; }
.hf-history__copy { max-width: 480px; transition: opacity .28s ease, transform .42s cubic-bezier(.2,.8,.2,1); }
.hf-history.is-switching .hf-history__copy { opacity: 0; transform: translateY(20px); }
.hf-history__eyebrow { margin: 0 0 33px; color: #82d3c7; font-size: 11px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.hf-history__copy h2 { margin: 0; color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(38px, 4.1vw, 68px); font-weight: 400; letter-spacing: -.048em; line-height: 1.02; }
.hf-history__copy > p:last-child { margin: 33px 0 0; color: rgba(230, 239, 236, .72); font-size: clamp(15px, 1.28vw, 18px); line-height: 1.75; }
.hf-history__controls { display: grid; margin-top: clamp(52px, 8vw, 135px); grid-template-columns: 40px minmax(0, 1fr) 40px; align-items: start; gap: 12px; }
.hf-history__arrow { width: 40px; height: 40px; padding: 0; border: 0; background: transparent; color: rgba(255,255,255,.72); cursor: pointer; font-size: 31px; font-weight: 200; line-height: 1; transition: color .2s ease, transform .2s ease; animation:hf-history-arrow-pulse 1.8s ease-in-out infinite; }
.hf-history__arrow:hover { color: #8bded2; transform: scale(1.14); animation-play-state:paused; }
@keyframes hf-history-arrow-pulse { 0%,100% { color:rgba(255,255,255,.72); transform:scale(1); } 50% { color:#8bded2; transform:scale(1.2); } }
.hf-history__arrow:focus-visible, .hf-history__year:focus-visible { outline: 2px solid #8bded2; outline-offset: 4px; }
.hf-history__years { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hf-history__years::before { position: absolute; top: 17px; right: 7%; left: 7%; height: 1px; background: rgba(255,255,255,.35); content: ''; }
.hf-history__year { position: relative; z-index: 1; display: grid; padding: 0 3px; border: 0; background: transparent; color: rgba(255,255,255,.53); cursor: pointer; font: inherit; justify-items: center; transition: color .28s ease; }
.hf-history__year span { width: 13px; height: 13px; border: 2px solid #070a09; border-radius: 50%; background: #8a9390; box-shadow: 0 0 0 0 #83d8cb; transition: background .3s ease, box-shadow .3s ease, transform .3s ease; }
.hf-history__year b { margin-top: 18px; font-size: clamp(11px, 1vw, 14px); font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.hf-history__year:hover { color: #fff; }
.hf-history__year:hover span { background: #d3ece6; transform: scale(1.1); }
.hf-history__year.is-active { color: #8ee3d7; }
.hf-history__year.is-active span { background: #0a0e0d; box-shadow: 0 0 0 3px #8ee3d7; transform: scale(1.15); }

/* LGSF catalogue additions */
.hf-lgsf-certificate-scope { background: #fffdf9; }
.hf-lgsf-certificate-scope__grid, .hf-lgsf-thermal__grid { display: grid; grid-template-columns: minmax(290px, .84fr) minmax(0, 1.16fr); gap: clamp(38px, 7vw, 110px); align-items: center; }
.hf-lgsf-certificate-scope figure, .hf-lgsf-thermal figure { margin: 0; overflow: hidden; background: #f1f3f2; }
.hf-lgsf-certificate-scope figure { min-height: 480px; }
.hf-lgsf-certificate-scope figure img, .hf-lgsf-thermal figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hf-lgsf-certificate-scope h2, .hf-lgsf-thermal h2 { margin: 0 0 27px; color: #074b41; font-size: clamp(32px, 3.7vw, 57px); line-height: 1.04; }
.hf-lgsf-scope-list { display: grid; margin: 33px 0; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #cbd8d4; border-bottom: 1px solid #cbd8d4; }
.hf-lgsf-scope-list article { padding: 24px 24px 24px 0; }
.hf-lgsf-scope-list article + article { padding-left: 24px; border-left: 1px solid #cbd8d4; }
.hf-lgsf-scope-list h3 { margin: 0 0 12px; color: #064b40; font-size: 20px; }
.hf-lgsf-scope-list p, .hf-lgsf-certificate-scope__grid > div > p, .hf-lgsf-thermal p { color: #536864; font-size: 15px; line-height: 1.65; }
.hf-lgsf-scope-note { padding: 18px 20px; background: #edf4f1; color: #42615a !important; font-size: 13px !important; line-height: 1.7 !important; }
.hf-lgsf-catalogue-benefits__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #c8d8d3; }
.hf-lgsf-catalogue-benefits__grid article { min-height: 190px; padding: 25px 25px 25px 0; border-right: 1px solid #c8d8d3; border-bottom: 1px solid #c8d8d3; }
.hf-lgsf-catalogue-benefits__grid article:nth-child(3n) { padding-right: 0; border-right: 0; }
.hf-lgsf-catalogue-benefits__grid article:nth-child(3n+2) { padding-left: 25px; }
.hf-lgsf-catalogue-benefits__grid article:nth-child(3n) { padding-left: 25px; }
.hf-lgsf-catalogue-benefits__grid h3 { margin: 0 0 14px; color: #074b41; font-size: 21px; }
.hf-lgsf-catalogue-benefits__grid p { margin: 0; color: #536864; font-size: 14px; line-height: 1.6; }
.hf-lgsf-thermal { background: #f7f8f7; }
.hf-lgsf-thermal__grid { grid-template-columns: minmax(0, 1.04fr) minmax(300px, .96fr); }
.hf-lgsf-thermal table { width: 100%; margin-top: 28px; border-spacing: 0; border-collapse: collapse; text-align: left; }
.hf-lgsf-thermal th, .hf-lgsf-thermal td { padding: 12px 14px; border: 1px solid #9aacA5; color: #526762; font-size: 13px; line-height: 1.4; }
.hf-lgsf-thermal th { color: #174e45; }
.hf-lgsf-thermal small { display: block; margin-top: 12px; color: #71807c; font-size: 11px; }
.hf-lgsf-thermal figure { min-height: 510px; }
.hf-lgsf-showcase-image { min-height: 420px; margin: 0; overflow: hidden; background: #dfe9e5; box-shadow: 18px 18px 0 #d4e6e0; }
.hf-lgsf-showcase-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-lgsf-performance-grid { display: grid; margin-top: 56px; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(231, 248, 243, .25); border-bottom: 1px solid rgba(231, 248, 243, .25); }
.hf-lgsf-performance-grid article { display: flex; min-height: 155px; padding: 25px 23px 25px 0; flex-direction: column; border-right: 1px solid rgba(231, 248, 243, .25); }
.hf-lgsf-performance-grid article + article { padding-left: 23px; }
.hf-lgsf-performance-grid article:last-child { border-right: 0; }
.hf-lgsf-performance-grid b { color: #e8f4f0; font-size: 17px; line-height: 1.2; }
.hf-lgsf-performance-grid span { margin-top: auto; color: rgba(239, 249, 246, .69); font-size: 13px; line-height: 1.5; }
.hf-lgsf-document-preview { max-width: 670px; margin: 42px 0 0; border: 1px solid #d0ddd8; background: #fff; }
.hf-lgsf-document-preview img { display: block; width: 100%; height: auto; }
.hf-lgsf-performance-visual { display: grid; grid-template-columns: minmax(190px, .38fr) minmax(0, 1fr); gap: 50px; align-items: center; }
.hf-lgsf-performance-visual figure { min-height: 280px; margin: 0; overflow: hidden; background: #e8efec; }
.hf-lgsf-performance-visual img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hf-lgsf-certificate-stamp { display: flex; min-height: 420px; padding: 38px; flex-direction: column; align-items: flex-start; justify-content: center; background: #0b5549; color: #fff; box-shadow: 18px 18px 0 #d4e6e0; }
.hf-lgsf-certificate-stamp span { color: #9be1d5; font-size: 13px; font-weight: 800; letter-spacing: .16em; }
.hf-lgsf-certificate-stamp b { margin: 15px 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(55px, 6vw, 87px); font-weight: 400; letter-spacing: -.08em; line-height: .85; }
.hf-lgsf-certificate-stamp small { color: rgba(236, 248, 244, .76); font-size: 15px; letter-spacing: .1em; }

@media (max-width: 900px) {
    .hf-history { min-height: 0; grid-template-columns: minmax(0, .88fr) minmax(360px, 1.12fr); }
    .hf-history__content { padding: 52px 38px 36px; }
    .hf-history__controls { margin-top: 66px; }
}

@media (max-width: 680px) {
    .hf-history { grid-template-columns: 1fr; }
    .hf-history__visual { min-height: 320px; }
    .hf-history__visual::after { background: linear-gradient(180deg, transparent 48%, rgba(7, 10, 9, .88) 100%); }
    .hf-history__content { width: auto; min-height: 420px; padding: 43px 24px 31px; }
    .hf-history__eyebrow { margin-bottom: 20px; }
    .hf-history__copy h2 { font-size: clamp(36px, 11vw, 49px); }
    .hf-history__copy > p:last-child { margin-top: 22px; font-size: 15px; line-height: 1.63; }
    .hf-history__controls { margin-top: auto; grid-template-columns: 30px minmax(0, 1fr) 30px; gap: 2px; }
    .hf-history__arrow { width: 30px; font-size: 26px; }
    .hf-history__years::before { right: 8%; left: 8%; top: 13px; }
    .hf-history__year span { width: 11px; height: 11px; }
    .hf-history__year b { margin-top: 14px; font-size: 9px; letter-spacing: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .hf-history *, .hf-history *::before, .hf-history *::after { transition-duration: .01ms !important; animation:none !important; }
}

@media (max-width: 850px) {
    .hf-lgsf-certificate-scope__grid, .hf-lgsf-thermal__grid { grid-template-columns: 1fr; }
    .hf-lgsf-performance-grid { grid-template-columns: repeat(2, 1fr); }
    .hf-lgsf-performance-visual { grid-template-columns: minmax(170px, .36fr) minmax(0, 1fr); gap: 30px; }
    .hf-lgsf-performance-grid article:nth-child(2) { border-right: 0; }
    .hf-lgsf-performance-grid article:nth-child(n+3) { border-top: 1px solid rgba(231, 248, 243, .25); }
    .hf-lgsf-certificate-scope figure { max-width: 540px; min-height: 400px; }
    .hf-lgsf-thermal figure { min-height: 380px; }
}
@media (max-width: 560px) {
    .hf-lgsf-scope-list, .hf-lgsf-catalogue-benefits__grid { grid-template-columns: 1fr; }
    .hf-lgsf-scope-list article, .hf-lgsf-scope-list article + article, .hf-lgsf-catalogue-benefits__grid article, .hf-lgsf-catalogue-benefits__grid article:nth-child(3n), .hf-lgsf-catalogue-benefits__grid article:nth-child(3n+2) { min-height: 0; padding: 21px 0; border-right: 0; border-bottom: 1px solid #c8d8d3; }
    .hf-lgsf-scope-list article:last-child, .hf-lgsf-catalogue-benefits__grid article:last-child { border-bottom: 0; }
    .hf-lgsf-certificate-scope figure, .hf-lgsf-thermal figure { min-height: 270px; }
    .hf-lgsf-showcase-image { min-height: 280px; box-shadow: 10px 10px 0 #d4e6e0; }
    .hf-lgsf-performance-visual { grid-template-columns: 1fr; gap: 26px; }
    .hf-lgsf-performance-visual figure { min-height: 230px; }
    .hf-lgsf-certificate-stamp { min-height: 230px; padding: 28px; box-shadow: 10px 10px 0 #d4e6e0; }
    .hf-lgsf-performance-grid { grid-template-columns: 1fr; }
    .hf-lgsf-performance-grid article, .hf-lgsf-performance-grid article + article { min-height: 0; padding: 21px 0; border-right: 0; border-bottom: 1px solid rgba(231, 248, 243, .25); }
    .hf-lgsf-performance-grid article:last-child { border-bottom: 0; }
    .hf-lgsf-thermal th, .hf-lgsf-thermal td { padding: 10px; font-size: 12px; }
}

/* SIP technology page */
.hf-sip-page { overflow: hidden; background: #fbfaf7; color: #123f38; }
.hf-sip-page h1, .hf-sip-page h2, .hf-sip-page h3, .hf-sip-page p { margin-top: 0; }
.hf-sip-hero { position: relative; padding: clamp(28px, 4vw, 62px) 0 0; background: #06483e; color: #fff; }
.hf-sip-hero::after { position: absolute; right: -8vw; bottom: -14vw; width: min(44vw, 690px); height: min(44vw, 690px); border: 1px solid rgba(158, 226, 211, .18); border-radius: 50%; content: ''; pointer-events: none; }
.hf-sip-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: center; gap: clamp(38px, 7vw, 112px); }
.hf-sip-eyebrow { margin-bottom: 18px; color: #199f8e; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.hf-sip-hero .hf-sip-eyebrow, .hf-sip-performance .hf-sip-eyebrow { color: #91dfd0; }
.hf-sip-hero h1 { max-width: 690px; color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(46px, 5.5vw, 85px); font-weight: 400; letter-spacing: -.062em; line-height: .94; }
.hf-sip-hero__copy > p:not(.hf-sip-eyebrow) { max-width: 590px; margin: 29px 0 0; color: rgba(235, 247, 243, .8); font-size: clamp(16px, 1.4vw, 20px); line-height: 1.65; }
.hf-sip-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 27px; margin-top: 37px; }
.hf-sip-button { display: inline-flex; min-height: 52px; padding: 0 20px; align-items: center; gap: 29px; background: #d8eee9; color: #06483e; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.hf-sip-button:hover { background: #fff; color: #06483e; transform: translateY(-2px); }
.hf-sip-button span, .hf-sip-text-link span { font-size: 19px; line-height: 1; }
.hf-sip-text-link { color: #fff; font-size: 13px; font-weight: 700; text-decoration: none; }
.hf-sip-text-link:hover { color: #a6e8dc; }
.hf-sip-hero__image { position: relative; z-index: 1; height: clamp(300px, 29vw, 465px); min-height: 0; margin: 0; overflow: hidden; background: #0f6054; }
.hf-sip-hero__image::after { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(4, 45, 38, .15), rgba(4, 45, 38, .55)); content: ''; pointer-events: none; }
.hf-sip-hero__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-sip-hero__image figcaption { position: absolute; z-index: 2; bottom: 20px; left: 20px; padding: 9px 12px; background: rgba(4, 38, 33, .88); color: #dcefe9; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hf-sip-stats { position: relative; z-index: 2; display: grid; margin: clamp(28px, 3.5vw, 55px) 0 0; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(233, 247, 242, .25); }
.hf-sip-stats div { padding: 25px 28px 31px 0; border-right: 1px solid rgba(233, 247, 242, .25); }
.hf-sip-stats div + div { padding-left: 28px; }
.hf-sip-stats div:last-child { border-right: 0; }
.hf-sip-stats dt { color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(28px, 3.3vw, 48px); letter-spacing: -.06em; }
.hf-sip-stats dd { max-width: 250px; margin: 8px 0 0; color: rgba(235, 247, 243, .7); font-size: 12px; line-height: 1.5; }
.hf-sip-section { padding: clamp(70px, 9vw, 140px) 0; }
.hf-sip-section--pale { background: #edf4f1; }
.hf-sip-system { background: #fffdf9; }
.hf-sip-system__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(380px, 1.05fr); align-items: center; gap: clamp(46px, 9vw, 150px); }
.hf-technology-custom-details { background: #fffdf9; }
.hf-technology-custom-details__item { display: grid; margin-bottom: clamp(42px, 7vw, 100px); grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: clamp(36px, 8vw, 120px); align-items: center; }
.hf-technology-custom-details__item:last-child { margin-bottom: 0; }
.hf-technology-custom-details__item--reversed > :first-child { order: 2; }
.hf-technology-custom-details__item h2 { margin-bottom: 25px; }
.hf-technology-custom-details__item p:not(.hf-sip-eyebrow) { max-width: 620px; color: #536864; font-size: 16px; line-height: 1.7; }
.hf-technology-custom-details__item figure { min-height: 330px; margin: 0; overflow: hidden; background: #dce8e3; }
.hf-technology-custom-details__item figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-sip-page h2 { color: #06483e; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(38px, 4.4vw, 67px); font-weight: 400; letter-spacing: -.055em; line-height: .98; }
.hf-sip-lead { max-width: 600px; margin: 30px 0 0; color: #506561; font-size: 17px; line-height: 1.75; }
.hf-sip-panel { display: grid; min-height: 430px; padding: 37px; grid-template-columns: .64fr 1.72fr .64fr; gap: 10px; align-items: stretch; background: #0c564b; box-shadow: 18px 18px 0 #d4e6e0; transform: skewY(-2deg); }
.hf-sip-panel__layer { display: flex; min-height: 240px; padding: 25px 12px; flex-direction: column; justify-content: flex-end; }
.hf-sip-panel__layer b { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(26px, 3vw, 44px); font-weight: 400; letter-spacing: -.06em; }
.hf-sip-panel__layer span { margin-top: 8px; font-size: 10px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.hf-sip-panel__layer--osb { background: #c99864; color: #173d35; }
.hf-sip-panel__layer--eps { background: #eff6f1; color: #105247; }
.hf-sip-heading { max-width: 720px; margin-bottom: clamp(35px, 5vw, 64px); }
.hf-sip-heading > .hf-sip-eyebrow { margin-bottom: 15px; }
.hf-sip-uses, .hf-sip-benefits { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bfd1cb; }
.hf-sip-uses article, .hf-sip-benefits article { min-height: 255px; padding: 25px 25px 26px 0; border-right: 1px solid #bfd1cb; }
.hf-sip-uses article + article, .hf-sip-benefits article + article { padding-left: 25px; }
.hf-sip-uses article:last-child, .hf-sip-benefits article:last-child { border-right: 0; }
.hf-sip-uses span, .hf-sip-benefits span { color: #168c7d; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.hf-sip-uses h3, .hf-sip-benefits h3 { margin: 51px 0 11px; color: #075047; font-size: 21px; line-height: 1.12; }
.hf-sip-uses p, .hf-sip-benefits p { margin: 0; color: #536864; font-size: 14px; line-height: 1.6; }
.hf-sip-performance { background: #073f36; color: #fff; }
.hf-sip-performance h2 { max-width: 680px; color: #fff; }
.hf-sip-performance__intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr); gap: 65px; align-items: end; }
.hf-sip-performance__intro > p:last-child { margin: 0; color: rgba(239, 249, 246, .72); font-size: 15px; line-height: 1.68; }
.hf-sip-rscale { display: grid; margin-top: 53px; padding: 0 0 24px; grid-template-columns: repeat(5, 1fr); gap: 12px; border-bottom: 1px solid rgba(231, 248, 243, .25); align-items: end; }
.hf-sip-rscale div { display: flex; min-height: 150px; flex-direction: column; justify-content: end; }
.hf-sip-rscale b { margin-bottom: 9px; color: rgba(239, 249, 246, .72); font-size: 10px; letter-spacing: .08em; }
.hf-sip-rscale span { display: flex; height: calc(var(--hf-r) * 18px); min-height: 63px; padding: 8px; align-items: start; background: #bc916b; color: #123f38; font-size: 12px; font-weight: 800; }
.hf-sip-uvalues { display: grid; margin-top: 61px; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(231, 248, 243, .25); border-bottom: 1px solid rgba(231, 248, 243, .25); }
.hf-sip-uvalues article { display: flex; min-height: 186px; padding: 27px 27px 25px 0; flex-direction: column; border-right: 1px solid rgba(231, 248, 243, .25); }
.hf-sip-uvalues article + article { padding-left: 27px; }
.hf-sip-uvalues article:last-child { border-right: 0; }
.hf-sip-uvalues strong { color: #a2ded4; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.hf-sip-uvalues b { margin-top: auto; color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(44px, 5vw, 72px); font-weight: 400; letter-spacing: -.07em; line-height: .85; }
.hf-sip-uvalues span { margin-top: 8px; color: rgba(239, 249, 246, .67); font-size: 12px; }
.hf-sip-performance__note { margin: 19px 0 0; color: rgba(239, 249, 246, .56); font-size: 11px; line-height: 1.5; }
.hf-sip-heading--split { display: grid; max-width: none; grid-template-columns: minmax(0, 1.1fr) minmax(250px, .55fr); gap: 50px; align-items: end; }
.hf-sip-heading--split > p:last-child { margin: 0 0 5px; color: #5d716d; font-size: 15px; line-height: 1.65; }
.hf-sip-benefits { grid-template-columns: repeat(3, 1fr); border-color: #cfdcd8; }
.hf-sip-benefits article { min-height: 220px; border-color: #cfdcd8; }
.hf-sip-benefits h3 { margin-top: 42px; }
.hf-sip-timeline { display: grid; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(4, 1fr); border-top: 2px solid #0e574c; counter-reset: none; }
.hf-sip-timeline li { position: relative; padding: 36px 24px 0 0; border-right: 1px solid #bfd0ca; }
.hf-sip-timeline li + li { padding-left: 24px; }
.hf-sip-timeline li:last-child { border-right: 0; }
.hf-sip-timeline li::before { position: absolute; top: -8px; left: -1px; width: 14px; height: 14px; border-radius: 50%; background: #0c6f61; content: ''; }
.hf-sip-timeline li + li::before { left: 23px; }
.hf-sip-timeline span { color: #149080; font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.hf-sip-timeline h3 { margin: 22px 0 10px; color: #084d43; font-size: 19px; }
.hf-sip-timeline p { margin: 0; color: #536864; font-size: 14px; line-height: 1.6; }
.hf-sip-comparison { overflow-x: auto; border-top: 2px solid #0c584c; }
.hf-sip-comparison table { width: 100%; min-width: 680px; border-spacing: 0; border-collapse: collapse; text-align: left; }
.hf-sip-comparison th, .hf-sip-comparison td { padding: 21px 25px; border-bottom: 1px solid #cfddd8; color: #546864; font-size: 14px; line-height: 1.5; vertical-align: top; }
.hf-sip-comparison thead th { color: #0a4d43; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.hf-sip-comparison tbody th { width: 22%; color: #074b41; font-size: 15px; }
.hf-sip-disclaimer { max-width: 740px; margin: 22px 0 0; color: #71817e; font-size: 12px; line-height: 1.6; }
.hf-sip-maker { background: #f1f5f2; }
.hf-sip-maker__grid, .hf-sip-values__grid { display: grid; grid-template-columns: minmax(310px, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 7vw, 110px); align-items: center; }
.hf-sip-maker figure, .hf-sip-values figure, .hf-sip-products figure, .hf-sip-materials__photo, .hf-sip-installation figure { margin: 0; overflow: hidden; background: #dce8e3; }
.hf-sip-maker figure { min-height: 530px; }
.hf-sip-maker figure img, .hf-sip-values figure img, .hf-sip-products figure img, .hf-sip-materials__photo img, .hf-sip-installation figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-sip-maker h2 { max-width: 660px; }
.hf-sip-maker__copy > p:not(.hf-sip-eyebrow), .hf-sip-values p { color: #526762; font-size: 15px; line-height: 1.7; }
.hf-sip-maker__numbers { display: grid; margin: 34px 0 25px; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #b9cec7; border-bottom: 1px solid #b9cec7; }
.hf-sip-maker__numbers div { display: flex; min-height: 128px; padding: 19px 20px 19px 0; flex-direction: column; justify-content: center; }
.hf-sip-maker__numbers div + div { padding-left: 20px; border-left: 1px solid #b9cec7; }
.hf-sip-maker__numbers b { color: #06483e; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(38px, 4.1vw, 59px); font-weight: 400; letter-spacing: -.07em; line-height: 1; }
.hf-sip-maker__numbers span { margin-top: 8px; color: #47625c; font-size: 12px; font-weight: 700; line-height: 1.35; }
.hf-sip-maker__small { font-size: 13px !important; }
.hf-sip-application { background: #fffdf9; }
.hf-sip-application__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: clamp(36px, 8vw, 125px); align-items: center; }
.hf-sip-application h2 { max-width: 680px; }
.hf-sip-application p { max-width: 670px; color: #526762; font-size: 15px; line-height: 1.72; }
.hf-sip-application figure { min-height: 370px; margin: 0; overflow: hidden; background: #dce8e3; }
.hf-sip-application figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hf-sip-materials { background: #fffdf9; }
.hf-sip-materials__grid { display: grid; grid-template-columns: minmax(250px, .82fr) repeat(3, 1fr); gap: 0; border-top: 1px solid #cadad5; }
.hf-sip-materials__photo { min-height: 300px; }
.hf-sip-materials__grid article { padding: 27px 25px; border-right: 1px solid #cadad5; border-bottom: 1px solid #cadad5; }
.hf-sip-materials__grid article:last-child { border-right: 0; }
.hf-sip-materials__grid h3 { margin: 0 0 17px; color: #075047; font-size: 20px; }
.hf-sip-materials__grid p { margin: 0; color: #536864; font-size: 14px; line-height: 1.62; }
.hf-sip-products { display: grid; margin: 0 0 54px; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); background: #fffdf9; }
.hf-sip-products figure { min-height: 260px; }
.hf-sip-products ul { display: grid; margin: 0; padding: 29px 34px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; row-gap: 14px; color: #31544d; font-size: 14px; line-height: 1.4; }
.hf-sip-products li::marker, .hf-sip-values li::marker { color: #118675; }
.hf-sip-construction { position: relative; min-height: 310px; margin: 54px 0 0; overflow: hidden; background: #0c554a; }
.hf-sip-construction img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }
.hf-sip-construction::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 48, 40, .66), rgba(3, 48, 40, .05)); content: ''; }
.hf-sip-construction figcaption { position: absolute; z-index: 1; bottom: 28px; left: 30px; max-width: 290px; color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: 24px; letter-spacing: -.035em; line-height: 1.08; }
.hf-sip-installation { display: grid; margin: 0 0 58px; grid-template-columns: minmax(0, .75fr) minmax(330px, 1.25fr); gap: clamp(28px, 6vw, 86px); align-items: center; }
.hf-sip-installation p { color: #516863; font-size: 15px; line-height: 1.7; }
.hf-sip-installation figure { min-height: 300px; background: #fff; }
.hf-sip-installation figure img { object-fit: contain; }
.hf-sip-elements { background: #fffdf9; }
.hf-sip-elements__grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(400px, 1.2fr); gap: clamp(30px, 7vw, 100px); align-items: center; }
.hf-sip-elements__copy { color: #526762; font-size: 15px; line-height: 1.7; }
.hf-sip-elements__copy ul { margin: 26px 0 0; padding-left: 21px; }
.hf-sip-elements__copy li { margin: 0 0 12px; }
.hf-sip-elements__copy li::marker { color: #118675; }
.hf-sip-elements figure { min-height: 340px; margin: 0; overflow: hidden; background: #fff; }
.hf-sip-elements figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hf-sip-values { background: #eaf2ef; }
.hf-sip-values figure { min-height: 420px; background: #0d332c; }
.hf-sip-values h2 { max-width: 680px; }
.hf-sip-values ul { display: grid; margin: 24px 0 0; padding-left: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 35px; color: #31544d; font-size: 14px; line-height: 1.45; }
@media (max-width: 850px) {
    .hf-sip-hero__grid, .hf-sip-system__grid, .hf-sip-performance__intro, .hf-sip-heading--split { grid-template-columns: 1fr; }
    .hf-technology-custom-details__item { grid-template-columns: 1fr; }
    .hf-technology-custom-details__item--reversed > :first-child { order: initial; }
    .hf-sip-hero__image { max-width: 620px; height: 390px; }
    .hf-sip-performance__intro { gap: 22px; }
    .hf-sip-uses, .hf-sip-benefits, .hf-sip-timeline { grid-template-columns: repeat(2, 1fr); }
    .hf-sip-maker__grid, .hf-sip-values__grid, .hf-sip-installation { grid-template-columns: 1fr; }
    .hf-sip-application__grid, .hf-sip-elements__grid { grid-template-columns: 1fr; }
    .hf-sip-maker figure { min-height: 390px; max-width: 560px; }
    .hf-sip-materials__grid { grid-template-columns: repeat(2, 1fr); }
    .hf-sip-materials__photo { grid-row: span 2; }
    .hf-sip-uses article:nth-child(2), .hf-sip-benefits article:nth-child(2), .hf-sip-timeline li:nth-child(2) { border-right: 0; }
    .hf-sip-uses article:nth-child(n+3), .hf-sip-benefits article:nth-child(n+3), .hf-sip-timeline li:nth-child(n+3) { border-top: 1px solid #bfd1cb; }
    .hf-sip-timeline li:nth-child(3)::before { left: -1px; }
}
@media (max-width: 560px) {
    .hf-sip-hero { padding-top: 32px; }
    .hf-sip-hero h1 { font-size: clamp(43px, 13vw, 60px); }
    .hf-sip-hero__actions { gap: 19px; }
    .hf-sip-hero__image { height: 285px; }
    .hf-sip-stats { grid-template-columns: 1fr; }
    .hf-sip-stats div, .hf-sip-stats div + div { padding: 20px 0; border-right: 0; border-bottom: 1px solid rgba(233, 247, 242, .25); }
    .hf-sip-stats div:last-child { border-bottom: 0; }
    .hf-sip-panel { min-height: 305px; padding: 18px; gap: 6px; box-shadow: 10px 10px 0 #d4e6e0; }
    .hf-technology-custom-details__item figure { min-height: 250px; }
    .hf-sip-panel__layer { min-height: 195px; padding: 15px 8px; }
    .hf-sip-panel__layer span { font-size: 8px; }
    .hf-sip-uses, .hf-sip-benefits, .hf-sip-timeline, .hf-sip-uvalues { grid-template-columns: 1fr; }
    .hf-sip-uses article, .hf-sip-uses article + article, .hf-sip-benefits article, .hf-sip-benefits article + article, .hf-sip-timeline li, .hf-sip-timeline li + li, .hf-sip-uvalues article, .hf-sip-uvalues article + article { min-height: 0; padding: 23px 0; border-right: 0; border-bottom: 1px solid #bfd1cb; }
    .hf-sip-uses article:last-child, .hf-sip-benefits article:last-child, .hf-sip-timeline li:last-child, .hf-sip-uvalues article:last-child { border-bottom: 0; }
    .hf-sip-uses h3, .hf-sip-benefits h3 { margin-top: 30px; }
    .hf-sip-timeline li::before, .hf-sip-timeline li + li::before { top: -7px; left: -1px; }
    .hf-sip-uvalues { margin-top: 39px; }
    .hf-sip-uvalues article { min-height: 145px; }
    .hf-sip-rscale { margin-top: 36px; gap: 7px; }
    .hf-sip-rscale div { min-height: 120px; }
    .hf-sip-rscale span { height: calc(var(--hf-r) * 14px); font-size: 10px; }
    .hf-sip-maker figure, .hf-sip-values figure, .hf-sip-installation figure { min-height: 270px; }
    .hf-sip-application figure, .hf-sip-elements figure { min-height: 250px; }
    .hf-sip-maker__numbers, .hf-sip-materials__grid, .hf-sip-products, .hf-sip-installation { grid-template-columns: 1fr; }
    .hf-sip-materials__photo { grid-row: auto; min-height: 230px; }
    .hf-sip-materials__grid article { padding: 24px 0; border-right: 0; }
    .hf-sip-products figure { min-height: 210px; }
    .hf-sip-products ul { padding: 25px 20px 27px; grid-template-columns: 1fr; }
    .hf-sip-construction { min-height: 250px; margin-top: 36px; }
    .hf-sip-construction figcaption { bottom: 20px; left: 20px; font-size: 21px; }
    .hf-sip-values ul { grid-template-columns: 1fr; }
}
