:root {
  --dw-blue: #176b87;
  --dw-blue-dark: #124e63;
  --dw-blue-light: #e7f3f7;
  --dw-orange: #ed7b43;
  --dw-orange-dark: #ce5f2b;
  --dw-text: #20333c;
  --dw-muted: #5c6d74;
  --dw-background: #f6f8f9;
  --dw-white: #fff;
  --dw-border: #d8e5e9;
  --dw-radius: 14px;
  --dw-shadow: 0 10px 28px rgba(36, 74, 87, 0.08);
  --dw-content-width: 1280px;
  --dw-gutter: clamp(1.25rem, 4vw, 3.5rem);
}

/* Základ */
* {
  box-sizing: border-box;
}

body {
  color: var(--dw-text);
  background: var(--dw-background);
}

body,
button,
input,
textarea,
select {
  font-family: "Source Sans 3", "Source Sans Pro", Arial, sans-serif;
}

a { color: var(--dw-blue); }
a:hover,
a:focus { color: var(--dw-blue-dark); }

.path-frontpage #block-drupalweb-nazevstranky {
  display: none;
}

/* Hlavička */
#header {
  background: var(--dw-white);
}

#header-inner {
  flex-direction: row !important;
  justify-content: flex-start !important;
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 0.8rem var(--dw-gutter) 0.7rem;
}

#block-drupalweb-branding,
#block-drupalweb-branding .branding-wrapper,
#block-drupalweb-branding .site-name {
  margin: 0 !important;
  padding: 0;
}

#block-drupalweb-branding .site-name { line-height: 1.05; }

#block-drupalweb-branding .site-name-link {
  color: var(--dw-text);
  font-size: clamp(1.55rem, 2.5vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  text-decoration: none;
}

#block-drupalweb-branding .site-name-link:hover,
#block-drupalweb-branding .site-name-link:focus { color: var(--dw-blue); }

#block-drupalweb-branding .site-slogan {
  margin: 0.25rem 0 0 !important;
  color: var(--dw-muted);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.25;
}

/* Navigace */
#primary-menu {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--dw-border);
  box-shadow: 0 4px 16px rgba(23, 37, 45, 0.05);
  backdrop-filter: blur(10px);
}

#primary-menu-inner {
  max-width: var(--dw-content-width);
  min-height: 54px;
  margin: 0 auto;
  padding: 0.25rem var(--dw-gutter);
}

#block-drupalweb-main-menu { margin: 0; padding: 0; }
#primary-menu-inner .navigation__menubar { gap: 0.2rem; }

#primary-menu-inner .nav__menu-link-main {
  padding: 0.65rem 0.8rem;
  color: var(--dw-text);
  background: transparent;
  border-radius: 7px;
  font-weight: 650;
  text-decoration: none;
}

#primary-menu-inner .nav__menu-link-main:hover,
#primary-menu-inner .nav__menu-link-main:focus {
  color: var(--dw-blue-dark);
  background: var(--dw-blue-light);
}

#primary-menu-inner .nav__menu-link-main.is-active,
#primary-menu-inner .nav__menu-item-main.is-active .nav__menu-link-main {
  color: var(--dw-blue-dark);
  background: #dceef4;
}

/* Hero */
.dw-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(270px, 0.7fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 4rem var(--dw-gutter);
  color: var(--dw-text);
  background: linear-gradient(135deg, #f4fafc, #e9f5f8);
  border: 1px solid #d5e7ec;
  border-radius: var(--dw-radius);
  box-shadow: 0 14px 36px rgba(36, 74, 87, 0.08);
}

.dw-hero__label,
.dw-section-label,
.dw-cta__label {
  color: var(--dw-blue) !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dw-hero__label { margin: 0 0 0.85rem; font-size: 1rem; }

.dw-hero h1 {
  max-width: 760px;
  margin: 0;
  color: var(--dw-text);
  font-size: clamp(3.5rem, 5vw, 4.4rem);
  line-height: 1;
  letter-spacing: -0.045em;
}

.dw-hero__text {
  max-width: 720px;
  margin: 1.25rem 0 0;
  color: var(--dw-muted) !important;
  font-size: clamp(1.08rem, 1.8vw, 1.3rem);
  line-height: 1.55;
}

.dw-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.75rem;
}

/* Tlačítka */
.dw-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.75rem 1.35rem;
  border: 2px solid transparent;
  border-radius: 9px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, transform 0.2s;
}

