/* * Shared link styling. * * NOTE: the deploy script minifies .css files with html-minifier, which parses * the file as HTML. Angle brackets anywhere in this file, even inside a comment, * are read as HTML tags and abort the build. Keep this file free of them. * * Loaded last on every page so it wins over the per-page "text-decoration: none" * rules that each page declares in its own inline style element. * * Inline links inside body copy are underlined so they are recognisable as links. * Scope is limited to the main element, which leaves the header navigation, the * logo and the footer untouched. Anything rendered as a button or as a whole * clickable card is excluded below by class, which outranks these element-only * selectors regardless of source order. */ main p a, main li a, main td a, main th a, main dd a, main blockquote a, main figcaption a, main .service-lead a, main .card-text a, main .faq-answer a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; text-decoration-skip-ink: auto; } main p a:hover, main li a:hover, main td a:hover, main dd a:hover, main blockquote a:hover { text-decoration-thickness: 2px; } /* * Buttons, back links, whole-card links and image links keep their own styling. */ a.btn, a.btn-back, a.btn-outline, a.btn-primary, a.btn-secondary, a.btn-ghost, a.blog-card-link, a.contact-card, a.client-logo, a.open-modal-btn, a.promo-banner__btn, a.card, a.product-card, a.featured-card, a.service-item { text-decoration: none; } a.btn:hover, a.btn-back:hover, a.blog-card-link:hover, a.contact-card:hover, a.client-logo:hover { text-decoration: none; }