/* ==========================================================================
   Pavel Šnobl – daňové poradenství
   Statická kopie webu pavelsnobl.cz (bez Wixu)
   ========================================================================== */

/* --------------------------------------------------------------- 1. FONTY */

@font-face{
  font-family:'Garet';
  src:url('../assets/fonts/garet-book.woff2') format('woff2');
  font-weight:400;          /* Garet má jediný řez; tučný si prohlížeč dopočítá – stejně jako na Wixu */
  font-style:normal;
  font-display:swap;
}
@font-face{
  /* Jeden soubor (latin + latin-ext), ne dělený jako na Google Fonts CDN – na
     českém textu se stejně stahují obě sady znaků, dělení nemá smysl a navíc
     dřívější latin-ext řez byl statický (vždy SemiBold, i když šlo o jiný
     font-weight) a diakritika (ř, č, š…) v něm neztenčovala se zbytkem textu. */
  font-family:'Work Sans';
  src:url('../assets/fonts/worksans.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  /* Stejný důvod jako u Work Sans výše – jeden soubor místo latin/latin-ext;
     dřívější dělení způsobovalo tučné háčky a čárky (ř, ě, č…) v lehkých řezech. */
  font-family:'Mulish';
  src:url('../assets/fonts/mulish.woff2') format('woff2');
  font-weight:200 1000;
  font-style:normal;
  font-display:swap;
}

/* -------------------------------------------------------------- 2. TOKENY */

:root{
  --navy:#183387;
  --red:#ff3131;

  --card-bg:rgba(24,51,135,.79);
  --overlay-sluzby:rgba(226,28,33,.79);
  --overlay-rozhovory:rgba(24,51,135,.89);
  --overlay-klienti:rgba(255,49,49,.79);

  --font-display:'Garet','Century Gothic',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-ui:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-text:'Mulish','Avenir Next','Avenir',system-ui,sans-serif;

  --wrap:1002px;         /* šířka obsahu jako na živém webu (1440px → 230–1232) */
  --header-h:128px;
}

/* --------------------------------------------------------------- 3. RESET */

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--navy);
  color:#fff;
  font-family:var(--font-display);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dt,dd{margin:0;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}

:where(a,button):focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
  border-radius:6px;
}

.wrap{
  width:100%;
  max-width:calc(var(--wrap) + 48px);
  margin-inline:auto;
  padding-inline:24px;
}
.visually-hidden{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;
}
/* Skip link musí být po zaostření vidět – jinak klávesnicový uživatel
   natabuje na neviditelný odkaz. */
a.visually-hidden:focus{
  position:fixed;
  top:12px;left:12px;
  width:auto;height:auto;
  overflow:visible;
  clip-path:none;
  white-space:normal;
  z-index:100;
  padding:12px 20px;
  border-radius:10px;
  background:var(--red);
  color:#fff;
  font-family:var(--font-ui);
  font-weight:600;
}
section[id]{scroll-margin-top:20px;}

/* ------------------------------------------------------- 4. SPOLEČNÉ PRVKY */

/* Kulaté „bubliny“ – červená i tmavě modrá varianta */
.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-family:var(--font-ui);
  font-weight:600;
  line-height:1;
  text-align:center;
}
.pill--navy{background:var(--navy);}

/* Nadpis sekce – velká bublina */
.section-pill{
  font-size:clamp(24px,3vw,40px);
  padding:16px 45px;
  min-height:79px;
}

/* ------------------------------------------------------------- 5. HLAVIČKA */

.site-header{
  position:relative;
  z-index:20;
  background:var(--navy);
  height:var(--header-h);
  display:flex;
  align-items:center;
}
.site-header__inner{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-inline:48px;
}
.site-header__logo{flex:0 0 auto;}
.site-header__logo img{height:clamp(46px,6.5vw,80px);width:auto;max-width:none;}

