/*
Theme Name: Opava.City Catalog
Theme URI: https://opava.city
Author: Opava City s.r.o.
Description: Prémiová katalogová šablona Opava.City propojující firmy, kategorie, nabídky a mapu města.
Version: 2.1.1
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: opava-city
*/

:root {
  --opc-gold:#b58b2a;
  --opc-gold-soft:#ead9aa;
  --opc-ink:#10100f;
  --opc-paper:#f6f3ec;
  --opc-line:#ded9cd;
  --opc-muted:#6f6d67;
  --opc-white:#fff;
  --opc-radius:22px;
  --opc-shadow:0 24px 70px rgba(16,16,15,.09);
}
html { scroll-behavior:smooth; }
body { text-rendering:optimizeLegibility; overflow-x:hidden; }
a { text-underline-offset:.18em; }
.opc-header { position:sticky; top:0; z-index:90; backdrop-filter:blur(18px); }
.admin-bar .opc-header { top:32px; }
.opc-wordmark { letter-spacing:-.065em; white-space:nowrap; }
.opc-wordmark a { text-decoration:none; }
.opc-wordmark-dot { color:var(--opc-gold); }
.opc-header-nav a { color:var(--opc-ink) !important; text-decoration:none !important; }
.opc-header-nav a:hover { color:var(--opc-gold); }
.opc-header-cta a { border-radius:999px !important; }
.opc-header-actions { gap:10px !important; }
.opc-header-install { padding:12px 17px; border:1px solid var(--opc-line); border-radius:999px; background:#fff; color:var(--opc-ink); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.opc-home { background:var(--opc-white); color:var(--opc-ink); }
.opc-wrap { width:min(1360px,calc(100% - 48px)); margin:0 auto; }
.opc-kicker { margin:0 0 13px; font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.opc-kicker-gold { color:var(--opc-gold); }
.opc-section { padding:88px 0; }
.opc-section-paper { background:var(--opc-paper); }
.opc-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:38px; }
.opc-section-head h2 { max-width:800px; margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(40px,5vw,68px); font-weight:400; letter-spacing:-.045em; line-height:.96; }
.opc-section-head p { max-width:540px; margin:0; color:var(--opc-muted); }
.opc-text-link { font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
.opc-catalog-hero { padding:72px 0 38px; background:linear-gradient(140deg,#fff 0%,#fff 57%,var(--opc-paper) 57%,var(--opc-paper) 100%); }
.opc-catalog-hero-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr); gap:68px; align-items:end; }
.opc-brandline { display:flex; align-items:center; gap:14px; margin-bottom:46px; }
.opc-brandmark { width:54px; height:54px; display:grid; place-items:center; border:1px solid var(--opc-gold); border-radius:50%; font-family:Georgia,serif; font-size:30px; }
.opc-brandname { font-size:22px; font-weight:900; letter-spacing:-.04em; }
.opc-catalog-hero h1 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(60px,8.5vw,124px); font-weight:400; letter-spacing:-.07em; line-height:.82; }
.opc-catalog-hero h1 span { color:var(--opc-gold); }
.opc-catalog-hero .opc-lead { max-width:760px; margin:36px 0 0; font-size:clamp(19px,2vw,27px); line-height:1.35; color:#4e4c47; }
.opc-hero-statbox { padding:38px; border:1px solid var(--opc-line); border-radius:var(--opc-radius); background:rgba(255,255,255,.84); box-shadow:var(--opc-shadow); }
.opc-hero-statbox strong { display:block; font-family:Georgia,serif; font-size:clamp(48px,5vw,76px); font-weight:400; line-height:1; }
.opc-hero-statbox span { display:block; margin-top:9px; color:var(--opc-muted); }
.opc-hero-statrow { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:32px; padding-top:25px; border-top:1px solid var(--opc-line); }
.opc-hero-statrow strong { font-family:Arial,sans-serif; font-size:24px; font-weight:800; }
.opc-catalog-search { position:relative; z-index:5; margin:36px auto 0; padding:14px; border:1px solid var(--opc-line); border-radius:999px; background:#fff; box-shadow:var(--opc-shadow); }
.opc-catalog-search form { display:grid; grid-template-columns:1fr auto; gap:10px; }
.opc-catalog-search input { min-width:0; height:58px; padding:0 24px; border:0; background:transparent; font-size:18px; outline:none; }
.opc-catalog-search button { min-width:155px; border:0; border-radius:999px; background:var(--opc-ink); color:#fff; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.opc-catalog-search button:hover { background:var(--opc-gold); color:var(--opc-ink); }
.opc-quick-search { display:flex; flex-wrap:wrap; gap:10px; padding:18px 16px 3px; }
.opc-quick-search a { padding:8px 13px; border:1px solid var(--opc-line); border-radius:999px; color:var(--opc-ink); font-size:12px; font-weight:700; text-decoration:none; }
.opc-app-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:20px; }
.opc-app-shortcuts a { min-height:126px; display:flex; flex-direction:column; padding:20px; border:1px solid var(--opc-line); border-radius:20px; background:rgba(255,255,255,.92); color:var(--opc-ink); text-decoration:none; box-shadow:0 12px 35px rgba(16,16,15,.05); transition:.2s ease; }
.opc-app-shortcuts a:hover { transform:translateY(-3px); border-color:var(--opc-gold); }
.opc-app-shortcuts span { color:var(--opc-gold); font-size:25px; line-height:1; }
.opc-app-shortcuts strong { margin-top:auto; font-size:18px; }
.opc-app-shortcuts small { margin-top:3px; color:var(--opc-muted); }
.opc-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--opc-line); border-left:1px solid var(--opc-line); }
.opc-category-card { min-height:184px; display:flex; flex-direction:column; justify-content:space-between; padding:28px; border-right:1px solid var(--opc-line); border-bottom:1px solid var(--opc-line); color:var(--opc-ink); text-decoration:none; transition:.22s ease; }
.opc-category-card:hover { z-index:1; color:#fff; background:var(--opc-ink); transform:translateY(-4px); box-shadow:var(--opc-shadow); }
.opc-category-icon { font-family:Georgia,serif; font-size:34px; color:var(--opc-gold); }
.opc-category-card h3 { margin:26px 0 4px; font-size:21px; letter-spacing:-.03em; }
.opc-category-card small { color:var(--opc-muted); }
.opc-category-card:hover small { color:#c8c5bd; }
.opc-company-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.opc-company-card { min-height:250px; display:flex; flex-direction:column; padding:27px; border:1px solid var(--opc-line); border-radius:18px; background:#fff; color:var(--opc-ink); text-decoration:none; transition:.2s ease; }
.opc-company-card:hover { transform:translateY(-5px); box-shadow:var(--opc-shadow); }
.opc-company-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.opc-company-number { color:var(--opc-gold); font-family:Georgia,serif; font-size:24px; }
.opc-verified { padding:5px 9px; border-radius:999px; background:#f0e6c9; color:#745714; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.opc-company-card h3 { margin:36px 0 9px; font-family:Georgia,serif; font-size:28px; font-weight:400; line-height:1.04; }
.opc-company-category { color:var(--opc-muted); font-size:13px; }
.opc-company-address { margin-top:auto; padding-top:28px; font-size:13px; }
.opc-company-address::before { content:'⌖ '; color:var(--opc-gold); }
.opc-empty { grid-column:1/-1; padding:34px; border:1px dashed var(--opc-line); border-radius:18px; color:var(--opc-muted); }
.opc-map-shell { display:grid; grid-template-columns:.9fr 1.1fr; min-height:560px; border-radius:28px; overflow:hidden; background:#171714; color:#fff; }
.opc-map-copy { padding:62px; display:flex; flex-direction:column; justify-content:space-between; }
.opc-map-copy h2 { margin:0; font-family:Georgia,serif; font-size:clamp(48px,6vw,82px); font-weight:400; letter-spacing:-.055em; line-height:.9; }
.opc-map-copy p { max-width:480px; color:#c9c7c0; font-size:18px; }
.opc-map-actions { display:flex; flex-wrap:wrap; gap:12px; }
.opc-map-actions a { padding:13px 18px; border:1px solid #5a574f; border-radius:999px; color:#fff; font-size:12px; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.opc-map-actions a:first-child { border-color:var(--opc-gold); background:var(--opc-gold); color:#111; }
.opc-map-canvas { position:relative; min-height:560px; overflow:hidden; background:radial-gradient(circle at 50% 50%,rgba(181,139,42,.19),transparent 29%),linear-gradient(35deg,transparent 49.5%,rgba(255,255,255,.08) 50%,transparent 50.5%),linear-gradient(145deg,transparent 49.5%,rgba(255,255,255,.07) 50%,transparent 50.5%); background-size:auto,72px 72px,86px 86px; }
.opc-map-canvas::after { content:''; position:absolute; inset:8%; border:1px solid rgba(181,139,42,.45); border-radius:48% 52% 55% 45%; transform:rotate(-8deg); }
.opc-map-place { position:absolute; z-index:2; display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(16,16,15,.82); color:#fff; font-size:12px; font-weight:700; text-decoration:none; backdrop-filter:blur(8px); }
.opc-map-place::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--opc-gold); box-shadow:0 0 0 5px rgba(181,139,42,.18); }
.opc-map-place:nth-child(1){left:12%;top:18%}.opc-map-place:nth-child(2){right:11%;top:15%}.opc-map-place:nth-child(3){left:38%;top:37%}.opc-map-place:nth-child(4){left:10%;bottom:24%}.opc-map-place:nth-child(5){right:12%;bottom:28%}.opc-map-place:nth-child(6){left:41%;bottom:11%}
.opc-offer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.opc-offer-card { color:var(--opc-ink); text-decoration:none; }
.opc-offer-image { aspect-ratio:4/3; overflow:hidden; border-radius:16px; background:#e9e5dc; }
.opc-offer-image img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.opc-offer-card:hover img { transform:scale(1.035); }
.opc-offer-card h3 { margin:16px 0 5px; font-family:Georgia,serif; font-size:23px; font-weight:400; line-height:1.1; }
.opc-offer-card p { margin:0; color:var(--opc-muted); font-size:14px; }
.opc-journal-grid { display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:18px; }
.opc-journal-card { min-height:320px; display:flex; flex-direction:column; justify-content:end; padding:30px; border-radius:18px; background:#fff; color:var(--opc-ink); text-decoration:none; }
.opc-journal-card:first-child { min-height:520px; background:var(--opc-ink); color:#fff; }
.opc-journal-card.has-image { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.08)),var(--opc-card-image) center/cover; color:#fff; }
.opc-journal-card.has-image::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.86),rgba(0,0,0,.02) 75%); }
.opc-journal-type { margin-bottom:auto; color:var(--opc-gold); font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.opc-journal-card time { color:var(--opc-gold); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.opc-journal-card h3 { margin:14px 0 0; font-family:Georgia,serif; font-size:30px; font-weight:400; line-height:1.04; }
.opc-journal-card:first-child h3 { font-size:clamp(38px,4vw,58px); }
.opc-join { padding:62px; border-radius:28px; background:var(--opc-gold); color:var(--opc-ink); display:flex; align-items:center; justify-content:space-between; gap:34px; }
.opc-join h2 { margin:0; max-width:800px; font-family:Georgia,serif; font-size:clamp(40px,5vw,68px); font-weight:400; letter-spacing:-.05em; line-height:.95; }
.opc-join a { padding:17px 24px; border-radius:999px; background:var(--opc-ink); color:#fff; font-size:12px; font-weight:800; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; white-space:nowrap; }
.opc-footer { border-top:1px solid var(--opc-line); }
.opc-app-nav { display:none; }
.opc-install-sheet { position:fixed; z-index:10002; left:50%; bottom:28px; width:min(620px,calc(100% - 28px)); transform:translateX(-50%); align-items:center; gap:18px; padding:18px; border:1px solid var(--opc-line); border-radius:22px; background:rgba(255,255,255,.97); color:var(--opc-ink); box-shadow:0 28px 90px rgba(0,0,0,.24); backdrop-filter:blur(20px); }
.opc-install-sheet:not([hidden]) { display:flex; }
.opc-install-sheet p { margin:3px 0 0; color:var(--opc-muted); font-size:13px; line-height:1.35; }
.opc-install-icon { flex:0 0 50px; width:50px; height:50px; display:grid; place-items:center; border-radius:15px; background:var(--opc-ink); color:var(--opc-gold); font-family:Georgia,serif; font-size:29px; }
.opc-install-close { position:absolute; right:10px; top:7px; border:0; background:transparent; font-size:23px; cursor:pointer; }
.opc-install-confirm { margin-left:auto; padding:13px 18px; border:0; border-radius:999px; background:var(--opc-ink); color:#fff; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; cursor:pointer; }
.opc-install-open { font:inherit; }
@media (max-width:1000px) {
  .opc-catalog-hero-grid,.opc-map-shell { grid-template-columns:1fr; }
  .opc-category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .opc-app-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .opc-company-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .opc-offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .opc-journal-grid { grid-template-columns:1fr 1fr; }
  .opc-journal-card:first-child { grid-column:1/-1; }
}
@media (max-width:781px) {
  .admin-bar .opc-header { top:46px; }
  .opc-header-nav { display:none !important; }
  .opc-header-install { display:none; }
  .opc-wrap { width:min(100% - 28px,1360px); }
  .opc-catalog-hero { padding-top:42px; background:#fff; }
  .opc-catalog-hero-grid { gap:38px; }
  .opc-brandline { margin-bottom:32px; }
  .opc-catalog-hero h1 { font-size:59px; }
  .opc-hero-statbox { padding:27px; }
  .opc-catalog-search { border-radius:22px; }
  .opc-catalog-search form { grid-template-columns:1fr; }
  .opc-catalog-search button { height:52px; }
  .opc-section { padding:62px 0; }
  .opc-section-head { align-items:start; flex-direction:column; }
  .opc-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .opc-app-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .opc-app-shortcuts a { min-height:116px; padding:17px; }
  .opc-category-card { min-height:150px; padding:20px; }
  .opc-company-grid { grid-template-columns:1fr; }
  .opc-map-copy { padding:36px 28px; }
  .opc-map-canvas { min-height:430px; }
  .opc-journal-grid { grid-template-columns:1fr; }
  .opc-journal-card:first-child { grid-column:auto; min-height:410px; }
  .opc-join { padding:38px 28px; align-items:flex-start; flex-direction:column; }
  body { padding-bottom:76px; }
  .opc-header { position:sticky; top:0; }
  .opc-header-cta .wp-block-button__link { font-size:0 !important; width:44px; height:44px; display:grid; place-items:center; padding:0 !important; }
  .opc-header-cta .wp-block-button__link::after { content:'+'; font-size:25px; line-height:1; }
  .opc-app-nav { position:fixed; z-index:9999; left:0; right:0; bottom:0; height:72px; display:grid; grid-template-columns:repeat(5,1fr); padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left)); border-top:1px solid #292926; background:rgba(15,15,14,.97); color:#fff; backdrop-filter:blur(18px); }
  .opc-app-nav a,.opc-app-nav button { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border:0; background:transparent; color:#fff !important; font-size:9px; font-weight:800; letter-spacing:.05em; text-decoration:none !important; text-transform:uppercase; cursor:pointer; }
  .opc-app-nav span { color:var(--opc-gold); font-size:22px; font-weight:400; line-height:1; }
  .opc-install-sheet { bottom:86px; align-items:flex-start; padding:19px 16px; }
  .opc-install-sheet .opc-install-confirm { margin:54px 0 0 -132px; }
}
@media (max-width:480px) {
  .opc-offer-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .opc-offer-card h3 { font-size:18px; }
  .opc-offer-card p { font-size:12px; }
}
