/* Production features that the original design study did not need. */
.anchor-alias { display:block; position:relative; top:-30px; width:0; height:0; overflow:hidden; }
.design-contact .contact-content { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:clamp(40px, 7vw, 110px); align-items:start; }
.design-contact-intro { max-width:470px; }
.design-contact-intro p:last-child { color:var(--muted); font-size:16px; line-height:1.75; }
#contact-form { display:grid; gap:17px; }
.design-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.design-form-field label { display:block; margin-bottom:6px; font-size:13px; font-weight:650; }
.design-form-field input,.design-form-field textarea { display:block; width:100%; min-height:46px; padding:12px 14px; border:1px solid var(--line); border-radius:4px; background:var(--surface); color:var(--text); font:inherit; }
.design-form-field textarea { min-height:140px; resize:vertical; }
.design-form-field input:hover,.design-form-field textarea:hover { border-color:var(--accent); }
.design-form-field input:focus,.design-form-field textarea:focus { outline:2px solid var(--accent); outline-offset:1px; }
.design-form-field [aria-invalid=true] { border-color:#b42318; }
.design-field-error { min-height:1.1em; margin:3px 0 0; font-size:11px; line-height:1.3; color:#b42318; }
.design-form-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.design-form-actions .primary-link { border:0; }
.design-form-actions .primary-link:disabled { opacity:.5; cursor:default; }
#form-status { margin:0; font-size:13px; }
#form-status[data-state=success] { color:var(--accent); }
#form-status[data-state=error] { color:#b42318; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); opacity:0; pointer-events:none; }
.footer-legal button { border:0; padding:0; background:none; font-size:inherit; text-decoration:underline; text-underline-offset:3px; }
.footer-legal .social-link { display:inline-flex; align-items:center; gap:6px; }
.footer-legal .social-link { gap:8px; }
.footer-legal .social-link svg { width:18px; height:18px; flex-shrink:0; fill:currentColor; stroke:none; }
.home-footer .logo-for-light { display:none; }
:root:not([data-theme=dark]) .home-footer .logo-for-dark { display:none; }
:root:not([data-theme=dark]) .home-footer .logo-for-light { display:block; }
:root:not([data-theme=dark]) .home-hero { background:#e9f2ef; color:#15383d; }
:root:not([data-theme=dark]) .home-hero .hero-photo { opacity:.88; filter:brightness(1.08) saturate(.9); }
:root:not([data-theme=dark]) .home-hero .hero-shade { background:linear-gradient(90deg,#e9f2ef 0%,#e9f2effa 29%,#e9f2efcc 52%,#e9f2ef0a 90%),linear-gradient(0deg,#e9f2efb3,transparent 38%); }
:root:not([data-theme=dark]) .home-hero .hero-content h1 span { color:#087e83; }
:root:not([data-theme=dark]) .home-hero .hero-copy { color:#31565d; }
:root:not([data-theme=dark]) .home-hero .primary-link { background:#087e83; color:#fff; }
:root:not([data-theme=dark]) .home-hero .primary-link:hover { background:#08686d; }
:root:not([data-theme=dark]) .home-footer { background:#e9f2ef; color:#173c43; }
:root:not([data-theme=dark]) .home-footer .footer-top>div p,
:root:not([data-theme=dark]) .home-footer .footer-bottom { color:#4f6870; }
:root:not([data-theme=dark]) .home-footer .footer-bottom { border-color:#bfd1d0; }
@media(max-width:700px) {
  :root:not([data-theme=dark]) .home-hero .hero-photo { opacity:.38; }
  :root:not([data-theme=dark]) .home-hero .hero-shade { background:linear-gradient(180deg,#e9f2eff5 0%,#e9f2efd9 48%,#e9f2ef77 80%,#e9f2efeb 100%); }
}
.contact-page-main { min-height:calc(100dvh - 76px); }
.contact-page-main .design-contact { min-height:calc(100dvh - 76px); display:flex; align-items:center; padding-block:clamp(64px,9vw,130px); }
.contact-page-main .contact-content { width:min(1240px,calc(100% - 96px)); }
.contact-page-main .contact-content h1 { font-size:clamp(36px,3.2vw,52px); line-height:1.2; letter-spacing:-.045em; font-weight:500; margin:0 0 16px; }

.analytics-consent { position:fixed; z-index:100; left:max(1rem,calc((100vw - 1240px)/2)); bottom:max(1rem,env(safe-area-inset-bottom)); width:min(760px,calc(100vw - 2rem)); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:1.5rem; padding:1.35rem 1.5rem; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--text); box-shadow:0 16px 48px #082f3833; max-height:calc(100dvh - 2rem); overflow-y:auto; }
.analytics-consent[hidden] { display:none; }
.consent-copy { min-width:0; }
.analytics-consent .consent-title { margin:0 0 .4rem; font-size:1.125rem; font-weight:650; line-height:1.3; letter-spacing:-.025em; }
.consent-description { display:block; margin:0; max-width:48ch; font-size:.875rem; line-height:1.55; color:var(--muted); }
.consent-privacy { display:inline-block; margin-top:.55rem; font-size:.8125rem; font-weight:600; line-height:1.4; text-decoration:underline; text-underline-offset:.2em; color:var(--accent); }
.consent-actions { display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.consent-choice { min-height:42px; padding:.65rem 1rem; border:1px solid color-mix(in srgb,var(--text) 28%,transparent); border-radius:7px; background:transparent; color:var(--text); font-size:.8125rem; font-weight:650; line-height:1.2; cursor:pointer; }
.consent-choice:hover { background:var(--hover); }
.consent-choice[data-allow-analytics] { border-color:var(--accent); background:var(--accent); color:var(--surface); }
.consent-choice[data-allow-analytics]:hover { filter:brightness(.92); }
.consent-choice:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.consent-choice:disabled { opacity:.5; cursor:default; }
@media(max-width:800px) { .design-contact .contact-content { grid-template-columns:1fr; } }
@media(max-width:700px) { .contact-page-main .contact-content { width:calc(100% - 40px); } }
@media(max-width:640px) { .design-form-row { grid-template-columns:1fr; } .analytics-consent { right:1rem; width:auto; grid-template-columns:1fr; gap:1rem; padding:1.1rem 1.15rem; } .consent-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .homepage .home-nav nav[aria-label="Main navigation"] { grid-column:1/-1; grid-row:2; justify-self:stretch; margin:10px 0 0; padding:12px 0 13px; border-top:1px solid #31545a; gap:22px; } }
@media(max-width:520px) {
  .homepage .home-nav nav[aria-label="Huvudmeny"],.homepage .home-nav nav[aria-label="Main navigation"] { display:grid; grid-template-columns:repeat(3,max-content); justify-content:space-between; row-gap:8px; }
  .homepage .home-nav nav[aria-label="Huvudmeny"] .nav-about,.homepage .home-nav nav[aria-label="Main navigation"] .nav-about { display:block; }
  .homepage .home-nav nav[aria-label="Huvudmeny"] .nav-contact,.homepage .home-nav nav[aria-label="Main navigation"] .nav-contact { display:flex; width:max-content; padding:4px 8px; gap:8px; }
}

/* The featured card has a dark background in every theme: its link text is light for contrast. */
.service-mosaic .mosaic-cell[href$="azure-cloud/"] .mosaic-read { color: #bcf2dd; }

/* Link text on the service cards: dark card keeps the mint, light cards use a darker teal for contrast. */
.service-mosaic .mosaic-cell[href$="azure-cloud/"] .mosaic-read { color:#bcf2dd; }
:root:not([data-theme=dark]) .service-mosaic .mosaic-featured:not([href$="azure-cloud/"]) .mosaic-read { color:#066a6f; }