.nav__list{display:flex;gap:12px;}
.nav__list a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:135px;
  height:24px;
  border-radius:10px;
  background:var(--red);
  font-family:var(--font-display);
  font-weight:700;
  font-size:20px;
  line-height:1;
  transition:background .2s ease,transform .2s ease;
}
.nav__list a:hover{background:#e91f1f;transform:translateY(-1px);}

.nav__toggle{display:none;}

/* --------------------------------------------------------------- 6. SEKCE */

.section{position:relative;isolation:isolate;}
/* Pozadí sekce řešené přes ::before/::after místo prázdného .section__bg
   divu – stejný vizuál, menší DOM. */
.section::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-2;
  background-size:cover;
  background-position:center;
}
.section::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
}
.section--hero::before{background-image:url('../assets/img/bg-hero.jpg');}
.section--sluzby::before{background-image:url('../assets/img/bg-sluzby.jpg');}
.section--sluzby::after{background:var(--overlay-sluzby);}
.section--rozhovory::before{background-image:url('../assets/img/bg-rozhovory.jpg');}
.section--rozhovory::after{background:var(--overlay-rozhovory);}
.section--klienti::before{background-image:url('../assets/img/bg-klienti.jpg');}
.section--klienti::after{background:var(--overlay-klienti);}

/* --------------------------------------------------------------- 7. ÚVOD */

.hero{padding-block:7px 137px;}
.hero__title{
  font-size:clamp(38px,4.9vw,70px);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.1;
  padding-left:25px;
}
.hero__tagline{
  font-family:var(--font-text);
  font-weight:300;
  font-size:clamp(22px,3.4vw,49px);
  line-height:1.2;
  text-align:right;
  padding-right:37px;
  margin-top:8px;
}

.about{
  display:grid;
  grid-template-columns:520px minmax(0,1fr);
  margin-top:44px;
}

/* --- levý sloupec: fotka, LinkedIn, štítky --- */
.about__figure{position:relative;width:480px;margin:18px 0 0 16px;}
.about__figure img{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;}
.about__badge{
  position:absolute;
  top:14px;
  left:326px;
  width:144px;
  height:40px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:30px;
  padding:0;
}
/* Pozicováno procentuálně vůči kruhové fotce (.about__figure), takže se
   škáluje spolu s ní na všech šířkách bez samostatných zásahů v media
   queries – dřív se stejného efektu dosahovalo různými margin hacky pro
   každý breakpoint zvlášť, včetně mobilu, kde ikona kvůli tomu zanikala
   vycentrovaná pod fotkou. */
.about__linkedin{
  position:absolute;
  left:9%;
  bottom:2%;
  width:14%;
  min-width:32px;
  max-width:56px;
  transition:transform .2s ease;
}
.about__linkedin img{width:100%;}
.about__linkedin:hover{transform:scale(1.12);}

.badges{display:flex;flex-direction:column;align-items:flex-start;gap:63px;margin:31px 0 0 53px;}
.badges .pill{
  min-height:52px;
  padding:0 21px;
  font-size:clamp(15px,1.5vw,22px);
}

/* --- pravý sloupec: jméno a text --- */
.about__name{
  font-size:clamp(52px,6.9vw,100px);
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.02em;
  text-transform:uppercase;
}
.about__text{margin-top:74px;}
.about__text p{
  font-size:clamp(17px,1.53vw,22px);
  line-height:1.4;
  text-wrap:balance;   /* nahrazuje dřívější ruční <br> pro zalomení řádku */
}
.about__text p + p{margin-top:36px;}
.about__text strong{font-weight:700;}

/* ------------------------------------------------------------- 8. SLUŽBY */

.sluzby{padding-block:40px 76px;}
.sluzby__head{padding-left:54px;}

.cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px;
  margin-top:56px;
}
/* Obsah karty (ikona + seznam) je vidět natrvalo na všech šířkách – dřív
   se seznam odhaloval jen na :hover/:focus-within a kartě musel kvůli tomu
   pomoct tabindex="0" na netlačítkovém <article>, což bylo pro klávesnici
   i čtečku obrazovky matoucí a pro dotyk/klávesnici bez myši nepoužitelné. */
.card{
  position:relative;
  padding:32px 30px 36px;
  border-radius:50px;
  background:var(--card-bg);
  overflow:hidden;
}
.card__title{
  font-size:clamp(22px,2.1vw,30px);
  font-weight:700;
  line-height:1.4;
  max-width:399px;
}
.card__icon{
  display:block;
  width:auto;
  max-width:220px;
  max-height:220px;
  margin:26px auto;
  object-fit:contain;
}
.card__list{
  display:flex;
  flex-direction:column;
  gap:26px;
}
.card__list li{
  display:flex;
  align-items:flex-start;
  gap:14px;
  font-family:var(--font-text);
  font-weight:300;
  font-size:18px;
  line-height:1.4;
}
.card__list li::before{
  content:'';
  flex:0 0 auto;
  width:40px;
  height:14px;
  margin-top:5px;
  border-radius:300px;
  background:var(--red);
}

