diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 3b51926..42f2609 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -6,7 +6,19 @@ "mcp__serena__list_dir", "Bash(curl:*)", "WebSearch", - "Bash(php:*)" + "Bash(php:*)", + "mcp__serena__read_file", + "mcp__serena__activate_project", + "mcp__serena__initial_instructions", + "mcp__serena__check_onboarding_performed", + "mcp__serena__find_file", + "mcp__serena__search_for_pattern", + "mcp__serena__find_symbol", + "mcp__serena__get_symbols_overview", + "mcp__serena__insert_after_symbol", + "mcp__serena__replace_symbol_body", + "mcp__serena__replace_content", + "Bash(npx sass:*)" ] } } diff --git a/.serena/.gitignore b/.serena/.gitignore new file mode 100644 index 0000000..14d86ad --- /dev/null +++ b/.serena/.gitignore @@ -0,0 +1 @@ +/cache diff --git a/.serena/project.yml b/.serena/project.yml new file mode 100644 index 0000000..c876d0c --- /dev/null +++ b/.serena/project.yml @@ -0,0 +1,117 @@ +# the name by which the project can be referenced within Serena +project_name: "bilety.brzezovka.pl" + + +# list of languages for which language servers are started; choose from: +# al bash clojure cpp csharp +# csharp_omnisharp dart elixir elm erlang +# fortran fsharp go groovy haskell +# java julia kotlin lua markdown +# matlab nix pascal perl php +# php_phpactor powershell python python_jedi r +# rego ruby ruby_solargraph rust scala +# swift terraform toml typescript typescript_vts +# vue yaml zig +# (This list may be outdated. For the current list, see values of Language enum here: +# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py +# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.) +# Note: +# - For C, use cpp +# - For JavaScript, use typescript +# - For Free Pascal/Lazarus, use pascal +# Special requirements: +# Some languages require additional setup/installations. +# See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers +# When using multiple languages, the first language server that supports a given file will be used for that file. +# The first language is the default language and the respective language server will be used as a fallback. +# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored. +languages: +- php + +# the encoding used by text files in the project +# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings +encoding: "utf-8" + +# whether to use project's .gitignore files to ignore files +ignore_all_files_in_gitignore: true + +# list of additional paths to ignore in this project. +# Same syntax as gitignore, so you can use * and **. +# Note: global ignored_paths from serena_config.yml are also applied additively. +ignored_paths: [] + +# whether the project is in read-only mode +# If set to true, all editing tools will be disabled and attempts to use them will result in an error +# Added on 2025-04-18 +read_only: false + +# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details. +# Below is the complete list of tools for convenience. +# To make sure you have the latest list of tools, and to view their descriptions, +# execute `uv run scripts/print_tool_overview.py`. +# +# * `activate_project`: Activates a project by name. +# * `check_onboarding_performed`: Checks whether project onboarding was already performed. +# * `create_text_file`: Creates/overwrites a file in the project directory. +# * `delete_lines`: Deletes a range of lines within a file. +# * `delete_memory`: Deletes a memory from Serena's project-specific memory store. +# * `execute_shell_command`: Executes a shell command. +# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced. +# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). +# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). +# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes. +# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file. +# * `initial_instructions`: Gets the initial instructions for the current project. +# Should only be used in settings where the system prompt cannot be set, +# e.g. in clients you have no control over, like Claude Desktop. +# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. +# * `insert_at_line`: Inserts content at a given line in a file. +# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. +# * `list_dir`: Lists files and directories in the given directory (optionally with recursion). +# * `list_memories`: Lists memories in Serena's project-specific memory store. +# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). +# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). +# * `read_file`: Reads a file within the project directory. +# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. +# * `remove_project`: Removes a project from the Serena configuration. +# * `replace_lines`: Replaces a range of lines within a file with new content. +# * `replace_symbol_body`: Replaces the full definition of a symbol. +# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen. +# * `search_for_pattern`: Performs a search for a pattern in the project. +# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. +# * `switch_modes`: Activates modes by providing a list of their names +# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. +# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. +# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. +# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. +excluded_tools: [] + +# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default) +included_optional_tools: [] + +# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools. +# This cannot be combined with non-empty excluded_tools or included_optional_tools. +fixed_tools: [] + +# list of mode names to that are always to be included in the set of active modes +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the base_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this setting overrides the global configuration. +# Set this to [] to disable base modes for this project. +# Set this to a list of mode names to always include the respective modes for this project. +base_modes: + +# list of mode names that are to be activated by default. +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this overrides the setting from the global configuration (serena_config.yml). +# This setting can, in turn, be overridden by CLI parameters (--mode). +default_modes: + +# initial prompt for the project. It will always be given to the LLM upon activating the project +# (contrary to the memories, which are loaded on demand). +initial_prompt: "" + +# override of the corresponding setting in serena_config.yml, see the documentation there. +# If null or missing, the value from the global config is used. +symbol_info_budget: diff --git a/.vscode/ftp-kr.json b/.vscode/ftp-kr.json index 40f92c7..298bb46 100644 --- a/.vscode/ftp-kr.json +++ b/.vscode/ftp-kr.json @@ -12,6 +12,10 @@ "ignoreRemoteModification": true, "ignore": [ ".git", - "/.vscode" + "/.vscode", + "CLAUDE.md", + "/.sereana", + "/.claude", + ".gitignore" ] } \ No newline at end of file diff --git a/.vscode/ftp-kr.sync.cache.json b/.vscode/ftp-kr.sync.cache.json index 7f59a3e..0a6543f 100644 --- a/.vscode/ftp-kr.sync.cache.json +++ b/.vscode/ftp-kr.sync.cache.json @@ -23,8 +23,8 @@ }, "class.DbModel.php": { "type": "-", - "size": 1392, - "lmtime": 0, + "size": 1397, + "lmtime": 1771797002635, "modified": false }, "class.Excel.php": { @@ -41,22 +41,23 @@ }, "class.S.php": { "type": "-", - "size": 7661, - "lmtime": 1746049759245, + "size": 7625, + "lmtime": 1771797056545, "modified": false }, "class.Tpl.php": { "type": "-", - "size": 1673, - "lmtime": 1746048812215, + "size": 1755, + "lmtime": 1771797039461, "modified": false }, "controls": { + "207286": {}, "class.Apanel.php": { "type": "-", - "size": 5166, - "lmtime": 1746048812388, - "modified": true + "size": 5395, + "lmtime": 1771797091338, + "modified": false }, "class.Cron.php": { "type": "-", @@ -66,20 +67,20 @@ }, "class.Scanner.php": { "type": "-", - "size": 3453, - "lmtime": 1746048812463, + "size": 3550, + "lmtime": 1771797058858, "modified": false }, "class.Site.php": { "type": "-", - "size": 570, - "lmtime": 1746048812539, + "size": 625, + "lmtime": 1771797034132, "modified": false }, "class.Tickets.php": { "type": "-", - "size": 20131, - "lmtime": 1746050141213, + "size": 21496, + "lmtime": 1771797086011, "modified": false }, "class.Users.php": { @@ -93,13 +94,20 @@ "size": 200, "lmtime": 1746048812782, "modified": false + }, + "index.php": { + "type": "-", + "size": 0, + "lmtime": 0, + "modified": false } }, "factory": { + "879348": {}, "class.Apanel.php": { "type": "-", - "size": 1208, - "lmtime": 1746048812856, + "size": 1273, + "lmtime": 1771796998145, "modified": false }, "class.Cron.php": { @@ -110,14 +118,14 @@ }, "class.Tickets.php": { "type": "-", - "size": 2515, - "lmtime": 1746048813029, + "size": 2630, + "lmtime": 1771796997296, "modified": false }, "class.Users.php": { "type": "-", - "size": 1510, - "lmtime": 0, + "size": 1519, + "lmtime": 1771797051167, "modified": false }, ".htaccess": { @@ -125,6 +133,12 @@ "size": 200, "lmtime": 1746048813105, "modified": false + }, + "index.php": { + "type": "-", + "size": 0, + "lmtime": 0, + "modified": false } }, ".htaccess": { @@ -134,6 +148,7 @@ "modified": false }, "view": { + "330138": {}, "class.Cron.php": { "type": "-", "size": 46, @@ -142,8 +157,8 @@ }, "class.Site.php": { "type": "-", - "size": 827, - "lmtime": 0, + "size": 863, + "lmtime": 1771797032107, "modified": false }, "class.Users.php": { @@ -157,13 +172,27 @@ "size": 200, "lmtime": 1746048813184, "modified": false + }, + "index.php": { + "type": "-", + "size": 0, + "lmtime": 0, + "modified": false } } }, + ".claude": { + "settings.local.json": { + "type": "-", + "size": 184, + "lmtime": 1771797522111, + "modified": false + } + }, "config.php": { "type": "-", - "size": 8616, - "lmtime": 1746049434100, + "size": 8763, + "lmtime": 1771797005444, "modified": false }, "cron.php": { @@ -178,6 +207,22 @@ "lmtime": 0, "modified": false }, + "dev": { + "team": { + "2026-02-22_22-51_php81-kompatybilnosc.md": { + "type": "-", + "size": 4570, + "lmtime": 1771797146637, + "modified": false + }, + "session-state.json": { + "type": "-", + "size": 730, + "lmtime": 1771797155895, + "modified": false + } + } + }, ".gitignore": { "type": "-", "size": 0, @@ -192,12 +237,88 @@ }, "index.php": { "type": "-", - "size": 1675, - "lmtime": 1746049418854, + "size": 1774, + "lmtime": 1771797586319, + "modified": false + }, + "info.php": { + "type": "-", + "size": 14, + "lmtime": 1771795279292, "modified": false }, "layout": {}, - "libraries": {}, + "libraries": { + "bootstrap": {}, + "bootstrap-4.1.3": {}, + "ckeditor": {}, + "context-menu.js": { + "type": "-", + "size": 2843, + "lmtime": 0, + "modified": false + }, + "countdown": {}, + "dataTable": {}, + "datepicker": {}, + "daterange": {}, + "filemanager-9.14.1": {}, + "font-awesome-4.7.0": {}, + "font-awesome-6.1.1": {}, + "functions.js": { + "type": "-", + "size": 3098, + "lmtime": 0, + "modified": false + }, + "grid": {}, + ".htaccess": { + "type": "-", + "size": 200, + "lmtime": 0, + "modified": false + }, + "icheck-1.0.2": {}, + "jquery": {}, + "jquery-confirm": {}, + "jquery-gantt": {}, + "license.txt": { + "type": "-", + "size": 16728, + "lmtime": 1748556485000, + "modified": false + }, + "medoo": {}, + "moment": {}, + "phpmailer": {}, + "phpqrcode": {}, + "qrcode-scanner": {}, + "rb-download.tar.gz": { + "type": "-", + "size": 132796, + "lmtime": 1771797357906, + "modified": false + }, + "rb.php": { + "type": "-", + "size": 552317, + "lmtime": 1748556485000, + "modified": false + }, + "tagsinput": {}, + "typeahead.bundle.js": { + "type": "-", + "size": 96186, + "lmtime": 0, + "modified": false + }, + "xlsxwriter.class.php": { + "type": "-", + "size": 48385, + "lmtime": 0, + "modified": false + } + }, "orders": {}, "templates": { "admin-panel": { diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6d36971 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,99 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Online ticket sales system for **Kompleks Turystyczny Brzezovka** (amusement park in Kolbuszowa, Poland). Handles ticket purchase, shopping cart, Przelewy24 payments, QR code generation, invoice issuing (via fakturowo.pl API), and a QR ticket scanner for staff. + +Live at: `bilety.brzezovka.pl` + +## Architecture + +Custom PHP MVC without a framework. No Composer — all dependencies are vendored in `libraries/`. + +### Request Flow + +1. `.htaccess` rewrites URLs as `/{module}/{action}/{params}` → `index.php?module=X&action=Y&...` +2. `index.php` bootstraps: autoloader, config, DB connections (Medoo + RedBeanPHP), session +3. `\view\Site::show()` → `\controls\Site::route()` resolves `module`/`action` to a controller method via `\controls\{Module}::{action}()` +4. Controllers return rendered HTML via `\Tpl::view('template-name', $vars)` + +### Autoloader Convention + +`spl_autoload_register` maps namespaced classes to files: +- `\controls\Tickets` → `autoload/controls/class.Tickets.php` +- `\factory\Tickets` → `autoload/factory/class.Tickets.php` +- `\view\Site` → `autoload/view/class.Site.php` +- `\S`, `\Tpl`, `\DbModel`, `\Html` → `autoload/class.{Name}.php` + +### Layer Responsibilities + +| Layer | Namespace/Dir | Role | +|-------|--------------|------| +| Controllers | `autoload/controls/` | Handle actions, coordinate logic, return rendered views | +| Factory (Services) | `autoload/factory/` | Business logic, DB queries, data processing | +| Views | `autoload/view/` | Layout assembly (wraps controller output in site layout) | +| Templates | `templates/` | PHP template files rendered by `Tpl::view()` | +| Core classes | `autoload/` (root) | `S` (utility/session), `Tpl` (templating), `DbModel` (active record), `Html` (form helpers) | + +### Key Modules + +| Module | Controller | Purpose | +|--------|-----------|---------| +| `tickets` | `controls\Tickets` | Public ticket shop: browse, add/remove from cart, checkout, payment | +| `apanel` | `controls\Apanel` | Admin panel: order list, order editing, ticket validation | +| `scanner` | `controls\Scanner` | QR code scanner for on-site ticket verification | +| `users` | `controls\Users` | User login/logout, settings, permissions | + +### Database + +MySQL via two ORMs used in parallel: +- **Medoo** (`$mdb` global) — primary query builder for tickets/orders +- **RedBeanPHP** (`\R::`) — used in cron jobs (CEIDG import) + +Main tables: `orders`, `order_tickets`, `users` + +### Entry Points + +| File | Purpose | +|------|---------| +| `index.php` | Main app entry (web requests) | +| `ajax.php` | AJAX endpoint (same autoloader, Medoo only) | +| `api.php` | API endpoint (autoloader + Medoo + PHPMailer + RedBeanPHP) | +| `cron.php` | Scheduled tasks (email reminders, CEIDG import) | + +### External Integrations + +- **Przelewy24** — payment gateway (merchant config in `config.php`) +- **fakturowo.pl** — invoice/receipt generation via API +- **PHPMailer** — email sending (SMTP via `bilety@brzezovka.pl`) +- **phpqrcode** — QR code generation for order hashes + +## Frontend + +- Bootstrap 5.2, jQuery 3.6, Font Awesome 6.1 +- SCSS in `layout/style-scss/` compiled to `layout/style-css/style.css` +- SCSS compile comment: `// out: ../style-css/style.css, compress: true, sourceMap: true` (Live Sass Compiler) +- DataTables for admin order list +- html5-qrcode for scanner +- Datepicker for ticket date selection + +## Key Conventions + +- All controller methods are `static public` and accessed via URL routing +- Global `$settings`, `$mdb`, `$user` are used throughout (no DI) +- Ticket config (prices, types, dynamic pricing) lives entirely in `config.php` +- Session-based shopping cart stored at `$_SESSION['basket']` +- Admin auth is a single shared password (`$settings['admin-password']`), stored in session as `$_SESSION['user']` +- Template rendering: `\Tpl::view('path/template-name', ['key' => $value])` — variables accessible as `$this->key` in templates +- AJAX responses: controllers `echo json_encode(...)` then `exit;` + +## Development + +- No build system, test framework, or package manager +- SCSS compilation: use VS Code "Live Sass Compiler" extension (configured via first-line comment in `style.scss`) +- Deployment: FTP sync (`.vscode/ftp-kr.sync.cache.json` present) +- PHP version: compatible with PHP 7.4+ (no typed properties, uses legacy autoload pattern) +- Timezone: `Europe/Warsaw` +- Language: Polish (all UI text, comments, variable names mix PL/EN) diff --git a/ajax.php b/ajax.php index 12087bf..019f8b9 100644 --- a/ajax.php +++ b/ajax.php @@ -41,5 +41,7 @@ $mdb = new medoo( [ 'charset' => 'utf8' ] ); +require_once 'load_prices.php'; + $user = \S::get_session( 'user' ); ?> \ No newline at end of file diff --git a/api.php b/api.php index 6fbca40..e96d9c8 100644 --- a/api.php +++ b/api.php @@ -29,4 +29,6 @@ $mdb = new medoo( [ 'username' => $database['user'], 'password' => $database['password'], 'charset' => 'utf8' - ] ); \ No newline at end of file + ] ); + +require_once 'load_prices.php'; \ No newline at end of file diff --git a/autoload/controls/class.Apanel.php b/autoload/controls/class.Apanel.php index ade063a..25dc50a 100644 --- a/autoload/controls/class.Apanel.php +++ b/autoload/controls/class.Apanel.php @@ -203,6 +203,48 @@ class Apanel exit; } + static public function tickets() + { + global $settings; + + return \Tpl::view('admin-panel/tickets', [ + 'tickets' => $settings['tickets'] + ]); + } + + static public function tickets_save() + { + global $mdb; + + if (empty($_POST['tickets']) || !is_array($_POST['tickets'])) { + echo json_encode(['status' => 'error', 'message' => 'Brak danych']); + exit; + } + + foreach ($_POST['tickets'] as $ticketId => $data) { + $ticketId = preg_replace('/[^a-z0-9\-]/', '', $ticketId); + + $price = trim($data['price'] ?? '') !== '' ? (float) $data['price'] : null; + $priceWkd = trim($data['price_weekend'] ?? '') !== '' ? (float) $data['price_weekend'] : null; + $day0 = trim($data['day0'] ?? '') !== '' ? (float) $data['day0'] : null; + $day12 = trim($data['day1_2'] ?? '') !== '' ? (float) $data['day1_2'] : null; + $day37 = trim($data['day3_7'] ?? '') !== '' ? (float) $data['day3_7'] : null; + + $stmt = $mdb->pdo->prepare('REPLACE INTO ticket_prices (ticket_id, price, price_weekend, dynamic_price_day0, dynamic_price_day1_2, dynamic_price_day3_7) VALUES (:tid, :price, :priceWkd, :day0, :day12, :day37)'); + $stmt->execute([ + ':tid' => $ticketId, + ':price' => $price, + ':priceWkd' => $priceWkd, + ':day0' => $day0, + ':day12' => $day12, + ':day37' => $day37, + ]); + } + + echo json_encode(['status' => 'ok']); + exit; + } + static public function use_ticket() { global $mdb; @@ -216,4 +258,22 @@ class Apanel exit; } + + static public function settings() + { + $enable_sell = \factory\Apanel::getSetting('enable_sell', '1'); + + return \Tpl::view('admin-panel/settings', [ + 'enable_sell' => $enable_sell + ]); + } + + static public function settings_save() + { + $enable_sell = isset($_POST['enable_sell']) ? '1' : '0'; + \factory\Apanel::saveSetting('enable_sell', $enable_sell); + + echo json_encode(['status' => 'ok']); + exit; + } } \ No newline at end of file diff --git a/autoload/controls/class.Tickets.php b/autoload/controls/class.Tickets.php index 443ad35..2800c25 100644 --- a/autoload/controls/class.Tickets.php +++ b/autoload/controls/class.Tickets.php @@ -8,7 +8,9 @@ class Tickets { global $settings; - if ( !$settings['tickets']['enable_sell'] ) + $enable_sell = \factory\Apanel::getSetting('enable_sell', '1'); + + if ( !$enable_sell || $enable_sell === '0' ) return \Tpl::view( 'tickets/disabled-sell' ); return \Tpl::view('tickets/main-view', [ @@ -51,8 +53,13 @@ class Tickets $addon = 0; } + $is_weekend = $selected_date && in_array((new \DateTime($selected_date))->format('N'), ['6', '7']); + $base_price = $is_weekend + ? ($settings['tickets'][$ticket_id]['price_weekend'] ?? $settings['tickets'][$ticket_id]['price']) + : $settings['tickets'][$ticket_id]['price']; + $basket[$ticket_id][$diffDays]['ticket_id'] = $ticket_id; - $basket[$ticket_id][$diffDays]['ticket_price'] = $settings['tickets'][$ticket_id]['price'] + $addon; + $basket[$ticket_id][$diffDays]['ticket_price'] = $base_price + $addon; $basket[$ticket_id][$diffDays]['product_id'] = $settings['tickets'][$ticket_id]['product_id']; $basket[$ticket_id][$diffDays]['quantity'] = 1; $basket[$ticket_id][$diffDays]['date'] = $selected_date; diff --git a/autoload/controls/index.php b/autoload/controls/index.php new file mode 100644 index 0000000..e69de29 diff --git a/autoload/factory/class.Apanel.php b/autoload/factory/class.Apanel.php index fff5fd9..647cd38 100644 --- a/autoload/factory/class.Apanel.php +++ b/autoload/factory/class.Apanel.php @@ -60,4 +60,30 @@ class Apanel { return $basket; } + + static public function getSetting($key, $default = null) + { + global $mdb; + + try { + $mdb->pdo->exec("CREATE TABLE IF NOT EXISTS site_settings ( + setting_key VARCHAR(100) PRIMARY KEY, + setting_value TEXT + )"); + } catch (\Exception $e) {} + + $stmt = $mdb->pdo->prepare("SELECT setting_value FROM site_settings WHERE setting_key = :key LIMIT 1"); + $stmt->execute([':key' => $key]); + $row = $stmt->fetch(\PDO::FETCH_ASSOC); + + return $row ? $row['setting_value'] : $default; + } + + static public function saveSetting($key, $value) + { + global $mdb; + + $stmt = $mdb->pdo->prepare("REPLACE INTO site_settings (setting_key, setting_value) VALUES (:key, :val)"); + $stmt->execute([':key' => $key, ':val' => $value]); + } } \ No newline at end of file diff --git a/autoload/factory/index.php b/autoload/factory/index.php new file mode 100644 index 0000000..e69de29 diff --git a/autoload/view/index.php b/autoload/view/index.php new file mode 100644 index 0000000..e69de29 diff --git a/config.php b/config.php index 3bed4c9..9c23dcd 100644 --- a/config.php +++ b/config.php @@ -9,52 +9,35 @@ $settings['email_port'] = 25; $settings['email_login'] = 'bilety@brzezovka.pl'; $settings['email_password'] = 'biletyonline'; -$settings['tickets']['enable_sell'] = true; - -// $settings['tickets']['price_0day'][indywidua] = 5; -// $settings['tickets']['price_0day'][rodzinn1] = 5; -// $settings['tickets']['price_0day'][rodzinny2] = 5; -//TODO: Bilet ulgowy - do 140 cm wzrostu -if ( !empty($_SESSION['lower_price_ticket']) ) - $settings['tickets']['plac-zabaw-ulgowy']['price'] = 1; -else - $settings['tickets']['plac-zabaw-ulgowy']['price'] = 45; - -$settings['tickets']['plac-zabaw-ulgowy']['price_promo'] = 36; -$settings['tickets']['plac-zabaw-ulgowy']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; +// Park rozrywki i dinozaurow $settings['tickets']['plac-zabaw-ulgowy']['name'] = 'Park rozrywki i dinozaurów - ulgowy'; $settings['tickets']['plac-zabaw-ulgowy']['color'] = "orange"; $settings['tickets']['plac-zabaw-ulgowy']['product_id'] = 1; +$settings['tickets']['plac-zabaw-normalny']['name'] = "Park rozrywki i dinozaurów - normalny"; +$settings['tickets']['plac-zabaw-normalny']['color'] = "orange"; +$settings['tickets']['plac-zabaw-normalny']['product_id'] = 3; -$settings['tickets']['park-wodny-ulgowy']['price']= 35; -$settings['tickets']['park-wodny-ulgowy']['price_promo']= 28; -$settings['tickets']['park-wodny-ulgowy']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['park-wodny-ulgowy']['name']= 'Park wodny - ulgowy'; -$settings['tickets']['park-wodny-ulgowy']['color']= 'blue'; +// Park wodny +$settings['tickets']['park-wodny-ulgowy']['name'] = 'Park wodny - ulgowy'; +$settings['tickets']['park-wodny-ulgowy']['color'] = 'blue'; $settings['tickets']['park-wodny-ulgowy']['product_id'] = 2; $settings['tickets']['park-wodny-ulgowy']['alert'] = "strefa wodna czynna od 28.06.2025"; +$settings['tickets']['park-wodny-normalny']['name'] = "Park wodny - normalny"; +$settings['tickets']['park-wodny-normalny']['color'] = "blue"; +$settings['tickets']['park-wodny-normalny']['product_id'] = 4; +$settings['tickets']['park-wodny-normalny']['alert'] = "strefa wodna czynna od 28.06.2025"; -$settings['tickets']['gift-plac-zabaw-ulgowy']['price'] = 45; -// $settings['tickets']['gift-plac-zabaw-ulgowy']['price_promo'] = 999; -$settings['tickets']['gift-plac-zabaw-ulgowy']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; +// Bilety prezentowe Park Rozrywki $settings['tickets']['gift-plac-zabaw-ulgowy']['name'] = 'Bilet prezentowy Park Rozrywki i Dinozaurów - ulgowy'; $settings['tickets']['gift-plac-zabaw-ulgowy']['color'] = "orange"; $settings['tickets']['gift-plac-zabaw-ulgowy']['product_id'] = 10; +$settings['tickets']['gift-plac-zabaw-normalny']['name'] = "Bilet prezentowy Park Rozrywki i Dinozaurów - normalny"; +$settings['tickets']['gift-plac-zabaw-normalny']['color'] = "orange"; +$settings['tickets']['gift-plac-zabaw-normalny']['product_id'] = 9; + $settings['bilety-ulgowe'] = array( 'plac-zabaw-ulgowy', 'gift-plac-zabaw-ulgowy', @@ -62,43 +45,6 @@ $settings['bilety-ulgowe'] = array( 'park-wodny-ulgowy' ); -//TODO: Bilet normalny - od 140 cm wzrostu -$settings['tickets']['plac-zabaw-normalny']['price'] = 52; -$settings['tickets']['plac-zabaw-normalny']['price_promo'] = 41.60; -$settings['tickets']['plac-zabaw-normalny']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['plac-zabaw-normalny']['name'] = "Park rozrywki i dinozaurów - normalny"; -$settings['tickets']['plac-zabaw-normalny']['color'] = "orange"; -$settings['tickets']['plac-zabaw-normalny']['product_id'] = 3; - - -$settings['tickets']['park-wodny-normalny']['price'] = 40; -$settings['tickets']['park-wodny-normalny']['price_promo'] = 32; -$settings['tickets']['park-wodny-normalny']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['park-wodny-normalny']['name'] = "Park wodny - normalny"; -$settings['tickets']['park-wodny-normalny']['color'] = "blue"; -$settings['tickets']['park-wodny-normalny']['product_id'] = 4; -$settings['tickets']['park-wodny-normalny']['alert'] = "strefa wodna czynna od 28.06.2025"; - - -$settings['tickets']['gift-plac-zabaw-normalny']['price'] = 52; -// $settings['tickets']['plac-zabaw-normalny']['price_promo'] = 999; -$settings['tickets']['gift-plac-zabaw-normalny']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['gift-plac-zabaw-normalny']['name'] = "Bilet prezentowy Park Rozrywki i Dinozaurów - normalny"; -$settings['tickets']['gift-plac-zabaw-normalny']['color'] = "orange"; -$settings['tickets']['gift-plac-zabaw-normalny']['product_id'] = 9; - $settings['bilety-normalne'] = array( 'plac-zabaw-normalny', // 'park-historyczny-normalny', @@ -106,53 +52,21 @@ $settings['bilety-normalne'] = array( 'park-wodny-normalny', ); - -//TODO: Bilety All Open - bilety do wszystkich parków -$settings['tickets']['bilet-all-open-ulgowy']['price']= 75; -$settings['tickets']['bilet-all-open-ulgowy']['price_promo']= 60; -$settings['tickets']['bilet-all-open-ulgowy']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['bilet-all-open-ulgowy']['name']= 'All Open - ulgowy'; -$settings['tickets']['bilet-all-open-ulgowy']['color']= 'green'; +// Bilety All Open +$settings['tickets']['bilet-all-open-ulgowy']['name'] = 'All Open - ulgowy'; +$settings['tickets']['bilet-all-open-ulgowy']['color'] = 'green'; $settings['tickets']['bilet-all-open-ulgowy']['product_id'] = 5; - -$settings['tickets']['bilet-all-open-normalny']['price']= 85; -$settings['tickets']['bilet-all-open-normalny']['price_promo']= 68.80; -$settings['tickets']['bilet-all-open-normalny']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['bilet-all-open-normalny']['name']= 'All Open - normalny'; -$settings['tickets']['bilet-all-open-normalny']['color']= 'green'; +$settings['tickets']['bilet-all-open-normalny']['name'] = 'All Open - normalny'; +$settings['tickets']['bilet-all-open-normalny']['color'] = 'green'; $settings['tickets']['bilet-all-open-normalny']['product_id'] = 6; - -$settings['tickets']['gift-bilet-all-open-ulgowy']['price']= 75; -// $settings['tickets']['gift-bilet-all-open-ulgowy']['price_promo']= 999; -$settings['tickets']['gift-bilet-all-open-ulgowy']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['gift-bilet-all-open-ulgowy']['name']= 'Bilet prezentowy All Open - ulgowy'; -$settings['tickets']['gift-bilet-all-open-ulgowy']['color']= 'green'; +$settings['tickets']['gift-bilet-all-open-ulgowy']['name'] = 'Bilet prezentowy All Open - ulgowy'; +$settings['tickets']['gift-bilet-all-open-ulgowy']['color'] = 'green'; $settings['tickets']['gift-bilet-all-open-ulgowy']['product_id'] = 5; - -$settings['tickets']['gift-bilet-all-open-normalny']['price']= 85; -// $settings['tickets']['gift-bilet-all-open-normalny']['price_promo']= 999; -$settings['tickets']['gift-bilet-all-open-normalny']['dynamic_prices'] = [ - 'day0' => 5, - 'day1_2' => 3, - 'day3_7' => 1, -]; -$settings['tickets']['gift-bilet-all-open-normalny']['name']= 'Bilet prezentowy All Open - normalny'; -$settings['tickets']['gift-bilet-all-open-normalny']['color']= 'green'; +$settings['tickets']['gift-bilet-all-open-normalny']['name'] = 'Bilet prezentowy All Open - normalny'; +$settings['tickets']['gift-bilet-all-open-normalny']['color'] = 'green'; $settings['tickets']['gift-bilet-all-open-normalny']['product_id'] = 11; $settings['bilety-all-open'] = array( @@ -160,31 +74,15 @@ $settings['bilety-all-open'] = array( 'bilet-all-open-normalny', 'gift-bilet-all-open-ulgowy', 'gift-bilet-all-open-normalny', - ); -//TODO: Bilety rodzinne - bilety dla rodzin -$settings['tickets']['bilet-rodzina-2+1']['price']= 220; -$settings['tickets']['bilet-rodzina-2+1']['price_promo']= 176; -$settings['tickets']['bilet-rodzina-2+1']['dynamic_prices'] = [ - 'day0' => 15, - 'day1_2' => 9, - 'day3_7' => 1, -]; -$settings['tickets']['bilet-rodzina-2+1']['name']= 'Rodzina 2+1'; -$settings['tickets']['bilet-rodzina-2+1']['color']= 'violet'; +// Bilety rodzinne +$settings['tickets']['bilet-rodzina-2+1']['name'] = 'Rodzina 2+1'; +$settings['tickets']['bilet-rodzina-2+1']['color'] = 'violet'; $settings['tickets']['bilet-rodzina-2+1']['product_id'] = 7; - -$settings['tickets']['bilet-rodzina-2+2']['price']= 280; -$settings['tickets']['bilet-rodzina-2+2']['price_promo']= 224; -$settings['tickets']['bilet-rodzina-2+2']['dynamic_prices'] = [ - 'day0' => 20, - 'day1_2' => 12, - 'day3_7' => 1, -]; -$settings['tickets']['bilet-rodzina-2+2']['name']= 'Rodzina 2+2'; -$settings['tickets']['bilet-rodzina-2+2']['color']= 'violet'; +$settings['tickets']['bilet-rodzina-2+2']['name'] = 'Rodzina 2+2'; +$settings['tickets']['bilet-rodzina-2+2']['color'] = 'violet'; $settings['tickets']['bilet-rodzina-2+2']['product_id'] = 8; $settings['bilety-rodzinne'] = array( @@ -192,31 +90,23 @@ $settings['bilety-rodzinne'] = array( 'bilet-rodzina-2+2' ); -$settings['tickets']['gift-price']['price']= 15; -$settings['tickets']['gift-price']['name']= 'Koszt przesyłki'; +$settings['tickets']['gift-price']['name'] = 'Koszt przesyłki'; $settings['tickets']['gift-price']['product_id'] = 999999; $settings['gift-price-delivery'] = array( 'gift-price' ); -//TODO: Karnet imienny - na cały sezon -$settings['tickets']['karnet-imienny-na-caly-sezon']['price']= 250; -// $settings['tickets']['karnet-imienny-na-caly-sezon']['price_promo']= 176; -$settings['tickets']['karnet-imienny-na-caly-sezon']['dynamic_prices'] = [ - 'day0' => 0, - 'day1_2' => 0, - 'day3_7' => 0, -]; -$settings['tickets']['karnet-imienny-na-caly-sezon']['name']= 'Karnet imienny na cały sezon'; -$settings['tickets']['karnet-imienny-na-caly-sezon']['color']= 'violet'; +// Karnet imienny +$settings['tickets']['karnet-imienny-na-caly-sezon']['name'] = 'Karnet imienny na cały sezon'; +$settings['tickets']['karnet-imienny-na-caly-sezon']['color'] = 'violet'; $settings['tickets']['karnet-imienny-na-caly-sezon']['product_id'] = 12; $settings['karnety'] = array( 'karnet-imienny-na-caly-sezon' ); -$settings['tickets']['ticket-protection']['price'] = 5; +// Ochrona kupujacego $settings['tickets']['ticket-protection']['name'] = 'Ochrona kupującego'; $settings['tickets']['ticket-protection']['product_id'] = 0; @@ -226,4 +116,4 @@ $settings['p24']['crc_key'] = '6f83d724c84e9bae'; $settings['p24']['sandbox_crc_key'] = 'a48ba2394a52373a'; $settings['p24']['sandbox'] = false; -$settings['admin-password'] = 'Admin2022!'; \ No newline at end of file +$settings['admin-password'] = 'Admin2022!'; diff --git a/dev/team/2026-02-22_22-51_php81-kompatybilnosc.md b/dev/team/2026-02-22_22-51_php81-kompatybilnosc.md deleted file mode 100644 index 939f086..0000000 --- a/dev/team/2026-02-22_22-51_php81-kompatybilnosc.md +++ /dev/null @@ -1,108 +0,0 @@ -# Migracja PHP 7.4 → 8.1 — poprawki kompatybilności - -**Data:** 2026-02-22 22:51 -**Orkiestrator:** Claude Code (Team) -**Zapytanie:** Otwarty projekt był napisany pod PHP 7.4, obecnie na serwerze ktoś zmienił wersję na 8.1 przez co strona wywala błąd 500. Przeanalizuj projekt i popraw metody które mogą być problematyczne. - ---- - -## Analiza -- **Typ:** debug + refactor -- **Złożoność:** 4/5 -- **Pliki kontekstowe:** 20 plików PHP przeanalizowanych - -## Routing -- **Agent główny:** Claude Code — debug wymaga bezpośredniego dostępu do plików i edycji -- **Wsparcie:** Gemini CLI (niedostępny — 429 rate limit) → fallback do Claude Code - -## Wynik — lista poprawek - -### KRYTYCZNE (powodują Fatal Error / 500) - -#### 1. Krótkie tagi ` $database['password'], 'charset' => 'utf8' ]); +require_once 'load_prices.php'; + $user = \S::get_session('user'); echo \view\Site::show(); \ No newline at end of file diff --git a/layout/.DS_Store b/layout/.DS_Store new file mode 100644 index 0000000..77e8dc8 Binary files /dev/null and b/layout/.DS_Store differ diff --git a/layout/.htaccess b/layout/.htaccess new file mode 100644 index 0000000..7189fc0 --- /dev/null +++ b/layout/.htaccess @@ -0,0 +1,9 @@ + + +RewriteEngine On +RewriteBase / +RewriteRule ^index\.php$ - [L] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /index.php [L] + \ No newline at end of file diff --git a/layout/images/.htaccess b/layout/images/.htaccess new file mode 100644 index 0000000..7189fc0 --- /dev/null +++ b/layout/images/.htaccess @@ -0,0 +1,9 @@ + + +RewriteEngine On +RewriteBase / +RewriteRule ^index\.php$ - [L] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /index.php [L] + \ No newline at end of file diff --git a/layout/images/logo copy.png b/layout/images/logo copy.png new file mode 100644 index 0000000..5295317 Binary files /dev/null and b/layout/images/logo copy.png differ diff --git a/layout/style-css/.htaccess b/layout/style-css/.htaccess new file mode 100644 index 0000000..7189fc0 --- /dev/null +++ b/layout/style-css/.htaccess @@ -0,0 +1,9 @@ + + +RewriteEngine On +RewriteBase / +RewriteRule ^index\.php$ - [L] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /index.php [L] + \ No newline at end of file diff --git a/layout/style-css/countdown/index.php b/layout/style-css/countdown/index.php new file mode 100644 index 0000000..e69de29 diff --git a/layout/style-css/style.css b/layout/style-css/style.css index 274ac27..c2e3b69 100644 --- a/layout/style-css/style.css +++ b/layout/style-css/style.css @@ -1 +1 @@ -@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,300;1,400;1,700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{color:#333;font-family:"Lato",sans-serif;background-color:#f3f0cf;display:flex;flex-direction:column;min-height:100vh}.btn-t1{border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(164.4360189573,229.7914691943,83.2085308057);text-decoration:none}.btn-t1:disabled{background-color:rgba(149,165,166,.5);cursor:not-allowed}.btn-t2{border:none;background-color:rgba(0,0,0,0);color:#fff;padding:10px 30px;border-radius:10px;font-weight:800;background-color:#333;text-decoration:none}.btn-t2:disabled{background-color:rgba(149,165,166,.5);cursor:not-allowed}.btn{padding:9px 30px}.flex-buttons-group{display:flex;justify-content:center;align-items:center;gap:5px}.c_green{color:#72b81b}.c_red{color:#e31e4b}.top{position:relative;background:#72b81b;color:#fff;height:70px}.top .a_menu .logo{position:absolute;margin:10px 0 !important}.top .a_menu #nav-menu.active{display:block;right:0;top:0;left:0;bottom:0;height:100vh;background:#fff;z-index:999}.top .a_menu #menu-hamburger{position:relative;height:70px;display:flex;align-items:center;justify-content:flex-end;z-index:9999}.top .a_menu #menu-hamburger i{font-size:28px}.top .a_menu #menu-hamburger.active #btn-hamburger{position:relative;height:30px;width:30px}.top .a_menu #menu-hamburger.active #btn-hamburger span{position:absolute;width:100%;height:2px;background:#333;border-radius:5px;top:50%;transform:translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(1){top:50%;transform:rotate(45deg) translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(2){transform:translateX(-100%) translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(3){top:50%;transform:rotate(-45deg) translateY(-50%)}.top .a_menu #menu-hamburger #btn-hamburger{position:relative;height:30px;width:30px;overflow:hidden}.top .a_menu #menu-hamburger #btn-hamburger span{position:absolute;width:100%;height:2px;background:#fff;border-radius:5px;top:50%;transform:translateY(-50%);transition:all 250ms ease}.top .a_menu #menu-hamburger #btn-hamburger span:nth-child(1){top:20%}.top .a_menu #menu-hamburger #btn-hamburger span:nth-child(3){top:80%}@media(min-width: 768px){.top .a_menu #menu-hamburger{display:none}}@media(max-width: 767px){.top .a_menu #nav-menu{position:fixed;display:none}.top .a_menu #nav-menu ul{width:100%;max-width:300px;padding:0 15px;margin:0 auto;flex-direction:column;justify-content:center}.top .a_menu #nav-menu ul li a{color:#333}}.top .logo{background:#72b81b;display:block;margin:0 auto 10px;width:150px;border-radius:0 0 50% 50%;padding:10px 25px 25px}.top .logo img{width:100%}@media(max-width: 600px){.top .logo{margin:10px 0}}.top nav{height:70px}.top nav ul{height:100%;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:25px;list-style:none;margin:0;padding:0}.top nav ul li a{color:#fff;font-size:18px;font-weight:600;text-decoration:none}.main{display:flex;flex-direction:column;flex-grow:1}.main .tickets_calendar{margin-top:100px;width:100%;margin-bottom:50px}.main .tickets{margin-bottom:50px;display:flex;flex-direction:column;width:100%;gap:80px}.main .tickets .ticket-container{display:flex;flex-direction:column;width:100%;gap:40px;align-items:center}.main .tickets .ticket-container .title-container{text-align:center;position:relative}.main .tickets .ticket-container .title-container::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100px;border-bottom:2px dotted #000}.main .tickets .ticket-container .title-container .title{font-weight:800;font-size:46px}@media(max-width: 991px){.main .tickets .ticket-container .title-container .title{font-size:36px;font-size:22px}}.main .tickets .ticket-container .title-container .description{font-size:28px}.main .tickets .ticket{display:flex;flex-direction:row;align-items:center}.main .tickets .ticket .ticket-description{display:flex;flex-direction:column;align-items:center;justify-content:center;width:500px;text-align:center;color:#fff;border-radius:10px;padding:20px 0}.main .tickets .ticket .ticket-description--yellow{background-color:#ffc937}.main .tickets .ticket .ticket-description--red{background-color:#e31e4b}.main .tickets .ticket .ticket-description--blue{background-color:#138fcb}.main .tickets .ticket .ticket-description--orange{background-color:#eb5024}.main .tickets .ticket .ticket-description--green{background-color:#72b81b}.main .tickets .ticket .ticket-description--violet{background-color:#8900be}.main .tickets .ticket .ticket-description .ticket__name{font-size:46px;font-weight:800}@media(max-width: 991px){.main .tickets .ticket .ticket-description .ticket__name{font-size:32px}}@media(max-width: 767px){.main .tickets .ticket .ticket-description .ticket__name{font-size:28px}}.main .tickets .ticket .ticket-description .description{font-size:13px;font-style:italic;line-height:.75;margin-bottom:0}.main .tickets .ticket .ticket-description .ticket-alert{font-size:20px;margin:20px 0 0 0;font-weight:800;text-transform:uppercase;text-decoration:underline}@media(max-width: 991px){.main .tickets .ticket .ticket-description .ticket-alert{font-size:16px}}@media(max-width: 991px){.main .tickets .ticket .ticket-description{padding-left:10px;padding-right:10px;width:400px}}@media(max-width: 575px){.main .tickets .ticket .ticket-description{width:100%}}.main .tickets .ticket .price{font-size:46px;margin-left:40px;font-weight:800;min-width:138px}@media(max-width: 991px){.main .tickets .ticket .price{font-size:36px;min-width:130px}}@media(max-width: 767px){.main .tickets .ticket .price{margin-left:0;min-width:unset;margin-bottom:0}}.main .tickets .ticket .ticket-quantity{margin-left:30px}@media(max-width: 767px){.main .tickets .ticket .ticket-quantity{margin-left:0}}.main .tickets .ticket .ticket-quantity .button{width:30px;height:30px;border-radius:50%;border:1px solid #333;color:#333;background-color:rgba(0,0,0,0);text-align:center}.main .tickets .ticket .ticket-quantity span{padding:0 5px}@media(max-width: 767px){.main .tickets .ticket{flex-direction:column;row-gap:15px}}@media(max-width: 575px){.main .tickets .ticket{width:100%}}.main .bottom-info__description{text-align:center;font-size:16px;line-height:29px;padding:20px 0;position:relative}.main .bottom-info__description::after,.main .bottom-info__description::before{position:absolute;content:"";border-bottom:2px dotted #333;left:50%;transform:translateX(-50%);width:10%}.main .bottom-info__description::after{top:0}.main .bottom-info__description::before{bottom:0}.main .bottom-info__description p:nth-child(2){margin-bottom:0}.main .bottom-info__background{margin-top:40px;background-image:url("https://brzezovka.pl/css/../img/bgcity.png");background-position:bottom center;background-repeat:repeat-x;width:100%;height:300px}.footer{background-color:#34327c;display:flex;flex-direction:column;width:100%;color:#fff}.footer a{text-decoration:none;color:#eb5024}.footer .footer__top{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr;justify-items:center;align-items:center}.footer .footer__top .location{padding:20px 0;text-align:center}.footer .footer__top .location .title{font-size:22px;font-weight:800}.footer .footer__top .logo{height:100px}.footer .footer__top .logo img{width:100%;height:100%}.footer .footer__bottom{width:100%}.footer .footer__bottom p{text-align:center;margin:0;padding:30px 0}@media(max-width: 767px){.footer .footer__top{padding-top:30px;grid-template-columns:1fr}.footer .footer__top .opening-hours{grid-row-start:2}.footer .footer__top .logo{grid-row-start:1}.footer .footer__top .location{grid-row-start:3}}.shopping-cart-container--active .shopping-cart{opacity:1;transform:translateX(0)}.shopping-cart{opacity:0;position:fixed;top:80px;right:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:10px;background-color:#72b81b;color:#fff;gap:20px;width:230px;padding:20px 0;transition:opacity .2s;transform:translateX(100%)}.shopping-cart.hide{display:none}.shopping-cart .basket{font-size:30px}.shopping-cart .quantity{font-size:18px;font-weight:800}.shopping-cart .tickets__list{width:100%;list-style:none;padding:0 5px;background-color:#fff;color:#333;border-right:1px solid #333;border-left:1px solid #333;max-height:calc(90svh - 400px);overflow:auto}.shopping-cart .tickets__list p{margin-bottom:0}.shopping-cart .tickets__list .ticket{border:1px solid #333;border-radius:5px;margin:5px 0;padding:5px 0 5px 5px;display:grid;grid-template-columns:1fr 20px;grid-template-rows:1fr 1fr;grid-template-areas:"name btn" "price btn";font-size:12px;align-items:center}.shopping-cart .tickets__list .ticket__description{grid-area:name;font-weight:800;font-size:13px}.shopping-cart .tickets__list .ticket__price{grid-area:price;font-weight:800;font-size:13px}.shopping-cart .tickets__list .ticket__price span{font-weight:400}.shopping-cart .tickets__list .ticket .ticket__button{grid-area:btn;border:none;background-color:rgba(0,0,0,0);color:#333;font-size:14px;font-weight:800}.shopping-cart .sum-section{text-align:center;font-weight:800;font-size:18px}.shopping-cart .sum-section p{margin-bottom:0}.shopping-cart .off-btn{border:none;background-color:rgba(0,0,0,0);color:#fff;font-size:18px;font-weight:800;position:absolute;top:5px;right:15px}.shopping-cart .buy-btn{border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(164.4360189573,229.7914691943,83.2085308057);text-decoration:none}.mobile-cart-btn{position:fixed;bottom:50px;right:0;opacity:1;z-index:10;border-top-left-radius:10px;border-bottom-left-radius:10px;background-color:#72b81b;padding:20px 15px 15px 15px;transition:all 250ms ease-in-out;cursor:pointer}.mobile-cart-btn.hide{transform:translateX(100%)}.mobile-cart-btn span{position:absolute;top:8px;right:5px;display:flex;align-items:center;justify-content:center;padding:5px;background:#fff;border-radius:100%;width:20px;height:20px;line-height:1;font-size:12px}.mobile-cart-btn .mobile-cart-btn--img img{width:100%;max-width:40px}#basket_page .basket_content{margin-top:100px;margin-bottom:100px}#basket_page .box_01{margin-bottom:24px}#basket_page .box_01 table{width:100%;background:#fff;border-collapse:collapse}#basket_page .box_01 table tr{text-align:center;border-top:1px solid rgba(0,0,0,.1)}#basket_page .box_01 table tr th{padding:8px}#basket_page .box_01 table tr th h3{font-size:1.25rem;font-weight:800}@media(max-width: 991px){#basket_page .box_01 table tr th h3{font-size:.85rem}}#basket_page .box_01 table tr td{padding:8px}@media(max-width: 991px){#basket_page .box_01 table tr td{font-size:14px}}#basket_page .box_01 table tr td .btn_t1{width:30px;height:30px;border-radius:50%;border:none;transition:150ms ease-in-out;background:#f0f0f0;display:inline-block;color:#000}#basket_page .box_01 table tr td .btn_t1 i{color:#000}#basket_page .box_01 table tr td .btn_t1.add:hover{color:#72b81b;border-color:#72b81b}#basket_page .box_01 table tr td .btn_t1.subtract:hover{color:#eb5024;border-color:#eb5024}#basket_page .box_01 table tr td .btn_t1.delete{border:none}#basket_page .box_01 table tr td .btn_t1.delete:hover{color:#e31e4b}@media(max-width: 767px){#basket_page .box_01 table{background:rgba(0,0,0,0)}#basket_page .box_01 table thead,#basket_page .box_01 table tbody,#basket_page .box_01 table th,#basket_page .box_01 table td,#basket_page .box_01 table tr{display:block}#basket_page .box_01 table tbody>tr:first-child{display:none}#basket_page .box_01 table thead{display:none}#basket_page .box_01 table tr{margin-bottom:15px;border:1px solid #ddd;padding:10px;border-radius:10px;background:#fff}#basket_page .box_01 table td{position:relative;padding-left:50%;text-align:right;border:none;min-height:38px;padding-left:140px !important}#basket_page .box_01 table td:not(:last-child){border-bottom:1px solid #eee}#basket_page .box_01 table td::before{content:attr(data-label);position:absolute;left:10px;top:50%;font-weight:bold;color:#555;transform:translateY(-50%)}}@media(max-width: 767px)and (max-width: 575px){#basket_page .box_01 table td::before{font-size:12px}}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper{background:#fff;padding:30px}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper h2{font-size:1.5rem;margin-bottom:20px}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-vat-box{display:none}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .col-form-label{font-weight:600}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .col-form-label .form-vat-option{opacity:0;transition:400ms ease}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .form-check a{color:#72b81b;text-decoration:none}#basket_page .box_02 .basket_summary .basket_summary__wrapper{text-align:center;background:#fff;padding:30px;height:100%}#basket_page .box_02 .basket_summary .basket_summary__wrapper h2{font-size:1.5rem}#basket_page .box_02 .basket_summary .basket_summary__wrapper p{font-size:1.5rem;font-weight:800}#basket_page .box_02 .basket_summary .basket_summary__wrapper .buy-btn{display:inline-block;border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(211.327014218,242.8436018957,172.1563981043);text-decoration:none}.spinner_container{display:flex;align-items:center;justify-content:center;padding:150px 0}.lds-roller{display:inline-block;position:relative;width:80px;height:80px}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;transform-origin:40px 40px}.lds-roller div:after{content:" ";display:block;position:absolute;width:7px;height:7px;border-radius:50%;background:#72b81b;margin:-4px 0 0 -4px}.lds-roller div:nth-child(1){animation-delay:-0.036s}.lds-roller div:nth-child(1):after{top:63px;left:63px}.lds-roller div:nth-child(2){animation-delay:-0.072s}.lds-roller div:nth-child(2):after{top:68px;left:56px}.lds-roller div:nth-child(3){animation-delay:-0.108s}.lds-roller div:nth-child(3):after{top:71px;left:48px}.lds-roller div:nth-child(4){animation-delay:-0.144s}.lds-roller div:nth-child(4):after{top:72px;left:40px}.lds-roller div:nth-child(5){animation-delay:-0.18s}.lds-roller div:nth-child(5):after{top:71px;left:32px}.lds-roller div:nth-child(6){animation-delay:-0.216s}.lds-roller div:nth-child(6):after{top:68px;left:24px}.lds-roller div:nth-child(7){animation-delay:-0.252s}.lds-roller div:nth-child(7):after{top:63px;left:17px}.lds-roller div:nth-child(8){animation-delay:-0.288s}.lds-roller div:nth-child(8):after{top:56px;left:12px}@keyframes lds-roller{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#scanner{width:100%;max-width:500px;margin-left:auto;margin-right:auto}@media(min-width: 768px){#scanner{margin-top:50px}}.alogin-page .panel-login{padding-top:100px;padding-bottom:100px;display:flex;align-items:center;justify-content:center}.alogin-page .panel-login form{display:flex;flex-direction:column;gap:10px}#tickets-orders{padding-top:100px;padding-bottom:100px}#tickets-orders h1{margin-bottom:20px}#tickets-orders table{margin-bottom:10px;background:#fff;border-bottom:none}#tickets-orders table thead tr{border-bottom:1px solid rgba(0,0,0,.1)}#tickets-orders table thead tr th{padding:15px 10px;font-size:16px;font-weight:600;border-bottom:none}#tickets-orders table tbody tr td{font-size:14px}#tickets-orders table tbody tr td.edit-btn a{margin-left:20px}#tickets-orders table tbody tr td.edit-btn i{color:#333;font-size:20px;transition:color 200ms ease}#tickets-orders table tbody tr td.edit-btn i:hover{color:#72b81b}#tickets-orders table tr{border-bottom:1px solid rgba(0,0,0,.1)}#tickets-orders table tr td{padding:15px 10px;border-bottom:none}#tickets-orders #myTable_wrapper .row:nth-child(1){margin-bottom:10px}#tickets-orders #myTable_wrapper #myTable_length label{display:flex;flex-direction:row;align-items:center;gap:15px}#tickets-orders #myTable_wrapper #myTable_length label select{min-width:70px;background-color:#fff}#tickets-orders #myTable_wrapper #myTable_filter label{display:flex;flex-direction:row;align-items:center;gap:15px}#tickets-orders #myTable_wrapper #myTable_filter label input{margin-left:0;background:#fff}#tickets-orders #myTable_wrapper #myTable_paginate .pagination{display:flex;align-items:center;-moz-column-gap:5px;column-gap:5px;margin-bottom:0}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button{padding:0;border:none}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button.active a{color:#fff;background:#72b81b}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button:hover{border:none;background:none}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button.disabled>.page-link{color:#95a5a6}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button .page-link{color:#000}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button a{border:none}#order-data{padding:100px 0}#order-data .order-data .mini-nav-menu{margin-bottom:30px}#order-data .order-data .mini-nav-menu a:hover{color:#333}#order-data .order-data .box_01{margin-bottom:24px}#order-data .order-data .box_01 table{width:100%;background:#fff}#order-data .order-data .box_01 table tr{text-align:center;border-top:1px solid rgba(0,0,0,.1)}#order-data .order-data .box_01 table tr th{padding:8px}#order-data .order-data .box_01 table tr th h3{font-size:1.25rem;font-weight:800}#order-data .order-data .box_01 table tr td{padding:8px}#order-data .order-data .box_01 table tr td .btn_t1{width:30px;height:30px;border-radius:50%;border:none;transition:150ms ease-in-out}#order-data .order-data .box_01 table tr td .btn_t1.add:hover{color:#72b81b;border-color:#72b81b}#order-data .order-data .box_01 table tr td .btn_t1.subtract:hover{color:#eb5024;border-color:#eb5024}#order-data .order-data .box_01 table tr td .btn_t1.delete{border:none}#order-data .order-data .box_01 table tr td .btn_t1.delete:hover{color:#e31e4b}#order-data .order-data .box_01 .btn-save-new-list{display:block;margin:30px auto 0}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper{background:#fff;padding:30px}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper h2{font-size:1.5rem;margin-bottom:20px}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper .form-group .col-form-label{font-weight:600}#order-data .order-data .box_02 .order-summary .order-summary__wrapper{text-align:center;background:#fff;padding:30px;height:100%}#order-data .order-data .box_02 .order-summary .order-summary__wrapper h2{font-size:1.5rem;margin-bottom:20px}#order-data .order-data .box_02 .order-summary .order-summary__wrapper p{font-size:1.5rem;font-weight:800}#regulamin_box{margin-top:80px;margin-bottom:50px}#regulamin_box .regulamin_box__wrapper h5{font-size:26px;margin:0;color:#333;text-align:center;margin-bottom:20px}#regulamin_box .regulamin_box__wrapper h6{font-size:22px;margin-bottom:10px;text-transform:uppercase;font-family:"Lato",sans-serif;font-weight:800;letter-spacing:.8px;color:#333;text-align:center}#regulamin_box .regulamin_box__wrapper .regulamin__box{margin-bottom:50px}#regulamin_box .regulamin_box__wrapper .regulamin__box h5{text-align:center}.sale-box h2{text-align:center;font-size:48px;line-height:43px}.sale-box h2 span{color:#74aa32;font-weight:700}#dateForm{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}#dateForm ._title{width:100%;font-weight:600;font-size:30px;text-align:center}.basket_protection{display:grid;grid-template-columns:1fr;justify-content:flex-end;margin:10px auto;text-align:right}.basket_protection p{margin-bottom:0;font-style:italic}/*# sourceMappingURL=style.css.map */ \ No newline at end of file +@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,300;1,400;1,700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{color:#333;font-family:"Lato",sans-serif;background-color:#f3f0cf;display:flex;flex-direction:column;min-height:100vh}.btn-t1{border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(164.4360189573,229.7914691943,83.2085308057);text-decoration:none}.btn-t1:disabled{background-color:rgba(149,165,166,.5);cursor:not-allowed}.btn-t2{border:none;background-color:rgba(0,0,0,0);color:#fff;padding:10px 30px;border-radius:10px;font-weight:800;background-color:#333;text-decoration:none}.btn-t2:disabled{background-color:rgba(149,165,166,.5);cursor:not-allowed}.btn{padding:9px 30px}.flex-buttons-group{display:flex;justify-content:center;align-items:center;gap:5px}.c_green{color:#72b81b}.c_red{color:#e31e4b}.top{position:relative;background:#72b81b;color:#fff;height:70px}.top .a_menu .logo{position:absolute;margin:10px 0 !important}.top .a_menu #nav-menu.active{display:block;right:0;top:0;left:0;bottom:0;height:100vh;background:#fff;z-index:999}.top .a_menu #menu-hamburger{position:relative;height:70px;display:flex;align-items:center;justify-content:flex-end;z-index:9999}.top .a_menu #menu-hamburger i{font-size:28px}.top .a_menu #menu-hamburger.active #btn-hamburger{position:relative;height:30px;width:30px}.top .a_menu #menu-hamburger.active #btn-hamburger span{position:absolute;width:100%;height:2px;background:#333;border-radius:5px;top:50%;transform:translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(1){top:50%;transform:rotate(45deg) translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(2){transform:translateX(-100%) translateY(-50%)}.top .a_menu #menu-hamburger.active #btn-hamburger span:nth-child(3){top:50%;transform:rotate(-45deg) translateY(-50%)}.top .a_menu #menu-hamburger #btn-hamburger{position:relative;height:30px;width:30px;overflow:hidden}.top .a_menu #menu-hamburger #btn-hamburger span{position:absolute;width:100%;height:2px;background:#fff;border-radius:5px;top:50%;transform:translateY(-50%);transition:all 250ms ease}.top .a_menu #menu-hamburger #btn-hamburger span:nth-child(1){top:20%}.top .a_menu #menu-hamburger #btn-hamburger span:nth-child(3){top:80%}@media(min-width: 768px){.top .a_menu #menu-hamburger{display:none}}@media(max-width: 767px){.top .a_menu #nav-menu{position:fixed;display:none}.top .a_menu #nav-menu ul{width:100%;max-width:300px;padding:0 15px;margin:0 auto;flex-direction:column;justify-content:center}.top .a_menu #nav-menu ul li a{color:#333}}.top .logo{background:#72b81b;display:block;margin:0 auto 10px;width:150px;border-radius:0 0 50% 50%;padding:10px 25px 25px}.top .logo img{width:100%}@media(max-width: 600px){.top .logo{margin:10px 0}}.top nav{height:70px}.top nav ul{height:100%;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:25px;list-style:none;margin:0;padding:0}.top nav ul li a{color:#fff;font-size:18px;font-weight:600;text-decoration:none}.main{display:flex;flex-direction:column;flex-grow:1}.main .tickets_calendar{margin-top:100px;width:100%;margin-bottom:50px}.main .tickets{margin-bottom:50px;display:flex;flex-direction:column;width:100%;gap:80px}.main .tickets .ticket-container{display:flex;flex-direction:column;width:100%;gap:40px;align-items:center}.main .tickets .ticket-container .title-container{text-align:center;position:relative}.main .tickets .ticket-container .title-container::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100px;border-bottom:2px dotted #000}.main .tickets .ticket-container .title-container .title{font-weight:800;font-size:46px}@media(max-width: 991px){.main .tickets .ticket-container .title-container .title{font-size:36px;font-size:22px}}.main .tickets .ticket-container .title-container .description{font-size:28px}.main .tickets .ticket{display:flex;flex-direction:row;align-items:center}.main .tickets .ticket .ticket-description{display:flex;flex-direction:column;align-items:center;justify-content:center;width:500px;text-align:center;color:#fff;border-radius:10px;padding:20px 0}.main .tickets .ticket .ticket-description--yellow{background-color:#ffc937}.main .tickets .ticket .ticket-description--red{background-color:#e31e4b}.main .tickets .ticket .ticket-description--blue{background-color:#138fcb}.main .tickets .ticket .ticket-description--orange{background-color:#eb5024}.main .tickets .ticket .ticket-description--green{background-color:#72b81b}.main .tickets .ticket .ticket-description--violet{background-color:#8900be}.main .tickets .ticket .ticket-description .ticket__name{font-size:46px;font-weight:800}@media(max-width: 991px){.main .tickets .ticket .ticket-description .ticket__name{font-size:32px}}@media(max-width: 767px){.main .tickets .ticket .ticket-description .ticket__name{font-size:28px}}.main .tickets .ticket .ticket-description .description{font-size:13px;font-style:italic;line-height:.75;margin-bottom:0}.main .tickets .ticket .ticket-description .ticket-alert{font-size:20px;margin:20px 0 0 0;font-weight:800;text-transform:uppercase;text-decoration:underline}@media(max-width: 991px){.main .tickets .ticket .ticket-description .ticket-alert{font-size:16px}}@media(max-width: 991px){.main .tickets .ticket .ticket-description{padding-left:10px;padding-right:10px;width:400px}}@media(max-width: 575px){.main .tickets .ticket .ticket-description{width:100%}}.main .tickets .ticket .price{font-size:46px;margin-left:40px;font-weight:800;min-width:138px}@media(max-width: 991px){.main .tickets .ticket .price{font-size:36px;min-width:130px}}@media(max-width: 767px){.main .tickets .ticket .price{margin-left:0;min-width:unset;margin-bottom:0}}.main .tickets .ticket .ticket-quantity{margin-left:auto}@media(max-width: 767px){.main .tickets .ticket .ticket-quantity{margin-left:0}}.main .tickets .ticket .ticket-quantity .button{padding:10px 20px;border-radius:8px;border:none;background-color:#72b81b;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s ease;white-space:nowrap}.main .tickets .ticket .ticket-quantity .button:hover{background-color:rgb(91.9563981043,148.4208530806,21.7791469194)}.main .tickets .ticket .ticket-quantity .button.added{background-color:rgb(80.9345971564,130.6312796209,19.1687203791);transform:scale(1.05)}@media(max-width: 767px){.main .tickets .ticket{flex-direction:column;row-gap:15px}}@media(max-width: 575px){.main .tickets .ticket{width:100%}}.main .bottom-info__description{text-align:center;font-size:16px;line-height:29px;padding:20px 0;position:relative}.main .bottom-info__description::after,.main .bottom-info__description::before{position:absolute;content:"";border-bottom:2px dotted #333;left:50%;transform:translateX(-50%);width:10%}.main .bottom-info__description::after{top:0}.main .bottom-info__description::before{bottom:0}.main .bottom-info__description p:nth-child(2){margin-bottom:0}.main .bottom-info__background{margin-top:40px;background-image:url("https://brzezovka.pl/css/../img/bgcity.png");background-position:bottom center;background-repeat:repeat-x;width:100%;height:300px}.footer{background-color:#34327c;display:flex;flex-direction:column;width:100%;color:#fff}.footer a{text-decoration:none;color:#eb5024}.footer .footer__top{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr;justify-items:center;align-items:center}.footer .footer__top .location{padding:20px 0;text-align:center}.footer .footer__top .location .title{font-size:22px;font-weight:800}.footer .footer__top .logo{height:100px}.footer .footer__top .logo img{width:100%;height:100%}.footer .footer__bottom{width:100%}.footer .footer__bottom p{text-align:center;margin:0;padding:30px 0}@media(max-width: 767px){.footer .footer__top{padding-top:30px;grid-template-columns:1fr}.footer .footer__top .opening-hours{grid-row-start:2}.footer .footer__top .logo{grid-row-start:1}.footer .footer__top .location{grid-row-start:3}}.shopping-cart-container--active .shopping-cart{opacity:1;transform:translateX(0)}.shopping-cart{opacity:0;position:fixed;top:80px;right:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:10px;background-color:#72b81b;color:#fff;gap:20px;width:230px;padding:20px 0;transition:opacity .2s;transform:translateX(100%)}.shopping-cart.hide{display:none}.shopping-cart .basket{font-size:30px}.shopping-cart .quantity{font-size:18px;font-weight:800}.shopping-cart .tickets__list{width:100%;list-style:none;padding:0 5px;background-color:#fff;color:#333;border-right:1px solid #333;border-left:1px solid #333;max-height:calc(90svh - 400px);overflow:auto}.shopping-cart .tickets__list p{margin-bottom:0}.shopping-cart .tickets__list .ticket{border:1px solid #333;border-radius:5px;margin:5px 0;padding:5px 0 5px 5px;display:grid;grid-template-columns:1fr 20px;grid-template-rows:1fr 1fr;grid-template-areas:"name btn" "price btn";font-size:12px;align-items:center}.shopping-cart .tickets__list .ticket__description{grid-area:name;font-weight:800;font-size:13px}.shopping-cart .tickets__list .ticket__price{grid-area:price;font-weight:800;font-size:13px}.shopping-cart .tickets__list .ticket__price span{font-weight:400}.shopping-cart .tickets__list .ticket .ticket__button{grid-area:btn;border:none;background-color:rgba(0,0,0,0);color:#333;font-size:14px;font-weight:800}.shopping-cart .sum-section{text-align:center}.shopping-cart .sum-section p{margin-bottom:0}.shopping-cart .sum-section{font-weight:800;font-size:18px}.shopping-cart .off-btn{border:none;background-color:rgba(0,0,0,0);color:#fff;font-size:18px;font-weight:800;position:absolute;top:5px;right:15px}.shopping-cart .buy-btn{border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(164.4360189573,229.7914691943,83.2085308057);text-decoration:none}.mobile-cart-btn.cart-bounce{animation:cartBounce .5s ease}.mobile-cart-btn{position:fixed;bottom:50px;right:0;opacity:1;z-index:10;border-top-left-radius:10px;border-bottom-left-radius:10px;background-color:#72b81b;padding:20px 15px 15px 15px;transition:all 250ms ease-in-out;cursor:pointer}.mobile-cart-btn.hide{transform:translateX(100%)}.mobile-cart-btn span{position:absolute;top:8px;right:5px;display:flex;align-items:center;justify-content:center;padding:5px;background:#fff;border-radius:100%;width:20px;height:20px;line-height:1;font-size:12px}.mobile-cart-btn .mobile-cart-btn--img img{width:100%;max-width:40px}#basket_page .basket_content{margin-top:100px;margin-bottom:100px}#basket_page .box_01{margin-bottom:24px}#basket_page .box_01 table{width:100%;background:#fff;border-collapse:collapse}#basket_page .box_01 table tr{text-align:center;border-top:1px solid rgba(0,0,0,.1)}#basket_page .box_01 table tr th{padding:8px}#basket_page .box_01 table tr th h3{font-size:1.25rem;font-weight:800}@media(max-width: 991px){#basket_page .box_01 table tr th h3{font-size:.85rem}}#basket_page .box_01 table tr td{padding:8px}@media(max-width: 991px){#basket_page .box_01 table tr td{font-size:14px}}#basket_page .box_01 table tr td .ticket-date{color:#888;font-size:12px}#basket_page .box_01 table tr td .btn_t1{width:30px;height:30px;border-radius:50%;border:none;transition:150ms ease-in-out;background:#f0f0f0;display:inline-block;color:#000}#basket_page .box_01 table tr td .btn_t1 i{color:#000}#basket_page .box_01 table tr td .btn_t1.add:hover{color:#72b81b;border-color:#72b81b}#basket_page .box_01 table tr td .btn_t1.subtract:hover{color:#eb5024;border-color:#eb5024}#basket_page .box_01 table tr td .btn_t1.delete{border:none}#basket_page .box_01 table tr td .btn_t1.delete:hover{color:#e31e4b}@media(max-width: 767px){#basket_page .box_01 table{background:rgba(0,0,0,0)}#basket_page .box_01 table thead,#basket_page .box_01 table tbody,#basket_page .box_01 table th,#basket_page .box_01 table td,#basket_page .box_01 table tr{display:block}#basket_page .box_01 table tbody>tr:first-child{display:none}#basket_page .box_01 table thead{display:none}#basket_page .box_01 table tr{margin-bottom:15px;border:1px solid #ddd;padding:10px;border-radius:10px;background:#fff}#basket_page .box_01 table td{position:relative;padding-left:50%;text-align:right;border:none;min-height:38px;padding-left:140px !important}#basket_page .box_01 table td:not(:last-child){border-bottom:1px solid #eee}#basket_page .box_01 table td::before{content:attr(data-label);position:absolute;left:10px;top:50%;font-weight:bold;color:#555;transform:translateY(-50%)}}@media(max-width: 767px)and (max-width: 575px){#basket_page .box_01 table td::before{font-size:12px}}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper{background:#fff;padding:30px}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper h2{font-size:1.5rem;margin-bottom:20px}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-vat-box{display:none}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .col-form-label{font-weight:600}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .col-form-label .form-vat-option{opacity:0;transition:400ms ease}#basket_page .box_02 .basket_user_data .basket_user_data__wrapper .form-group .form-check a{color:#72b81b;text-decoration:none}#basket_page .box_02 .basket_summary .basket_summary__wrapper{text-align:center;background:#fff;padding:30px;height:100%}#basket_page .box_02 .basket_summary .basket_summary__wrapper h2{font-size:1.5rem}#basket_page .box_02 .basket_summary .basket_summary__wrapper p{font-size:1.5rem;font-weight:800}#basket_page .box_02 .basket_summary .basket_summary__wrapper .buy-btn{display:inline-block;border:none;background-color:rgba(0,0,0,0);color:#333;padding:10px 30px;border-radius:10px;font-weight:800;background-color:rgb(211.327014218,242.8436018957,172.1563981043);text-decoration:none}.spinner_container{display:flex;align-items:center;justify-content:center;padding:150px 0}.lds-roller{display:inline-block;position:relative;width:80px;height:80px}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;transform-origin:40px 40px}.lds-roller div:after{content:" ";display:block;position:absolute;width:7px;height:7px;border-radius:50%;background:#72b81b;margin:-4px 0 0 -4px}.lds-roller div:nth-child(1){animation-delay:-0.036s}.lds-roller div:nth-child(1):after{top:63px;left:63px}.lds-roller div:nth-child(2){animation-delay:-0.072s}.lds-roller div:nth-child(2):after{top:68px;left:56px}.lds-roller div:nth-child(3){animation-delay:-0.108s}.lds-roller div:nth-child(3):after{top:71px;left:48px}.lds-roller div:nth-child(4){animation-delay:-0.144s}.lds-roller div:nth-child(4):after{top:72px;left:40px}.lds-roller div:nth-child(5){animation-delay:-0.18s}.lds-roller div:nth-child(5):after{top:71px;left:32px}.lds-roller div:nth-child(6){animation-delay:-0.216s}.lds-roller div:nth-child(6):after{top:68px;left:24px}.lds-roller div:nth-child(7){animation-delay:-0.252s}.lds-roller div:nth-child(7):after{top:63px;left:17px}.lds-roller div:nth-child(8){animation-delay:-0.288s}.lds-roller div:nth-child(8):after{top:56px;left:12px}@keyframes lds-roller{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#scanner{width:100%;max-width:500px;margin-left:auto;margin-right:auto}@media(min-width: 768px){#scanner{margin-top:50px}}.alogin-page .panel-login{padding-top:100px;padding-bottom:100px;display:flex;align-items:center;justify-content:center}.alogin-page .panel-login form{display:flex;flex-direction:column;gap:10px}#tickets-orders{padding-top:100px;padding-bottom:100px}#tickets-orders h1{margin-bottom:20px}#tickets-orders table{margin-bottom:10px;background:#fff;border-bottom:none}#tickets-orders table thead tr{border-bottom:1px solid rgba(0,0,0,.1)}#tickets-orders table thead tr th{padding:15px 10px;font-size:16px;font-weight:600;border-bottom:none}#tickets-orders table tbody tr td{font-size:14px}#tickets-orders table tbody tr td.edit-btn a{margin-left:20px}#tickets-orders table tbody tr td.edit-btn i{color:#333;font-size:20px;transition:color 200ms ease}#tickets-orders table tbody tr td.edit-btn i:hover{color:#72b81b}#tickets-orders table tr{border-bottom:1px solid rgba(0,0,0,.1)}#tickets-orders table tr td{padding:15px 10px;border-bottom:none}#tickets-orders #myTable_wrapper .row:nth-child(1){margin-bottom:10px}#tickets-orders #myTable_wrapper #myTable_length label{display:flex;flex-direction:row;align-items:center;gap:15px}#tickets-orders #myTable_wrapper #myTable_length label select{min-width:70px;background-color:#fff}#tickets-orders #myTable_wrapper #myTable_filter label{display:flex;flex-direction:row;align-items:center;gap:15px}#tickets-orders #myTable_wrapper #myTable_filter label input{margin-left:0;background:#fff}#tickets-orders #myTable_wrapper #myTable_paginate .pagination{display:flex;align-items:center;-moz-column-gap:5px;column-gap:5px;margin-bottom:0}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button{padding:0;border:none}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button.active a{color:#fff;background:#72b81b}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button:hover{border:none;background:none}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button.disabled>.page-link{color:#95a5a6}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button .page-link{color:#000}#tickets-orders #myTable_wrapper #myTable_paginate .pagination .paginate_button a{border:none}#order-data{padding:100px 0}#order-data .order-data .mini-nav-menu{margin-bottom:30px}#order-data .order-data .mini-nav-menu a:hover{color:#333}#order-data .order-data .box_01{margin-bottom:24px}#order-data .order-data .box_01 table{width:100%;background:#fff}#order-data .order-data .box_01 table tr{text-align:center;border-top:1px solid rgba(0,0,0,.1)}#order-data .order-data .box_01 table tr th{padding:8px}#order-data .order-data .box_01 table tr th h3{font-size:1.25rem;font-weight:800}#order-data .order-data .box_01 table tr td{padding:8px}#order-data .order-data .box_01 table tr td .btn_t1{width:30px;height:30px;border-radius:50%;border:none;transition:150ms ease-in-out}#order-data .order-data .box_01 table tr td .btn_t1.add:hover{color:#72b81b;border-color:#72b81b}#order-data .order-data .box_01 table tr td .btn_t1.subtract:hover{color:#eb5024;border-color:#eb5024}#order-data .order-data .box_01 table tr td .btn_t1.delete{border:none}#order-data .order-data .box_01 table tr td .btn_t1.delete:hover{color:#e31e4b}#order-data .order-data .box_01 .btn-save-new-list{display:block;margin:30px auto 0}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper{background:#fff;padding:30px}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper h2{font-size:1.5rem;margin-bottom:20px}#order-data .order-data .box_02 .order-detale-info .order-detale-info__wrapper .form-group .col-form-label{font-weight:600}#order-data .order-data .box_02 .order-summary .order-summary__wrapper{text-align:center;background:#fff;padding:30px;height:100%}#order-data .order-data .box_02 .order-summary .order-summary__wrapper h2{font-size:1.5rem;margin-bottom:20px}#order-data .order-data .box_02 .order-summary .order-summary__wrapper p{font-size:1.5rem;font-weight:800}#regulamin_box{margin-top:80px;margin-bottom:50px}#regulamin_box .regulamin_box__wrapper h5{font-size:26px;margin:0;color:#333;text-align:center;margin-bottom:20px}#regulamin_box .regulamin_box__wrapper h6{font-size:22px;margin-bottom:10px;text-transform:uppercase;font-family:"Lato",sans-serif;font-weight:800;letter-spacing:.8px;color:#333;text-align:center}#regulamin_box .regulamin_box__wrapper .regulamin__box{margin-bottom:50px}#regulamin_box .regulamin_box__wrapper .regulamin__box h5{text-align:center}.sale-box h2{text-align:center;font-size:48px;line-height:43px}.sale-box h2 span{color:#74aa32;font-weight:700}#dateForm{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}#dateForm ._title{width:100%;font-weight:600;font-size:30px;text-align:center}.basket_protection{display:grid;grid-template-columns:1fr;justify-content:flex-end;margin:10px auto;text-align:right}.basket_protection p{margin-bottom:0;font-style:italic}@keyframes cartBounce{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px) scale(1.1)}50%{transform:translateX(4px) scale(1.05)}75%{transform:translateX(-2px)}}/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/layout/style-css/style.css.map b/layout/style-css/style.css.map index 19914bc..fbc3a9d 100644 --- a/layout/style-css/style.css.map +++ b/layout/style-css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["../style-scss/style.scss","../style-scss/_mixins.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file +{"version":3,"sources":["..\\style-scss\\style.scss","..\\style-scss\\_mixins.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["// out: ../style-css/style.css, compress: true, sourceMap: true\r\n//* Fonts\r\n@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,300;1,400;1,700&display=swap');\r\n@import 'mixins';\r\n\r\n//* Colors\r\n$cWhite: #ffffff;\r\n$cGreen: #72b81b;\r\n$cYellow: #ffc937;\r\n$cBlue: #138fcb;\r\n$cRed: #e31e4b;\r\n$cOrange: #eb5024;\r\n$cViolet: #8900be;\r\n$base-font-color: #333;\r\n$backgroundColor: #f3f0cf;\r\n$cFooter: #34327c;\r\n$cGray: #95a5a6;\r\n\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n color: $base-font-color;\r\n font-family: 'Lato', sans-serif;\r\n background-color: $backgroundColor;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 100vh;\r\n}\r\n\r\n//* mixins\r\n@mixin btn($cTxt, $hTxt, $cBG, $hBG) {\r\n border: none;\r\n background-color: transparent;\r\n color: $cTxt;\r\n padding: 10px 30px;\r\n border-radius: 10px;\r\n font-weight: 800;\r\n background-color: lighten($color: $cBG, $amount: 20%);\r\n text-decoration: none;\r\n\r\n &:disabled {\r\n background-color: rgba($cGray, 0.5);\r\n cursor: not-allowed;\r\n }\r\n}\r\n\r\n//* Buttons\r\n.btn-t1 {\r\n @include btn($base-font-color, '', $cGreen, '');\r\n}\r\n\r\n.btn-t2 {\r\n @include btn($cWhite, '', #000, '');\r\n}\r\n\r\n.btn {\r\n padding: 9px 30px;\r\n}\r\n\r\n.flex-buttons-group {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 5px;\r\n}\r\n\r\n//* text colors\r\n.c_green {\r\n color: $cGreen;\r\n}\r\n\r\n.c_red {\r\n color: $cRed;\r\n}\r\n\r\n.top {\r\n position: relative;\r\n background: $cGreen;\r\n color: #fff;\r\n height: 70px;\r\n\r\n .a_menu {\r\n .logo {\r\n position: absolute;\r\n margin: 10px 0 !important;\r\n }\r\n\r\n #nav-menu {\r\n &.active {\r\n display: block;\r\n right: 0;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n height: 100vh;\r\n background: $cWhite;\r\n z-index: 999;\r\n }\r\n }\r\n\r\n #menu-hamburger {\r\n position: relative;\r\n height: 70px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n z-index: 9999;\r\n\r\n i {\r\n font-size: 28px;\r\n }\r\n\r\n &.active {\r\n #btn-hamburger {\r\n position: relative;\r\n height: 30px;\r\n width: 30px;\r\n\r\n span {\r\n position: absolute;\r\n width: 100%;\r\n height: 2px;\r\n background: $base-font-color;\r\n border-radius: 5px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n\r\n &:nth-child(1) {\r\n top: 50%;\r\n transform: rotate(45deg) translateY(-50%);\r\n }\r\n\r\n &:nth-child(2) {\r\n transform: translateX(-100%) translateY(-50%);\r\n }\r\n\r\n &:nth-child(3) {\r\n top: 50%;\r\n transform: rotate(-45deg) translateY(-50%);\r\n }\r\n }\r\n }\r\n }\r\n\r\n #btn-hamburger {\r\n position: relative;\r\n height: 30px;\r\n width: 30px;\r\n overflow: hidden;\r\n\r\n span {\r\n position: absolute;\r\n width: 100%;\r\n height: 2px;\r\n background: $cWhite;\r\n border-radius: 5px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n transition: all 250ms ease;\r\n\r\n &:nth-child(1) {\r\n top: 20%;\r\n }\r\n\r\n &:nth-child(2) {}\r\n\r\n &:nth-child(3) {\r\n top: 80%;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n #menu-hamburger {\r\n display: none;\r\n }\r\n }\r\n\r\n @media (max-width: 767px) {\r\n #nav-menu {\r\n position: fixed;\r\n display: none;\r\n\r\n ul {\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 15px;\r\n margin: 0 auto;\r\n flex-direction: column;\r\n justify-content: center;\r\n\r\n li {\r\n a {\r\n color: $base-font-color;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .logo {\r\n background: $cGreen;\r\n display: block;\r\n margin: 0 auto 10px;\r\n width: 150px;\r\n border-radius: 0 0 50% 50%;\r\n padding: 10px 25px 25px;\r\n\r\n img {\r\n width: 100%;\r\n }\r\n\r\n @media (max-width: 600px) {\r\n margin: 10px 0;\r\n }\r\n }\r\n\r\n nav {\r\n height: 70px;\r\n\r\n ul {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 25px;\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n li {\r\n a {\r\n color: $cWhite;\r\n font-size: 18px;\r\n font-weight: 600;\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.main {\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n\r\n .tickets_calendar {\r\n margin-top: 100px;\r\n width: 100%;\r\n margin-bottom: 50px;\r\n }\r\n\r\n .tickets {\r\n // margin-top: 100px;\r\n // margin-top: 50px;\r\n margin-bottom: 50px;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n gap: 80px;\r\n\r\n //rodzaj biletow\r\n .ticket-container {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n gap: 40px;\r\n align-items: center;\r\n\r\n .title-container {\r\n text-align: center;\r\n position: relative;\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 100px;\r\n border-bottom: 2px dotted black;\r\n }\r\n\r\n .title {\r\n font-weight: 800;\r\n font-size: 46px;\r\n\r\n @include respond-below(md) {\r\n font-size: 36px;\r\n font-size: 22px;\r\n }\r\n }\r\n\r\n .description {\r\n font-size: 28px;\r\n }\r\n }\r\n }\r\n\r\n //bilet\r\n .ticket {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n .ticket-description {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 500px;\r\n text-align: center;\r\n color: white;\r\n border-radius: 10px;\r\n padding: 20px 0;\r\n\r\n &--yellow {\r\n background-color: $cYellow;\r\n }\r\n\r\n &--red {\r\n background-color: $cRed;\r\n }\r\n\r\n &--blue {\r\n background-color: $cBlue;\r\n }\r\n\r\n &--orange {\r\n background-color: $cOrange;\r\n }\r\n\r\n &--green {\r\n background-color: $cGreen;\r\n }\r\n\r\n &--violet {\r\n background-color: $cViolet;\r\n }\r\n\r\n .ticket__name {\r\n font-size: 46px;\r\n font-weight: 800;\r\n\r\n @include respond-below(md) {\r\n font-size: 32px;\r\n }\r\n\r\n @include respond-below(sm) {\r\n font-size: 28px;\r\n }\r\n }\r\n\r\n .description {\r\n font-size: 13px;\r\n font-style: italic;\r\n line-height: 0.75;\r\n margin-bottom: 0;\r\n }\r\n\r\n .ticket-alert {\r\n font-size: 20px;\r\n margin: 20px 0 0 0;\r\n font-weight: 800;\r\n text-transform: uppercase;\r\n text-decoration: underline;\r\n\r\n @include respond-below(md) {\r\n font-size: 16px;\r\n }\r\n }\r\n\r\n @include respond-below(md) {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n width: 400px;\r\n }\r\n\r\n @include respond-below(xs) {\r\n width: 100%;\r\n }\r\n }\r\n\r\n //price\r\n .price {\r\n font-size: 46px;\r\n margin-left: 40px;\r\n font-weight: 800;\r\n min-width: 138px;\r\n\r\n @include respond-below(md) {\r\n font-size: 36px;\r\n min-width: 130px;\r\n }\r\n\r\n @include respond-below(sm) {\r\n margin-left: 0;\r\n min-width: unset;\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n //przyciski\r\n .ticket-quantity {\r\n margin-left: auto;\r\n\r\n @include respond-below(sm) {\r\n margin-left: 0;\r\n }\r\n\r\n .button {\r\n padding: 10px 20px;\r\n border-radius: 8px;\r\n border: none;\r\n background-color: $cGreen;\r\n color: #fff;\r\n font-size: 14px;\r\n font-weight: 700;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n background-color: darken($cGreen, 8%);\r\n }\r\n\r\n &.added {\r\n background-color: darken($cGreen, 12%);\r\n transform: scale(1.05);\r\n }\r\n }\r\n }\r\n\r\n @include respond-below(sm) {\r\n flex-direction: column;\r\n row-gap: 15px;\r\n }\r\n\r\n @include respond-below(xs) {\r\n width: 100%;\r\n }\r\n }\r\n }\r\n\r\n //bottom\r\n .bottom-info__description {\r\n text-align: center;\r\n font-size: 16px;\r\n line-height: 29px;\r\n padding: 20px 0;\r\n position: relative;\r\n\r\n &::after,\r\n &::before {\r\n position: absolute;\r\n content: '';\r\n border-bottom: 2px dotted $base-font-color;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 10%;\r\n }\r\n\r\n &::after {\r\n top: 0;\r\n }\r\n\r\n &::before {\r\n bottom: 0;\r\n }\r\n\r\n p:nth-child(2) {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .bottom-info__background {\r\n margin-top: 40px;\r\n background-image: url('https://brzezovka.pl/css/../img/bgcity.png');\r\n background-position: bottom center;\r\n background-repeat: repeat-x;\r\n width: 100%;\r\n height: 300px;\r\n }\r\n}\r\n\r\n.footer {\r\n background-color: $cFooter;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n color: white;\r\n\r\n a {\r\n text-decoration: none;\r\n color: $cOrange;\r\n }\r\n\r\n .footer__top {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n grid-template-rows: 1fr;\r\n justify-items: center;\r\n align-items: center;\r\n\r\n .location {\r\n padding: 20px 0;\r\n text-align: center;\r\n\r\n .title {\r\n font-size: 22px;\r\n font-weight: 800;\r\n }\r\n }\r\n\r\n .logo {\r\n height: 100px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n }\r\n\r\n .footer__bottom {\r\n width: 100%;\r\n\r\n p {\r\n text-align: center;\r\n margin: 0;\r\n padding: 30px 0;\r\n }\r\n }\r\n\r\n @media (max-width: 767px) {\r\n .footer__top {\r\n padding-top: 30px;\r\n grid-template-columns: 1fr;\r\n\r\n .opening-hours {\r\n grid-row-start: 2;\r\n }\r\n\r\n .logo {\r\n grid-row-start: 1;\r\n }\r\n\r\n .location {\r\n grid-row-start: 3;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.shopping-cart-container {\r\n &--active {\r\n .shopping-cart {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n }\r\n}\r\n\r\n//shoping cart\r\n.shopping-cart {\r\n opacity: 0;\r\n position: fixed;\r\n top: 80px;\r\n right: 10px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 10px;\r\n background-color: $cGreen;\r\n color: white;\r\n gap: 20px;\r\n width: 230px;\r\n padding: 20px 0;\r\n transition: opacity 0.2s;\r\n transform: translateX(100%);\r\n\r\n // border: 1px solid $base-font-color;\r\n // &--active {\r\n // \topacity: 1;\r\n // \ttransform: translateX(0);\r\n // }\r\n &.hide {\r\n display: none;\r\n }\r\n\r\n .basket {\r\n font-size: 30px;\r\n }\r\n\r\n .quantity {\r\n font-size: 18px;\r\n font-weight: 800;\r\n }\r\n\r\n .tickets__list {\r\n width: 100%;\r\n list-style: none;\r\n padding: 0 5px;\r\n background-color: white;\r\n color: $base-font-color;\r\n border-right: 1px solid $base-font-color;\r\n border-left: 1px solid $base-font-color;\r\n // border: 1px solid $base-font-color;\r\n max-height: calc(90svh - 400px);\r\n overflow: auto;\r\n\r\n p {\r\n margin-bottom: 0;\r\n }\r\n\r\n .ticket {\r\n border: 1px solid $base-font-color;\r\n border-radius: 5px;\r\n margin: 5px 0;\r\n padding: 5px 0 5px 5px;\r\n display: grid;\r\n grid-template-columns: 1fr 20px;\r\n grid-template-rows: 1fr 1fr;\r\n grid-template-areas:\r\n 'name btn'\r\n 'price btn';\r\n font-size: 12px;\r\n align-items: center;\r\n\r\n &__description {\r\n grid-area: name;\r\n font-weight: 800;\r\n font-size: 13px;\r\n }\r\n\r\n &__price {\r\n grid-area: price;\r\n font-weight: 800;\r\n font-size: 13px;\r\n\r\n span {\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n .ticket__button {\r\n grid-area: btn;\r\n border: none;\r\n background-color: transparent;\r\n color: $base-font-color;\r\n font-size: 14px;\r\n font-weight: 800;\r\n }\r\n }\r\n }\r\n\r\n .sum-section {\r\n text-align: center;\r\n\r\n p {\r\n margin-bottom: 0;\r\n }\r\n\r\n font-weight: 800;\r\n font-size: 18px;\r\n }\r\n\r\n .off-btn {\r\n border: none;\r\n background-color: transparent;\r\n color: white;\r\n font-size: 18px;\r\n font-weight: 800;\r\n position: absolute;\r\n top: 5px;\r\n right: 15px;\r\n }\r\n\r\n .buy-btn {\r\n border: none;\r\n background-color: transparent;\r\n color: $base-font-color;\r\n padding: 10px 30px;\r\n border-radius: 10px;\r\n font-weight: 800;\r\n background-color: lighten($color: $cGreen, $amount: 20%);\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n.mobile-cart-btn {\r\n &.cart-bounce {\r\n animation: cartBounce 0.5s ease;\r\n }\r\n\r\n position: fixed;\r\n bottom: 50px;\r\n right: 0;\r\n opacity: 1;\r\n z-index: 10;\r\n border-top-left-radius: 10px;\r\n border-bottom-left-radius: 10px;\r\n background-color: #72b81b;\r\n padding: 20px 15px 15px 15px;\r\n transition: all 250ms ease-in-out;\r\n cursor: pointer;\r\n\r\n // @media (min-width: 1300px) {\r\n // \tdisplay: none;\r\n // }\r\n\r\n &.hide {\r\n transform: translateX(100%);\r\n }\r\n\r\n span {\r\n position: absolute;\r\n top: 8px;\r\n right: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 5px;\r\n background: #fff;\r\n border-radius: 100%;\r\n width: 20px;\r\n height: 20px;\r\n line-height: 1;\r\n font-size: 12px;\r\n }\r\n\r\n .mobile-cart-btn--img {\r\n img {\r\n width: 100%;\r\n max-width: 40px;\r\n }\r\n }\r\n}\r\n\r\n//* Basket - \"page\"\r\n#basket_page {\r\n .basket_content {\r\n margin-top: 100px;\r\n margin-bottom: 100px;\r\n }\r\n\r\n .box_01 {\r\n margin-bottom: 24px;\r\n\r\n table {\r\n width: 100%;\r\n background: $cWhite;\r\n border-collapse: collapse;\r\n\r\n tr {\r\n text-align: center;\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n\r\n th {\r\n padding: 8px;\r\n\r\n h3 {\r\n font-size: 1.25rem;\r\n font-weight: 800;\r\n\r\n @include respond-below(md) {\r\n font-size: 0.85rem;\r\n }\r\n }\r\n }\r\n\r\n td {\r\n padding: 8px;\r\n\r\n @include respond-below(md) {\r\n font-size: 14px;\r\n }\r\n\r\n .ticket-date {\r\n color: #888;\r\n font-size: 12px;\r\n }\r\n\r\n .btn_t1 {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 50%;\r\n border: none;\r\n transition: 150ms ease-in-out;\r\n background: rgb(240, 240, 240);\r\n display: inline-block;\r\n color: #000;\r\n\r\n i {\r\n color: #000;\r\n }\r\n }\r\n\r\n .btn_t1.add {\r\n &:hover {\r\n color: $cGreen;\r\n border-color: $cGreen;\r\n }\r\n }\r\n\r\n .btn_t1.subtract {\r\n &:hover {\r\n color: $cOrange;\r\n border-color: $cOrange;\r\n }\r\n }\r\n\r\n .btn_t1.delete {\r\n border: none;\r\n\r\n &:hover {\r\n color: $cRed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @include respond-below(sm) {\r\n background: transparent;\r\n\r\n thead,\r\n tbody,\r\n th,\r\n td,\r\n tr {\r\n display: block;\r\n }\r\n\r\n tbody {\r\n >tr {\r\n &:first-child {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n thead {\r\n display: none;\r\n /* Приховуємо заголовки */\r\n }\r\n\r\n tr {\r\n margin-bottom: 15px;\r\n border: 1px solid #ddd;\r\n padding: 10px;\r\n border-radius: 10px;\r\n background: #fff;\r\n }\r\n\r\n td {\r\n position: relative;\r\n padding-left: 50%;\r\n text-align: right;\r\n border: none;\r\n min-height: 38px;\r\n padding-left: 140px !important;\r\n\r\n &:not(:last-child) {\r\n border-bottom: 1px solid #eee;\r\n }\r\n }\r\n\r\n td::before {\r\n content: attr(data-label);\r\n position: absolute;\r\n left: 10px;\r\n top: 50%;\r\n font-weight: bold;\r\n color: #555;\r\n transform: translateY(-50%);\r\n\r\n @include respond-below(xs) {\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .box_02 {\r\n .basket_user_data {\r\n .basket_user_data__wrapper {\r\n background: $cWhite;\r\n padding: 30px;\r\n\r\n h2 {\r\n font-size: 1.5rem;\r\n margin-bottom: 20px;\r\n }\r\n\r\n .form-vat-box {\r\n display: none;\r\n }\r\n\r\n .form-group {\r\n .col-form-label {\r\n font-weight: 600;\r\n\r\n .form-vat-option {\r\n opacity: 0;\r\n transition: 400ms ease;\r\n }\r\n }\r\n\r\n .form-check {\r\n a {\r\n color: $cGreen;\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .basket_summary {\r\n .basket_summary__wrapper {\r\n text-align: center;\r\n background: $cWhite;\r\n padding: 30px;\r\n height: 100%;\r\n\r\n h2 {\r\n font-size: 1.5rem;\r\n }\r\n\r\n p {\r\n font-size: 1.5rem;\r\n font-weight: 800;\r\n }\r\n\r\n .buy-btn {\r\n display: inline-block;\r\n border: none;\r\n background-color: transparent;\r\n color: $base-font-color;\r\n padding: 10px 30px;\r\n border-radius: 10px;\r\n font-weight: 800;\r\n background-color: lighten($color: $cGreen, $amount: 40%);\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n//* Spinner position\r\n.spinner_container {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 150px 0;\r\n}\r\n\r\n//* Spinner\r\n.lds-roller {\r\n display: inline-block;\r\n position: relative;\r\n width: 80px;\r\n height: 80px;\r\n\r\n div {\r\n animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\r\n transform-origin: 40px 40px;\r\n\r\n &:after {\r\n content: ' ';\r\n display: block;\r\n position: absolute;\r\n width: 7px;\r\n height: 7px;\r\n border-radius: 50%;\r\n background: $cGreen;\r\n margin: -4px 0 0 -4px;\r\n }\r\n\r\n &:nth-child(1) {\r\n animation-delay: -0.036s;\r\n\r\n &:after {\r\n top: 63px;\r\n left: 63px;\r\n }\r\n }\r\n\r\n &:nth-child(2) {\r\n animation-delay: -0.072s;\r\n\r\n &:after {\r\n top: 68px;\r\n left: 56px;\r\n }\r\n }\r\n\r\n &:nth-child(3) {\r\n animation-delay: -0.108s;\r\n\r\n &:after {\r\n top: 71px;\r\n left: 48px;\r\n }\r\n }\r\n\r\n &:nth-child(4) {\r\n animation-delay: -0.144s;\r\n\r\n &:after {\r\n top: 72px;\r\n left: 40px;\r\n }\r\n }\r\n\r\n &:nth-child(5) {\r\n animation-delay: -0.18s;\r\n\r\n &:after {\r\n top: 71px;\r\n left: 32px;\r\n }\r\n }\r\n\r\n &:nth-child(6) {\r\n animation-delay: -0.216s;\r\n\r\n &:after {\r\n top: 68px;\r\n left: 24px;\r\n }\r\n }\r\n\r\n &:nth-child(7) {\r\n animation-delay: -0.252s;\r\n\r\n &:after {\r\n top: 63px;\r\n left: 17px;\r\n }\r\n }\r\n\r\n &:nth-child(8) {\r\n animation-delay: -0.288s;\r\n\r\n &:after {\r\n top: 56px;\r\n left: 12px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@keyframes lds-roller {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n//* Scanner page\r\n#scanner {\r\n // width: 100vw;\r\n width: 100%;\r\n max-width: 500px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n\r\n @include respond-above(sm) {\r\n margin-top: 50px;\r\n }\r\n}\r\n\r\n//* aPanel\r\n.alogin-page {\r\n .panel-login {\r\n padding-top: 100px;\r\n padding-bottom: 100px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n }\r\n }\r\n}\r\n\r\n//* Tickets orders\r\n#tickets-orders {\r\n padding-top: 100px;\r\n padding-bottom: 100px;\r\n\r\n h1 {\r\n margin-bottom: 20px;\r\n }\r\n\r\n table {\r\n margin-bottom: 10px;\r\n background: $cWhite;\r\n border-bottom: none;\r\n\r\n thead {\r\n tr {\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\r\n\r\n th {\r\n padding: 15px 10px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n td {\r\n font-size: 14px;\r\n\r\n &.edit-btn {\r\n a {\r\n margin-left: 20px;\r\n }\r\n\r\n i {\r\n color: $base-font-color;\r\n font-size: 20px;\r\n transition: color 200ms ease;\r\n\r\n &:hover {\r\n color: $cGreen;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n tr {\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\r\n\r\n td {\r\n padding: 15px 10px;\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n\r\n #myTable_wrapper {\r\n .row {\r\n &:nth-child(1) {\r\n margin-bottom: 10px;\r\n }\r\n\r\n &:nth-child(3) {}\r\n }\r\n\r\n #myTable_length {\r\n label {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 15px;\r\n\r\n select {\r\n min-width: 70px;\r\n background-color: $cWhite;\r\n }\r\n }\r\n }\r\n\r\n #myTable_filter {\r\n label {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 15px;\r\n\r\n input {\r\n margin-left: 0;\r\n background: $cWhite;\r\n }\r\n }\r\n }\r\n\r\n #myTable_paginate {\r\n .pagination {\r\n display: flex;\r\n align-items: center;\r\n column-gap: 5px;\r\n\r\n margin-bottom: 0;\r\n\r\n .paginate_button {\r\n padding: 0;\r\n border: none;\r\n\r\n &.active {\r\n a {\r\n color: $cWhite;\r\n background: $cGreen;\r\n }\r\n }\r\n\r\n &:hover {\r\n border: none;\r\n background: none;\r\n }\r\n\r\n &.disabled>.page-link {\r\n color: $cGray;\r\n }\r\n\r\n .page-link {\r\n color: #000;\r\n }\r\n\r\n a {\r\n border: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n//* Order data\r\n#order-data {\r\n padding: 100px 0;\r\n\r\n .order-data {\r\n .mini-nav-menu {\r\n margin-bottom: 30px;\r\n\r\n a {\r\n &:hover {\r\n color: $base-font-color;\r\n }\r\n }\r\n }\r\n\r\n .box_01 {\r\n margin-bottom: 24px;\r\n\r\n table {\r\n width: 100%;\r\n background: $cWhite;\r\n\r\n tr {\r\n text-align: center;\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n\r\n th {\r\n padding: 8px;\r\n\r\n h3 {\r\n font-size: 1.25rem;\r\n font-weight: 800;\r\n }\r\n }\r\n\r\n td {\r\n padding: 8px;\r\n\r\n .btn_t1 {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 50%;\r\n border: none;\r\n transition: 150ms ease-in-out;\r\n }\r\n\r\n .btn_t1.add {\r\n &:hover {\r\n color: $cGreen;\r\n border-color: $cGreen;\r\n }\r\n }\r\n\r\n .btn_t1.subtract {\r\n &:hover {\r\n color: $cOrange;\r\n border-color: $cOrange;\r\n }\r\n }\r\n\r\n .btn_t1.delete {\r\n border: none;\r\n\r\n &:hover {\r\n color: $cRed;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .btn-save-new-list {\r\n display: block;\r\n margin: 30px auto 0;\r\n }\r\n }\r\n\r\n .box_02 {\r\n .order-detale-info {\r\n .order-detale-info__wrapper {\r\n background: $cWhite;\r\n padding: 30px;\r\n\r\n h2 {\r\n font-size: 1.5rem;\r\n margin-bottom: 20px;\r\n }\r\n\r\n .form-group {\r\n .col-form-label {\r\n font-weight: 600;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .order-summary {\r\n .order-summary__wrapper {\r\n text-align: center;\r\n background: #fff;\r\n padding: 30px;\r\n height: 100%;\r\n\r\n h2 {\r\n font-size: 1.5rem;\r\n margin-bottom: 20px;\r\n }\r\n\r\n p {\r\n font-size: 1.5rem;\r\n font-weight: 800;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n//* Regulamin\r\n#regulamin_box {\r\n margin-top: 80px;\r\n margin-bottom: 50px;\r\n\r\n .regulamin_box__wrapper {\r\n h5 {\r\n font-size: 26px;\r\n margin: 0;\r\n color: #333;\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n\r\n h6 {\r\n font-size: 22px;\r\n margin-bottom: 10px;\r\n text-transform: uppercase;\r\n font-family: 'Lato', sans-serif;\r\n font-weight: 800;\r\n letter-spacing: 0.8px;\r\n color: #333;\r\n text-align: center;\r\n }\r\n\r\n .regulamin__box {\r\n margin-bottom: 50px;\r\n\r\n h5 {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.sale-box {\r\n h2 {\r\n text-align: center;\r\n font-size: 48px;\r\n line-height: 43px;\r\n\r\n span {\r\n color: #74aa32;\r\n font-weight: 700;\r\n }\r\n }\r\n}\r\n\r\n#dateForm {\r\n display: flex;\r\n justify-content: center;\r\n gap: 15px;\r\n flex-wrap: wrap;\r\n\r\n ._title {\r\n width: 100%;\r\n font-weight: 600;\r\n font-size: 30px;\r\n text-align: center;\r\n }\r\n}\r\n\r\n.basket_protection {\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n justify-content: flex-end;\r\n margin: 10px auto;\r\n text-align: right;\r\n\r\n p {\r\n margin-bottom: 0;\r\n font-style: italic;\r\n }\r\n}\r\n\r\n@keyframes cartBounce {\r\n\r\n 0%,\r\n 100% {\r\n transform: translateX(0);\r\n }\r\n\r\n 25% {\r\n transform: translateX(-8px) scale(1.1);\r\n }\r\n\r\n 50% {\r\n transform: translateX(4px) scale(1.05);\r\n }\r\n\r\n 75% {\r\n transform: translateX(-2px);\r\n }\r\n}","$breakpoints: (\n\txs: 576px,\n\tsm: 768px,\n\tmd: 992px,\n\tlg: 1200px,\n);\n@mixin respond-above($breakpoint) {\n\t@if map-has-key($breakpoints, $breakpoint) {\n\t\t$breakpoint-value: map-get($breakpoints, $breakpoint);\n\t\t@media (min-width: $breakpoint-value) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@warn 'Invalid breakpoint: #{$breakpoint}.';\n\t}\n}\n@mixin respond-below($breakpoint) {\n\t@if map-has-key($breakpoints, $breakpoint) {\n\t\t$breakpoint-value: map-get($breakpoints, $breakpoint);\n\t\t@media (max-width: ($breakpoint-value - 1)) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@warn 'Invalid breakpoint: #{$breakpoint}.';\n\t}\n}\n@mixin respond-between($lower, $upper) {\n\t@if map-has-key($breakpoints, $lower) and map-has-key($breakpoints, $upper) {\n\t\t$lower-breakpoint: map-get($breakpoints, $lower);\n\t\t$upper-breakpoint: map-get($breakpoints, $upper);\n\t\t@media (min-width: $lower-breakpoint) and (max-width: ($upper-breakpoint - 1)) {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\t\t@if (map-has-key($breakpoints, $lower) == false) {\n\t\t\t@warn 'Your lower breakpoint was invalid: #{$lower}.';\n\t\t}\n\t\t@if (map-has-key($breakpoints, $upper) == false) {\n\t\t\t@warn 'Your upper breakpoint was invalid: #{$upper}.';\n\t\t}\n\t}\n}\n@mixin border-radius($px: 0) {\n\t-webkit-border-radius: $px;\n\t-moz-border-radius: $px;\n\tborder-radius: $px;\n}\n@mixin box-shadow($value) {\n\t-webkit-box-shadow: $value;\n\t-moz-box-shadow: $value;\n\tbox-shadow: $value;\n}\n@mixin transition($element: all, $time: 0.5s, $option: ease) {\n\t-webkit-transition: $element $time $option !important;\n\ttransition: $element $time $option !important;\n}\n@mixin opacity($value) {\n\t$IEValue: $value * 100;\n\topacity: $value;\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=\" + $IEValue +\n\t\t\")\";\n\tfilter: alpha(opacity=$IEValue);\n}\n@mixin flexbox() {\n\tdisplay: -webkit-box;\n\tdisplay: -moz-box;\n\tdisplay: -ms-flexbox;\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n@mixin flex($values) {\n\t-webkit-box-flex: $values;\n\t-moz-box-flex: $values;\n\t-webkit-flex: $values;\n\t-ms-flex: $values;\n\tflex: $values;\n}\n@mixin flex-direction($direction) {\n\t-webkit-flex-direction: $direction;\n\t-moz-flex-direction: $direction;\n\t-ms-flex-direction: $direction;\n\tflex-direction: $direction;\n}\n@mixin flex-wrap($wrap) {\n\t-webkit-flex-wrap: $wrap;\n\t-moz-flex-wrap: $wrap;\n\t-ms-flex-wrap: $wrap;\n\tflex-wrap: $wrap;\n}\n@mixin flex-flow($flow) {\n\t-webkit-flex-flow: $flow;\n\t-moz-flex-flow: $flow;\n\t-ms-flex-flow: $flow;\n\tflex-flow: $flow;\n}\n@mixin order($val) {\n\t-webkit-box-ordinal-group: $val;\n\t-moz-box-ordinal-group: $val;\n\t-ms-flex-order: $val;\n\t-webkit-order: $val;\n\torder: $val;\n}\n@mixin flex-grow($grow) {\n\t-webkit-flex-grow: $grow;\n\t-moz-flex-grow: $grow;\n\t-ms-flex-grow: $grow;\n\tflex-grow: $grow;\n}\n@mixin flex-shrink($shrink) {\n\t-webkit-flex-shrink: $shrink;\n\t-moz-flex-shrink: $shrink;\n\t-ms-flex-shrink: $shrink;\n\tflex-shrink: $shrink;\n}\n@mixin flex-basis($width) {\n\t-webkit-flex-basis: $width;\n\t-moz-flex-basis: $width;\n\t-ms-flex-basis: $width;\n\tflex-basis: $width;\n}\n@mixin justify-content($justify) {\n\t-webkit-justify-content: $justify;\n\t-moz-justify-content: $justify;\n\t-ms-justify-content: $justify;\n\tjustify-content: $justify;\n\t-ms-flex-pack: $justify;\n}\n@mixin align-content($align) {\n\t-webkit-align-content: $align;\n\t-moz-align-content: $align;\n\t-ms-align-content: $align;\n\talign-content: $align;\n}\n@mixin align-items($align) {\n\t-webkit-align-items: $align;\n\t-moz-align-items: $align;\n\t-ms-align-items: $align;\n\talign-items: $align;\n}\n@mixin align-self($align) {\n\t-webkit-align-self: $align;\n\t-moz-align-self: $align;\n\t-ms-align-self: $align;\n\talign-self: $align;\n}\n"]} \ No newline at end of file diff --git a/layout/style-scss/index.php b/layout/style-scss/index.php new file mode 100644 index 0000000..e69de29 diff --git a/layout/style-scss/style.scss b/layout/style-scss/style.scss index 2e5a81b..6a125cd 100644 --- a/layout/style-scss/style.scss +++ b/layout/style-scss/style.scss @@ -17,1399 +17,1440 @@ $cFooter: #34327c; $cGray: #95a5a6; * { - margin: 0; - padding: 0; - box-sizing: border-box; + margin: 0; + padding: 0; + box-sizing: border-box; } body { - color: $base-font-color; - font-family: 'Lato', sans-serif; - background-color: $backgroundColor; + color: $base-font-color; + font-family: 'Lato', sans-serif; + background-color: $backgroundColor; - display: flex; - flex-direction: column; - min-height: 100vh; + display: flex; + flex-direction: column; + min-height: 100vh; } //* mixins @mixin btn($cTxt, $hTxt, $cBG, $hBG) { - border: none; - background-color: transparent; - color: $cTxt; - padding: 10px 30px; - border-radius: 10px; - font-weight: 800; - background-color: lighten($color: $cBG, $amount: 20%); - text-decoration: none; + border: none; + background-color: transparent; + color: $cTxt; + padding: 10px 30px; + border-radius: 10px; + font-weight: 800; + background-color: lighten($color: $cBG, $amount: 20%); + text-decoration: none; - &:disabled { - background-color: rgba($cGray, 0.5); - cursor: not-allowed; - } + &:disabled { + background-color: rgba($cGray, 0.5); + cursor: not-allowed; + } } //* Buttons .btn-t1 { - @include btn($base-font-color, '', $cGreen, ''); + @include btn($base-font-color, '', $cGreen, ''); } .btn-t2 { - @include btn($cWhite, '', #000, ''); + @include btn($cWhite, '', #000, ''); } .btn { - padding: 9px 30px; + padding: 9px 30px; } .flex-buttons-group { - display: flex; - justify-content: center; - align-items: center; - gap: 5px; + display: flex; + justify-content: center; + align-items: center; + gap: 5px; } //* text colors .c_green { - color: $cGreen; + color: $cGreen; } .c_red { - color: $cRed; + color: $cRed; } .top { - position: relative; - background: $cGreen; - color: #fff; - height: 70px; + position: relative; + background: $cGreen; + color: #fff; + height: 70px; - .a_menu { - .logo { - position: absolute; - margin: 10px 0 !important; - } + .a_menu { + .logo { + position: absolute; + margin: 10px 0 !important; + } - #nav-menu { - &.active { - display: block; - right: 0; - top: 0; - left: 0; - bottom: 0; - height: 100vh; - background: $cWhite; - z-index: 999; - } - } + #nav-menu { + &.active { + display: block; + right: 0; + top: 0; + left: 0; + bottom: 0; + height: 100vh; + background: $cWhite; + z-index: 999; + } + } - #menu-hamburger { - position: relative; - height: 70px; - display: flex; - align-items: center; - justify-content: flex-end; - z-index: 9999; + #menu-hamburger { + position: relative; + height: 70px; + display: flex; + align-items: center; + justify-content: flex-end; + z-index: 9999; - i { - font-size: 28px; - } + i { + font-size: 28px; + } - &.active { - #btn-hamburger { - position: relative; - height: 30px; - width: 30px; + &.active { + #btn-hamburger { + position: relative; + height: 30px; + width: 30px; - span { - position: absolute; - width: 100%; - height: 2px; - background: $base-font-color; - border-radius: 5px; - top: 50%; - transform: translateY(-50%); + span { + position: absolute; + width: 100%; + height: 2px; + background: $base-font-color; + border-radius: 5px; + top: 50%; + transform: translateY(-50%); - &:nth-child(1) { - top: 50%; - transform: rotate(45deg) translateY(-50%); - } + &:nth-child(1) { + top: 50%; + transform: rotate(45deg) translateY(-50%); + } - &:nth-child(2) { - transform: translateX(-100%) translateY(-50%); - } + &:nth-child(2) { + transform: translateX(-100%) translateY(-50%); + } - &:nth-child(3) { - top: 50%; - transform: rotate(-45deg) translateY(-50%); - } - } - } - } + &:nth-child(3) { + top: 50%; + transform: rotate(-45deg) translateY(-50%); + } + } + } + } - #btn-hamburger { - position: relative; - height: 30px; - width: 30px; - overflow: hidden; + #btn-hamburger { + position: relative; + height: 30px; + width: 30px; + overflow: hidden; - span { - position: absolute; - width: 100%; - height: 2px; - background: $cWhite; - border-radius: 5px; - top: 50%; - transform: translateY(-50%); - transition: all 250ms ease; + span { + position: absolute; + width: 100%; + height: 2px; + background: $cWhite; + border-radius: 5px; + top: 50%; + transform: translateY(-50%); + transition: all 250ms ease; - &:nth-child(1) { - top: 20%; - } + &:nth-child(1) { + top: 20%; + } - &:nth-child(2) { - } + &:nth-child(2) {} - &:nth-child(3) { - top: 80%; - } - } - } - } + &:nth-child(3) { + top: 80%; + } + } + } + } - @media (min-width: 768px) { - #menu-hamburger { - display: none; - } - } + @media (min-width: 768px) { + #menu-hamburger { + display: none; + } + } - @media (max-width: 767px) { - #nav-menu { - position: fixed; - display: none; + @media (max-width: 767px) { + #nav-menu { + position: fixed; + display: none; - ul { - width: 100%; - max-width: 300px; - padding: 0 15px; - margin: 0 auto; - flex-direction: column; - justify-content: center; + ul { + width: 100%; + max-width: 300px; + padding: 0 15px; + margin: 0 auto; + flex-direction: column; + justify-content: center; - li { - a { - color: $base-font-color; - } - } - } - } - } - } + li { + a { + color: $base-font-color; + } + } + } + } + } + } - .logo { - background: $cGreen; - display: block; - margin: 0 auto 10px; - width: 150px; - border-radius: 0 0 50% 50%; - padding: 10px 25px 25px; + .logo { + background: $cGreen; + display: block; + margin: 0 auto 10px; + width: 150px; + border-radius: 0 0 50% 50%; + padding: 10px 25px 25px; - img { - width: 100%; - } + img { + width: 100%; + } - @media (max-width: 600px) { - margin: 10px 0; - } - } + @media (max-width: 600px) { + margin: 10px 0; + } + } - nav { - height: 70px; + nav { + height: 70px; - ul { - height: 100%; - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-end; - gap: 25px; - list-style: none; - margin: 0; - padding: 0; + ul { + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-end; + gap: 25px; + list-style: none; + margin: 0; + padding: 0; - li { - a { - color: $cWhite; - font-size: 18px; - font-weight: 600; - text-decoration: none; - } - } - } - } + li { + a { + color: $cWhite; + font-size: 18px; + font-weight: 600; + text-decoration: none; + } + } + } + } } .main { - display: flex; - flex-direction: column; - flex-grow: 1; + display: flex; + flex-direction: column; + flex-grow: 1; - .tickets_calendar { - margin-top: 100px; - width: 100%; - margin-bottom: 50px; - } + .tickets_calendar { + margin-top: 100px; + width: 100%; + margin-bottom: 50px; + } - .tickets { - // margin-top: 100px; - // margin-top: 50px; - margin-bottom: 50px; - display: flex; - flex-direction: column; - width: 100%; - gap: 80px; + .tickets { + // margin-top: 100px; + // margin-top: 50px; + margin-bottom: 50px; + display: flex; + flex-direction: column; + width: 100%; + gap: 80px; - //rodzaj biletow - .ticket-container { - display: flex; - flex-direction: column; - width: 100%; - gap: 40px; - align-items: center; + //rodzaj biletow + .ticket-container { + display: flex; + flex-direction: column; + width: 100%; + gap: 40px; + align-items: center; - .title-container { - text-align: center; - position: relative; + .title-container { + text-align: center; + position: relative; - &::after { - content: ''; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%); - width: 100px; - border-bottom: 2px dotted black; - } + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + width: 100px; + border-bottom: 2px dotted black; + } - .title { - font-weight: 800; - font-size: 46px; + .title { + font-weight: 800; + font-size: 46px; - @include respond-below(md) { - font-size: 36px; - font-size: 22px; - } - } + @include respond-below(md) { + font-size: 36px; + font-size: 22px; + } + } - .description { - font-size: 28px; - } - } - } + .description { + font-size: 28px; + } + } + } - //bilet - .ticket { - display: flex; - flex-direction: row; - align-items: center; + //bilet + .ticket { + display: flex; + flex-direction: row; + align-items: center; - .ticket-description { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 500px; - text-align: center; - color: white; - border-radius: 10px; - padding: 20px 0; + .ticket-description { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 500px; + text-align: center; + color: white; + border-radius: 10px; + padding: 20px 0; - &--yellow { - background-color: $cYellow; - } + &--yellow { + background-color: $cYellow; + } - &--red { - background-color: $cRed; - } + &--red { + background-color: $cRed; + } - &--blue { - background-color: $cBlue; - } + &--blue { + background-color: $cBlue; + } - &--orange { - background-color: $cOrange; - } + &--orange { + background-color: $cOrange; + } - &--green { - background-color: $cGreen; - } + &--green { + background-color: $cGreen; + } - &--violet { - background-color: $cViolet; - } + &--violet { + background-color: $cViolet; + } - .ticket__name { - font-size: 46px; - font-weight: 800; + .ticket__name { + font-size: 46px; + font-weight: 800; - @include respond-below(md) { - font-size: 32px; - } - @include respond-below(sm) { - font-size: 28px; - } - } + @include respond-below(md) { + font-size: 32px; + } - .description { - font-size: 13px; - font-style: italic; - line-height: 0.75; - margin-bottom: 0; - } + @include respond-below(sm) { + font-size: 28px; + } + } - .ticket-alert { - font-size: 20px; - margin: 20px 0 0 0; - font-weight: 800; - text-transform: uppercase; - text-decoration: underline; + .description { + font-size: 13px; + font-style: italic; + line-height: 0.75; + margin-bottom: 0; + } - @include respond-below(md) { - font-size: 16px; - } - } + .ticket-alert { + font-size: 20px; + margin: 20px 0 0 0; + font-weight: 800; + text-transform: uppercase; + text-decoration: underline; - @include respond-below(md) { - padding-left: 10px; - padding-right: 10px; - width: 400px; - } + @include respond-below(md) { + font-size: 16px; + } + } - @include respond-below(xs) { - width: 100%; - } - } + @include respond-below(md) { + padding-left: 10px; + padding-right: 10px; + width: 400px; + } - //price - .price { - font-size: 46px; - margin-left: 40px; - font-weight: 800; - min-width: 138px; + @include respond-below(xs) { + width: 100%; + } + } - @include respond-below(md) { - font-size: 36px; - min-width: 130px; - } - @include respond-below(sm) { - margin-left: 0; - min-width: unset; - margin-bottom: 0; - } - } + //price + .price { + font-size: 46px; + margin-left: 40px; + font-weight: 800; + min-width: 138px; - //przyciski - .ticket-quantity { - margin-left: 30px; + @include respond-below(md) { + font-size: 36px; + min-width: 130px; + } - @include respond-below(sm) { - margin-left: 0; - } + @include respond-below(sm) { + margin-left: 0; + min-width: unset; + margin-bottom: 0; + } + } - .button { - width: 30px; - height: 30px; - border-radius: 50%; - border: 1px solid $base-font-color; - color: $base-font-color; - background-color: transparent; - text-align: center; - } + //przyciski + .ticket-quantity { + margin-left: auto; - span { - padding: 0 5px; - } - } + @include respond-below(sm) { + margin-left: 0; + } - @include respond-below(sm) { - flex-direction: column; - row-gap: 15px; - } - @include respond-below(xs) { - width: 100%; - } - } - } + .button { + padding: 10px 20px; + border-radius: 8px; + border: none; + background-color: $cGreen; + color: #fff; + font-size: 14px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + white-space: nowrap; - //bottom - .bottom-info__description { - text-align: center; - font-size: 16px; - line-height: 29px; - padding: 20px 0; - position: relative; + &:hover { + background-color: darken($cGreen, 8%); + } - &::after, - &::before { - position: absolute; - content: ''; - border-bottom: 2px dotted $base-font-color; - left: 50%; - transform: translateX(-50%); - width: 10%; - } + &.added { + background-color: darken($cGreen, 12%); + transform: scale(1.05); + } + } + } - &::after { - top: 0; - } + @include respond-below(sm) { + flex-direction: column; + row-gap: 15px; + } - &::before { - bottom: 0; - } + @include respond-below(xs) { + width: 100%; + } + } + } - p:nth-child(2) { - margin-bottom: 0; - } - } + //bottom + .bottom-info__description { + text-align: center; + font-size: 16px; + line-height: 29px; + padding: 20px 0; + position: relative; - .bottom-info__background { - margin-top: 40px; - background-image: url('https://brzezovka.pl/css/../img/bgcity.png'); - background-position: bottom center; - background-repeat: repeat-x; - width: 100%; - height: 300px; - } + &::after, + &::before { + position: absolute; + content: ''; + border-bottom: 2px dotted $base-font-color; + left: 50%; + transform: translateX(-50%); + width: 10%; + } + + &::after { + top: 0; + } + + &::before { + bottom: 0; + } + + p:nth-child(2) { + margin-bottom: 0; + } + } + + .bottom-info__background { + margin-top: 40px; + background-image: url('https://brzezovka.pl/css/../img/bgcity.png'); + background-position: bottom center; + background-repeat: repeat-x; + width: 100%; + height: 300px; + } } .footer { - background-color: $cFooter; - display: flex; - flex-direction: column; - width: 100%; - color: white; + background-color: $cFooter; + display: flex; + flex-direction: column; + width: 100%; + color: white; - a { - text-decoration: none; - color: $cOrange; - } + a { + text-decoration: none; + color: $cOrange; + } - .footer__top { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - grid-template-rows: 1fr; - justify-items: center; - align-items: center; + .footer__top { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: 1fr; + justify-items: center; + align-items: center; - .location { - padding: 20px 0; - text-align: center; + .location { + padding: 20px 0; + text-align: center; - .title { - font-size: 22px; - font-weight: 800; - } - } + .title { + font-size: 22px; + font-weight: 800; + } + } - .logo { - height: 100px; + .logo { + height: 100px; - img { - width: 100%; - height: 100%; - } - } - } + img { + width: 100%; + height: 100%; + } + } + } - .footer__bottom { - width: 100%; + .footer__bottom { + width: 100%; - p { - text-align: center; - margin: 0; - padding: 30px 0; - } - } + p { + text-align: center; + margin: 0; + padding: 30px 0; + } + } - @media (max-width: 767px) { - .footer__top { - padding-top: 30px; - grid-template-columns: 1fr; + @media (max-width: 767px) { + .footer__top { + padding-top: 30px; + grid-template-columns: 1fr; - .opening-hours { - grid-row-start: 2; - } + .opening-hours { + grid-row-start: 2; + } - .logo { - grid-row-start: 1; - } + .logo { + grid-row-start: 1; + } - .location { - grid-row-start: 3; - } - } - } + .location { + grid-row-start: 3; + } + } + } } .shopping-cart-container { - &--active { - .shopping-cart { - opacity: 1; - transform: translateX(0); - } - } + &--active { + .shopping-cart { + opacity: 1; + transform: translateX(0); + } + } } + //shoping cart .shopping-cart { - opacity: 0; - position: fixed; - top: 80px; - right: 10px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - border-radius: 10px; - background-color: $cGreen; - color: white; - gap: 20px; - width: 230px; - padding: 20px 0; - transition: opacity 0.2s; - transform: translateX(100%); + opacity: 0; + position: fixed; + top: 80px; + right: 10px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 10px; + background-color: $cGreen; + color: white; + gap: 20px; + width: 230px; + padding: 20px 0; + transition: opacity 0.2s; + transform: translateX(100%); - // border: 1px solid $base-font-color; - // &--active { - // opacity: 1; - // transform: translateX(0); - // } - &.hide { - display: none; - } + // border: 1px solid $base-font-color; + // &--active { + // opacity: 1; + // transform: translateX(0); + // } + &.hide { + display: none; + } - .basket { - font-size: 30px; - } + .basket { + font-size: 30px; + } - .quantity { - font-size: 18px; - font-weight: 800; - } + .quantity { + font-size: 18px; + font-weight: 800; + } - .tickets__list { - width: 100%; - list-style: none; - padding: 0 5px; - background-color: white; - color: $base-font-color; - border-right: 1px solid $base-font-color; - border-left: 1px solid $base-font-color; - // border: 1px solid $base-font-color; - max-height: calc(90svh - 400px); - overflow: auto; + .tickets__list { + width: 100%; + list-style: none; + padding: 0 5px; + background-color: white; + color: $base-font-color; + border-right: 1px solid $base-font-color; + border-left: 1px solid $base-font-color; + // border: 1px solid $base-font-color; + max-height: calc(90svh - 400px); + overflow: auto; - p { - margin-bottom: 0; - } + p { + margin-bottom: 0; + } - .ticket { - border: 1px solid $base-font-color; - border-radius: 5px; - margin: 5px 0; - padding: 5px 0 5px 5px; - display: grid; - grid-template-columns: 1fr 20px; - grid-template-rows: 1fr 1fr; - grid-template-areas: - 'name btn' - 'price btn'; - font-size: 12px; - align-items: center; + .ticket { + border: 1px solid $base-font-color; + border-radius: 5px; + margin: 5px 0; + padding: 5px 0 5px 5px; + display: grid; + grid-template-columns: 1fr 20px; + grid-template-rows: 1fr 1fr; + grid-template-areas: + 'name btn' + 'price btn'; + font-size: 12px; + align-items: center; - &__description { - grid-area: name; - font-weight: 800; - font-size: 13px; - } + &__description { + grid-area: name; + font-weight: 800; + font-size: 13px; + } - &__price { - grid-area: price; - font-weight: 800; - font-size: 13px; + &__price { + grid-area: price; + font-weight: 800; + font-size: 13px; - span { - font-weight: 400; - } - } + span { + font-weight: 400; + } + } - .ticket__button { - grid-area: btn; - border: none; - background-color: transparent; - color: $base-font-color; - font-size: 14px; - font-weight: 800; - } - } - } + .ticket__button { + grid-area: btn; + border: none; + background-color: transparent; + color: $base-font-color; + font-size: 14px; + font-weight: 800; + } + } + } - .sum-section { - text-align: center; + .sum-section { + text-align: center; - p { - margin-bottom: 0; - } + p { + margin-bottom: 0; + } - font-weight: 800; - font-size: 18px; - } + font-weight: 800; + font-size: 18px; + } - .off-btn { - border: none; - background-color: transparent; - color: white; - font-size: 18px; - font-weight: 800; - position: absolute; - top: 5px; - right: 15px; - } + .off-btn { + border: none; + background-color: transparent; + color: white; + font-size: 18px; + font-weight: 800; + position: absolute; + top: 5px; + right: 15px; + } - .buy-btn { - border: none; - background-color: transparent; - color: $base-font-color; - padding: 10px 30px; - border-radius: 10px; - font-weight: 800; - background-color: lighten($color: $cGreen, $amount: 20%); - text-decoration: none; - } + .buy-btn { + border: none; + background-color: transparent; + color: $base-font-color; + padding: 10px 30px; + border-radius: 10px; + font-weight: 800; + background-color: lighten($color: $cGreen, $amount: 20%); + text-decoration: none; + } } .mobile-cart-btn { - position: fixed; - bottom: 50px; - right: 0; - opacity: 1; - z-index: 10; - border-top-left-radius: 10px; - border-bottom-left-radius: 10px; - background-color: #72b81b; - padding: 20px 15px 15px 15px; - transition: all 250ms ease-in-out; - cursor: pointer; + &.cart-bounce { + animation: cartBounce 0.5s ease; + } - // @media (min-width: 1300px) { - // display: none; - // } + position: fixed; + bottom: 50px; + right: 0; + opacity: 1; + z-index: 10; + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + background-color: #72b81b; + padding: 20px 15px 15px 15px; + transition: all 250ms ease-in-out; + cursor: pointer; - &.hide { - transform: translateX(100%); - } + // @media (min-width: 1300px) { + // display: none; + // } - span { - position: absolute; - top: 8px; - right: 5px; - display: flex; - align-items: center; - justify-content: center; - padding: 5px; - background: #fff; - border-radius: 100%; - width: 20px; - height: 20px; - line-height: 1; - font-size: 12px; - } - .mobile-cart-btn--img { - img { - width: 100%; - max-width: 40px; - } - } + &.hide { + transform: translateX(100%); + } + + span { + position: absolute; + top: 8px; + right: 5px; + display: flex; + align-items: center; + justify-content: center; + padding: 5px; + background: #fff; + border-radius: 100%; + width: 20px; + height: 20px; + line-height: 1; + font-size: 12px; + } + + .mobile-cart-btn--img { + img { + width: 100%; + max-width: 40px; + } + } } //* Basket - "page" #basket_page { - .basket_content { - margin-top: 100px; - margin-bottom: 100px; - } + .basket_content { + margin-top: 100px; + margin-bottom: 100px; + } - .box_01 { - margin-bottom: 24px; + .box_01 { + margin-bottom: 24px; - table { - width: 100%; - background: $cWhite; - border-collapse: collapse; + table { + width: 100%; + background: $cWhite; + border-collapse: collapse; - tr { - text-align: center; - border-top: 1px solid rgba(0, 0, 0, 0.1); + tr { + text-align: center; + border-top: 1px solid rgba(0, 0, 0, 0.1); - th { - padding: 8px; + th { + padding: 8px; - h3 { - font-size: 1.25rem; - font-weight: 800; + h3 { + font-size: 1.25rem; + font-weight: 800; - @include respond-below(md) { - font-size: 0.85rem; - } - } - } + @include respond-below(md) { + font-size: 0.85rem; + } + } + } - td { - padding: 8px; + td { + padding: 8px; - @include respond-below(md) { - font-size: 14px; - } + @include respond-below(md) { + font-size: 14px; + } - .btn_t1 { - width: 30px; - height: 30px; - border-radius: 50%; - border: none; - transition: 150ms ease-in-out; - background: rgb(240, 240, 240); - display: inline-block; - color: #000; + .ticket-date { + color: #888; + font-size: 12px; + } - i { - color: #000; - } - } + .btn_t1 { + width: 30px; + height: 30px; + border-radius: 50%; + border: none; + transition: 150ms ease-in-out; + background: rgb(240, 240, 240); + display: inline-block; + color: #000; - .btn_t1.add { - &:hover { - color: $cGreen; - border-color: $cGreen; - } - } + i { + color: #000; + } + } - .btn_t1.subtract { - &:hover { - color: $cOrange; - border-color: $cOrange; - } - } + .btn_t1.add { + &:hover { + color: $cGreen; + border-color: $cGreen; + } + } - .btn_t1.delete { - border: none; + .btn_t1.subtract { + &:hover { + color: $cOrange; + border-color: $cOrange; + } + } - &:hover { - color: $cRed; - } - } - } - } + .btn_t1.delete { + border: none; - @include respond-below(sm) { - background: transparent; + &:hover { + color: $cRed; + } + } + } + } - thead, - tbody, - th, - td, - tr { - display: block; - } + @include respond-below(sm) { + background: transparent; - tbody { - > tr { - &:first-child { - display: none; - } - } - } + thead, + tbody, + th, + td, + tr { + display: block; + } - thead { - display: none; /* Приховуємо заголовки */ - } + tbody { + >tr { + &:first-child { + display: none; + } + } + } - tr { - margin-bottom: 15px; - border: 1px solid #ddd; - padding: 10px; - border-radius: 10px; - background: #fff; - } + thead { + display: none; + /* Приховуємо заголовки */ + } - td { - position: relative; - padding-left: 50%; - text-align: right; - border: none; - min-height: 38px; - padding-left: 140px !important; + tr { + margin-bottom: 15px; + border: 1px solid #ddd; + padding: 10px; + border-radius: 10px; + background: #fff; + } - &:not(:last-child) { - border-bottom: 1px solid #eee; - } - } + td { + position: relative; + padding-left: 50%; + text-align: right; + border: none; + min-height: 38px; + padding-left: 140px !important; - td::before { - content: attr(data-label); - position: absolute; - left: 10px; - top: 50%; - font-weight: bold; - color: #555; - transform: translateY(-50%); + &:not(:last-child) { + border-bottom: 1px solid #eee; + } + } - @include respond-below(xs) { - font-size: 12px; - } - } - } - } - } + td::before { + content: attr(data-label); + position: absolute; + left: 10px; + top: 50%; + font-weight: bold; + color: #555; + transform: translateY(-50%); - .box_02 { - .basket_user_data { - .basket_user_data__wrapper { - background: $cWhite; - padding: 30px; + @include respond-below(xs) { + font-size: 12px; + } + } + } + } + } - h2 { - font-size: 1.5rem; - margin-bottom: 20px; - } + .box_02 { + .basket_user_data { + .basket_user_data__wrapper { + background: $cWhite; + padding: 30px; - .form-vat-box { - display: none; - } + h2 { + font-size: 1.5rem; + margin-bottom: 20px; + } - .form-group { - .col-form-label { - font-weight: 600; + .form-vat-box { + display: none; + } - .form-vat-option { - opacity: 0; - transition: 400ms ease; - } - } + .form-group { + .col-form-label { + font-weight: 600; - .form-check { - a { - color: $cGreen; - text-decoration: none; - } - } - } - } - } + .form-vat-option { + opacity: 0; + transition: 400ms ease; + } + } - .basket_summary { - .basket_summary__wrapper { - text-align: center; - background: $cWhite; - padding: 30px; - height: 100%; + .form-check { + a { + color: $cGreen; + text-decoration: none; + } + } + } + } + } - h2 { - font-size: 1.5rem; - } + .basket_summary { + .basket_summary__wrapper { + text-align: center; + background: $cWhite; + padding: 30px; + height: 100%; - p { - font-size: 1.5rem; - font-weight: 800; - } + h2 { + font-size: 1.5rem; + } - .buy-btn { - display: inline-block; - border: none; - background-color: transparent; - color: $base-font-color; - padding: 10px 30px; - border-radius: 10px; - font-weight: 800; - background-color: lighten($color: $cGreen, $amount: 40%); - text-decoration: none; - } - } - } - } + p { + font-size: 1.5rem; + font-weight: 800; + } + + .buy-btn { + display: inline-block; + border: none; + background-color: transparent; + color: $base-font-color; + padding: 10px 30px; + border-radius: 10px; + font-weight: 800; + background-color: lighten($color: $cGreen, $amount: 40%); + text-decoration: none; + } + } + } + } } //* Spinner position .spinner_container { - display: flex; - align-items: center; - justify-content: center; - padding: 150px 0; + display: flex; + align-items: center; + justify-content: center; + padding: 150px 0; } //* Spinner .lds-roller { - display: inline-block; - position: relative; - width: 80px; - height: 80px; + display: inline-block; + position: relative; + width: 80px; + height: 80px; - div { - animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; - transform-origin: 40px 40px; + div { + animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + transform-origin: 40px 40px; - &:after { - content: ' '; - display: block; - position: absolute; - width: 7px; - height: 7px; - border-radius: 50%; - background: $cGreen; - margin: -4px 0 0 -4px; - } + &:after { + content: ' '; + display: block; + position: absolute; + width: 7px; + height: 7px; + border-radius: 50%; + background: $cGreen; + margin: -4px 0 0 -4px; + } - &:nth-child(1) { - animation-delay: -0.036s; + &:nth-child(1) { + animation-delay: -0.036s; - &:after { - top: 63px; - left: 63px; - } - } + &:after { + top: 63px; + left: 63px; + } + } - &:nth-child(2) { - animation-delay: -0.072s; + &:nth-child(2) { + animation-delay: -0.072s; - &:after { - top: 68px; - left: 56px; - } - } + &:after { + top: 68px; + left: 56px; + } + } - &:nth-child(3) { - animation-delay: -0.108s; + &:nth-child(3) { + animation-delay: -0.108s; - &:after { - top: 71px; - left: 48px; - } - } + &:after { + top: 71px; + left: 48px; + } + } - &:nth-child(4) { - animation-delay: -0.144s; + &:nth-child(4) { + animation-delay: -0.144s; - &:after { - top: 72px; - left: 40px; - } - } + &:after { + top: 72px; + left: 40px; + } + } - &:nth-child(5) { - animation-delay: -0.18s; + &:nth-child(5) { + animation-delay: -0.18s; - &:after { - top: 71px; - left: 32px; - } - } + &:after { + top: 71px; + left: 32px; + } + } - &:nth-child(6) { - animation-delay: -0.216s; + &:nth-child(6) { + animation-delay: -0.216s; - &:after { - top: 68px; - left: 24px; - } - } + &:after { + top: 68px; + left: 24px; + } + } - &:nth-child(7) { - animation-delay: -0.252s; + &:nth-child(7) { + animation-delay: -0.252s; - &:after { - top: 63px; - left: 17px; - } - } + &:after { + top: 63px; + left: 17px; + } + } - &:nth-child(8) { - animation-delay: -0.288s; + &:nth-child(8) { + animation-delay: -0.288s; - &:after { - top: 56px; - left: 12px; - } - } - } + &:after { + top: 56px; + left: 12px; + } + } + } } @keyframes lds-roller { - 0% { - transform: rotate(0deg); - } + 0% { + transform: rotate(0deg); + } - 100% { - transform: rotate(360deg); - } + 100% { + transform: rotate(360deg); + } } //* Scanner page #scanner { - // width: 100vw; - width: 100%; - max-width: 500px; - margin-left: auto; - margin-right: auto; + // width: 100vw; + width: 100%; + max-width: 500px; + margin-left: auto; + margin-right: auto; - @include respond-above(sm) { - margin-top: 50px; - } + @include respond-above(sm) { + margin-top: 50px; + } } //* aPanel .alogin-page { - .panel-login { - padding-top: 100px; - padding-bottom: 100px; - display: flex; - align-items: center; - justify-content: center; + .panel-login { + padding-top: 100px; + padding-bottom: 100px; + display: flex; + align-items: center; + justify-content: center; - form { - display: flex; - flex-direction: column; - gap: 10px; - } - } + form { + display: flex; + flex-direction: column; + gap: 10px; + } + } } //* Tickets orders #tickets-orders { - padding-top: 100px; - padding-bottom: 100px; + padding-top: 100px; + padding-bottom: 100px; - h1 { - margin-bottom: 20px; - } + h1 { + margin-bottom: 20px; + } - table { - margin-bottom: 10px; - background: $cWhite; - border-bottom: none; + table { + margin-bottom: 10px; + background: $cWhite; + border-bottom: none; - thead { - tr { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); + thead { + tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); - th { - padding: 15px 10px; - font-size: 16px; - font-weight: 600; - border-bottom: none; - } - } - } + th { + padding: 15px 10px; + font-size: 16px; + font-weight: 600; + border-bottom: none; + } + } + } - tbody { - tr { - td { - font-size: 14px; + tbody { + tr { + td { + font-size: 14px; - &.edit-btn { - a { - margin-left: 20px; - } + &.edit-btn { + a { + margin-left: 20px; + } - i { - color: $base-font-color; - font-size: 20px; - transition: color 200ms ease; + i { + color: $base-font-color; + font-size: 20px; + transition: color 200ms ease; - &:hover { - color: $cGreen; - } - } - } - } - } - } + &:hover { + color: $cGreen; + } + } + } + } + } + } - tr { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); + tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); - td { - padding: 15px 10px; - border-bottom: none; - } - } - } + td { + padding: 15px 10px; + border-bottom: none; + } + } + } - #myTable_wrapper { - .row { - &:nth-child(1) { - margin-bottom: 10px; - } + #myTable_wrapper { + .row { + &:nth-child(1) { + margin-bottom: 10px; + } - &:nth-child(3) { - } - } + &:nth-child(3) {} + } - #myTable_length { - label { - display: flex; - flex-direction: row; - align-items: center; - gap: 15px; + #myTable_length { + label { + display: flex; + flex-direction: row; + align-items: center; + gap: 15px; - select { - min-width: 70px; - background-color: $cWhite; - } - } - } + select { + min-width: 70px; + background-color: $cWhite; + } + } + } - #myTable_filter { - label { - display: flex; - flex-direction: row; - align-items: center; - gap: 15px; + #myTable_filter { + label { + display: flex; + flex-direction: row; + align-items: center; + gap: 15px; - input { - margin-left: 0; - background: $cWhite; - } - } - } + input { + margin-left: 0; + background: $cWhite; + } + } + } - #myTable_paginate { - .pagination { - display: flex; - align-items: center; - column-gap: 5px; + #myTable_paginate { + .pagination { + display: flex; + align-items: center; + column-gap: 5px; - margin-bottom: 0; + margin-bottom: 0; - .paginate_button { - padding: 0; - border: none; + .paginate_button { + padding: 0; + border: none; - &.active { - a { - color: $cWhite; - background: $cGreen; - } - } + &.active { + a { + color: $cWhite; + background: $cGreen; + } + } - &:hover { - border: none; - background: none; - } + &:hover { + border: none; + background: none; + } - &.disabled > .page-link { - color: $cGray; - } + &.disabled>.page-link { + color: $cGray; + } - .page-link { - color: #000; - } + .page-link { + color: #000; + } - a { - border: none; - } - } - } - } - } + a { + border: none; + } + } + } + } + } } //* Order data #order-data { - padding: 100px 0; + padding: 100px 0; - .order-data { - .mini-nav-menu { - margin-bottom: 30px; + .order-data { + .mini-nav-menu { + margin-bottom: 30px; - a { - &:hover { - color: $base-font-color; - } - } - } + a { + &:hover { + color: $base-font-color; + } + } + } - .box_01 { - margin-bottom: 24px; + .box_01 { + margin-bottom: 24px; - table { - width: 100%; - background: $cWhite; + table { + width: 100%; + background: $cWhite; - tr { - text-align: center; - border-top: 1px solid rgba(0, 0, 0, 0.1); + tr { + text-align: center; + border-top: 1px solid rgba(0, 0, 0, 0.1); - th { - padding: 8px; + th { + padding: 8px; - h3 { - font-size: 1.25rem; - font-weight: 800; - } - } + h3 { + font-size: 1.25rem; + font-weight: 800; + } + } - td { - padding: 8px; + td { + padding: 8px; - .btn_t1 { - width: 30px; - height: 30px; - border-radius: 50%; - border: none; - transition: 150ms ease-in-out; - } + .btn_t1 { + width: 30px; + height: 30px; + border-radius: 50%; + border: none; + transition: 150ms ease-in-out; + } - .btn_t1.add { - &:hover { - color: $cGreen; - border-color: $cGreen; - } - } + .btn_t1.add { + &:hover { + color: $cGreen; + border-color: $cGreen; + } + } - .btn_t1.subtract { - &:hover { - color: $cOrange; - border-color: $cOrange; - } - } + .btn_t1.subtract { + &:hover { + color: $cOrange; + border-color: $cOrange; + } + } - .btn_t1.delete { - border: none; + .btn_t1.delete { + border: none; - &:hover { - color: $cRed; - } - } - } - } - } + &:hover { + color: $cRed; + } + } + } + } + } - .btn-save-new-list { - display: block; - margin: 30px auto 0; - } - } + .btn-save-new-list { + display: block; + margin: 30px auto 0; + } + } - .box_02 { - .order-detale-info { - .order-detale-info__wrapper { - background: $cWhite; - padding: 30px; + .box_02 { + .order-detale-info { + .order-detale-info__wrapper { + background: $cWhite; + padding: 30px; - h2 { - font-size: 1.5rem; - margin-bottom: 20px; - } + h2 { + font-size: 1.5rem; + margin-bottom: 20px; + } - .form-group { - .col-form-label { - font-weight: 600; - } - } - } - } + .form-group { + .col-form-label { + font-weight: 600; + } + } + } + } - .order-summary { - .order-summary__wrapper { - text-align: center; - background: #fff; - padding: 30px; - height: 100%; + .order-summary { + .order-summary__wrapper { + text-align: center; + background: #fff; + padding: 30px; + height: 100%; - h2 { - font-size: 1.5rem; - margin-bottom: 20px; - } + h2 { + font-size: 1.5rem; + margin-bottom: 20px; + } - p { - font-size: 1.5rem; - font-weight: 800; - } - } - } - } - } + p { + font-size: 1.5rem; + font-weight: 800; + } + } + } + } + } } //* Regulamin #regulamin_box { - margin-top: 80px; - margin-bottom: 50px; + margin-top: 80px; + margin-bottom: 50px; - .regulamin_box__wrapper { - h5 { - font-size: 26px; - margin: 0; - color: #333; - text-align: center; - margin-bottom: 20px; - } + .regulamin_box__wrapper { + h5 { + font-size: 26px; + margin: 0; + color: #333; + text-align: center; + margin-bottom: 20px; + } - h6 { - font-size: 22px; - margin-bottom: 10px; - text-transform: uppercase; - font-family: 'Lato', sans-serif; - font-weight: 800; - letter-spacing: 0.8px; - color: #333; - text-align: center; - } + h6 { + font-size: 22px; + margin-bottom: 10px; + text-transform: uppercase; + font-family: 'Lato', sans-serif; + font-weight: 800; + letter-spacing: 0.8px; + color: #333; + text-align: center; + } - .regulamin__box { - margin-bottom: 50px; + .regulamin__box { + margin-bottom: 50px; - h5 { - text-align: center; - } - } - } + h5 { + text-align: center; + } + } + } } .sale-box { - h2 { - text-align: center; - font-size: 48px; - line-height: 43px; + h2 { + text-align: center; + font-size: 48px; + line-height: 43px; - span { - color: #74aa32; - font-weight: 700; - } - } + span { + color: #74aa32; + font-weight: 700; + } + } } #dateForm { - display: flex; - justify-content: center; - gap: 15px; - flex-wrap: wrap; + display: flex; + justify-content: center; + gap: 15px; + flex-wrap: wrap; - ._title { - width: 100%; - font-weight: 600; - font-size: 30px; - text-align: center; - } + ._title { + width: 100%; + font-weight: 600; + font-size: 30px; + text-align: center; + } } .basket_protection { - display: grid; - grid-template-columns: 1fr; - justify-content: flex-end; - margin: 10px auto; - text-align: right; + display: grid; + grid-template-columns: 1fr; + justify-content: flex-end; + margin: 10px auto; + text-align: right; - p { - margin-bottom: 0; - font-style: italic; - } + p { + margin-bottom: 0; + font-style: italic; + } } + +@keyframes cartBounce { + + 0%, + 100% { + transform: translateX(0); + } + + 25% { + transform: translateX(-8px) scale(1.1); + } + + 50% { + transform: translateX(4px) scale(1.05); + } + + 75% { + transform: translateX(-2px); + } +} \ No newline at end of file diff --git a/libraries/license.txt b/libraries/license.txt deleted file mode 100644 index 16949b5..0000000 --- a/libraries/license.txt +++ /dev/null @@ -1,316 +0,0 @@ - -RedBeanPHP -Written by Gabor de Mooij - -RedBean is DUAL Licensed New BSD and GPLv2. You may choose the license that fits -best for your project. - -New BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of RedBeanPHP nor the -names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - - -THIS SOFTWARE IS PROVIDED BY GABOR DE MOOIJ ''AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL GABOR DE MOOIJ BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -RedBeanPHP is Written by Gabor de Mooij (G.J.G.T de Mooij) Copyright (c) 2018. - - -GPLv2 LICENSE - - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. diff --git a/load_prices.php b/load_prices.php new file mode 100644 index 0000000..bc69ca1 --- /dev/null +++ b/load_prices.php @@ -0,0 +1,29 @@ +query('SELECT * FROM ticket_prices'); +$_dbPrices = []; +if ($_dbStmt) { + foreach ($_dbStmt->fetchAll(\PDO::FETCH_ASSOC) as $_row) { + $_dbPrices[$_row['ticket_id']] = $_row; + } +} + +foreach ($settings['tickets'] as $tid => &$_ticket) { + if (isset($_dbPrices[$tid])) { + $_r = $_dbPrices[$tid]; + $_ticket['price'] = (float) ($_r['price'] ?? 0); + $_ticket['price_weekend'] = (float) ($_r['price_weekend'] ?? 0); + $_ticket['dynamic_prices'] = [ + 'day0' => (float) ($_r['dynamic_price_day0'] ?? 0), + 'day1_2' => (float) ($_r['dynamic_price_day1_2'] ?? 0), + 'day3_7' => (float) ($_r['dynamic_price_day3_7'] ?? 0), + ]; + } else { + $_ticket['price'] = $_ticket['price'] ?? 0; + $_ticket['price_weekend'] = $_ticket['price_weekend'] ?? 0; + $_ticket['dynamic_prices'] = $_ticket['dynamic_prices'] ?? ['day0' => 0, 'day1_2' => 0, 'day3_7' => 0]; + } +} +unset($_ticket, $_dbStmt, $_dbPrices, $_r); diff --git a/templates/admin-panel/settings.php b/templates/admin-panel/settings.php new file mode 100644 index 0000000..4ccb197 --- /dev/null +++ b/templates/admin-panel/settings.php @@ -0,0 +1,54 @@ +enable_sell; +?> +
+
+
+

