/* Teknikbiksen trust & personality - homepage v4.3, 2026-11-03. */
/* Selectors use unique tb-home-assurance and tb-cat-assist classes. */
/* Do not depend on DanDomain pageTypefrontpage; it is not reliable on the current theme. */

/* The single assurance strip REPLACES the 3 old home USP items. */
.tb-home-assurance {
  display: grid;
  grid-template-columns: minmax(155px, 1.04fr) minmax(0, 3.9fr);
  align-items: stretch;
  margin: 16px 0 0;
  border: 1px solid #dbe9e8;
  border-radius: 17px;
  background: linear-gradient(112deg, #f9fcfb 0%, #f1f7f7 100%);
  box-shadow: 0 5px 17px rgba(29, 68, 75, .045);
  overflow: hidden;
  color: #203e47;
}
.tb-home-assurance__intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  padding: 21px 14px 20px 23px;
}
.tb-home-assurance__eyebrow {
  display: block;
  color: #267d8a;
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .095em;
}
.tb-home-assurance__intro h2 {
  position: relative;
  width: fit-content;
  margin: 0;
  color: #183946;
  font-family: 'Bree Serif', Georgia, serif;
  font-size: clamp(18px, 1.85vw, 22px);
  font-weight: 400;
  line-height: 1.22;
}
.tb-home-assurance__intro h2::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 2px;
  width: 68px;
  height: 4px;
  border-radius: 99px;
  transform: rotate(-2deg);
  background: #f4d840;
}
.tb-home-assurance__benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  min-width: 0;
}
.tb-home-assurance__benefit,
.tb-home-assurance__benefit:visited {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 20px 14px;
  color: #233f49;
  text-decoration: none;
  border-left: 1px solid #dce8e9;
  transition: background-color .16s ease;
}
.tb-home-assurance__benefit:hover,
.tb-home-assurance__benefit:focus-visible {
  background: #e9f3f2;
  outline-offset: -3px;
}
.tb-home-assurance__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 41px;
  width: 41px;
  height: 41px;
  border: 1px solid #b9dfe2;
  border-radius: 12px;
  color: #176f7c;
  background: #e6f4f2;
  font-size: 18px;
}
.tb-home-assurance__text {
  display: block;
  min-width: 0;
}
.tb-home-assurance__text strong {
  display: block;
  color: #20414c;
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.36;
}
.tb-home-assurance__text small {
  display: block;
  margin-top: 2px;
  color: #667b80;
  font-size: 11.75px;
  line-height: 1.45;
}
.tb-home-assurance__arrow {
  margin-left: auto;
  font-size: 13px;
  color: #629aa2;
  opacity: .65;
  transition: transform .16s ease, opacity .16s ease;
}
.tb-home-assurance__benefit:hover .tb-home-assurance__arrow,
.tb-home-assurance__benefit:focus-visible .tb-home-assurance__arrow {
  transform: translateX(2px);
  opacity: 1;
}