/* ---------------------------------------------------------- 9. ROZHOVORY */

.rozhovory{padding-block:45px 92px;}
.rozhovory__head{padding-left:14px;}

.interviews{display:flex;flex-direction:column;gap:18px;margin-top:29px;padding-left:14px;}
.interview{
  display:flex;
  align-items:center;
  gap:22px;
  width:fit-content;
  max-width:100%;
}
.interview .pill{
  flex:0 0 auto;
  min-height:49px;
  padding:0 22px;
  font-size:clamp(18px,1.95vw,28px);
  transition:background .2s ease,transform .2s ease;
}
.interview__desc{
  font-family:var(--font-text);
  font-weight:300;
  font-size:clamp(16px,1.53vw,22px);
  line-height:1.4;
}
.interview:hover .pill{background:#0f2569;transform:translateY(-1px);}

.quote{
  width:600px;
  max-width:100%;
  min-height:114px;
  margin:73px auto 0;
  padding:26px 34px 12px;
  border-radius:300px;
  background:var(--red);
  text-align:center;
}
.quote p{
  font-size:clamp(22px,2.1vw,30px);
  font-weight:700;
  line-height:1.4;
}
.quote footer{
  margin-top:6px;
  font-size:20px;
  font-weight:700;
  line-height:1.4;
}

/* ------------------------------------------------- 10. KLIENTI A KONTAKT */

.klienti{padding-block:39px 53px;}
.klienti__head{text-align:center;}

.klienti__grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:end;
  gap:24px 0;
  margin-top:41px;
}
.klienti__item{text-align:center;}
/* Výška obrázku je na živém webu u každého klienta jiná (různý poměr
   stran zdrojové fotky) – místo pěti per-klientských CSS pravidel nese
   hodnotu proměnná --h nastavená přímo na <figure> v HTML. */
.klienti__item img{
  width:auto;
  height:var(--h);
  margin:0 auto;
  object-fit:contain;
}
.klienti__item figcaption{
  font-family:var(--font-text);
  font-weight:800;
  font-size:18px;
  line-height:1.4;
}

.kontakt{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  align-items:center;
  gap:24px;
  width:683px;
  max-width:100%;
  min-height:143px;
  margin:104px auto 0;
  padding:24px;
  border-radius:70px;
  background:var(--navy);
  text-align:center;
}
.kontakt dt{
  font-family:var(--font-ui);
  font-weight:600;
  font-size:20px;
  line-height:1.2;
  margin-bottom:29px;
}
.kontakt a{
  font-family:var(--font-text);
  font-weight:300;
  font-size:16px;
  line-height:1.2;
}
.kontakt a:hover{text-decoration:underline;}

/* ------------------------------------------------------------ 11. PATIČKA */

.site-footer{background:var(--navy);padding:52px 0 67px;}
.site-footer__inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:40px;
  padding-inline:50px;
}
.site-footer__contacts{display:flex;flex-wrap:wrap;gap:24px 72px;}
.site-footer__contact{flex:0 0 auto;white-space:nowrap;}
.site-footer dt{
  font-family:var(--font-ui);
  font-weight:600;
  font-size:18px;
  line-height:1.2;
  margin-bottom:8px;
}
.site-footer a,
.site-footer p{
  font-family:var(--font-text);
  font-weight:300;
  font-size:16px;
  line-height:1.4;
}
.site-footer__contact a:hover{text-decoration:underline;}
.site-footer__social{display:inline-block;margin-top:4px;}
.site-footer__social img{width:24px;}
.site-footer__logo{justify-self:center;}
.site-footer__logo img{height:60px;width:auto;}
.site-footer__credit{justify-self:end;}
.site-footer__credit p,
.site-footer__credit a{font-size:13px;}
.site-footer__credit a{text-decoration:underline;text-underline-offset:2px;}
.site-footer__credit a:hover{color:var(--red);}

/* ------------------------------------------------------- 12. RESPONZIVITA */

