/* Katolliset: practical, bold contractor identity. */
:root{--brown:#2c251f;--ink:#2c251f;--muted:#665f57;--paper:#f8f7f3;--white:#fffefa;--gold:#a0814a;--gold-light:#ceb78c;--line:#ddd9d0;--heading:Bahnschrift,'Arial Narrow','Segoe UI',Arial,sans-serif;--serif:var(--heading);--sans:'Segoe UI',Arial,sans-serif}
h1,h2,h3{font-family:var(--heading);font-weight:750;letter-spacing:-.035em}h1,h2{line-height:1.08}h3{font-weight:700}em{font-style:normal;font-weight:inherit;color:#8c703e}.eyebrow{font-weight:750;letter-spacing:.13em;font-size:11px;color:#806435}.button{font-weight:700;border-radius:0;letter-spacing:.01em}.button:hover{transform:translateY(-2px)}.button.gold,.button.light,.header-actions .button,.mobile-cta .button{background:var(--gold-light);color:var(--brown);border-color:var(--gold-light)}.button.gold:hover,.button.light:hover,.header-actions .button:hover,.mobile-cta .button:hover{background:#dfcba5}.quiet-link{font-weight:700}.site-header{background:var(--paper);backdrop-filter:none}.header-inner{height:92px}.logo{font-family:var(--heading);font-size:29px;font-weight:850;letter-spacing:-1.1px;text-transform:uppercase;gap:10px}.logo svg{width:42px;color:#846a3d}.logo-sub{font-family:var(--sans);font-weight:600;font-size:7px;letter-spacing:.23em;margin-top:6px}.desktop-nav{font-weight:650}.menu-toggle span{height:2px}.mobile-nav a{font-weight:650}
.hero{padding:0;position:relative;isolation:isolate;background:#302a24;color:var(--white)}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--hero-position,72% 50%);z-index:-3}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,18,.93),rgba(24,21,18,.76) 35%,rgba(24,21,18,.16) 76%),linear-gradient(0deg,rgba(24,21,18,.7),transparent 35%);z-index:-2}.hero-grid{display:flex;align-items:center;min-height:650px;gap:0}.hero-copy{padding:70px 0 58px;width:100%;max-width:730px}.hero-copy .eyebrow{color:#d6c3a0;gap:12px;font-size:10px;margin-bottom:26px}.small-rule{height:3px;width:27px;background:var(--gold-light)}.hero h1{font-size:clamp(64px,6.6vw,96px);font-weight:850;line-height:.98;letter-spacing:-.045em}.hero h1 em{color:var(--gold-light)}.hero-lead{color:#eee9e1;font-size:19px;line-height:1.7;margin:28px 0 30px}.hero-actions{gap:14px}.hero-actions .button{min-width:190px}.button.outline{background:transparent;border-color:#bcb2a4;color:var(--white)}.button.outline:hover{background:#ffffff12}.hero-note{color:#c9c1b6;font-size:12px;margin-top:18px}.hero-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:19px 0 22px;border-top:1px solid #ffffff35;position:relative;font-weight:650;font-size:10px;letter-spacing:.13em}.hero-bottom .image-credit{font-weight:400;font-size:10px;letter-spacing:0;color:#ddd4c7;white-space:nowrap}.promise-strip{background:#ece8df;padding:23px 0}.promise-strip>.wrap{justify-content:space-between}.promise-strip span{color:#836838;font-weight:750}.promise-strip strong{font-weight:650;font-size:13px;margin-left:12px}
.section-intro{gap:40px;margin-bottom:40px}.section-intro>p{font-size:16px;max-width:390px;line-height:1.75}.service-card{min-width:0;padding:27px 28px 24px;background:var(--white);border-color:#d7d1c6;border-top:3px solid var(--brown)}.service-card:hover{border-color:#a68b59;transform:translateY(-4px)}.service-card-top{margin-bottom:22px;font-size:13px;font-weight:750;color:#887040}.service-card-top>span:last-child{font-size:9px;letter-spacing:.08em;color:#776c5c}.service-symbol{display:flex;align-items:center;justify-content:center;width:112px;height:96px;margin:0 0 24px;background:#f4f0e8;border:1px solid #e7dfd0;border-radius:6px}.service-icon{display:block;flex:none;width:104px;height:80px;color:var(--brown);margin:0}.service-icon .icon-fill{fill:#e9deca;stroke:none}.service-icon .icon-accent{stroke:#967543}.service-card:focus-visible{border-color:var(--gold)}.service-card h3{font-size:31px;font-weight:750;line-height:1.15;min-height:70px;margin-bottom:14px}.service-card h3>span{display:block}.service-card h3>span+span{font-size:.72em;letter-spacing:-.025em;margin-top:7px;font-weight:650}.service-card .service-sub{font-size:14px;font-weight:650;margin-bottom:15px}.service-card p{font-size:14px;line-height:1.8}.text-link{border-top:1px solid var(--line);padding-top:18px;margin-top:26px;font-size:13px;font-weight:700}.text-link span{font-size:20px;line-height:1}.service-card>p:not(.service-sub){flex-grow:1}
.roof-guide{background:#eae6dd;border-block:1px solid #ddd6ca}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.roof-options{display:grid;gap:9px}.roof-options button{display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;padding:19px 23px;min-height:67px;background:#f9f7f1;border:1px solid #d4cdbf;color:var(--ink);font-size:15px;font-weight:650}.roof-options button>.ui-icon{font-size:22px;color:#8b7145}.roof-options button[aria-pressed=true]{background:var(--brown);border-color:var(--brown);color:var(--white)}.roof-options button[aria-pressed=true]>.ui-icon{color:var(--gold-light)}.roof-options button:hover{border-color:#8b7145}.guide-result{background:var(--white);border:1px solid #d4cdbf;border-top:3px solid var(--gold);padding:35px 37px;display:flex;align-items:flex-start;flex-direction:column}.guide-result .eyebrow{margin-bottom:17px}.guide-result h3{font-size:30px;max-width:360px;line-height:1.15}.guide-result p{margin:19px 0 20px;font-size:15px;line-height:1.75}.guide-result .quiet-link{margin-top:auto}.guide-note{font-size:12px;margin-top:18px;max-width:800px}.process-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.process-grid li{border-top:2px solid var(--line);padding-top:24px}.process-grid li>span{font-family:var(--heading);font-size:38px;font-weight:750;color:#9f875b;line-height:1;display:block;margin-bottom:25px}.process-grid h3{font-size:22px;margin-bottom:13px}.process-grid p{font-size:14px;line-height:1.8}
.principles{background:var(--brown);color:var(--white)}.principles-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.principles .eyebrow{color:var(--gold-light)}.principles-grid>div>p{color:#c9c0b3;margin-top:26px;max-width:420px}.principle-list>div{position:relative;padding:22px 0 22px 40px;border-bottom:1px solid #ffffff25}.principle-list>div:first-child{padding-top:0}.principle-list>div>.ui-icon{position:absolute;left:0;color:var(--gold-light);font-size:22px;line-height:1.2}.principle-list h3{font-size:22px}.principle-list p{color:#c9c0b3;font-size:14px;line-height:1.75;margin-top:9px}.faq-list summary{font-weight:650}.contact-cta{background:#e8e0d1;color:var(--brown);border-top:1px solid #d5c9b3}.contact-cta .eyebrow{color:#806435}.contact-cta p{color:#66594a}.contact-cta .button{background:var(--brown);color:var(--white);border-color:var(--brown);white-space:nowrap}.contact-cta .button:hover{background:#493a2c}.cta-inner h2{font-size:clamp(34px,3.6vw,50px)}footer{background:#211c18;color:#eee9df}.footer-grid p{color:#bcb0a0}.footer-grid>div>a:not(.logo),.footer-grid>div>span:not(.footer-label){color:#d6cbbd}.footer-label{color:#baa47a}.footer-bottom{border-color:#ffffff25;color:#b4a896}.footer-grid .logo svg{color:var(--gold-light)}.footer-grid a:hover{color:var(--gold-light)}.fit-box{border-left-width:3px}.fit-box h2{font-weight:700}.form-panel{border-top:3px solid var(--brown)}.form-panel h2{font-weight:750}.form-panel input,.form-panel select,.form-panel textarea{border-radius:0}.service-heading,.contact-grid{align-items:start}.service-heading h1{overflow-wrap:anywhere}.contact-page h1{font-size:clamp(38px,4.1vw,60px)}.service-hero{background:#eae6dd}.contact-reassurance{color:#66594a}
@media(min-width:1450px){.hero{padding:0}.hero-grid{min-height:690px}}
@media(max-width:1100px){.hero-grid{min-height:620px}.hero h1{font-size:78px}.hero-copy{max-width:650px}.hero-lead{font-size:18px}.service-card{padding:24px}.service-card h3{font-size:27px}.service-card h3>span+span{font-size:18px}.principles-grid{gap:55px}.process-grid{gap:22px}.process-grid h3{font-size:20px}}
@media(max-width:800px){.header-inner{height:78px}.logo{font-size:25px;gap:8px}.logo svg{width:35px}.logo-sub{font-size:6px;letter-spacing:.17em}.hero{padding:0}.hero-grid{min-height:610px}.hero-copy{padding:66px 0 57px;max-width:none}.hero-photo{object-position:var(--hero-position-mobile,64% 50%)}.hero:before{background:linear-gradient(90deg,rgba(24,21,18,.87),rgba(24,21,18,.46)),linear-gradient(0deg,rgba(24,21,18,.65),transparent 50%)}.hero h1{font-size:clamp(48px,10.2vw,78px)}.hero-copy .eyebrow{font-size:9px;letter-spacing:.1em;gap:9px;margin-bottom:25px}.hero-lead{font-size:17px;line-height:1.75;margin:26px 0}.hero-actions{gap:12px}.hero-actions .button{min-width:170px;font-size:14px;padding:14px 19px;gap:22px}.hero-note{font-size:11px;margin-top:20px}.hero-bottom{font-size:8px;letter-spacing:.08em;padding:18px 0}.promise-strip{padding:20px 0}.promise-strip strong{display:block;margin:5px 0 0;font-size:11px;max-width:150px}.promise-strip span{font-size:10px}.section-intro>p{font-size:15px;max-width:100%}.section-intro{margin-bottom:30px}.section-intro>.quiet-link{margin-top:22px}.service-card{padding:26px}.service-card-top{margin-bottom:15px}.service-symbol{margin-bottom:22px}.service-card h3{font-size:32px;min-height:0}.service-card h3>span+span{font-size:22px}.guide-grid{grid-template-columns:1fr;gap:18px}.guide-result{padding:28px;min-height:280px}.guide-result h3{font-size:29px}.roof-options button{font-size:14px;padding:17px 20px;min-height:63px}.guide-note{font-size:11px}.process-grid{grid-template-columns:1fr 1fr;gap:30px 24px}.process-grid li{padding-top:20px}.process-grid li>span{font-size:33px;margin-bottom:20px}.process-grid h3{font-size:21px}.process-grid p{font-size:14px}.principles-grid{grid-template-columns:1fr;gap:38px}.principle-list h3{font-size:22px}.cta-inner h2{font-size:36px}.mobile-cta{background:#211c18;border-top-color:#211c18;backdrop-filter:none}.footer-bottom{padding-bottom:110px}.contact-page h1{font-size:43px}.form-row{grid-template-columns:1fr;gap:0}.form-panel h2{font-size:28px}.service-heading h1{font-size:42px}}
@media(max-width:390px){.logo{font-size:23px}.logo svg{width:29px}.logo-sub{font-size:5.5px;letter-spacing:.15em}.header-actions .button{font-size:11px;padding:8px 10px;gap:10px}.header-actions{gap:0}.menu-toggle{padding:10px;width:40px}.hero-grid{min-height:595px}.hero h1{font-size:clamp(45px,12vw,49px)}.hero-copy{padding:54px 0 48px}.hero-copy .eyebrow{font-size:8px}.hero-actions{align-items:stretch;flex-direction:column;max-width:260px}.hero-actions .button{min-height:52px;padding:12px 18px;gap:20px}.hero-lead{font-size:16px}.hero-bottom{gap:10px;font-size:7px}.promise-strip>.wrap{gap:12px}.promise-strip strong{font-size:10px;max-width:95px}.process-grid{grid-template-columns:1fr;gap:25px}.process-grid li{display:grid;grid-template-columns:42px 1fr;column-gap:18px}.process-grid li>span{grid-row:1/3;font-size:27px}.process-grid p{grid-column:2}.process-grid h3{margin-bottom:9px}.contact-page h1{font-size:37px}.footer-bottom{gap:8px}}
@media(max-width:350px){.header-actions .button.small{display:none}}

/* Original selected wordmark. Preserve its proportions and transparent spacing. */
.logo{gap:0;flex-shrink:0;line-height:0}
.logo .brand-image{display:block;width:240px;height:80px;max-width:none;object-fit:contain}
.footer-grid .logo .brand-image{width:270px;height:90px;filter:brightness(0) invert(1);opacity:.94}
@media(max-width:1100px){.logo .brand-image{width:222px;height:74px}}
@media(max-width:800px){.logo .brand-image{width:180px;height:60px}.footer-grid .logo .brand-image{width:240px;height:80px}}
@media(max-width:390px){.logo .brand-image{width:162px;height:54px}}

.category-detail{border-top:1px solid var(--line)}
.category-intro{margin-top:24px;max-width:500px;font-size:16px;line-height:1.8}
.service-scope{list-style:none;padding:0;margin:0 0 25px}
.service-scope li{padding:17px 0 17px 24px;border-bottom:1px solid var(--line);position:relative}
.service-scope li:before{content:'';position:absolute;left:0;top:28px;width:7px;height:7px;background:var(--gold)}
.category-reading{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.category-reading h3{font-size:19px;letter-spacing:-.02em}
.category-reading .material-links{margin-top:12px;gap:8px 24px}
.category-reading .quiet-link{font-size:13px}
.material-links{display:flex;flex-wrap:wrap;gap:22px 40px;margin-top:26px}
@media(max-width:800px){.material-links{align-items:flex-start;flex-direction:column;gap:16px}.category-intro{font-size:15px}}

/* Readable privacy information in the existing brand style. */
.privacy-section{margin-top:34px}.privacy-section h2{font-size:26px;line-height:1.2;letter-spacing:-.025em;margin-bottom:14px}.privacy-page a:not(.button){text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.privacy-date{font-size:13px;margin-top:16px}.privacy-page .preview-form-note{margin-top:24px}

/* Vector icons retain their shape and color on iOS and Android. */
.ui-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle}
.button.small .ui-icon{width:18px;height:18px;flex-basis:18px}
.text-link{align-items:center;gap:16px}
.contact-reassurance>.ui-icon{margin-right:12px}
.form-panel .button{gap:16px;line-height:1.4;text-align:left}
.form-panel .button:disabled{opacity:.65;cursor:wait;transform:none}
.form-status:empty{display:none}
.form-status[data-error]{color:#8b2e20}
.form-fallback{font-size:13px;margin-top:12px;overflow-wrap:anywhere}
.form-fallback a{text-decoration:underline;text-underline-offset:3px}