/* Cat's helpful guide appears AFTER the shopping carousels, before the footer. */
.tb-cat-assist-shell {
  margin-top: 53px;
  margin-bottom: 62px;
}
.tb-cat-assist {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: clamp(250px, 31%, 350px) minmax(0, 1fr);
  min-height: 296px;
  align-items: center;
  overflow: hidden;
  padding: 23px 34px 23px 19px;
  border: 1px solid #d4e8e9;
  border-radius: 23px;
  background:
    radial-gradient(ellipse at 10% 100%, rgba(111,198,203,.27), transparent 48%),
    radial-gradient(ellipse at 100% 0%, rgba(252,222,105,.23), transparent 41%),
    #f5fbfa;
  box-shadow: 0 9px 29px rgba(32, 79, 87, .045);
  color: #20404b;
}
.tb-cat-assist::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .5;
  background-image: linear-gradient(30deg, transparent 49%, rgba(62,155,163,.045) 50%, transparent 51%), linear-gradient(150deg, transparent 49%, rgba(62,155,163,.045) 50%, transparent 51%);
  background-size: 83px 83px;
  pointer-events: none;
}
.tb-cat-assist.tb-cat-assist--no-image { grid-template-columns: 1fr; padding-left: 27px; }
.tb-cat-assist__figure {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  align-self: stretch;
  min-width: 0;
}
.tb-cat-assist__figure::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 74%;
  height: 13px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: rgba(41, 111, 114, .12);
  filter: blur(6px);
  z-index: -1;
  display: none; /* Floating shadow removed: Cat now rests on the panel edge. */
}
.tb-cat-assist__figure img {
  position: absolute;
  bottom: -36px; /* Panel has 23px padding; sinks any transparent pixels at the feet. */
  max-height: 337px;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: bottom center;
  display: block;
  transform: translateX(80px) scale(1.28); /* Center the visible figure in the left panel; keep size and feet anchored. */
  transform-origin: 50% 100%;
}
.tb-cat-assist__body {
  position: relative;
  z-index: 1;
  max-width: 830px;
  padding: 16px 5px 17px 12px;
}
.tb-cat-assist__eyebrow {
  color: #2a8590;
  font-family: 'Open Sans', Arial, sans-serif;
  font-weight: 800;
  font-size: 10px;
  letter-spacing: .11em;
}
.tb-cat-assist__body h2 {
  margin: 6px 0 8px;
  font-family: 'Bree Serif', Georgia, serif;
  color: #153b47;
  font-size: clamp(26px, 2.7vw, 36px);
  font-weight: 400;
  line-height: 1.18;
}
.tb-cat-assist__period { color: #e6b822; }
.tb-cat-assist__body > p:not(.tb-cat-assist__contact) {
  margin: 0;
  max-width: 750px;
  font-size: 14px;
  line-height: 1.65;
  color: #536d72;
}
.tb-cat-assist__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 19px;
}
.tb-cat-assist__button,
.tb-cat-assist__button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: 10px 16px;
  border-radius: 11px;
  font-size: 12.75px;
  font-weight: 800;
  line-height: 1.3;
  text-decoration: none;
  transition: transform .16s ease, background-color .16s ease;
}
.tb-cat-assist__button:hover,
.tb-cat-assist__button:focus-visible { transform: translateY(-1px); }
.tb-cat-assist__button--primary,
.tb-cat-assist__button--primary:visited {
  background: #f4d943;
  border: 1px solid #dcbf36;
  color: #173b48;
  box-shadow: 0 4px 10px rgba(197,161,39,.12);
}
.tb-cat-assist__button--primary:hover { background: #ffe769; }
.tb-cat-assist__button--primary .fa { margin-left: 9px; }
.tb-cat-assist__button--secondary,
.tb-cat-assist__button--secondary:visited {
  background: rgba(255,255,255,.74);
  border: 1px solid #cadfe0;
  color: #2c6976;
}
.tb-cat-assist__button--secondary:hover { background: #fff; }
.tb-cat-assist__contact {
  margin: 11px 0 0;
  font-size: 12px;
  color: #647980;
}
.tb-cat-assist__contact a { color: #237481; font-weight: 800; text-underline-offset: 2px; }
.tb-cat-assist__scribble {
  position: absolute;
  top: 20px;
  right: 25px;
  transform: rotate(-6deg);
  color: #a77812;
  font-family: 'Segoe Print','Bradley Hand',cursive;
  font-size: 20px;
  font-weight: 600;
  opacity: 1;
  pointer-events: none;
}

@media (max-width: 1020px) {
  .tb-home-assurance { grid-template-columns: 1fr; }
  .tb-home-assurance__intro { padding: 13px 18px 9px; }
  .tb-home-assurance__intro h2 { font-size: 21px; }
  .tb-home-assurance__intro h2 br { display: none; }
  .tb-home-assurance__benefits { border-top: 1px solid #dce8e9; }
  .tb-home-assurance__benefit { border-left: none; }
  .tb-home-assurance__benefit + .tb-home-assurance__benefit { border-left: 1px solid #dce8e9; }
  .tb-cat-assist { padding-right: 23px; }
  .tb-cat-assist__figure img { transform: translateX(26px) scale(1.28); }
  .tb-cat-assist__scribble { font-size: 16px; }
}
@media (max-width: 690px) {
  .tb-home-assurance__benefits { grid-template-columns: 1fr; }
  .tb-home-assurance__benefit { padding: 15px 18px; }
  .tb-home-assurance__benefit + .tb-home-assurance__benefit { border-left: 0; border-top: 1px solid #dce8e9; }
  .tb-home-assurance__text strong { font-size: 13.5px; }
  .tb-home-assurance__text small { font-size: 12px; }
  .tb-cat-assist-shell { margin-top: 34px; margin-bottom: 40px; }
  .tb-cat-assist { grid-template-columns: 143px minmax(0,1fr); padding: 18px 16px 18px 7px; min-height: 280px; border-radius: 18px; }
  .tb-cat-assist__figure img { max-height: 255px; bottom: -27px; max-width: 112%; transform: translateX(-14px) scale(1.17); transform-origin: 50% 100%; }
  .tb-cat-assist__body { padding: 22px 0 20px; }
  .tb-cat-assist__body h2 { font-size: 24px; }
  .tb-cat-assist__body > p:not(.tb-cat-assist__contact) { font-size: 12.5px; }
  .tb-cat-assist__scribble { display: none; }
}
@media (max-width: 440px) {
  .tb-cat-assist { grid-template-columns: 1fr; padding: 22px 16px 12px; }
  .tb-cat-assist__body { grid-row: 1; max-width: 100%; padding: 0; }
  .tb-cat-assist__figure { grid-row: 2; height: 147px; margin-top: 8px; justify-content: flex-end; }
  .tb-cat-assist__figure img { bottom: -20px; right: 0; max-height: 165px; max-width: 52%; transform: scale(1.12); transform-origin: 50% 100%; }
  .tb-cat-assist__body h2 { font-size: 24px; }
  .tb-cat-assist__actions { gap: 7px; }
  .tb-cat-assist__button { min-height: 40px; font-size: 11.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .tb-home-assurance__benefit,
  .tb-home-assurance__arrow,
  .tb-cat-assist__button { transition: none !important; }
}