@media (max-width:1100px){
  .site-header__inner{padding-inline:24px;}
  .nav__list a{width:auto;padding-inline:16px;}
  .about{grid-template-columns:minmax(0,44%) minmax(0,1fr);}
  .about__figure{width:100%;max-width:480px;margin-left:0;}
  .about__badge{left:auto;right:0;top:8%;}
  .badges{margin-left:0;gap:32px;}
  .about__text{margin-top:48px;}
  .card__icon{max-width:70%;max-height:260px;}
  .site-footer__inner{padding-inline:24px;gap:32px 40px;}
}

@media (max-width:900px){
  .hero{padding-block:24px 56px;}
  /* Texty v „O mně“ jsou na mobilu doprava, stejně jako na velkém webu –
     ne na střed (nahlášený vizuální bug). U .about jde o grid, takže se
     mění i justify-items, ne jen text-align. */
  .hero__title{padding-left:0;text-align:right;}
  .hero__tagline{text-align:right;padding-right:0;}

  .about{grid-template-columns:1fr;justify-items:end;text-align:right;margin-top:44px;}
  .about__figure{max-width:340px;}
  .badges{align-items:flex-end;gap:18px;margin-top:26px;}
  .about__name{margin-top:32px;text-align:right;}
  .about__text{margin-top:28px;text-align:right;}
  .about__text p + p{margin-top:22px;}

  .sluzby__head,.rozhovory__head{padding-left:0;text-align:center;}
  .cards{grid-template-columns:1fr;gap:26px;}

  .card{padding:26px 24px 32px;text-align:center;}
  .card__title{max-width:none;}
  .card__icon{max-height:200px;}
  .card__list{gap:22px;text-align:left;}

  .interviews{align-items:center;padding-left:0;}
  .interview{flex-direction:column;gap:8px;text-align:center;}
  .quote{margin-top:48px;border-radius:40px;padding:26px 30px;}

  .klienti__grid{grid-template-columns:repeat(3,1fr);gap:34px 0;}

  .site-footer__inner{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:26px;
  }
  .site-footer__contacts{
    flex-wrap:wrap;
    justify-content:center;
    gap:26px 40px;
  }
  .site-footer__credit{justify-self:center;}
  .site-footer__logo{order:-1;}
}

@media (max-width:900px){
  :root{--header-h:96px;}

  .nav__toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
  }
  .nav__toggle span{
    position:relative;
    display:block;
    width:26px;height:2px;
    background:#fff;
    transition:background .2s ease;
  }
  .nav__toggle span::before,
  .nav__toggle span::after{
    content:'';
    position:absolute;left:0;
    width:26px;height:2px;
    background:#fff;
    transition:transform .25s ease;
  }
  .nav__toggle span::before{top:-8px;}
  .nav__toggle span::after{top:8px;}
  .nav[data-open='true'] .nav__toggle span{background:transparent;}
  .nav[data-open='true'] .nav__toggle span::before{transform:translateY(8px) rotate(45deg);}
  .nav[data-open='true'] .nav__toggle span::after{transform:translateY(-8px) rotate(-45deg);}

  .nav__list{
    position:fixed;
    inset:var(--header-h) 0 0;
    z-index:30;
    flex-direction:column;
    align-items:center;
    gap:18px;
    padding-top:56px;
    background:var(--navy);
    transform:translateX(100%);
    transition:transform .3s ease;
  }
  .nav[data-open='true'] .nav__list{transform:translateX(0);}
  .nav__list a{width:220px;height:44px;font-size:22px;border-radius:12px;}

  /* Zámek scrollování při otevřeném menu – stav drží JS (data-nav-open na
     <html>), vzhled (overflow:hidden) zůstává v CSS. */
  html[data-nav-open='true']{overflow:hidden;}
}

@media (max-width:640px){
  .site-header__inner{padding-inline:16px;gap:12px;}
  .site-header__logo img{height:clamp(40px,11vw,56px);}

  .klienti__grid{grid-template-columns:repeat(2,1fr);}
  .klienti__item{padding-inline:6px;}
  .klienti__item figcaption{font-size:15px;}
  .kontakt{grid-template-columns:1fr;gap:22px;border-radius:40px;padding:28px 24px;}
  .kontakt dt{margin-bottom:10px;}
  .klienti__item img{max-height:100px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;}
}
