:root { --cream:#f4ede3; --paper:#faf6ee; --ink:#241c16; --sepia:#2b211b; --gold:#a77d4d; --light-gold:#d7b98c; --muted:#75695e; --line:#d6c8b5; --serif:'Cormorant Garamond',Georgia,serif; --sans:Manrope,Arial,sans-serif; }
    *,*::before,*::after { box-sizing:border-box; }
    html { scroll-behavior:smooth; overflow-x:clip; }
    body { margin:0; overflow-x:clip; background:var(--cream); color:var(--ink); font:14px/1.7 var(--sans); }
    body.modal-open { overflow:hidden; }
    [hidden] { display:none!important; }
    button,input,textarea,select { font:inherit; }
    button { cursor:pointer; }
    a { color:inherit; }
    a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
    .wrap { width:min(1290px,calc(100% - 80px)); margin:auto; }
    .eyebrow { display:inline-flex; align-items:center; gap:13px; color:var(--gold); font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
    .eyebrow::before { content:''; width:26px; height:1px; background:currentColor; }
    .eyebrow.light { color:#e1c59e; }
    h1,h2,h3,p { margin-top:0; }
    h1,h2,h3 { font-family:var(--serif); font-weight:400; }
    h2 { font-size:clamp(48px,5.6vw,84px); letter-spacing:-.048em; line-height:.98; }
    p { color:var(--muted); }
    .pill { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:53px; padding:15px 27px; border:1px solid var(--gold); border-radius:100px; background:var(--gold); color:#fff8ed; font:700 10px/1.3 var(--sans); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; transition:background .2s,transform .2s,box-shadow .2s; box-shadow:0 12px 28px #21150e2b; }
    .pill:hover { background:#8d663c; transform:translateY(-2px); box-shadow:0 16px 35px #21150e36; }
    .text-link { display:inline-flex; align-items:center; gap:12px; border-bottom:1px solid currentColor; padding:7px 0; text-decoration:none; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
    .site-header { position:relative; z-index:40; background:#f8f1e7; border-bottom:1px solid #d4c2aa; }
    .header-inner { width:min(1350px,calc(100% - 70px)); min-height:86px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .brand { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; text-decoration:none; }
    .brand img { width:60px; height:60px; border-radius:50%; box-shadow:0 2px 9px #38241438; }
    .brand span { font:500 17px/.88 var(--serif); letter-spacing:.08em; text-transform:uppercase; }
    .brand small { display:block; font:inherit; }
    .desktop-nav { display:flex; align-items:center; gap:clamp(18px,2.5vw,42px); }
    .desktop-nav a { text-decoration:none; font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; }
    .desktop-nav a:hover { color:var(--gold); }
    .header-cta { min-height:40px; padding:12px 20px; font-size:8px; white-space:nowrap; box-shadow:none; }
    .menu-toggle { display:none; border:0; background:transparent; color:var(--ink); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
    .mobile-nav { display:none; }
    .hero { min-height:690px; position:relative; display:flex; align-items:center; color:#fff8ef; background:#261d17 url('images/hero-woman.webp') center 44%/cover no-repeat; overflow:hidden; }
    .hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#120f0dd9 0%,#18120ed1 25%,#1c160ea3 47%,#1e160d2b 78%,#1e160d10 100%); }
    .hero::after { content:''; position:absolute; inset:13px; border:1px solid #f8e7ca33; pointer-events:none; }
    .hero-inner { position:relative; z-index:1; padding:86px 0 90px; }
    .hero-copy { max-width:610px; }
    .hero-brand-logo { display:block; width:140px; height:140px; margin:0 0 20px; border-radius:50%; box-shadow:0 13px 35px #0806048c; }
    .hero h1 { font-size:clamp(70px,7.8vw,116px); line-height:.83; letter-spacing:-.062em; margin:24px 0 26px; }
    .hero h1 em { display:block; font-weight:400; color:#f2d7b0; }
    .hero-copy p { max-width:390px; color:#eadbca; font-size:15px; line-height:1.7; }
    .hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:30px; }
    .hero .text-link { color:#f6e3c8; }
    .hero-scroll { position:absolute; right:40px; bottom:37px; z-index:1; color:#f0dfcb; font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; writing-mode:vertical-rl; }
    .occasions { padding:105px 0 116px; background:var(--paper); }
    .section-heading { text-align:center; margin-bottom:49px; }
    .section-heading h2 { margin:20px auto 0; }
    .occasion-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
    .occasion-card { position:relative; min-height:382px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; isolation:isolate; color:#fff7ee; text-decoration:none; background:#403026; }
    .occasion-card::before { content:''; position:absolute; z-index:-2; inset:0; background:var(--photo) center/cover no-repeat; transition:transform .5s; }
    .occasion-card::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,#0c0b09e8 0%,#17110bc0 27%,transparent 72%); }
    .occasion-card:hover::before,.occasion-card:focus-visible::before { transform:scale(1.055); }
    .card-number { position:absolute; top:19px; left:20px; font-size:10px; letter-spacing:.14em; color:#fff4e6; }
    .occasion-card h3 { font-size:clamp(38px,3.9vw,58px); line-height:.9; letter-spacing:-.035em; margin:0 18px 7px; }
    .occasion-thanks h3 { font-size:clamp(31px,3vw,42px); }
    .occasion-card p { max-width:230px; min-height:44px; color:#f3e3d1; margin:0 52px 20px 20px; font-size:11px; line-height:1.45; }
    .card-arrow { position:absolute; right:18px; bottom:21px; display:grid; place-items:center; width:29px; height:29px; border:1px solid #f8e8d6a6; border-radius:50%; font-size:17px; }
    .occasion-wedding { --photo:url('images/zachod-wspomnien.webp'); }
    .occasion-anniversary { --photo:url('images/anniversary.webp'); }
    .occasion-birthday { --photo:url('images/birthday.webp'); }
    .occasion-thanks { --photo:url('images/thank-you.webp'); }
    .process { position:relative; padding:108px 0; color:#fff5e8; background:#1c1612 url('images/piano-process.webp') center/cover no-repeat; isolation:isolate; }
    .process::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#100d0add,#160f0cb8 45%,#130e0bd9 100%); }
    .process-grid { display:grid; grid-template-columns:1fr 1fr; gap:min(8vw,110px); align-items:center; }
    .process h2 { max-width:600px; margin:22px 0 19px; }
    .process p { color:#d6c8b8; max-width:390px; }
    .process-steps { border-left:1px solid #c2a7836e; margin-left:21px; }
    .process-step { position:relative; padding:0 0 28px 44px; }
    .process-step:last-child { padding-bottom:0; }
    .process-step b { position:absolute; top:0; left:-22px; display:grid; place-items:center; width:43px; height:43px; border:1px solid #cbb18e; border-radius:50%; background:#2c2119; color:#e8d0ad; font:400 15px var(--serif); }
    .process-step h3 { margin:0 0 3px; font-size:29px; line-height:1; }
    .process-step p { max-width:370px; margin:0; font-size:11px; line-height:1.6; }
    .samples { padding:110px 0 120px; background:var(--paper); }
    .samples .section-heading { margin-bottom:40px; }
    .samples-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
    .sample { min-width:0; background:#f4e9da; border:1px solid #e0cfb8; box-shadow:0 13px 30px #5c3d1f12; }
    .sample-cover { position:relative; height:230px; background:var(--photo) center/cover no-repeat; }
    .sample-cover::before { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#1a120f6b,transparent 70%); }
    .sample:nth-child(1) .sample-cover { --photo:url('images/slub-zachod-v2.webp'); }
    .sample:nth-child(2) .sample-cover { --photo:url('images/przyjecie-slubne-v2.webp'); }
    .wedding-page .sample:nth-child(3) .sample-cover { --photo:url('images/ania-michal-obraczki.webp'); }
    .sample-play { position:absolute; left:20px; bottom:-20px; display:grid; place-items:center; width:43px; height:43px; border:1px solid #c8ab82; border-radius:50%; background:#fff9ef; color:var(--ink); font-size:17px; box-shadow:0 5px 14px #23170d33; }
    .sample-body { padding:33px 22px 18px; }
    .sample h3 { min-height:65px; font-size:clamp(29px,3vw,41px); line-height:.94; letter-spacing:-.032em; margin:0 0 16px; }
    .sample-seek { display:block; width:100%; height:28px; margin:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; touch-action:none; }
    .sample-seek::-webkit-slider-runnable-track { height:2px; background:#b89d7e; }
    .sample-seek::-moz-range-track { height:2px; background:#b89d7e; }
    .sample-seek::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:14px; height:14px; margin-top:-6px; border:0; border-radius:50%; background:var(--gold); }
    .sample-seek::-moz-range-thumb { width:14px; height:14px; border:0; border-radius:50%; background:var(--gold); }
    .sample audio { width:100%; margin-top:5px; }
    .js-ready .sample audio { display:none; }
    .film { padding:100px 0; background:#e9dbca; }
    .film-grid { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:7vw; }
    .film h2 { margin:19px 0 22px; }
    .film p { max-width:390px; }
    .film-cover { position:relative; display:block; width:100%; min-height:400px; border:0; padding:0; overflow:hidden; color:white; background:#544334 url('images/wesele-wspomnienia.webp') center/cover no-repeat; text-align:left; }
    .film-cover::before { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#1c1711bc,transparent 60%); }
    .film-cover::after { content:''; position:absolute; inset:12px; border:1px solid #f4dcb875; pointer-events:none; }
    .film-play { position:absolute; top:50%; left:50%; display:grid; place-items:center; width:86px; height:86px; transform:translate(-50%,-50%); border:1px solid #fff1d9; border-radius:50%; background:#fff9ec2a; backdrop-filter:blur(3px); font-size:30px; }
    .film-caption { position:absolute; bottom:27px; left:29px; font:400 42px/.95 var(--serif); }
    .film-time { position:absolute; bottom:31px; right:30px; font-size:10px; letter-spacing:.16em; }
    .pricing { padding:115px 0; background:var(--paper); }
    .pricing-head { display:grid; grid-template-columns:1fr .65fr; align-items:end; gap:40px; margin-bottom:53px; }
    .pricing-head h2 { margin:20px 0 0; max-width:760px; }
    .pricing-head p { max-width:320px; justify-self:end; margin-bottom:6px; }
    .price-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
    .price-card { padding:38px 40px 40px; background:#f1e5d6; border:1px solid #d8c3a9; }
    .price-card:nth-child(2) { background:#2c211b; color:#fff3e4; border-color:#9e7953; }
    .price-card .eyebrow { font-size:9px; }
    .price-card .eyebrow::before { display:none; }
    .price-card strong { display:block; margin:18px 0 10px; font:400 clamp(63px,7vw,96px)/.85 var(--serif); letter-spacing:-.05em; }
    .price-card p { min-height:46px; max-width:410px; margin:0 0 22px; }
    .price-card:nth-child(2) p { color:#d4c2ae; }
    .price-card ul { padding:18px 0 0; margin:0 0 25px; list-style:none; border-top:1px solid #bdab946e; }
    .price-card li { padding:8px 0 8px 23px; position:relative; font-size:12px; }
    .price-card li::before { content:'✦'; position:absolute; left:0; color:var(--gold); }
    .price-card:nth-child(2) li::before { color:#d7b98c; }
    .price-card .text-link { color:inherit; }
    .closing-banner { position:relative; padding:95px 0; color:#fff4e6; background:#251a15 url('images/zachod-wspomnien.webp') center 58%/cover no-repeat; }
    .closing-banner::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#140f0cde 0%,#1b130ebc 45%,#1b130e3d 100%); }
    .closing-inner { position:relative; }
    .closing-banner h2 { max-width:790px; margin:20px 0 27px; }
    .closing-banner h2 em { color:#edcfa1; font-weight:400; }
    .closing-banner .pill { margin-bottom:30px; }
    .closing-points { display:flex; flex-wrap:wrap; gap:15px 28px; margin:0; padding:0; list-style:none; color:#f0dcc0; font-size:10px; letter-spacing:.07em; }
    .closing-points li::before { content:'◇'; margin-right:8px; color:#e8bf84; }
    .contact { padding:112px 0 125px; background:#efe3d2; }
    .contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; align-items:start; }
    .contact h2 { margin:20px 0 20px; }
    .contact-intro { max-width:360px; }
    .contact-availability { margin:14px 0 0; color:#755f4a; font-size:12px; letter-spacing:.02em; }
    .contact-phone { display:inline-block; margin-top:20px; color:#755333; font-size:13px; }
    .contact-whatsapp { display:block; width:max-content; max-width:100%; margin-top:14px; color:#755333; font-size:13px; text-underline-offset:4px; }
    .story-form { background:#fffaf2; border:1px solid #cdb696; padding:36px; box-shadow:0 25px 50px #5a3b201c; }
    .form-help { margin:-8px 0 22px; color:#6f5d4a; font-size:12px; line-height:1.55; }
    .form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    .story-form label { display:block; margin:0 0 7px; color:#775a3a; font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
    .story-form select,.story-form input,.story-form textarea { width:100%; border:0; border-bottom:1px solid #cdbb9f; border-radius:0; background:transparent; color:var(--ink); padding:11px 0; outline:none; }
    .story-form select,.story-form input { min-height:42px; }
    .story-form textarea { min-height:105px; resize:vertical; }
    .story-form .field { margin-bottom:20px; }
    .story-form .pill { margin-top:3px; }
    .form-note { display:block; color:#806d58; font-size:10px; margin-top:14px; }
    footer { padding:48px 0 27px; background:#211a16; color:#d7c2a7; }
    .footer-top { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #b89b7755; padding-bottom:32px; }
    .footer-brand { display:flex; align-items:center; gap:11px; color:#fff2df; font:400 26px var(--serif); }
    .footer-brand img { width:72px; height:72px; border-radius:50%; }
    .footer-nav { display:flex; flex-wrap:wrap; gap:18px; }
    .footer-nav a { text-decoration:none; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
    .footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:24px; font-size:10px; letter-spacing:.08em; }
    .footer-bottom a { text-decoration:none; }
    .modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:45px; background:#100c0aec; }
    .modal-dialog { width:min(1100px,100%); position:relative; }
    .modal video { width:100%; max-height:82vh; display:block; background:black; }
    .modal-close { position:absolute; top:-48px; right:0; width:40px; height:40px; border:1px solid #f3e3ce; background:transparent; color:#f3e3ce; font-size:24px; }
    @media(max-width:1030px) {
      .desktop-nav { gap:16px; }
      .header-cta { display:none; }
      .occasion-card { min-height:330px; }
      .occasion-card h3 { font-size:38px; }
    }
    @media(max-width:800px) {
      .wrap { width:min(100% - 38px,650px); }
      .header-inner { width:calc(100% - 38px); min-height:78px; }
      .desktop-nav { display:none; }
      .menu-toggle { display:block; }
      .mobile-nav { position:absolute; top:100%; left:0; right:0; padding:13px 19px 25px; background:#f8f1e7; box-shadow:0 20px 30px #27190d2b; }
      .mobile-nav.is-open { display:grid; }
      .mobile-nav a { padding:13px 0; border-bottom:1px solid var(--line); font:400 28px/1 var(--serif); text-decoration:none; }
      .hero { min-height:660px; }
      .hero-inner { padding:90px 0; }
      .hero-copy { max-width:510px; }
      .hero h1 { font-size:clamp(66px,11vw,88px); }
      .occasion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .occasion-card { min-height:350px; }
      .process-grid,.film-grid,.contact-grid { grid-template-columns:1fr; gap:48px; }
      .process { background-position:65% center; }
      .process-steps { margin-left:22px; }
      .samples-grid { grid-template-columns:1fr; max-width:510px; margin:auto; }
      .sample-cover { height:240px; }
      .sample h3 { min-height:0; }
      .pricing-head { grid-template-columns:1fr; gap:8px; }
      .pricing-head p { justify-self:start; }
      .film-cover { min-height:380px; }
    }
    @media(max-width:520px) {
      .brand img { width:48px; height:48px; }
      .brand span { font-size:14px; }
      .hero-brand-logo { width:106px; height:106px; margin-bottom:11px; }
      .hero { min-height:710px; align-items:end; background-position:66% top; }
      .hero::before { background:linear-gradient(0deg,#120e0ced 0%,#15100dde 39%,#17100e65 78%,#1e160d22 100%); }
      .hero-inner { padding:220px 0 62px; }
      .hero h1 { font-size:clamp(57px,14.5vw,76px); margin:19px 0 20px; }
      .hero-copy p { font-size:12px; max-width:320px; }
      .hero-actions { gap:12px 21px; }
      .hero .pill { padding:14px 18px; font-size:9px; }
      .hero-scroll { display:none; }
      .occasions,.samples,.pricing,.film,.contact { padding:76px 0 84px; }
      .process { padding:85px 0; }
      h2 { font-size:clamp(47px,12.5vw,66px); }
      .section-heading { margin-bottom:33px; }
      .occasion-grid { display:flex; gap:11px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; padding-bottom:10px; }
      .occasion-card { flex:0 0 min(76vw,290px); min-height:355px; scroll-snap-align:start; }
      .occasion-card h3 { font-size:39px; margin:0 17px 6px; }
      .occasion-thanks h3 { font-size:35px; }
      .occasion-card p { min-height:0; font-size:10px; margin:0 42px 19px 18px; }
      .card-arrow { right:11px; bottom:13px; width:24px; height:24px; font-size:13px; }
      .card-number { top:12px; left:12px; font-size:8px; }
      .process-grid { gap:34px; }
      .process-step h3 { font-size:26px; }
      .film-cover { min-height:290px; }
      .film-caption { font-size:33px; bottom:22px; left:20px; }
      .film-time { right:20px; bottom:23px; }
      .film-play { width:68px; height:68px; }
      .price-grid { grid-template-columns:1fr; }
      .price-card { padding:29px 26px; }
      .price-card p { min-height:0; }
      .closing-banner { padding:82px 0; background-position:58% center; }
      .closing-banner::before { background:linear-gradient(90deg,#140f0ce8,#1b130e9f); }
      .form-row { grid-template-columns:1fr; gap:0; }
      .story-form { padding:25px; }
      .footer-top,.footer-bottom { flex-direction:column; align-items:flex-start; }
      .modal { padding:14px; }
    }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .pill,.occasion-card::before { transition:none; } }

/* Two distinct paths within the established Poczuj Wspomnienia visual language. */
.desktop-nav a[aria-current="page"],.mobile-nav a[aria-current="page"] { color:var(--gold); }
.pill.outline { background:transparent; border-color:#e3c8a1; box-shadow:none; color:#f8ead6; }
.pill.outline:hover { background:#f6e2c51b; }
.pill.dark-outline { background:transparent; color:var(--ink); box-shadow:none; }
.pill.dark-outline:hover { background:#ecdcc6; }
.hero-home { min-height:670px; }
.hero-home .hero-copy { max-width:750px; }
.hero-home h1 { max-width:780px; font-size:clamp(67px,8.2vw,118px); }
.hero-home h1 em { display:inline; }
.hero-home .hero-copy p { max-width:520px; }
.hero-wedding { background-image:url('images/slub-zachod-v2.webp'); background-position:center 54%; min-height:670px; }
.hero-wedding::before { background:linear-gradient(90deg,#120d0be8 0%,#1b130ed2 42%,#1b130e52 75%,#1b130e20 100%); }
.hero-wedding .hero-copy { max-width:700px; }
.hero-wedding h1 { max-width:680px; }
.hero-wedding .hero-copy p { max-width:570px; }
.hero-gift { background-image:url('images/prezent-rodzinny-v2.webp'); background-position:center 45%; min-height:630px; }
.hero-gift::before { background:linear-gradient(90deg,#150e0ce8 0%,#1c140ebf 43%,#1c140e50 80%); }
.hero-gift .hero-copy { max-width:760px; }
.hero-gift .hero-copy p { max-width:490px; }
.hero-statement { display:block; max-width:565px; margin:18px 0 0; padding-left:19px; border-left:1px solid #e4c39b; color:#f4ddbb; font:400 clamp(20px,2.3vw,27px)/1.28 var(--serif); }
.hero-price { margin:14px 0 8px; color:#f5dfbd; font:400 68px/.95 var(--serif); }
.section-intro { max-width:650px; margin:18px auto 0; text-align:center; }
.routes { padding:105px 0 116px; background:var(--paper); }
.routes .section-heading { margin-bottom:46px; }
.route-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.route-card { position:relative; display:flex; min-height:620px; flex-direction:column; justify-content:flex-end; padding:39px 39px 38px; background:#382719; color:#fff5e9; isolation:isolate; overflow:hidden; text-decoration:none; }
.route-card::before { content:''; position:absolute; z-index:-2; inset:0; background:var(--photo) center/cover no-repeat; transition:transform .5s; }
.route-card::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,#140f0de9 0%,#1a120ec6 48%,#1d160d16 100%); }
.route-card:hover::before,.route-card:focus-visible::before { transform:scale(1.04); }
.route-wedding { --photo:url('images/slub-zachod-v2.webp'); }
.route-gift { --photo:url('images/prezent-rodzinny-v2.webp'); }
.route-kicker { color:#dfc19a; font-size:10px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.route-helper { color:#ead7bd; font-size:11px; margin-top:6px; }
.route-card h3 { max-width:575px; margin:17px 0 12px; font-size:clamp(37px,3.6vw,55px); line-height:.98; letter-spacing:-.035em; }
.route-card p { max-width:480px; margin:0 0 23px; color:#f1dfc9; font-size:13px; }
.route-cta { display:inline-flex; gap:17px; align-items:center; align-self:flex-start; padding-bottom:6px; border-bottom:1px solid #e3c39e; color:#f3dab9; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.choice-note { margin:19px 0 0; color:#766756; font-size:12px; text-align:center; }
.simple-process .process-grid { grid-template-columns:.85fr 1.15fr; }
.simple-process .process-steps { max-width:610px; }
.realizations { padding:105px 0 114px; background:var(--paper); }
.realizations .samples { padding:0; background:transparent; }
.realizations .samples .section-heading { margin-bottom:35px; }
.home-ending { padding:89px 0; }
.home-ending h2 { max-width:710px; }
.home-ending .text-link { color:#f5ddbc; margin-left:18px; }
.page-intro { padding:106px 0 55px; background:var(--paper); }
.page-intro .section-heading { margin:0; }
.page-intro .section-heading h2 { max-width:800px; }
.package-section { padding:70px 0 115px; background:var(--paper); }
.package-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.package { position:relative; min-width:0; background:#f0e5d7; border:1px solid #cdb694; padding:43px 42px 40px; box-shadow:0 19px 35px #4b2c1613; }
.package.premium { background:#2c211b; color:#fff4e7; border-color:#9e7953; margin-top:32px; }
.package-badge { position:absolute; top:-16px; left:31px; display:inline-block; padding:9px 15px; background:#a77d4d; color:#fff8ed; font-size:9px; font-weight:700; letter-spacing:.16em; }
.package h3 { font-size:clamp(45px,4vw,61px); letter-spacing:-.04em; line-height:.95; margin:12px 0 17px; }
.package-price { display:block; font:400 clamp(55px,5.2vw,75px)/.9 var(--serif); letter-spacing:-.05em; color:#7b5530; margin-bottom:19px; }
.premium .package-price { color:#e3c39b; }
.package > p { max-width:540px; min-height:100px; font-size:13px; }
.premium > p { color:#d5c4ae; }
.package-list { list-style:none; padding:0; margin:24px 0 31px; border-top:1px solid #b39b7c77; }
.package-list li { padding:10px 0 10px 24px; border-bottom:1px solid #b39b7c54; position:relative; font-size:12px; line-height:1.55; }
.package-list li::before { content:'✦'; position:absolute; left:0; color:#a77d4d; }
.premium .package-list li::before { color:#deb98a; }
.package-emphasis { font:400 30px/1.1 var(--serif); margin:0 0 20px; }
.premium .package-emphasis { color:#f4e0c3; }
.premium .package-subtext { min-height:0; color:#d4c0a5; font-size:12px; margin-top:-7px; }
.package .pill { min-height:49px; padding:13px 21px; }
.premium .pill { background:#b58c5b; border-color:#b58c5b; }
.package-includes { color:#e8cdaa; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.wedding-steps { padding:110px 0; background:#231b16 url('images/piano-process.webp') center/cover no-repeat; position:relative; isolation:isolate; color:#fff1df; }
.wedding-steps::before { content:''; position:absolute; z-index:-1; inset:0; background:#160f0cdb; }
.wedding-steps .section-heading h2 { max-width:760px; }
.steps-six { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#dfc6a05c; border:1px solid #dfc6a05c; }
.step-six { min-width:0; min-height:184px; padding:26px 30px 30px; background:#2b211cdb; }
.step-six span { color:#d9b688; font:400 28px var(--serif); }
.step-six h3 { margin:12px 0 0; font-size:clamp(26px,2.5vw,36px); line-height:1.05; overflow-wrap:break-word; }
.film-wedding { background:#e8d8c5; }
.film-wedding p { max-width:510px; }
.film-quote { color:#684b30; font:400 31px/1.08 var(--serif); margin-top:20px; }
.film-grid .film-cover { min-height:420px; }
.wedding-story-film { background:#281e18; color:#fff5e7; }
.wedding-story-film .eyebrow { color:#d6b88e; }
.wedding-story-film h2 { max-width:490px; }
.wedding-story-film p { color:#e2d1bb; font-size:15px; }
.film-duration { display:block; margin-top:25px; color:#d6b88e; font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.wedding-film-frame { margin:0; padding:12px; border:1px solid #ad8c66; background:#1b1410; box-shadow:0 24px 50px #0c09084d; }
.wedding-film-frame video { display:block; width:100%; aspect-ratio:720/406; background:#100c0a; }
.wedding-film-frame figcaption { padding:14px 6px 3px; color:#cdb18c; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.film-use { padding:76px 0 86px; background:#e8d8c5; text-align:center; }
.film-use h2 { max-width:780px; margin:15px auto 21px; }
.film-use p { max-width:690px; margin:0 auto; }
.film-use .film-quote { max-width:700px; margin:22px auto 0; }
.gift-occasions { padding:110px 0 115px; background:var(--paper); }
.gift-occasions .section-heading { margin-bottom:43px; }
.gift-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.gift-option { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:100px; border:1px solid #d6c3a8; padding:19px; background:#f2e7d8; color:var(--ink); text-align:left; font:400 clamp(23px,2.2vw,33px)/1 var(--serif); transition:background .2s,border-color .2s,transform .2s; }
.gift-option:hover,.gift-option[aria-pressed="true"] { background:#e3d1b7; border-color:#9f7850; transform:translateY(-2px); }
.gift-option span { color:#a77d4d; font:400 23px var(--serif); }
.gift-option:last-child { grid-column:span 2; }
.gift-process { padding:88px 0; }
.gift-process h2 { font-size:clamp(46px,5.2vw,75px); }
.gift-price-panel { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:33px 40px; margin-bottom:38px; background:#2b211b; color:#fff2e1; }
.gift-price-panel strong { font:400 60px/.9 var(--serif); color:#e3c69d; white-space:nowrap; }
.gift-price-panel h2 { margin:9px 0 0; font-size:42px; }
.contact-segment { padding-top:100px; }
.contact-segment .contact-grid { grid-template-columns:.72fr 1.28fr; }
.contact-segment .story-form h3 { font-size:39px; line-height:1; margin:0 0 23px; }
.contact-segment .story-form .field { margin-bottom:21px; }
.contact-segment .story-form .pill { width:100%; }
.home-contact { background:#efe3d2; padding:68px 0; }
.home-contact-inner { display:flex; justify-content:space-between; align-items:center; gap:32px; }
.home-contact h2 { font-size:clamp(42px,5vw,70px); margin:10px 0 0; }
.home-contact p { margin:0; }
.home-contact .contact-availability { margin-top:12px; }
.contact-actions { display:flex; gap:13px; flex-wrap:wrap; }
.contact-actions .pill { white-space:nowrap; }
.selection-summary { display:inline-block; margin:3px 0 18px; color:#735535; font-size:12px; }
.form-error { color:#8e3528; font-size:12px; margin:0 0 14px; }
.page-mark { color:#b38858; }
@media(max-width:1030px) {
  .desktop-nav { gap:16px; }
  .desktop-nav a { font-size:8px; letter-spacing:.08em; }
  .gift-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:800px) {
  .route-grid,.package-grid { grid-template-columns:1fr; }
  .route-card { min-height:580px; }
  .package.premium { margin-top:0; }
  .steps-six { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-contact-inner { align-items:flex-start; flex-direction:column; }
  .simple-process .process-grid { grid-template-columns:1fr; }
  .contact-segment .contact-grid { grid-template-columns:minmax(0,1fr); }
  .contact-segment .contact-grid > * { min-width:0; }
}
@media(max-width:520px) {
  .hero-home,.hero-wedding,.hero-gift { min-height:690px; }
  .hero-home h1 { font-size:clamp(59px,14vw,72px); }
  .hero-wedding h1,.hero-gift h1 { font-size:clamp(59px,14vw,74px); }
  .hero-wedding { background-position:62% center; }
  .hero-gift { background-position:63% top; }
  .hero-wedding::before,.hero-gift::before { background:linear-gradient(0deg,#120e0cf0 0%,#15100ddd 45%,#17100e63 84%); }
  .hero-statement { font-size:21px; }
  .hero-price { font-size:58px; }
  .routes,.realizations,.gift-occasions,.page-intro,.package-section,.wedding-steps { padding:76px 0 84px; }
  .page-intro { padding-bottom:15px; }
  .route-card { min-height:600px; padding:27px 23px; }
  .route-card h3 { font-size:42px; }
  .route-card p { font-size:12px; }
  .package { padding:36px 25px 31px; }
  .package > p { min-height:0; }
  .package h3 { font-size:49px; }
  .package-price { font-size:64px; }
  .steps-six { grid-template-columns:1fr 1fr; }
  .step-six { min-height:160px; padding:19px 16px; }
  .step-six h3 { font-size:clamp(19px,5.9vw,24px); line-height:1.12; }
  .step-six span { font-size:23px; }
  .gift-grid { gap:8px; }
  .gift-option { min-height:91px; padding:13px; font-size:24px; }
  .gift-option:last-child { grid-column:auto; }
  .gift-price-panel { align-items:flex-start; flex-direction:column; padding:28px; gap:11px; }
  .gift-price-panel h2 { font-size:38px; }
  .gift-price-panel strong { font-size:58px; }
  .film-grid .film-cover { min-height:300px; }
  .home-ending .text-link { margin:0 0 22px; }
  .home-ending .pill { margin-bottom:18px; }
}

/* Wedding photography and a lighter, celebratory gift experience. */
.wedding-intro { padding:95px 0 80px; }
.wedding-intro-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:7vw; align-items:center; }
.wedding-intro h2 { margin:20px 0 22px; }
.wedding-intro p { max-width:470px; font-size:14px; }
.wedding-intro figure { position:relative; margin:0; padding:12px; border:1px solid #c9b396; }
.wedding-intro figure img { display:block; width:100%; aspect-ratio:1.42; object-fit:cover; }
.wedding-intro figcaption { position:absolute; right:20px; bottom:20px; padding:8px 12px; background:#2b211bd9; color:#f7e5cd; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.wedding-page .wedding-steps { background-image:url('images/przyjecie-slubne-v2.webp'); }
.wedding-page .wedding-steps::before { background:#160f0ce6; }
.wedding-page .closing-banner { background-image:url('images/slub-zachod-v2.webp'); }
.wedding-page .closing-banner::before { background:linear-gradient(90deg,#140f0ceb 0%,#1b130ed0 44%,#1b130e24 100%); }
.gift-page { background:#f8efe3; }
.gift-page .site-header { background:#fff8ed; }
.gift-page .hero-gift::before { background:linear-gradient(90deg,#291b14ec 0%,#372219db 42%,#4b2c1a2d 83%); }
.gift-page .gift-occasions { background:#fff9f1; padding-top:104px; }
.gift-story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.gift-story-card { min-width:0; overflow:hidden; border:1px solid #ddc7a9; border-radius:8px; background:#f6ebdc; box-shadow:0 14px 30px #62422712; }
.gift-story-photo { min-height:265px; background:var(--photo) center/cover no-repeat; }
.gift-story-grandparents { --photo:url('images/dziadkowie-v2.webp'); }
.gift-story-eighteen { --photo:url('images/osiemnastka-v2.webp'); }
.gift-story-birthday { --photo:url('images/urodziny-brata-50-v3.webp'); }
.gift-story-parents { --photo:url('images/rodzice-v2.webp'); }
.gift-story-content { padding:26px 29px 29px; }
.gift-story-kicker { display:block; color:#9a7143; font-size:9px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.gift-story-card h3 { max-width:540px; min-height:82px; font-size:clamp(37px,3.5vw,49px); line-height:.98; letter-spacing:-.035em; margin:12px 0 23px; }
.gift-story-choices { display:flex; flex-wrap:wrap; gap:8px; }
.gift-story-choices button { border:1px solid #b99a72; border-radius:100px; padding:10px 15px; background:transparent; color:#533b29; font-size:10px; font-weight:700; letter-spacing:.05em; transition:background .2s,color .2s; }
.gift-story-choices button:hover,.gift-story-choices button[aria-pressed="true"] { background:#9e764a; color:#fff8ed; }
.gift-other { margin-top:54px; }
.gift-other .eyebrow { margin-bottom:20px; }
.gift-page .gift-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.gift-page .gift-option { min-height:85px; padding:14px; font-size:clamp(22px,2vw,29px); background:#f4e7d7; }
.gift-page .gift-option:last-child { grid-column:auto; }
.gift-page .gift-process { color:#2b211b; background:#e9d9c5; }
.gift-page .gift-process::before { background:radial-gradient(circle at 76% 20%,#fff9edaf 0%,transparent 43%),linear-gradient(90deg,#e8d9c4,#f5ead9); }
.gift-page .gift-process .eyebrow { color:#9d7447; }
.gift-page .gift-process p,.gift-page .gift-process .process-step p { color:#6a5848; }
.gift-page .gift-process .process-steps { border-color:#b58f63; }
.gift-page .gift-process .process-step b { background:#f6ead8; color:#795632; border-color:#b58f63; }
.gift-page .gift-realizations { background:#fff9f1; }
.gift-page .gift-realizations .sample { background:#f5e9d9; }
.gift-page .gift-realizations .sample:nth-child(1) .sample-cover { --photo:url('images/osiemnastka-v2.webp'); }
.gift-page .gift-realizations .sample:nth-child(2) .sample-cover { --photo:url('images/dziadkowie-v2.webp'); }
.gift-page .gift-realizations .sample:nth-child(3) .sample-cover { --photo:url('images/brat-50-probka-v3.webp'); }
.gift-page .contact { background:#f3e7d6; }
.gift-page .gift-price-panel { background:#d6b98f; color:#2b211b; }
.gift-page .gift-price-panel .eyebrow,.gift-page .gift-price-panel strong { color:#5d4128; }
.gift-page .story-form { border-color:#d6b98f; }
@media(max-width:1000px) {
  .gift-page .gift-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:800px) {
  .wedding-intro-grid { grid-template-columns:1fr; gap:36px; }
  .wedding-intro figure { max-width:650px; }
}
@media(max-width:640px) {
  .gift-page .hero-gift::before { background:linear-gradient(0deg,#291b14f2 0%,#312017e1 42%,#42281a53 88%); }
  .gift-page .hero-gift { background-position:63% top; }
  .route-wedding::before { background-position:80% center; }
  .route-gift::before { background-position:68% center; }
  .gift-story-grid { grid-template-columns:1fr; gap:14px; }
  .gift-story-photo { min-height:225px; }
  .gift-story-content { padding:22px; }
  .gift-story-card h3 { min-height:0; font-size:41px; margin-bottom:18px; }
  .gift-page .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gift-page .gift-option { font-size:23px; min-height:87px; }
  .gift-other { margin-top:42px; }
}
@media(max-width:520px) {
  .wedding-intro { padding:76px 0 45px; }
  .wedding-intro figure img { aspect-ratio:1.2; }
  .hero-wedding { background-position:76% center; }
  .gift-page .hero-gift { min-height:710px; }
  .gift-story-photo { min-height:205px; }
  .gift-story-card h3 { font-size:39px; }
  .gift-page .gift-occasions { padding-top:75px; }
  .gift-page .gift-option { padding:11px; font-size:22px; }
}

/* The homepage presents the two destinations at a glance. */
.home-page .hero-home { min-height:440px; }
.home-page .hero-home .hero-inner { padding:43px 0 49px; }
.home-page .hero-brand-logo { width:94px; height:94px; margin-bottom:11px; }
.home-page .hero-home h1 { font-size:clamp(60px,6.5vw,91px); line-height:.88; margin:12px 0 18px; }
.home-page .hero-home .hero-copy p { margin-bottom:0; }
.home-page .routes { padding:42px 0 92px; }
.home-page .routes .section-heading { margin-bottom:27px; }
.home-page .routes .section-heading h2 { margin-top:7px; font-size:clamp(40px,4.3vw,59px); }
.home-page .route-card { min-height:450px; justify-content:flex-start; padding:31px 33px; }
.home-page .route-card::after { background:linear-gradient(180deg,#130e0deb 0%,#19110dba 35%,#20140b14 77%,#110b086b 100%); }
.home-page .route-card h3 { max-width:540px; margin:0 0 8px; font-size:clamp(49px,5.1vw,74px); line-height:.92; }
.home-page .route-card p { max-width:500px; margin:0; color:#f3ddbf; font-size:14px; }
.home-page .route-cta { margin-top:auto; }

@media(max-width:800px) {
  .home-page .route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .home-page .route-card { min-height:355px; padding:25px; }
  .home-page .route-card h3 { font-size:clamp(39px,5.7vw,54px); }
}
@media(max-width:640px) {
  .home-page .hero-home { min-height:310px; align-items:center; background-position:66% center; }
  .home-page .hero-home::before { background:linear-gradient(90deg,#120e0cf2 0%,#15100dde 58%,#1d150d54 100%); }
  .home-page .hero-home .hero-inner { padding:28px 0 32px; }
  .home-page .hero-brand-logo { width:72px; height:72px; margin-bottom:9px; }
  .home-page .hero-home h1 { max-width:410px; margin:9px 0 12px; font-size:clamp(45px,10.7vw,64px); }
  .home-page .hero-home .hero-copy p { max-width:295px; font-size:12px; }
  .home-page .routes { padding:24px 0 62px; }
  .home-page .routes .section-heading { margin-bottom:17px; }
  .home-page .routes .section-heading h2 { font-size:38px; }
  .home-page .route-grid { gap:9px; }
  .home-page .route-card { min-height:272px; padding:18px 15px; }
  .home-page .route-card h3 { font-size:clamp(30px,7.8vw,40px); }
  .home-page .route-card p { font-size:10px; line-height:1.35; }
  .home-page .route-cta { gap:5px; font-size:8px; letter-spacing:.08em; }
  .home-page .route-wedding::before { background-position:70% center; }
  .home-page .route-gift::before { background-position:57% center; }
}