.dw-button:hover,
.dw-button:focus { transform: translateY(-2px); text-decoration: none; }

.dw-button--primary,
.dw-button--primary:visited {
  color: var(--dw-white) !important;
  background: var(--dw-orange);
  box-shadow: 0 7px 18px rgba(237, 123, 67, 0.2);
  margin-right: 10px;
}

.dw-button--primary:hover,
.dw-button--primary:focus { color: var(--dw-white) !important; background: var(--dw-orange-dark); margin-right: 10px;}

.dw-button--secondary,
.dw-button--secondary:visited {
  color: var(--dw-blue-dark) !important;
  background: var(--dw-white);
  border-color: #94bdc9;
}

.dw-button--secondary:hover,
.dw-button--secondary:focus {
  color: var(--dw-white) !important;
  background: var(--dw-blue);
  border-color: var(--dw-blue);
}

/* Fakta v hero */
.dw-hero__facts { display: grid; gap: 0.85rem; }

.dw-fact {
  padding: 1rem 1.2rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #d4e5ea;
  border-radius: 11px;
  box-shadow: 0 7px 20px rgba(36, 74, 87, 0.07);
}

.dw-fact strong,
.dw-fact span { display: block; }
.dw-fact strong { color: var(--dw-blue); font-size: 1.55rem; line-height: 1.1; }
.dw-fact span { margin-top: 0.3rem; color: var(--dw-muted); }

/* Společné nadpisy */
.dw-section-heading { max-width: 760px; margin-bottom: 2rem; }
.dw-section-label { margin: 0 0 0.6rem; font-size: 0.95rem; }

.dw-section-heading h2,
.dw-cta h2 {
  margin: 0;
  color: var(--dw-text);
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.dw-section-heading > p:last-child {
  margin: 1rem 0 0;
  color: var(--dw-muted);
  font-size: 1.08rem;
  line-height: 1.6;
}

/* Služby */
.dw-services {
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 3.75rem var(--dw-gutter) 3rem;
}

.dw-services__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.dw-service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.5rem, 2.4vw, 2rem);
  background: var(--dw-white);
  border: 1px solid var(--dw-border);
  border-top: 5px solid #6faabd;
  border-radius: var(--dw-radius);
  box-shadow: var(--dw-shadow);
}

.dw-service-card--featured { border-top-color: var(--dw-orange); }
.dw-service-card__number { margin-bottom: 1.15rem; color: var(--dw-blue); font-size: 0.9rem; font-weight: 800; letter-spacing: 0.08em; }
.dw-service-card h3 { margin: 0 0 0.85rem; font-size: 1.4rem; line-height: 1.25; }
.dw-service-card p { margin: 0; color: var(--dw-muted); line-height: 1.6; }
.dw-service-card ul { margin: 1.1rem 0 1.4rem; padding-left: 1.25rem; }
.dw-service-card li { margin: 0.35rem 0; }
.dw-service-card a { margin-top: auto; color: var(--dw-blue); font-weight: 700; text-decoration: none; }
.dw-service-card a::after { content: " →"; }
.dw-service-card a:hover,
.dw-service-card a:focus { color: var(--dw-orange-dark); text-decoration: underline; }

/* Projektové karty: titulní stránka i /projekty */
#block-drupalweb-views-block-projekty-blok-moje-projekty,
.path-projekty .view-projekty {
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 3.25rem var(--dw-gutter) 3rem;
}

#block-drupalweb-views-block-projekty-blok-moje-projekty {
  background: var(--dw-white);
  border: 1px solid var(--dw-border);
  border-radius: 20px;
}