Ustawienia

+
+
+ > + +
+
+ +
+
+
+ + diff --git a/templates/admin-panel/tickets.php b/templates/admin-panel/tickets.php new file mode 100644 index 0000000..c400d91 --- /dev/null +++ b/templates/admin-panel/tickets.php @@ -0,0 +1,132 @@ +tickets; + $exclude = ['ticket-protection', 'gift-price']; + + // Sortowanie: pary ulgowy/normalny obok siebie + $seen_bases = []; + foreach ($tickets as $tid => $t) { + if (in_array($tid, $exclude)) continue; + $base = preg_replace('/-(ulgowy|normalny)$/', '', $tid); + if (!in_array($base, $seen_bases)) { + $seen_bases[] = $base; + } + } + $ordered = []; + foreach ($seen_bases as $base) { + if (isset($tickets[$base . '-ulgowy'])) + $ordered[$base . '-ulgowy'] = $tickets[$base . '-ulgowy']; + if (isset($tickets[$base . '-normalny'])) + $ordered[$base . '-normalny'] = $tickets[$base . '-normalny']; + if (!isset($tickets[$base . '-ulgowy']) && !isset($tickets[$base . '-normalny']) && isset($tickets[$base])) + $ordered[$base] = $tickets[$base]; + } + $tickets = $ordered; +?> +
+
+
+

