@charset "UTF-8";
:root { --brand-color:#e30613; --brand-dark:#b3000c; --dark-color:#1a1a1a; --light-bg:#f4f5f7; --text-color:#333; --muted:#5d6168; --line:#dfe2e6; --ease:cubic-bezier(.2,.75,.25,1); }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:8rem; }
body { color:var(--text-color); background:white; font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { display:block; max-width:100%; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:3px solid var(--brand-color); outline-offset:5px; }
.wrap { width:min(90%,1320px); margin-inline:auto; }
.skip-link { position:fixed; top:-6rem; left:1rem; padding:1rem; background:white; color:var(--dark-color); z-index:1100; }
.skip-link:focus { top:1rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { background:white; position:sticky; top:0; z-index:1000; border-bottom:1px solid #e9e9e9; transition:box-shadow .25s; }
.site-header[data-scrolled="true"] { box-shadow:0 2px 15px #00000014; }
.header-inner { min-height:108px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.logo { display:flex; align-items:center; flex-shrink:1; min-width:0; padding:.55rem 0; }
.logo img { width:280px; height:auto; }
.desktop-nav ul { list-style:none; display:flex; align-items:center; gap:2.3rem; }
.desktop-nav a { font-weight:bold; text-transform:uppercase; font-size:.875rem; color:var(--dark-color); display:inline-flex; align-items:center; min-height:48px; transition:color .25s; }
.desktop-nav a:hover { color:var(--brand-color); }
.desktop-nav .nav-contact { gap:1.4rem; background:var(--brand-color); color:white; padding:.85rem 1.2rem; transition:background .25s; }
.desktop-nav .nav-contact:hover { background:var(--brand-dark); }
.nav-contact>span { font-size:1.25rem; line-height:1; }
.menu-toggle { display:none; }
.mobile-nav[hidden] { display:none; }
.arrow { display:inline-block; font-family:Arial,sans-serif; font-size:1.3rem; line-height:1; transition:transform .25s var(--ease); }
a:hover>.arrow { transform:translate(2px,-2px); }
.hero { position:relative; isolation:isolate; min-height:640px; display:flex; align-items:center; padding-block:4.5rem; background:#242424; }
.hero-background { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.hero-image { width:100%; height:100%; object-fit:cover; object-position:center 46%; }
.hero-background::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#00000061,#0000002b); }
.hero-background figcaption { position:absolute; right:1rem; bottom:.55rem; z-index:1; padding:.1rem .4rem; background:#0009; color:#fff; font-size:.75rem; }
.hero-layout { display:grid; grid-template-columns:minmax(0,680px) 1fr; align-items:end; gap:2.5rem; }
.hero-content { position:relative; background:rgba(255,255,255,.96); padding:3rem; border-left:8px solid var(--brand-color); }
.hero-content h1 { font-size:clamp(3.3rem,5.3vw,5rem); font-weight:900; line-height:1.02; color:var(--dark-color); letter-spacing:-.045em; text-transform:uppercase; margin-bottom:1.5rem; }
.hero-content h1>span { color:var(--brand-color); }
.hero-content p { font-size:1.1875rem; line-height:1.75; color:#555; margin-bottom:1.9rem; max-width:560px; }
.btn { display:inline-flex; align-items:center; justify-content:space-between; gap:1.8rem; min-height:56px; padding:1rem 1.4rem; background:var(--brand-color); color:white; font-size:.875rem; line-height:1.5; font-weight:bold; text-transform:uppercase; transition:background .25s; }
.btn:hover { background:var(--brand-dark); }
.hero-brand { justify-self:end; background:white; width:280px; max-width:100%; padding:1rem 1.25rem; }
.hero-brand img { width:100%; height:auto; }
.company-section { padding-block:5.5rem; display:grid; grid-template-columns:.9fr 1.25fr; gap:5rem; align-items:center; }
.eyebrow { color:var(--brand-color); font-size:.8125rem; font-weight:bold; letter-spacing:.09em; margin-bottom:1.2rem; }
.company-heading h2,.footer-heading h2 { font-size:clamp(2.5rem,3.8vw,3.6rem); font-weight:800; color:var(--dark-color); line-height:1.12; letter-spacing:-.04em; }
.company-heading h2>span { color:var(--brand-color); }
.company-copy>p { font-size:1.125rem; line-height:1.85; }
.company-copy .company-secondary { color:var(--muted); font-size:1rem; margin-top:1.35rem; margin-bottom:.75rem; }
.trade-list { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; }
.trade-list>li { font-size:.875rem; padding:.35rem .75rem; background:var(--light-bg); border:1px solid #e4e5e8; }
.services-section { padding-block:5rem; background:var(--light-bg); }
.section-title { font-size:clamp(2rem,3.3vw,3rem); line-height:1.2; letter-spacing:-.035em; font-weight:900; color:var(--dark-color); text-transform:uppercase; text-align:center; margin-bottom:3rem; }
.section-title>span { color:var(--brand-color); }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.7rem; }
.card { background:white; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-bottom:3px solid transparent; transition:transform .3s var(--ease),box-shadow .3s,border-color .3s; }
.card-img { height:240px; overflow:hidden; background:#dfe3e8; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); }
.card-content { padding:1.9rem; display:flex; flex-direction:column; flex:1; }
.card-content h3 { color:var(--dark-color); font-size:1.5rem; font-weight:750; letter-spacing:-.025em; line-height:1.25; margin-bottom:1rem; min-height:2.5em; }
.card-content>p { color:#606060; font-size:1rem; line-height:1.75; margin-bottom:1.5rem; }
.card-link { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:var(--brand-dark); font-size:.875rem; font-weight:bold; min-height:48px; margin-top:auto; border-top:1px solid var(--line); padding-top:.8rem; }
.card-link:hover { text-decoration:underline; text-underline-offset:.3rem; }
.image-note { color:var(--muted); font-size:.75rem; margin-top:1rem; }
footer { background:var(--dark-color); color:white; padding-block:4.5rem 2rem; }
.footer-heading { margin-bottom:3rem; }
.footer-heading .eyebrow { color:#ff737b; }
.footer-heading h2 { color:white; font-size:clamp(2.35rem,3.5vw,3.2rem); }
.footer-heading h2>span { color:#ff737b; }
.footer-grid { display:grid; grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr)); gap:2rem; margin-bottom:3.5rem; }
.footer-col { min-width:0; overflow-wrap:anywhere; }
.footer-col h3 { color:#fff; font-size:1rem; line-height:1.6; margin-bottom:1.3rem; padding-top:1rem; border-top:1px solid #525252; }
.footer-col p,.footer-col address,.footer-col>a { font-size:1rem; font-style:normal; color:#c8c8c8; line-height:1.9; }
.footer-col>a { display:block; overflow-wrap:anywhere; padding-block:.2rem; }
.footer-col>a:hover { color:white; text-decoration:underline; text-underline-offset:.25rem; }
.footer-col .footer-contact { min-height:48px; padding-block:.55rem; }
.footer-contact>span[aria-hidden="true"] { display:inline-block; width:1.3rem; font-size:.875rem; font-weight:bold; color:#fff; }
.footer-col .footer-social { display:flex; align-items:center; gap:1rem; min-height:48px; width:fit-content; }
.footer-bottom { display:flex; align-items:center; gap:2rem; border-top:1px solid #444; padding-top:2rem; }
.footer-logo { display:block; width:248px; max-width:100%; flex-shrink:0; }
.footer-logo img { width:100%; height:auto; }
.footer-bottom p { font-size:.875rem; line-height:1.8; color:#b5b5b5; }
@media(hover:hover) and (pointer:fine) { .card:hover { transform:translateY(-6px); box-shadow:0 14px 26px #00000012; border-bottom-color:var(--brand-color); } .card:hover .card-img img { transform:scale(1.035); } }
@media(max-width:1100px) {
 .logo img { width:240px; }
 .desktop-nav ul { gap:1.5rem; }
 .hero-layout { grid-template-columns:minmax(0,620px) 1fr; gap:1.5rem; }
 .hero-content { padding:2.5rem; }
 .hero-brand { width:260px; }
 .company-section { gap:3rem; }
 .grid { gap:1.2rem; }
 .card-img { height:210px; }
 .card-content { padding:1.5rem; }
 .card-content h3 { font-size:1.35rem; overflow-wrap:anywhere; }
}
@media(max-width:900px) and (min-width:761px) {
 .hero-layout { grid-template-columns:minmax(0,1fr); }
 .hero-content { max-width:620px; }
 .hero-brand { margin-top:.3rem; }
 .hero { padding-block:3rem; }
 .card-content { padding:1.25rem; }
 .card-content h3 { font-size:1.2rem; }
 .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
 html { scroll-padding-top:7rem; }
 .wrap { width:calc(100% - 2.5rem); }
 .header-inner { min-height:87px; gap:1rem; }
 .logo img { width:224px; }
 .desktop-nav { display:none; }
 .menu-toggle { display:flex; flex-shrink:0; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-width:48px; min-height:48px; border:1px solid var(--line); background:white; color:var(--dark-color); cursor:pointer; }
 .menu-toggle>span { width:20px; height:2px; background:currentColor; transition:transform .25s var(--ease); }
 .menu-toggle[aria-expanded="true"]>span:first-child { transform:translateY(4px) rotate(45deg); }
 .menu-toggle[aria-expanded="true"]>span:last-child { transform:translateY(-4px) rotate(-45deg); }
 .mobile-nav:not([hidden]) { display:flex; flex-direction:column; padding-bottom:1rem; }
 .mobile-nav>a { min-height:52px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); font-size:1rem; }
 .hero { min-height:0; padding-block:2rem 2.8rem; }
 .hero-layout { grid-template-columns:1fr; gap:1.5rem; }
 .hero-content { padding:1.7rem; border-left-width:5px; }
 .hero-content h1 { font-size:clamp(2.75rem,10vw,4rem); margin-bottom:1.2rem; }
 .hero-content p { font-size:1rem; line-height:1.8; margin-bottom:1.5rem; }
 .btn { max-width:100%; padding:.9rem 1.05rem; gap:1rem; font-size:.875rem; }
 .hero-brand { width:248px; padding:.75rem 1rem; }
 .hero-image { object-position:66% center; }
 .hero-background figcaption { font-size:.75rem; right:1rem; bottom:.4rem; }
 .company-section { grid-template-columns:1fr; gap:1.7rem; padding-block:3.6rem; }
 .eyebrow { font-size:.75rem; letter-spacing:.05em; margin-bottom:1rem; }
 .company-heading h2 { font-size:2.7rem; }
 .company-copy>p { font-size:1rem; line-height:1.85; }
 .trade-list { gap:.4rem; }
 .trade-list>li { font-size:.875rem; padding:.3rem .65rem; }
 .services-section { padding-block:3.5rem; }
 .section-title { font-size:clamp(1.7rem,6.3vw,2.5rem); margin-bottom:2rem; }
 .grid { grid-template-columns:1fr; gap:1.5rem; }
 .card-img { height:235px; }
 .card-content { padding:1.6rem; }
 .card-content h3 { font-size:1.5rem; min-height:0; }
 .card-content h3 br { display:none; }
 .card-content>p { margin-bottom:1.2rem; }
 footer { padding-block:3.5rem 1.7rem; }
 .footer-heading { margin-bottom:2.2rem; }
 .footer-heading h2 { font-size:clamp(2rem,7.2vw,2.8rem); }
 .footer-grid { grid-template-columns:1fr; gap:1.6rem; margin-bottom:2.5rem; }
 .footer-col h3 { margin-bottom:.7rem; }
 .footer-bottom { flex-wrap:wrap; gap:1rem; padding-top:1.6rem; }
 .footer-logo { width:224px; }
 .footer-bottom p { order:3; width:100%; font-size:.875rem; }
}
@media(max-width:360px) { .wrap { width:calc(100% - 2rem); } .hero-content { padding:1.4rem; } .btn { font-size:.875rem; padding:.9rem .85rem; gap:.7rem; } .card-content { padding:1.4rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } .card:hover,.card:hover .card-img img,a:hover>.arrow { transform:none; } }

/* Legal pages and footer navigation for the independent .ch website. */
.footer-legal { display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-left:auto; }
.footer-legal a { color:#ddd; min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; }
.footer-legal a:hover { color:white; text-decoration:underline; text-underline-offset:.25rem; }
.legal-page { max-width:880px; padding-block:3rem 5rem; overflow-wrap:anywhere; }
.legal-page .back-link { display:inline-flex; align-items:center; min-height:44px; color:var(--brand-dark); margin-bottom:2rem; }
.legal-page h1 { font-size:clamp(2.25rem,6vw,3.75rem); line-height:1.12; letter-spacing:-.04em; color:var(--dark-color); margin-bottom:2rem; }
.legal-page h2 { font-size:1.35rem; line-height:1.4; color:var(--dark-color); margin-bottom:1rem; }
.legal-page section { margin-block:2.25rem; }
.legal-page p { margin-bottom:1rem; line-height:1.8; }
.legal-page address { font-style:normal; margin-bottom:1rem; }
.legal-page p a { color:var(--brand-dark); text-decoration:underline; text-underline-offset:.2rem; }
.legal-date { color:var(--muted); font-size:.875rem; }
@media(max-width:760px) { .footer-legal { margin-left:0; width:100%; } .legal-page { padding-block:2rem 3rem; } }
