:root { --ink:#25221e; --paper:#f4f1eb; --accent:#d7c8ba; --light:#fffdfa; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans", sans-serif; }
button, a { -webkit-tap-highlight-color:transparent; }
.site-header { align-items:center; display:grid; grid-template-columns:1fr auto 1fr; height:112px; left:0; padding:18px clamp(24px,4vw,66px); position:fixed; right:0; top:0; transition:background .35s ease, height .35s ease, box-shadow .35s ease; z-index:10; }
.site-header.scrolled { background:rgba(255,253,250,.95); box-shadow:0 1px 0 rgba(37,34,30,.07); height:106px; backdrop-filter:blur(10px); }
.brand { display:block; height:70px; overflow:hidden; position:relative; width:180px; }
.brand img { display:block; filter:invert(1); height:270px; left:-50px; position:absolute; top:-30px; transition:filter .35s ease; width:270px; }
.scrolled .brand img { filter:none; }
.main-nav { display:flex; gap:clamp(22px,2.7vw,48px); justify-content:center; }
.main-nav a, .hero-link, .text-link { color:inherit; font-size:10px; letter-spacing:.15em; text-decoration:none; text-transform:uppercase; }
.main-nav a { color:#fff; padding:8px 0; position:relative; }
.main-nav a::after { background:currentColor; bottom:2px; content:""; height:1px; left:0; position:absolute; transform:scaleX(0); transform-origin:right; transition:transform .25s ease; width:100%; }
.main-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.scrolled .main-nav a { color:var(--ink); }
.header-actions { align-items:center; display:flex; gap:25px; justify-content:flex-end; }
.socials { display:flex; gap:15px; }
.socials a { color:white; display:grid; place-items:center; }
.socials svg { fill:none; height:17px; stroke:currentColor; stroke-width:1.6; width:17px; }
.socials svg path { fill:currentColor; stroke:none; }
.socials .dot { fill:currentColor; stroke:none; }
.scrolled .socials a { color:var(--ink); }
.menu-toggle { background:transparent; border:0; cursor:pointer; display:none; height:25px; padding:3px 0; width:28px; }
.menu-toggle span:not(.sr-only) { background:currentColor; display:block; height:1px; margin:5px 0; transition:transform .2s ease; width:100%; }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.hero { background:#56514b; color:white; height:min(100svh,900px); min-height:670px; overflow:hidden; position:relative; }
.slides, .slide { height:100%; inset:0; margin:0; position:absolute; width:100%; }
.slide { opacity:0; transition:opacity 1.1s ease; }
.slide.is-active { opacity:1; }
.slide::after { background:linear-gradient(90deg,rgba(24,21,18,.53),rgba(24,21,18,.13) 57%,rgba(24,21,18,.24)), linear-gradient(0deg,rgba(24,21,18,.24),transparent 50%); content:""; inset:0; position:absolute; }
.slide img { height:100%; object-fit:cover; object-position:center; width:100%; }
.hero-content { left:clamp(25px,10.5vw,168px); position:absolute; top:50%; transform:translateY(-40%); }
.eyebrow { font-size:10px; letter-spacing:.22em; margin:0 0 23px; text-transform:uppercase; }
h1, h2 { font-family:"Playfair Display", serif; font-weight:400; letter-spacing:-.04em; margin:0; }
h1 { font-size:clamp(46px,5.5vw,86px); line-height:.98; }
h1 em, h2 em { font-weight:400; }
.hero-link { border-bottom:1px solid rgba(255,255,255,.7); display:inline-block; margin-top:42px; padding-bottom:11px; }
.hero-link span, .text-link span { font-size:15px; margin-left:10px; }
.slider-controls { align-items:center; bottom:44px; display:flex; gap:17px; position:absolute; right:clamp(24px,4vw,66px); }
.arrow { background:transparent; border:0; color:white; cursor:pointer; font-family:inherit; font-size:23px; font-weight:300; padding:4px; transition:transform .2s ease; }
.arrow:hover { transform:scale(1.16); }
.progress { background:rgba(255,255,255,.55); height:1px; margin-left:5px; overflow:hidden; width:100px; }
.progress span { background:white; display:block; height:100%; transform-origin:left; transition:transform .65s ease; width:100%; }
.slider-controls p { font-size:10px; letter-spacing:.13em; margin:0; min-width:42px; }
.about { padding:clamp(83px,11vw,175px) clamp(25px,10.5vw,168px) clamp(90px,12vw,185px); }
.about > .eyebrow { color:#777168; }
.about-grid { display:grid; gap:clamp(35px,9vw,150px); grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr); }
h2 { font-size:clamp(39px,4.5vw,71px); line-height:1.02; }
.about-copy { max-width:375px; padding-top:8px; }
.about-copy p { font-size:15px; line-height:1.85; margin:0 0 20px; }
.text-link { border-bottom:1px solid var(--ink); display:inline-block; margin-top:18px; padding-bottom:9px; }
.gallery { background:#e8e1d7; padding:clamp(83px,11vw,165px) clamp(25px,10.5vw,168px) clamp(90px,11vw,165px); }
.gallery-heading { align-items:end; display:flex; justify-content:space-between; margin-bottom:clamp(42px,6vw,85px); }
.gallery-heading .eyebrow { color:#777168; }
.gallery-heading > p { font-size:13px; letter-spacing:.04em; margin:0 0 7px; }
.gallery-grid { display:grid; gap:clamp(14px,2.2vw,34px); grid-template-columns:repeat(2,minmax(0,1fr)); }
.gallery-item { background:#c8bdb0; border:0; cursor:zoom-in; display:block; margin:0; overflow:hidden; padding:0; position:relative; text-align:left; }
.gallery-item:nth-child(1), .gallery-item:nth-child(4) { aspect-ratio:1.12; }
.gallery-item:nth-child(2), .gallery-item:nth-child(3), .gallery-item:nth-child(5) { aspect-ratio:.86; }
.gallery-item img { display:block; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease; width:100%; }
.gallery-item:hover img, .gallery-item:focus-visible img { filter:brightness(.8); transform:scale(1.045); }
.gallery-item span { bottom:17px; color:#fff; font-size:10px; left:18px; letter-spacing:.17em; opacity:0; position:absolute; transition:opacity .3s ease; }
.gallery-item:hover span, .gallery-item:focus-visible span { opacity:1; }
.gallery-item:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.gallery-modal { align-items:center; display:flex; inset:0; justify-content:center; opacity:0; pointer-events:none; position:fixed; transition:opacity .28s ease; z-index:30; }
.gallery-modal.is-open { opacity:1; pointer-events:auto; }
.gallery-modal-backdrop { background:rgba(20,18,15,.76); inset:0; position:absolute; }
.gallery-modal-content { align-items:center; display:flex; height:100%; justify-content:center; max-width:min(1420px,100%); padding:72px clamp(24px,6vw,100px); position:relative; width:100%; }
.gallery-modal figure { align-items:center; display:flex; height:100%; justify-content:center; margin:0; max-height:calc(100vh - 144px); position:relative; width:100%; }
.gallery-modal figure img { box-shadow:0 25px 80px rgba(0,0,0,.35); display:block; height:100%; max-width:100%; object-fit:contain; width:100%; }
.gallery-modal figcaption { bottom:-30px; color:#fff; font-size:10px; left:0; letter-spacing:.16em; position:absolute; }
.gallery-modal-close, .gallery-modal-arrow { background:transparent; border:0; color:#fff; cursor:pointer; font-family:inherit; position:absolute; z-index:1; }
.gallery-modal-close { font-size:34px; font-weight:200; line-height:1; right:clamp(20px,3.5vw,55px); top:clamp(20px,3.5vw,45px); }
.gallery-modal-arrow { font-size:34px; padding:18px; top:50%; transform:translateY(-50%); transition:transform .2s ease; }
.gallery-modal-arrow:hover { transform:translateY(-50%) scale(1.15); }
.gallery-modal-previous { left:clamp(8px,2.5vw,35px); }
.gallery-modal-next { right:clamp(8px,2.5vw,35px); }
body.gallery-open { overflow:hidden; }
.feature-sections { background:var(--light); padding:clamp(80px,12vw,185px) clamp(25px,10.5vw,168px); }
.feature-row { align-items:center; display:grid; gap:clamp(40px,9vw,155px); grid-template-columns:minmax(0,.85fr) minmax(300px,1.15fr); }
.feature-row + .feature-row { margin-top:clamp(90px,14vw,220px); }
.feature-row--reverse { grid-template-columns:minmax(300px,1.15fr) minmax(0,.85fr); }
.feature-row--reverse .feature-copy { grid-column:2; grid-row:1; }
.feature-row--reverse .feature-media { grid-column:1; grid-row:1; }
.feature-copy { max-width:480px; }
.feature-copy .eyebrow { color:#777168; }
.feature-copy h2 { font-size:clamp(37px,4vw,63px); }
.feature-copy > p:not(.eyebrow) { font-size:15px; line-height:1.85; margin:31px 0 27px; max-width:410px; }
.feature-copy ul { list-style:none; margin:0; padding:0; }
.feature-copy li { font-size:11px; letter-spacing:.08em; padding:7px 0 7px 22px; position:relative; text-transform:uppercase; }
.feature-copy li::before { content:"—"; left:0; position:absolute; }
.feature-media { aspect-ratio:1.12; margin:0; overflow:hidden; }
.feature-media img { display:block; height:100%; object-fit:cover; width:100%; }
@media (max-width:720px) { .feature-row, .feature-row--reverse { gap:37px; grid-template-columns:1fr; } .feature-row + .feature-row { margin-top:92px; } .feature-row--reverse .feature-copy, .feature-row--reverse .feature-media { grid-column:auto; grid-row:auto; } .feature-copy > p:not(.eyebrow) { margin-top:25px; } .feature-media { aspect-ratio:1.06; } }
@media (max-width:720px) { .site-header { grid-template-columns:1fr auto; height:87px; padding:10px 22px; } .site-header.scrolled { height:76px; } .brand { height:56px; width:145px; } .brand img { height:220px; left:-40px; top:-25px; width:220px; } .socials { gap:11px; } .header-actions { gap:18px; } .menu-toggle { color:white; display:block; } .scrolled .menu-toggle { color:var(--ink); } .main-nav { align-items:center; background:var(--light); box-shadow:0 12px 28px rgba(31,28,25,.1); display:flex; flex-direction:column; gap:0; left:18px; opacity:0; padding:16px 28px; pointer-events:none; position:absolute; right:18px; top:74px; transform:translateY(-10px); transition:.25s ease; visibility:hidden; } .main-nav.is-open { opacity:1; pointer-events:auto; transform:translateY(0); visibility:visible; } .main-nav a, .scrolled .main-nav a { color:var(--ink); padding:12px 0; } .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); } .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; } .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); } .hero { min-height:650px; } .hero-content { left:25px; right:22px; transform:translateY(-35%); } .slider-controls { bottom:27px; gap:10px; right:21px; } .progress { width:50px; } .about-grid { grid-template-columns:1fr; } .about-copy { padding-top:0; } .gallery-heading { align-items:start; flex-direction:column; gap:23px; } .gallery-grid { grid-template-columns:1fr; } .gallery-item, .gallery-item:nth-child(n) { aspect-ratio:1.05; } .gallery-modal-content { padding:62px 18px 70px; } .gallery-modal figure { max-height:calc(100vh - 132px); } .gallery-modal-arrow { font-size:26px; padding:10px; } .gallery-modal-close { font-size:31px; right:17px; top:17px; } .gallery-modal figcaption { bottom:-26px; left:4px; } }

/* Equal diagonal choices at every viewport size. */
.session-section { padding:clamp(76px,10vw,150px) clamp(20px,6vw,96px); background:#e8e1d7; }
.session-heading { text-align:center; margin:0 auto 45px; max-width:650px; }
.session-picker { max-width:720px; margin:auto; }
.session-square { aspect-ratio:1; position:relative; isolation:isolate; background:#25221e; overflow:hidden; }
.session-photo, .session-half { position:absolute; inset:0; width:100%; height:100%; }
.session-photo { background:var(--ink); }
.session-photo--event, .session-half--event { clip-path:polygon(0 0,100% 0,0 100%); }
.session-photo--posed, .session-half--posed { clip-path:polygon(100% 0,100% 100%,0 100%); }
.session-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.session-photo::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.35); }
.session-half { z-index:2; color:white; text-align:left; pointer-events:none; }
.session-half > span { position:absolute; width:58%; left:7%; top:16%; font-family:"Playfair Display",serif; font-size:clamp(24px,5vw,49px); line-height:1.1; letter-spacing:-.03em; text-shadow:0 2px 18px #0008; }
.session-half--posed > span { left:auto; top:auto; right:7%; bottom:16%; text-align:right; }

.session-heading .eyebrow { color:#777168; }
.session-heading > p:last-child { font-size:14px; line-height:1.8; margin:25px 0 0; }
.session-link { display:block; width:fit-content; margin-top:18px; padding:12px 0; color:inherit; font:10px "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.12em; text-decoration:none; pointer-events:auto; }
.session-half--posed .session-link { margin-left:auto; }
.session-link:hover { text-decoration:underline; text-underline-offset:4px; }
.session-link:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media (max-width:420px) { .session-link { font-size:8px; margin-top:12px; } }
@media (min-width:721px) and (max-width:1099px) {
  .session-picker { max-width:600px; }
}
@media (min-width:1100px) {
  .session-section { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:center; gap:clamp(40px,5vw,80px); }
  .session-heading { text-align:left; margin:0; max-width:480px; }
  .session-heading h2 { font-size:clamp(39px,3.6vw,64px); }
  .session-heading > p:last-child { max-width:350px; }
  .session-picker { width:100%; max-width:800px; margin:0 0 0 auto; }
  .session-half > span { font-size:clamp(30px,3.4vw,49px); }
}

/* Keep desktop content centered while section backgrounds remain full width. */
@media (min-width:1100px) {
  :root { --content-max-width:1200px; }
  .about, .gallery, .feature-sections {
    padding-inline:max(clamp(25px,10.5vw,168px), calc((100% - var(--content-max-width)) / 2));
  }
  .session-section {
    padding-inline:max(clamp(20px,6vw,96px), calc((100% - var(--content-max-width)) / 2));
  }
  .site-header {
    padding-inline:max(clamp(24px,4vw,66px), calc((100% - var(--content-max-width)) / 2));
  }
  .hero-content {
    left:max(clamp(25px,10.5vw,168px), calc((100% - var(--content-max-width)) / 2));
    right:max(clamp(25px,10.5vw,168px), calc((100% - var(--content-max-width)) / 2));
  }
  .slider-controls {
    right:max(clamp(24px,4vw,66px), calc((100% - var(--content-max-width)) / 2));
  }
}

/* Anchor destinations clear the fixed navigation. */
#o-mnie, #sesje, .session-offer, #kontakt { scroll-margin-top:100px; }
.session-offer--event { background:var(--paper); }
@media (max-width:720px) {
  #o-mnie, #sesje, .session-offer, #kontakt { scroll-margin-top:76px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Six-photo offer mosaic. */
.event-mosaic { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px; min-width:0; grid-column:1; grid-row:1; background:var(--paper); }
.event-tile { position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--ink); isolation:isolate; }
.event-tile img { width:100%; height:100%; display:block; object-fit:cover; filter:brightness(.65); transition:filter .25s ease; }
.event-tile::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 35%,#000a); pointer-events:none; }
.event-tile button { position:absolute; inset:0; width:100%; border:0; background:transparent; color:white; cursor:pointer; z-index:1; padding:14px 8px; display:flex; align-items:end; justify-content:center; font:400 clamp(14px,1.4vw,18px)/1.3 "DM Sans",sans-serif; }
.event-tile button span { font-weight:400; transition:transform .25s ease; }
.event-tile a { position:absolute; bottom:6px; left:6px; right:6px; z-index:2; color:white; text-align:center; padding:14px 2px; font:10px "DM Sans",sans-serif; letter-spacing:.03em; text-decoration:underline; text-underline-offset:4px; visibility:hidden; opacity:0; transition:opacity .25s ease; }
.event-tile.is-active img { filter:brightness(1.1); }
.event-tile.is-active button span { transform:translateY(-40px); }
.event-tile.is-active a { visibility:visible; opacity:1; }
.event-tile button:focus-visible { outline:2px solid white; outline-offset:-5px; }
.event-tile a:focus-visible { outline:2px solid white; outline-offset:-2px; }
@media (max-width:1099px) and (min-width:721px) {
  .session-offer--event .feature-row { gap:36px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .event-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) { .event-mosaic { grid-column:auto; grid-row:auto; grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { .event-tile img, .event-tile button span, .event-tile a { transition:none; } }

@media (min-width:721px) {
  .session-offer:not(.session-offer--event) .feature-row { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:clamp(36px,5vw,80px); }
  .event-mosaic--posed { grid-column:2; }
}

/* One modal navigation for desktop, tablet and mobile. */
.site-header { grid-template-columns:1fr auto; }
.menu-toggle { display:block; color:white; width:44px; height:44px; padding:10px 8px; }
.site-header.scrolled .menu-toggle { color:#000; }
.menu-toggle:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
body.menu-open { overflow:hidden; }
.menu-dialog { color:var(--ink); background:var(--light); border:0; width:min(760px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:clamp(52px,6vw,76px) clamp(20px,6vw,70px) clamp(28px,4vw,48px); overflow:auto; overscroll-behavior:contain; }
.menu-dialog::backdrop { background:rgba(20,18,15,.65); backdrop-filter:blur(3px); }
.menu-close { position:absolute; top:12px; right:12px; width:44px; height:44px; background:transparent; border:0; color:var(--ink); font:300 36px/1 "DM Sans",sans-serif; cursor:pointer; }
.menu-dialog .main-nav { display:block; position:static; opacity:1; visibility:visible; pointer-events:auto; transform:none; padding:0; background:transparent; box-shadow:none; text-align:left; }
.menu-dialog .main-nav a { color:var(--ink); display:inline-block; font-size:14px; letter-spacing:0; text-transform:none; text-decoration:none; padding:10px 0; line-height:1.5; }
.menu-dialog .main-nav a::after { content:none; }
.menu-dialog .main-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.menu-dialog a:focus-visible, .menu-close:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.menu-dialog .main-nav .menu-home { margin-bottom:14px; }
.menu-offer-title { border-top:1px solid var(--accent); padding-top:24px; margin:0 0 20px; font:400 12px "DM Sans",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.menu-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,4vw,48px); border-top:1px solid var(--accent); padding-top:24px; }
.menu-column h3 { margin:0 0 12px; font:400 12px/1.6 "DM Sans",sans-serif; letter-spacing:.16em; text-transform:uppercase; overflow-wrap:anywhere; }
.menu-column ul { list-style:none; margin:0; padding:0; }
.menu-secondary { display:flex; align-items:center; flex-wrap:wrap; gap:clamp(14px,3vw,28px); border-top:1px solid var(--accent); margin-top:24px; padding-top:12px; }
@media (max-width:420px) { .menu-dialog .main-nav a { font-size:12px; } }

.menu-secondary .socials { gap:12px; }
.menu-dialog .menu-secondary .socials a { display:grid; place-items:center; min-width:28px; min-height:44px; padding:0; color:var(--ink); }
@media (max-width:420px) {
  .menu-offer-title, .menu-column h3 { font-size:10px; letter-spacing:.1em; }
  .menu-column h3 { min-height:3.2em; overflow-wrap:normal; }
}

.site-footer { background:#e8e1d7; padding:clamp(24px,3vw,40px) clamp(24px,6vw,96px) 18px; }
.footer-inner { max-width:1200px; margin:auto; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:28px; padding-bottom:20px; }
.footer-story { color:var(--ink); font-family:inherit; font-size:14px; font-weight:400; letter-spacing:normal; text-transform:none; text-decoration:underline; text-underline-offset:5px; padding:12px 0; }
.footer-story em { font-weight:400; font-style:normal; }
.footer-contact { display:flex; align-items:center; gap:24px; flex-shrink:0; }
.footer-contact-link { color:var(--ink); font-size:14px; text-decoration:none; padding:12px 0; }
.site-footer .socials { gap:12px; }
.site-footer .socials a { color:var(--ink); min-width:32px; min-height:44px; }
.footer-story:hover, .footer-contact-link:hover { text-decoration:underline; text-underline-offset:5px; }
.site-footer a:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.footer-copyright { border-top:1px solid #c5b8a9; padding-top:16px; margin:0; color:#625b52; font-size:11px; line-height:1.8; text-align:center; }
@media (max-width:720px) { .footer-top { flex-direction:column; align-items:flex-start; gap:18px; padding-bottom:16px; } }

.footer-story > span { display:inline; margin-left:6px; font-family:"DM Sans",sans-serif; font-size:.8em; }

/* Session pages share the homepage carousel, alternating rows and gallery. */
.session-page #o-sesji, .session-page #galeria { scroll-margin-top:106px; }
.session-page .hero-content h1 { max-width:100%; overflow-wrap:break-word; }
.session-page .feature-media { aspect-ratio:4 / 5; }
.menu-dialog .main-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
@media (min-width:721px) and (max-width:1099px) {
  .session-details .feature-row, .session-details .feature-row--reverse { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
}
@media (max-width:720px) {
  .session-page #o-sesji, .session-page #galeria { scroll-margin-top:76px; }
  .session-page .feature-media { aspect-ratio:1.06; }
}

/* Shared offer table: equal package columns, including on small screens. */
.offer-packages { padding:clamp(64px,8vw,120px) clamp(16px,6vw,96px); scroll-margin-top:106px; }
.offer-inner { max-width:960px; margin:auto; }
.offer-heading { text-align:center; margin-bottom:40px; }
.offer-heading .eyebrow { color:#71675c; }
.offer-heading h2 { font-size:clamp(36px,4.5vw,60px); }
.offer-heading > p:last-child { font-size:14px; line-height:1.7; margin:24px 0 0; }
.offer-table { width:100%; table-layout:fixed; border-collapse:collapse; background:var(--light); border:1px solid var(--accent); }
.offer-table th, .offer-table td { text-align:center; overflow-wrap:anywhere; }
.offer-table thead th { padding:30px 16px; background:#e8e1d7; font-weight:400; }
.offer-table thead th + th, .offer-table td + td { border-left:1px solid var(--accent); }
.offer-package-name { display:block; font-size:12px; letter-spacing:.15em; text-transform:uppercase; }
.offer-price { display:block; margin-top:12px; font:400 clamp(28px,4vw,44px)/1.2 "Playfair Display",serif; }
.offer-price small { font:400 .5em "DM Sans",sans-serif; }
.offer-table .offer-feature { padding:13px 12px 0; border-top:1px solid var(--accent); color:#71675c; font-size:11px; font-weight:500; letter-spacing:.04em; }
.offer-table td { padding:10px 24px 18px; font-size:15px; line-height:1.6; vertical-align:top; }
.offer-table tfoot td { padding:20px; border-top:1px solid var(--accent); }
.offer-contact { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:10px 20px; border:1px solid var(--ink); color:var(--ink); font-size:12px; text-decoration:none; }
.offer-contact:hover { background:var(--ink); color:var(--light); }
.offer-contact:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.offer-note { margin:16px 0 0; color:#71675c; font-size:12px; line-height:1.6; text-align:center; }
@media (min-width:1100px) {
  .offer-packages { padding-inline:max(clamp(25px,10.5vw,168px), calc((100% - var(--content-max-width)) / 2)); }
  .offer-inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); column-gap:clamp(40px,9vw,155px); max-width:1200px; align-items:center; }
  .offer-heading { grid-column:1; grid-row:1; text-align:left; margin-bottom:0; }
  .offer-heading h2 { font-size:clamp(36px,3.5vw,52px); }
  .offer-heading > p:last-child { max-width:300px; }
  .offer-table { grid-column:2; grid-row:1; min-width:0; }
  .offer-note { grid-column:2; grid-row:2; }
}
@media (max-width:720px) {
  .offer-packages { scroll-margin-top:76px; }
  .offer-heading { margin-bottom:28px; }
  .offer-table thead th { padding:22px 6px; }
  .offer-package-name { font-size:11px; letter-spacing:.07em; }
  .offer-table td { padding:9px 8px 15px; font-size:13px; line-height:1.5; }
  .offer-table tfoot td { padding:14px 6px; }
  .offer-contact { padding:8px; gap:6px; }
}