#block-drupalweb-views-block-projekty-blok-moje-projekty .solo-block-title {
  margin: 0 0 2rem;
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-view-responsive-grid,
.path-projekty .views-view-responsive-grid { gap: 1.5rem; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-view-responsive-grid__item,
.path-projekty .views-view-responsive-grid__item { min-width: 0; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-view-responsive-grid__item-inner,
.path-projekty .views-view-responsive-grid__item-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--dw-white);
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  box-shadow: var(--dw-shadow);
}

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-field-image,
.path-projekty .views-field-field-image { margin: 0; overflow: hidden; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-field-image a,
.path-projekty .views-field-field-image a { display: block; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-field-image img,
.path-projekty .views-field-field-image img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.3s ease;
}

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-field-image a:hover img,
.path-projekty .views-field-field-image a:hover img { transform: scale(1.025); }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-title,
.path-projekty .views-field-title { padding: 1.35rem 1.5rem 0; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-title h3,
.path-projekty .views-field-title h2,
.path-projekty .views-field-title h3 { margin: 0; font-size: 1.4rem; line-height: 1.25; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-title a,
.path-projekty .views-field-title a { color: var(--dw-text); text-decoration: none; }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-title a:hover,
#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-title a:focus,
.path-projekty .views-field-title a:hover,
.path-projekty .views-field-title a:focus { color: var(--dw-blue); }

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-body,
.path-projekty .views-field-body {
  flex-grow: 1;
  padding: 0.85rem 1.5rem 1.5rem;
  color: var(--dw-muted);
  line-height: 1.6;
}

#block-drupalweb-views-block-projekty-blok-moje-projekty .views-field-body p,
.path-projekty .views-field-body p { margin: 0; }

/* Kontaktní výzva */
.dw-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) auto;
  gap: 2.5rem;
  align-items: center;
  max-width: 1170px;
  margin: 0 auto 2.5rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  color: var(--dw-text);
  background: #eaf4f7;
  border: 1px solid #d2e4e9;
  border-radius: var(--dw-radius);
  box-shadow: 0 12px 32px rgba(36, 74, 87, 0.08);
}

.dw-cta__label { margin: 0 0 0.65rem; font-size: 0.9rem; }
.dw-cta__content > p:last-child { max-width: 700px; margin: 0.9rem 0 0; color: var(--dw-muted); font-size: 1.08rem; line-height: 1.55; }
.dw-cta__actions { display: flex; flex-direction: column; align-items: center; gap: 0.9rem; min-width: 260px; }
.dw-cta__actions .dw-button { width: 100%; }
.dw-cta__email,
.dw-cta__email:visited { color: var(--dw-blue-dark) !important; font-weight: 700; text-decoration: none; }
.dw-cta__email:hover,
.dw-cta__email:focus { color: var(--dw-orange-dark) !important; text-decoration: underline; }

/* Patička */
.dw-footer {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 2rem;
  align-items: center;
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 1.75rem var(--dw-gutter);
  color: var(--dw-muted);
  border-top: 1px solid var(--dw-border);
}

.dw-footer__brand strong,
.dw-footer__brand span { display: block; }
.dw-footer__brand strong { color: var(--dw-text); font-size: 1.15rem; }
.dw-footer__brand span { margin-top: 0.25rem; font-size: 0.9rem; }
.dw-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.7rem 1.25rem; }
.dw-footer__links a,
.dw-footer__links a:visited { color: var(--dw-text); font-weight: 650; text-decoration: none; }
.dw-footer__links a:hover,
.dw-footer__links a:focus { color: var(--dw-blue); text-decoration: underline; }
.dw-footer__copyright { margin: 0; white-space: nowrap; font-size: 0.9rem; }

/* Vnitřní stránky */
body:not(.path-frontpage),
body:not(.path-frontpage) .main-container,
body:not(.path-frontpage) .main-container-inner,
body:not(.path-frontpage) .main-box,
body:not(.path-frontpage) .main-box-inner,
body:not(.path-frontpage) .region-content {
  background: var(--dw-background) !important;
}

body:not(.path-frontpage) #header,
body:not(.path-frontpage) #header-inner,
body:not(.path-frontpage) #primary-menu,
body:not(.path-frontpage) #primary-menu-inner,
body:not(.path-frontpage) footer,
body:not(.path-frontpage) .site-footer,
body:not(.path-frontpage) .footer-container {
  background: var(--dw-white) !important;
}