Cennik biletow

+
+ + + + + + + + + + + + + $t) : ?> + + + + + + + + + + + +
BiletCena PN-PTCena SB-NDDoplata: dzisDoplata: 1-2 dniDoplata: 3-7 dni
+ +
+
+ + + + + + + + + +
+
+ tickets['ticket-protection'] ?? null; ?> + +

Doplaty

+
+ +
+ +
+
+ + + +
+
+
+ + diff --git a/templates/site/layout-logged.php b/templates/site/layout-logged.php index 188075e..8ba2517 100644 --- a/templates/site/layout-logged.php +++ b/templates/site/layout-logged.php @@ -69,6 +69,16 @@ Lista zamówień +
  • + + Cennik + +
  • +
  • + + Ustawienia + +
  • diff --git a/templates/tickets/basket-form.php b/templates/tickets/basket-form.php index 0ec6944..c9470c0 100644 --- a/templates/tickets/basket-form.php +++ b/templates/tickets/basket-form.php @@ -19,7 +19,12 @@ cart as $ticket_id => $combinations) : ?> $value) : ?> - settings['tickets'][$ticket_id]['name']; ?> (x) + + settings['tickets'][$ticket_id]['name']; ?> (x) + +
    + + zł diff --git a/templates/tickets/basket-view.php b/templates/tickets/basket-view.php index d7f0691..356fc38 100644 --- a/templates/tickets/basket-view.php +++ b/templates/tickets/basket-view.php @@ -35,7 +35,12 @@ cart as $ticket_id => $combinations) : ?> $value) : ?> - settings['tickets'][$ticket_id]['name']; ?> (x) + + settings['tickets'][$ticket_id]['name']; ?> (x) + +
    + + zł diff --git a/templates/tickets/main-view.php b/templates/tickets/main-view.php index 0767b57..2e93d30 100644 --- a/templates/tickets/main-view.php +++ b/templates/tickets/main-view.php @@ -7,22 +7,25 @@ if (isset($_POST['selected_date'])) { $interval = $today->diff($selected); $days_diff = (int)$interval->format('%r%a'); - function date_price($item, $days_diff) { + $is_weekend = in_array($selected->format('N'), ['6', '7']); + + function date_price($item, $days_diff, $is_weekend = false) { + $base = $is_weekend ? ($item['price_weekend'] ?? $item['price']) : $item['price']; + if($days_diff == 0) { - $price = $item['price'] + $item['dynamic_prices']['day0']; + $price = $base + $item['dynamic_prices']['day0']; return $price . ' zł'; } elseif ($days_diff == 1 || $days_diff == 2) { - $price = $item['price'] + $item['dynamic_prices']['day1_2']; + $price = $base + $item['dynamic_prices']['day1_2']; return $price . ' zł'; } elseif ($days_diff >= 3 && $days_diff <= 7) { - $price = $item['price'] + $item['dynamic_prices']['day3_7']; + $price = $base + $item['dynamic_prices']['day3_7']; return $price . ' zł'; } else { - $price = $item['price']; - return $price . ' zł'; + return $base . ' zł'; } } } @@ -46,72 +49,53 @@ if (isset($_POST['selected_date'])) {

    Do 31 marca ceny na wszystkie bilety -20%

    --> - + + settings['bilety-ulgowe']; + $normalne = $this->settings['bilety-normalne']; + $count = max(count($ulgowe), count($normalne)); + ?>
    -

    Bilet ulgowy

    -

    do 140cm wzrostu

    +

    Bilety indywidualne

    +

    ulgowy (do 140cm) / normalny (od 140cm)

    - settings['bilety-ulgowe'] as $key => $item) : ?> -
    -
    -

    settings['tickets'][$item]['name'])[0]; ?>

    -

    bilet całodniowy

    - - settings['tickets'][$item]['alert']) : ?> -

    settings['tickets'][$item]['alert']; ?>

    - + + +
    +
    +

    settings['tickets'][$item]['name']; ?>

    +

    bilet całodniowy

    + settings['tickets'][$item]['alert']) : ?> +

    settings['tickets'][$item]['alert']; ?>

    + +
    +

    + settings['tickets'][$item], $days_diff, $is_weekend); ?> +

    +
    + +
    -

    - settings['tickets'][$item], - $days_diff - ); - ?> -

    - -
    - - 1x - + + +
    +
    +

    settings['tickets'][$item]['name']; ?>

    +

    bilet całodniowy

    + settings['tickets'][$item]['alert']) : ?> +

    settings['tickets'][$item]['alert']; ?>

    + +
    +

    + settings['tickets'][$item], $days_diff, $is_weekend); ?> +

    +
    + +
    -
    - -
    - - -
    -
    -

    Bilet normalny

    -

    od 140cm wzrostu

    -
    - - settings['bilety-normalne'] as $key => $item) : ?> -
    -
    -

    settings['tickets'][$item]['name'])[0]; ?>

    -

    bilet całodniowy

    - - settings['tickets'][$item]['alert']) : ?> -

    settings['tickets'][$item]['alert']; ?>

    - -
    -

    - settings['tickets'][$item], - $days_diff - ); - ?> -

    -
    - - 1x - -
    -
    - + +
    = DateTime::createFromFormat('d-m-Y', '28-06-2025')): ?> @@ -139,9 +123,7 @@ if (isset($_POST['selected_date'])) { ?>
    - - 1x - +
    @@ -169,9 +151,7 @@ if (isset($_POST['selected_date'])) { ?>
    - - 1x - +
    @@ -193,15 +173,14 @@ if (isset($_POST['selected_date'])) { settings['tickets'][$item], - $days_diff + $days_diff, + $is_weekend ); ?>
    - - 1x - -
    + + @@ -305,6 +284,7 @@ $(function() { $('body').on('click', '.add', function() { var ticket_id = $(this).attr('ticket_id'); var date = $('#flatpickr').val(); + var $btn = $(this); $.ajax({ type: 'POST', @@ -319,33 +299,14 @@ $(function() { response = jQuery.parseJSON(data); $('.shopping-cart-container').html(response.shopping_cart); - // if (!$('.shopping-cart').hasClass('shopping-cart-active')) - // $('.shopping-cart').addClass('shopping-cart--active'); - } - }); + // animacja przycisku + $btn.addClass('added'); + setTimeout(function() { $btn.removeClass('added'); }, 600); - }); - //subtract - $('body').on('click', '.subtract', function() { - var ticket_id = $(this).attr('ticket_id'); - var diffdays = $(this).attr('diffdays'); - console.log(diffdays); - - - $.ajax({ - type: 'POST', - cache: false, - url: '/tickets/ticket_subtract/', - data: { - ticket_id: ticket_id, - diffdays: diffdays - }, - beforeSend: function() {}, - success: function(data) { - response = jQuery.parseJSON(data); - $('.shopping-cart-container').html(response.shopping_cart); - // if (response.cart_count = 0) - // $('.shopping-cart').removeClass('shopping-cart--active'); + // bounce koszyka + var $cartBtn = $('.mobile-cart-btn'); + $cartBtn.addClass('cart-bounce'); + setTimeout(function() { $cartBtn.removeClass('cart-bounce'); }, 600); } }); diff --git a/upgrade.php b/upgrade.php new file mode 100644 index 0000000..9fddab3 --- /dev/null +++ b/upgrade.php @@ -0,0 +1,49 @@ + 'mysql', + 'database_name' => $database['name'], + 'server' => $database['host'], + 'username' => $database['user'], + 'password' => $database['password'], + 'charset' => 'utf8' +]); + +$migrations = [ + + 'ticket_prices' => "CREATE TABLE IF NOT EXISTS ticket_prices ( + ticket_id VARCHAR(100) PRIMARY KEY, + price DECIMAL(10,2) DEFAULT NULL, + price_weekend DECIMAL(10,2) DEFAULT NULL, + dynamic_price_day0 DECIMAL(10,2) DEFAULT NULL, + dynamic_price_day1_2 DECIMAL(10,2) DEFAULT NULL, + dynamic_price_day3_7 DECIMAL(10,2) DEFAULT NULL, + updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8", + + 'ticket_prices_add_price_weekend' => "ALTER TABLE ticket_prices ADD COLUMN IF NOT EXISTS price_weekend DECIMAL(10,2) DEFAULT NULL AFTER price", + +]; + +$ok = 0; +$errors = 0; + +foreach ($migrations as $name => $sql) { + $result = $mdb->query($sql); + if ($result !== false) { + echo "[OK] $name\n"; + $ok++; + } else { + $err = $mdb->error(); + echo "[BLAD] $name: " . (is_array($err) ? end($err) : $err) . "\n"; + $errors++; + } +} + +echo "\nGotowe: $ok OK, $errors bledow.\n";