body:not(.path-frontpage) #block-drupalweb-nazevstranky {
  width: 100%;
  max-width: var(--dw-content-width);
  margin: 0 auto;
  padding: 2.75rem var(--dw-gutter) 1.75rem;
  background: transparent !important;
}

body:not(.path-frontpage) #block-drupalweb-nazevstranky .page-title-text {
  margin: 0;
  font-size: clamp(2.25rem, 4vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.page-node-type-page article.node--type-page,
.page-node-type-article article.node--type-article,
.path-contact form {
  width: calc(100% - 2.5rem);
  margin: 0 auto 4rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  background: var(--dw-white) !important;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  box-shadow: var(--dw-shadow);
}

.page-node-type-page article.node--type-page { max-width: 1170px; }
.page-node-type-article article.node--type-article { max-width: 1024px; }
.path-contact form { max-width: 900px; }

/* Detail projektu: Layout Builder 50/50 převedený pod sebe */
.page-node-type-article .node__content .layout--twocol-section { display: block !important; }

.page-node-type-article .node__content .layout--twocol-section > .layout__region {
  display: block;
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
}

.page-node-type-article .field--name-field-image {
  float: none !important;
  clear: both;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 2rem !important;
}

.page-node-type-article .field--name-field-image a { display: block; width: 100%; }

.page-node-type-article .field--name-field-image img {
  display: block;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  height: auto;
  margin: 0 !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  box-shadow: var(--dw-shadow);
}

.page-node-type-article .field--name-body { font-size: 1.05rem; line-height: 1.75; }
.page-node-type-article .field--name-body h2,
.page-node-type-article .field--name-body h3 { margin: 2.25rem 0 0.75rem; line-height: 1.2; }

/* Responzivita */
@media (max-width: 992px) {
  #block-drupalweb-branding .site-name-link { font-size: 1.5rem; }
  #block-drupalweb-branding .site-slogan { font-size: 0.8rem; }
  #primary-menu-inner { min-height: 52px; padding-top: 0.2rem; padding-bottom: 0.2rem; }
  #primary-menu-inner .mobile-menubar-toggler-button { color: var(--dw-blue); }
  .dw-services__grid { grid-template-columns: 1fr; }
  .dw-service-card { width: 100%; max-width: 760px; }
  .dw-footer { grid-template-columns: 1fr; text-align: center; }
}

@media (max-width: 800px) {
  .dw-hero { grid-template-columns: 1fr; gap: 2rem; padding: 3rem 1.25rem; border-radius: 12px; }
  .dw-hero h1 { font-size: clamp(2.4rem, 12vw, 4rem); }
  .dw-hero__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dw-services { padding: 3.5rem 1.25rem 3rem; }
  #block-drupalweb-views-block-projekty-blok-moje-projekty,
  .path-projekty .view-projekty { padding: 3.5rem 1.25rem 3rem; }
  .dw-cta { grid-template-columns: 1fr; gap: 2rem; margin: 0 1.25rem 2rem; padding: 2.25rem 1.5rem; border-radius: 12px; }
  .dw-cta__actions { align-items: stretch; min-width: 0; }
}

@media (max-width: 600px) {
  body:not(.path-frontpage) #block-drupalweb-nazevstranky { padding-top: 2rem; padding-bottom: 1.25rem; }
  body:not(.path-frontpage) #block-drupalweb-nazevstranky .page-title-text { font-size: 2.15rem; }
  .page-node-type-page article.node--type-page,
  .page-node-type-article article.node--type-article,
  .path-contact form { width: calc(100% - 2rem); margin-bottom: 2.5rem; padding: 1.25rem; }
}

@media (max-width: 560px) {
  .dw-hero { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .dw-hero__actions { flex-direction: column; align-items: stretch; }
  .dw-button { width: 100%; }
  .dw-hero__facts { grid-template-columns: 1fr; }
  .dw-service-card { padding: 1.4rem; }
  .dw-footer { gap: 1.5rem; padding-top: 1.5rem; padding-bottom: 1.5rem; }
  .dw-footer__links { flex-direction: column; align-items: center; }
  .dw-footer__copyright { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .dw-button,
  .views-field-field-image img { transition: none; }
}
.view-header {
    padding-bottom: 30px;
}