@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Syne:wght@600;700;800&display=swap');


.hapfilm-packages-scope { --ink:#101214; --ink-2:#191c20; --paper:#f4efe6; --ivory:#fffaf2; --coral:#ff5d4a; --burgundy:#8f2838; --gold:#d8a54c; --sage:#a8c6b3; --line:rgba(20,22,24,.14); }
.hapfilm-packages-scope, .hapfilm-packages-scope * { box-sizing:border-box; }
.hapfilm-packages-scope { scroll-behavior:smooth; background:var(--ink); font-size:clamp(17px,1vw,21px); }
.hapfilm-packages-scope { margin:0; color:var(--ink); background:var(--paper); font-family:"Manrope",sans-serif; font-size:18px; line-height:1.62; font-feature-settings:"kern" 1,"liga" 1; }
.hapfilm-packages-scope:is(a), .hapfilm-packages-scope a { color:inherit; text-decoration:none; }
.hapfilm-packages-scope:is(button), .hapfilm-packages-scope button { font:inherit; }
.hapfilm-packages-scope:is(.site-header), .hapfilm-packages-scope .site-header { position:sticky; top:0; z-index:50; min-height:76px; padding:0 4vw; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:32px; background:rgba(16,18,20,.92); color:white; backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,.1); }
.hapfilm-packages-scope:is(.brand), .hapfilm-packages-scope .brand { font-family:"Syne",sans-serif; font-weight:800; font-size:1.15rem; letter-spacing:-.04em; }
.hapfilm-packages-scope .brand span { color:var(--coral); }
.hapfilm-packages-scope .site-header nav { display:flex; justify-content:center; gap:clamp(16px,2.2vw,34px); }
.hapfilm-packages-scope .site-header nav a { font-size:.94rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:#ddd9d1; }
.hapfilm-packages-scope .site-header nav a:hover { color:var(--coral); }
.hapfilm-packages-scope:is(.header-cta), .hapfilm-packages-scope .header-cta { padding:13px 20px; border-radius:999px; background:white; color:var(--ink); font-size:.9rem; font-weight:800; }
.hapfilm-packages-scope:is(.block-dark),.hapfilm-packages-scope .block-dark,.hapfilm-packages-scope:is(.block-ink),.hapfilm-packages-scope .block-ink { color:white; background:var(--ink); }
.hapfilm-packages-scope:is(.block-paper), .hapfilm-packages-scope .block-paper { background:var(--paper); }
.hapfilm-packages-scope:is(.hero), .hapfilm-packages-scope .hero { min-height:calc(100vh - 76px); padding:4.5vw 4vw; display:grid; grid-template-columns:minmax(420px,.78fr) minmax(0,1.22fr); align-items:center; gap:3vw; overflow:hidden; }
.hapfilm-packages-scope:is(.hero-copy), .hapfilm-packages-scope .hero-copy { position:relative; z-index:2; }
.hapfilm-packages-scope:is(.kicker), .hapfilm-packages-scope .kicker { margin:0 0 24px; display:flex; align-items:center; gap:12px; color:#d6d0c7; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; }
.hapfilm-packages-scope .kicker span { width:34px; height:3px; background:linear-gradient(90deg,var(--coral),var(--gold)); border-radius:99px; }
.hapfilm-packages-scope:is(.kicker-dark), .hapfilm-packages-scope .kicker-dark { color:#5d5550; }
.hapfilm-packages-scope:is(h1),.hapfilm-packages-scope h1,.hapfilm-packages-scope:is(h2),.hapfilm-packages-scope h2,.hapfilm-packages-scope:is(h3),.hapfilm-packages-scope h3 { font-family:"Syne",sans-serif; letter-spacing:-.055em; margin:0; }
.hapfilm-packages-scope:is(h1), .hapfilm-packages-scope h1 { max-width:980px; font-size:clamp(3.35rem,6vw,6.75rem); line-height:.92; text-wrap:balance; overflow-wrap:normal; word-break:keep-all; }
.hapfilm-packages-scope:is(.hero-lead), .hapfilm-packages-scope .hero-lead { max-width:720px; margin:30px 0; color:#c9c5bf; font-size:clamp(1.12rem,1.4vw,1.4rem); line-height:1.72; }
.hapfilm-packages-scope:is(.button-row), .hapfilm-packages-scope .button-row { display:flex; flex-wrap:wrap; gap:12px; }
.hapfilm-packages-scope:is(.button), .hapfilm-packages-scope .button { padding:16px 24px; border-radius:999px; font-size:.96rem; font-weight:800; letter-spacing:.03em; transition:transform .25s,background .25s; }
.hapfilm-packages-scope:is(.button:hover), .hapfilm-packages-scope .button:hover { transform:translateY(-2px); }
.hapfilm-packages-scope:is(.button-coral), .hapfilm-packages-scope .button-coral { background:var(--coral); color:white; box-shadow:0 15px 40px rgba(255,93,74,.25); }
.hapfilm-packages-scope:is(.button-ghost), .hapfilm-packages-scope .button-ghost { border:1px solid rgba(255,255,255,.25); color:white; }
.hapfilm-packages-scope:is(.trust-row), .hapfilm-packages-scope .trust-row { margin-top:40px; display:flex; flex-wrap:wrap; gap:20px; color:#a9adb0; font-size:.9rem; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope .trust-row span::before { content:"✦"; color:var(--gold); margin-right:8px; }
.hapfilm-packages-scope:is(.hero-visual), .hapfilm-packages-scope .hero-visual { min-height:700px; position:relative; display:grid; place-items:center; }
.hapfilm-packages-scope:is(.image-orbit), .hapfilm-packages-scope .image-orbit { position:absolute; border-radius:50%; filter:blur(1px); animation:orbit 14s ease-in-out infinite alternate; }
.hapfilm-packages-scope:is(.orbit-one), .hapfilm-packages-scope .orbit-one { width:430px; height:430px; background:radial-gradient(circle at 30% 30%,rgba(255,93,74,.55),transparent 65%); right:-6%; top:4%; }
.hapfilm-packages-scope:is(.orbit-two), .hapfilm-packages-scope .orbit-two { width:520px; height:520px; background:radial-gradient(circle at 55% 55%,rgba(216,165,76,.28),transparent 65%); left:-10%; bottom:-12%; animation-delay:-5s; }
@keyframes orbit { to { transform:translate3d(-24px,30px,0) scale(1.08); } }
.hapfilm-packages-scope:is(.media-frame), .hapfilm-packages-scope .media-frame { margin:0; overflow:hidden; background:#090a0b; border:1px solid rgba(255,255,255,.12); box-shadow:0 28px 90px rgba(0,0,0,.35); }
.hapfilm-packages-scope .media-frame img { width:100%; height:100%; display:block; object-fit:contain; }
.hapfilm-packages-scope:is(.media-frame-hero), .hapfilm-packages-scope .media-frame-hero { position:relative; width:min(100%,900px); aspect-ratio:3/2; border-radius:34px; }
.hapfilm-packages-scope .media-frame figcaption { position:absolute; left:18px; right:18px; bottom:18px; padding:13px 16px; display:flex; justify-content:space-between; background:rgba(16,18,20,.78); color:#ddd; border:1px solid rgba(255,255,255,.12); border-radius:13px; backdrop-filter:blur(12px); font-size:.9rem; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope .media-frame figcaption span { color:white; font-weight:800; }
.hapfilm-packages-scope:is(.package-intro), .hapfilm-packages-scope .package-intro { padding:110px 5vw 55px; display:grid; grid-template-columns:1fr .8fr; gap:8vw; align-items:end; }
.hapfilm-packages-scope:is(.timeline-package-intro), .hapfilm-packages-scope .timeline-package-intro { padding-top:120px; background:radial-gradient(circle at 85% 15%,rgba(255,93,74,.13),transparent 32%),var(--paper); border-top:1px solid var(--line); }
.hapfilm-packages-scope .package-intro h2,.hapfilm-packages-scope .section-heading h2 { font-size:clamp(3rem,6vw,6.6rem); line-height:.95; }
.hapfilm-packages-scope .package-intro-market>p { max-width:630px; margin:0; color:#5f5a55; font-size:1.08rem; line-height:1.75; }
.hapfilm-packages-scope:is(.journey), .hapfilm-packages-scope .journey { padding:0 0 110px; }
.hapfilm-packages-scope:is(.journey-tabs), .hapfilm-packages-scope .journey-tabs { position:relative; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.hapfilm-packages-scope .journey-tabs::after { content:""; position:absolute; left:0; bottom:-1px; width:33.333%; height:4px; border-radius:99px 99px 0 0; background:linear-gradient(90deg,var(--coral),var(--burgundy)); transform:translateX(0); transition:transform .48s cubic-bezier(.2,.8,.2,1); }
.hapfilm-packages-scope .journey-tabs[data-active="timeless"]::after { transform:translateX(100%); }
.hapfilm-packages-scope .journey-tabs[data-active="legacy"]::after { transform:translateX(200%); }
.hapfilm-packages-scope .journey-tabs button { min-height:122px; padding:22px clamp(12px,2vw,30px); display:flex; flex-direction:column; justify-content:center; gap:8px; border:0; border-right:1px solid var(--line); background:transparent; color:#827a73; cursor:pointer; text-align:left; transition:color .3s,background .3s; }
.hapfilm-packages-scope .journey-tabs button:last-child { border-right:0; }
.hapfilm-packages-scope .journey-tabs button span { font-family:"Syne",sans-serif; font-weight:700; font-size:clamp(1.05rem,1.6vw,1.45rem); }
.hapfilm-packages-scope .journey-tabs button small { max-width:270px; color:#746d66; font-family:"Manrope",sans-serif; font-size:.95rem; line-height:1.55; }
.hapfilm-packages-scope .journey-tabs button.active { color:var(--burgundy); background:rgba(255,250,242,.55); }
.hapfilm-packages-scope .journey-tabs button.active small { color:#5d5550; }
.hapfilm-packages-scope:is(.timeline-experience), .hapfilm-packages-scope .timeline-experience { padding:42px 0 0; overflow:hidden; background:#fbfaf8; border-bottom:1px solid var(--line); animation:panelSlide .48s cubic-bezier(.2,.8,.2,1); }
@keyframes panelSlide { from { opacity:.35; transform:translateX(22px); } to { opacity:1; transform:translateX(0); } }
.hapfilm-packages-scope:is(.timeline-intro), .hapfilm-packages-scope .timeline-intro { max-width:920px; margin:0 auto 26px; padding:0 24px; text-align:center; }
.hapfilm-packages-scope .timeline-intro>p:first-child,.hapfilm-packages-scope:is(.journey-label),.hapfilm-packages-scope .journey-label,.hapfilm-packages-scope:is(.card-eyebrow),.hapfilm-packages-scope .card-eyebrow { color:var(--burgundy); font-weight:800; font-size:.9rem; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope .timeline-intro h3 { margin:10px 0 12px; font-size:clamp(2rem,3.5vw,4rem); }
.hapfilm-packages-scope .timeline-intro>p:last-child { margin:0 auto; color:#6f6862; font-size:1.06rem; line-height:1.75; }
.hapfilm-packages-scope:is(.timeline-scroll), .hapfilm-packages-scope .timeline-scroll { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:var(--coral) #eeeae4; }
.hapfilm-packages-scope:is(.timeline-canvas), .hapfilm-packages-scope .timeline-canvas { position:relative; min-width:1780px; height:520px; border-top:1px solid #e9e6e1; border-bottom:1px solid #e9e6e1; background:white; }
.hapfilm-packages-scope:is(.timeline-grid-lines), .hapfilm-packages-scope .timeline-grid-lines { position:absolute; inset:0 4%; display:grid; grid-template-columns:repeat(19,1fr); }
.hapfilm-packages-scope .timeline-grid-lines span { border-left:1px dotted #d7d4cf; }
.hapfilm-packages-scope .timeline-grid-lines span:last-child { border-right:1px dotted #d7d4cf; }
.hapfilm-packages-scope:is(.coverage-shade), .hapfilm-packages-scope .coverage-shade { position:absolute; top:56px; bottom:56px; left:var(--coverage-left); width:var(--coverage-width); border-radius:18px; background:linear-gradient(135deg,rgba(255,93,74,.1),rgba(143,40,56,.08)); box-shadow:inset 0 0 0 1px rgba(143,40,56,.1); transition:left .65s cubic-bezier(.2,.8,.2,1),width .65s cubic-bezier(.2,.8,.2,1); }
.hapfilm-packages-scope .coverage-shade>span { position:absolute; top:16px; left:18px; color:var(--burgundy); font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope:is(.timeline-axis), .hapfilm-packages-scope .timeline-axis { position:absolute; left:4%; right:4%; top:50%; display:grid; grid-template-columns:repeat(19,1fr); transform:translateY(-50%); border-top:1px solid #d6d3ce; }
.hapfilm-packages-scope .timeline-axis span { position:relative; padding-top:13px; color:#817c75; font-size:.9rem; text-align:center; white-space:nowrap; transform:translateX(-50%); }
.hapfilm-packages-scope .timeline-axis span::before { content:""; position:absolute; width:9px; height:9px; left:50%; top:-5px; transform:translateX(-50%); border-radius:50%; background:#c7c4be; }
.hapfilm-packages-scope:is(.timeline-events), .hapfilm-packages-scope .timeline-events { position:absolute; inset:0; pointer-events:none; }
.hapfilm-packages-scope:is(.timeline-event), .hapfilm-packages-scope .timeline-event { position:absolute; z-index:2; width:148px; min-height:66px; padding:11px 13px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; border:1px solid #d3cec5; border-radius:12px; color:#34312e; background:#f5f1e9; box-shadow:0 8px 22px rgba(38,30,26,.08); cursor:pointer; text-align:left; white-space:normal; transform:translateX(-50%); transition:transform .24s,background .24s,color .24s,border-color .24s,box-shadow .24s; pointer-events:auto; }
.hapfilm-packages-scope:is(.timeline-event.lane-0), .hapfilm-packages-scope .timeline-event.lane-0 { top:92px; }
.hapfilm-packages-scope:is(.timeline-event.lane-1), .hapfilm-packages-scope .timeline-event.lane-1 { top:168px; }
.hapfilm-packages-scope:is(.timeline-event.lane-2), .hapfilm-packages-scope .timeline-event.lane-2 { bottom:92px; }
.hapfilm-packages-scope:is(.timeline-event.lane-3), .hapfilm-packages-scope .timeline-event.lane-3 { bottom:168px; }
.hapfilm-packages-scope .timeline-event>span { max-width:100%; overflow:hidden; font-size:.9rem; font-weight:800; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.hapfilm-packages-scope .timeline-event small { color:#6f6760; font-size:.8rem; font-weight:700; }
.hapfilm-packages-scope .timeline-event em { position:absolute; left:50%; bottom:-31px; padding:6px 9px; color:white; background:var(--burgundy); border-radius:6px; font-size:.75rem; font-style:normal; font-weight:800; letter-spacing:.04em; opacity:0; pointer-events:none; transform:translate(-50%,5px); transition:opacity .22s,transform .22s; white-space:nowrap; }
.hapfilm-packages-scope:is(.timeline-event:hover),.hapfilm-packages-scope .timeline-event:hover,.hapfilm-packages-scope:is(.timeline-event:focus-visible),.hapfilm-packages-scope .timeline-event:focus-visible,.hapfilm-packages-scope:is(.timeline-event.selected),.hapfilm-packages-scope .timeline-event.selected { z-index:5; color:white; background:linear-gradient(135deg,var(--coral),var(--burgundy)); border-color:var(--coral); box-shadow:0 14px 32px rgba(143,40,56,.24); transform:translateX(-50%) translateY(-4px); outline:none; }
.hapfilm-packages-scope .timeline-event:hover small,.hapfilm-packages-scope .timeline-event:focus-visible small,.hapfilm-packages-scope .timeline-event.selected small { color:#fff4ee; }
.hapfilm-packages-scope .timeline-event:hover em,.hapfilm-packages-scope .timeline-event:focus-visible em { opacity:1; transform:translate(-50%,0); }
.hapfilm-packages-scope:is(.planner-workspace), .hapfilm-packages-scope .planner-workspace { padding:42px 5vw 0; display:grid; grid-template-columns:minmax(250px,.38fr) minmax(0,1.62fr); gap:18px; }
.hapfilm-packages-scope:is(.planner-controls),.hapfilm-packages-scope .planner-controls,.hapfilm-packages-scope:is(.planner-detail),.hapfilm-packages-scope .planner-detail { border:1px solid var(--line); border-radius:24px; background:var(--ivory); box-shadow:0 18px 48px rgba(44,36,31,.06); }
.hapfilm-packages-scope:is(.planner-controls), .hapfilm-packages-scope .planner-controls { padding:28px; display:flex; flex-direction:column; gap:18px; }
.hapfilm-packages-scope:is(.planner-label), .hapfilm-packages-scope .planner-label { margin:0; color:var(--burgundy); font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope .planner-controls label,.hapfilm-packages-scope .planner-fields label { display:flex; flex-direction:column; gap:7px; color:#514a45; font-size:1rem; font-weight:800; }
.hapfilm-packages-scope .planner-controls input,.hapfilm-packages-scope .planner-fields input { width:100%; min-height:48px; padding:10px 12px; border:1px solid #cfc7bd; border-radius:10px; color:#201e1c; background:white; font:inherit; }
.hapfilm-packages-scope .planner-controls input:focus,.hapfilm-packages-scope .planner-fields input:focus { border-color:var(--coral); outline:3px solid rgba(255,93,74,.15); }
.hapfilm-packages-scope:is(.coverage-summary), .hapfilm-packages-scope .coverage-summary { padding:18px; display:grid; gap:3px; color:white; background:linear-gradient(135deg,var(--burgundy),#4d1721); border-radius:15px; }
.hapfilm-packages-scope .coverage-summary span { color:#ffc5bc; font-size:.82rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope .coverage-summary strong { font-size:1.05rem; }
.hapfilm-packages-scope .coverage-summary small { color:#f2ddd8; font-size:.84rem; }
.hapfilm-packages-scope .planner-controls>p:last-child { margin:auto 0 0; color:#625b55; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.planner-detail), .hapfilm-packages-scope .planner-detail { overflow:hidden; display:grid; grid-template-columns:minmax(250px,330px) minmax(0,1fr); align-items:center; animation:panelSlide .35s cubic-bezier(.2,.8,.2,1); }
.hapfilm-packages-scope:is(.planner-detail-image), .hapfilm-packages-scope .planner-detail-image { width:calc(100% - 24px); aspect-ratio:4/3; min-height:0; margin:24px 0 24px 24px; border:1px solid rgba(143,40,56,.14); border-radius:18px; background-image:url('../images/hap-film-wedding-timeline-moments-sprite.png'); background-size:400% 400%; background-position:var(--sprite-x) var(--sprite-y); background-repeat:no-repeat; box-shadow:0 16px 38px rgba(44,36,31,.12); }
.hapfilm-packages-scope:is(.planner-detail-copy), .hapfilm-packages-scope .planner-detail-copy { padding:38px; }
.hapfilm-packages-scope .planner-detail-copy h4 { margin:10px 0 18px; font-family:"Syne",sans-serif; font-size:clamp(2rem,3vw,3.4rem); line-height:1; letter-spacing:-.05em; }
.hapfilm-packages-scope .planner-detail-copy>p:not(.planner-label) { margin:0; max-width:980px; color:#554e48; font-size:1.08rem; line-height:1.78; }
.hapfilm-packages-scope:is(.planner-fields), .hapfilm-packages-scope .planner-fields { margin-top:28px; padding-top:24px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; border-top:1px solid var(--line); }
.hapfilm-packages-scope .planner-fields label { position:relative; }
.hapfilm-packages-scope .planner-fields label>span { position:absolute; right:11px; bottom:13px; color:#8b837b; font-size:.78rem; font-weight:600; pointer-events:none; }
.hapfilm-packages-scope .planner-fields label:nth-child(2) input { padding-right:62px; }
.hapfilm-packages-scope .planner-fields>div { padding:12px 14px; display:flex; flex-direction:column; justify-content:center; border:1px solid #d9d2c9; border-radius:10px; background:#f7f1e9; }
.hapfilm-packages-scope .planner-fields>div small { color:#746b64; font-size:.84rem; font-weight:800; text-transform:uppercase; }
.hapfilm-packages-scope .planner-fields>div strong { font-size:1rem; }
.hapfilm-packages-scope:is(.timeline-actions), .hapfilm-packages-scope .timeline-actions { padding:30px 5vw 22px; display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; text-align:center; }
.hapfilm-packages-scope .timeline-actions p { margin:0; color:#5f5953; font-size:1rem; }
.hapfilm-packages-scope .timeline-actions p span { margin-right:8px; color:var(--burgundy); font-size:1.1rem; }
.hapfilm-packages-scope:is(.timeline-export),.hapfilm-packages-scope .timeline-export,.hapfilm-packages-scope:is(.timeline-reset),.hapfilm-packages-scope .timeline-reset { padding:15px 20px; display:inline-flex; align-items:center; justify-content:center; gap:20px; border:1px solid #6f6b66; border-radius:0; color:#292724; background:transparent; cursor:pointer; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; transition:background .25s,color .25s,border-color .25s; }
.hapfilm-packages-scope:is(.timeline-reset), .hapfilm-packages-scope .timeline-reset { border-color:transparent; color:#746c65; }
.hapfilm-packages-scope:is(.timeline-export.secondary), .hapfilm-packages-scope .timeline-export.secondary { border-color:#c5bdb4; }
.hapfilm-packages-scope:is(.timeline-export:hover), .hapfilm-packages-scope .timeline-export:hover { color:white; background:var(--burgundy); border-color:var(--burgundy); }
.hapfilm-packages-scope:is(.timeline-reset:hover), .hapfilm-packages-scope .timeline-reset:hover { color:var(--burgundy); }
.hapfilm-packages-scope:is(.planner-disclaimer), .hapfilm-packages-scope .planner-disclaimer { max-width:1100px; margin:0 auto; padding:0 5vw 38px; color:#6f665f; font-size:1rem; line-height:1.7; text-align:center; }
.hapfilm-packages-scope:is(.package-grid-section), .hapfilm-packages-scope .package-grid-section { padding:120px 5vw; }
.hapfilm-packages-scope:is(.section-heading), .hapfilm-packages-scope .section-heading { max-width:1100px; margin-bottom:55px; }
.hapfilm-packages-scope .section-heading>p:last-child { max-width:820px; color:#c1c3c5; font-size:1.08rem; line-height:1.72; }
.hapfilm-packages-scope:is(.package-heading), .hapfilm-packages-scope .package-heading { max-width:none; display:flex; justify-content:space-between; align-items:end; gap:40px; }
.hapfilm-packages-scope .package-heading>div:first-child { max-width:1100px; }
.hapfilm-packages-scope .package-heading>div:first-child>p:last-child { max-width:820px; color:#c8cacc; font-size:1.08rem; line-height:1.72; }
.hapfilm-packages-scope:is(.market-choice), .hapfilm-packages-scope .market-choice { flex:0 0 auto; }
.hapfilm-packages-scope .market-choice>span { display:block; margin-bottom:10px; color:#f4b6ae; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope:is(.package-toggle), .hapfilm-packages-scope .package-toggle { margin-top:0; border-color:rgba(255,255,255,.34); background:rgba(255,255,255,.14); box-shadow:0 18px 55px rgba(0,0,0,.28); }
.hapfilm-packages-scope .package-toggle button { color:#f0ebe4; }
.hapfilm-packages-scope .package-toggle button.active { color:white; background:linear-gradient(135deg,var(--coral),var(--burgundy)); box-shadow:0 8px 24px rgba(255,93,74,.3); }
.hapfilm-packages-scope:is(.package-grid), .hapfilm-packages-scope .package-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; align-items:start; }
.hapfilm-packages-scope:is(.package-card), .hapfilm-packages-scope .package-card { position:relative; min-height:850px; padding:38px 30px; border:1px solid rgba(255,255,255,.13); border-radius:24px; background:#171a1e; display:flex; flex-direction:column; transition:transform .3s,border-color .3s; }
.hapfilm-packages-scope:is(.package-card:hover), .hapfilm-packages-scope .package-card:hover { transform:translateY(-7px); border-color:rgba(255,93,74,.7); }
.hapfilm-packages-scope:is(.package-card.featured), .hapfilm-packages-scope .package-card.featured { background:linear-gradient(165deg,#9a2e3f 0%,#6f1d2c 58%,#281419 100%); border-color:var(--coral); box-shadow:0 22px 65px rgba(143,40,56,.28); }
.hapfilm-packages-scope:is(.popular-tag), .hapfilm-packages-scope .popular-tag { position:absolute; top:18px; right:18px; padding:9px 12px; border-radius:99px; background:var(--coral); color:white; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.hapfilm-packages-scope .package-card .card-eyebrow { color:#c8b99b; }
.hapfilm-packages-scope .package-card h3 { margin-top:13px; font-size:clamp(2.1rem,3vw,3.6rem); }
.hapfilm-packages-scope:is(.price), .hapfilm-packages-scope .price { margin:26px 0 18px; display:flex; flex-direction:column; font-family:"Syne",sans-serif; font-size:2.2rem; font-weight:800; letter-spacing:-.04em; }
.hapfilm-packages-scope .price span { color:#c0c3c5; font-family:"Manrope",sans-serif; font-size:.94rem; letter-spacing:.12em; text-transform:uppercase; }
.hapfilm-packages-scope:is(.package-meta), .hapfilm-packages-scope .package-meta { display:grid; gap:10px; padding:20px 0; border-top:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14); color:#f1ece6; font-size:1rem; line-height:1.6; }
.hapfilm-packages-scope:is(.best-for), .hapfilm-packages-scope .best-for { min-height:84px; color:#d0d2d3; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope .package-card ul { margin:0 0 28px; padding:0; list-style:none; display:grid; gap:13px; }
.hapfilm-packages-scope .package-card li { position:relative; padding-left:22px; color:#e7e8e9; font-size:1rem; line-height:1.68; }
.hapfilm-packages-scope .package-card li::before { content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; background:var(--gold); border-radius:50%; }
.hapfilm-packages-scope:is(.text-link), .hapfilm-packages-scope .text-link { margin-top:auto; display:flex; justify-content:space-between; padding-top:20px; border-top:1px solid rgba(255,255,255,.15); font-weight:800; font-size:1rem; text-transform:uppercase; letter-spacing:.07em; }
.hapfilm-packages-scope:is(.text-link:hover), .hapfilm-packages-scope .text-link:hover { color:var(--coral); }
.hapfilm-packages-scope:is(.package-note), .hapfilm-packages-scope .package-note { max-width:1050px; margin:35px 0 0; color:#b2b6b9; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.block-sage), .hapfilm-packages-scope .block-sage { background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.86),transparent 27%),radial-gradient(circle at 88% 92%,rgba(143,40,56,.14),transparent 30%),linear-gradient(135deg,#fff1eb 0%,#f8d0c5 46%,#df9b94 100%); }
.hapfilm-packages-scope:is(.section-split-heading), .hapfilm-packages-scope .section-split-heading { display:grid; grid-template-columns:1fr .8fr; gap:7vw; align-items:end; }
.hapfilm-packages-scope .section-split-heading h2,.hapfilm-packages-scope .event-section h2,.hapfilm-packages-scope .culture-section h2,.hapfilm-packages-scope .showreel h2,.hapfilm-packages-scope .vendor-section h2,.hapfilm-packages-scope .faq-section h2,.hapfilm-packages-scope .early-bird h2,.hapfilm-packages-scope .final-cta h2 { font-size:clamp(3rem,6vw,6.4rem); line-height:.95; }
.hapfilm-packages-scope .section-split-heading>div>p:not(.kicker),.hapfilm-packages-scope .section-split-heading>p { color:#69625c; font-size:1.08rem; line-height:1.7; }
.hapfilm-packages-scope:is(.market-toggle), .hapfilm-packages-scope .market-toggle { width:max-content; margin-top:24px; display:flex; padding:6px; border:2px solid rgba(143,40,56,.28); border-radius:999px; background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,226,218,.82)); box-shadow:0 12px 32px rgba(98,41,47,.13); }
.hapfilm-packages-scope .market-toggle button { min-width:130px; padding:13px 20px; border:0; border-radius:999px; background:transparent; color:#745d5b; cursor:pointer; font-size:1rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; transition:color .25s,background .25s,transform .25s,box-shadow .25s; }
.hapfilm-packages-scope .market-toggle button:hover { transform:translateY(-1px); }
.hapfilm-packages-scope .market-toggle button.active { color:white; background:linear-gradient(135deg,var(--coral),var(--burgundy)); box-shadow:0 8px 24px rgba(143,40,56,.28); }
.hapfilm-packages-scope:is(.hourly-section), .hapfilm-packages-scope .hourly-section { padding:120px 5vw; }
.hapfilm-packages-scope:is(.hourly-grid), .hapfilm-packages-scope .hourly-grid { margin-top:55px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.hapfilm-packages-scope:is(.hourly-card), .hapfilm-packages-scope .hourly-card { padding:34px; border:1px solid var(--line); border-radius:24px; background:var(--ivory); box-shadow:0 20px 50px rgba(44,36,31,.06); }
.hapfilm-packages-scope .hourly-card h3 { margin:11px 0; font-size:2.2rem; }
.hapfilm-packages-scope .hourly-card>p:not(.card-eyebrow) { min-height:100px; color:#635b54; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.rate-list), .hapfilm-packages-scope .rate-list { margin:25px 0; border-top:1px solid var(--line); }
.hapfilm-packages-scope .rate-list div { padding:16px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); font-size:1rem; }
.hapfilm-packages-scope .rate-list strong { color:var(--burgundy); }
.hapfilm-packages-scope:is(.inline-cta), .hapfilm-packages-scope .inline-cta { display:inline-flex; padding-bottom:6px; border-bottom:1px solid var(--burgundy); color:var(--burgundy); font-size:1rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.hapfilm-packages-scope:is(.market-note), .hapfilm-packages-scope .market-note { max-width:940px; margin:28px 0 0; color:#716961; font-size:.92rem; line-height:1.7; }
.hapfilm-packages-scope:is(.event-section), .hapfilm-packages-scope .event-section { padding:120px 5vw; }
.hapfilm-packages-scope .section-heading.dark>p:last-child { color:#4d554f; }
.hapfilm-packages-scope:is(.event-topline), .hapfilm-packages-scope .event-topline { margin:0 0 30px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(16,18,20,.18); padding-top:22px; }
.hapfilm-packages-scope .event-topline p { font-size:.98rem; }
.hapfilm-packages-scope:is(.dark-toggle), .hapfilm-packages-scope .dark-toggle { background:rgba(255,250,242,.82); border-color:rgba(143,40,56,.35); }
.hapfilm-packages-scope:is(.event-grid), .hapfilm-packages-scope .event-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.hapfilm-packages-scope:is(.event-card), .hapfilm-packages-scope .event-card { min-width:0; min-height:470px; padding:28px 22px; border:1px solid rgba(16,18,20,.14); border-radius:20px; background:rgba(255,250,242,.76); display:flex; flex-direction:column; }
.hapfilm-packages-scope:is(.event-number), .hapfilm-packages-scope .event-number { color:var(--burgundy); font-family:"Syne",sans-serif; font-weight:800; }
.hapfilm-packages-scope .event-card h3 { margin:11px 0 18px; font-size:1.65rem; }
.hapfilm-packages-scope:is(.event-hours), .hapfilm-packages-scope .event-hours { margin:0; color:#716a63; font-size:.94rem; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope:is(.event-price), .hapfilm-packages-scope .event-price { margin:5px 0 20px; font-family:"Syne",sans-serif; font-weight:800; font-size:1.8rem; }
.hapfilm-packages-scope .event-card>p:last-of-type { color:#4e5651; font-size:.96rem; line-height:1.65; }
.hapfilm-packages-scope .event-card>a { margin-top:auto; display:flex; justify-content:space-between; padding-top:15px; border-top:1px solid var(--line); font-size:.94rem; font-weight:800; text-transform:uppercase; }
.hapfilm-packages-scope:is(.event-types), .hapfilm-packages-scope .event-types { margin-top:35px; display:flex; flex-wrap:wrap; gap:8px; }
.hapfilm-packages-scope .event-types span { padding:9px 13px; border:1px solid rgba(16,18,20,.18); border-radius:99px; font-size:1rem; font-weight:700; }
.hapfilm-packages-scope:is(.showreel), .hapfilm-packages-scope .showreel { padding:110px 5vw; display:grid; grid-template-columns:.75fr 1.25fr; gap:5vw; align-items:center; }
.hapfilm-packages-scope .showreel-copy>p:not(.kicker) { margin:24px 0 30px; color:#c1c4c6; font-size:1.06rem; line-height:1.75; }
.hapfilm-packages-scope:is(.video-frame), .hapfilm-packages-scope .video-frame { aspect-ratio:16/9; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:26px; background:#050607; box-shadow:0 30px 80px rgba(0,0,0,.38); }
.hapfilm-packages-scope .video-frame iframe { width:100%; height:100%; border:0; }
.hapfilm-packages-scope:is(.culture-section), .hapfilm-packages-scope .culture-section { padding:120px 5vw; }
.hapfilm-packages-scope:is(.culture-grid), .hapfilm-packages-scope .culture-grid { display:grid; gap:28px; }
.hapfilm-packages-scope:is(.culture-card), .hapfilm-packages-scope .culture-card { overflow:hidden; min-height:560px; border:1px solid rgba(255,255,255,.14); border-radius:30px; background:#171a1d; display:grid; grid-template-columns:minmax(340px,.92fr) minmax(0,1.08fr); box-shadow:0 26px 80px rgba(0,0,0,.2); }
.hapfilm-packages-scope:is(.culture-visual), .hapfilm-packages-scope .culture-visual { position:relative; min-height:100%; margin:0; overflow:hidden; background:#090a0b; }
.hapfilm-packages-scope .culture-visual::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 55%,rgba(7,8,10,.72)); }
.hapfilm-packages-scope .culture-visual img { width:100%; height:100%; min-height:560px; display:block; object-fit:cover; object-position:center; transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .4s; }
.hapfilm-packages-scope .culture-card:hover .culture-visual img { transform:scale(1.025); filter:saturate(1.04) contrast(1.02); }
.hapfilm-packages-scope .culture-visual figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; display:flex; flex-direction:column; gap:3px; color:#f5eee6; font-size:.92rem; font-weight:700; line-height:1.45; }
.hapfilm-packages-scope .culture-visual figcaption span { color:var(--gold); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope:is(.culture-content), .hapfilm-packages-scope .culture-content { padding:clamp(34px,4vw,68px); display:flex; flex-direction:column; justify-content:center; }
.hapfilm-packages-scope .culture-title>span { color:var(--coral); font-size:.92rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope .culture-title h3 { margin-top:15px; font-size:clamp(2.4rem,3.6vw,4.5rem); }
.hapfilm-packages-scope:is(.culture-intro), .hapfilm-packages-scope .culture-intro { max-width:780px; margin:24px 0; color:#d2d3d4; font-size:1.08rem; line-height:1.78; }
.hapfilm-packages-scope:is(.culture-timeline), .hapfilm-packages-scope .culture-timeline { margin:4px 0 28px; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:26px; list-style:none; }
.hapfilm-packages-scope .culture-timeline li { padding:12px 0; display:flex; gap:14px; border-bottom:1px solid rgba(255,255,255,.1); color:#ececed; font-size:1rem; line-height:1.45; }
.hapfilm-packages-scope .culture-timeline li span { color:var(--gold); font-weight:800; }
.hapfilm-packages-scope:is(.culture-packages), .hapfilm-packages-scope .culture-packages { display:flex; flex-wrap:wrap; gap:9px; }
.hapfilm-packages-scope .culture-packages span { padding:11px 14px; border:1px solid rgba(255,255,255,.18); border-radius:99px; color:#f5efe7; font-size:.94rem; line-height:1.35; }
.hapfilm-packages-scope .culture-card .text-link { margin-top:28px; }
.hapfilm-packages-scope .culture-media-right .culture-visual { grid-column:2; grid-row:1; }
.hapfilm-packages-scope .culture-media-right .culture-content { grid-column:1; grid-row:1; }
.hapfilm-packages-scope:is(.culture-assyrian), .hapfilm-packages-scope .culture-assyrian { background:linear-gradient(135deg,#181a1d,#251b18); }
.hapfilm-packages-scope:is(.culture-afghan), .hapfilm-packages-scope .culture-afghan { background:linear-gradient(135deg,#181a1d,#16241f); }
.hapfilm-packages-scope:is(.culture-lebanese), .hapfilm-packages-scope .culture-lebanese { background:linear-gradient(135deg,#181a1d,#261821); }
.hapfilm-packages-scope:is(.lighting-section), .hapfilm-packages-scope .lighting-section { position:relative; overflow:hidden; padding:120px 5vw; color:white; background:#131117; }
.hapfilm-packages-scope:is(.lighting-aurora), .hapfilm-packages-scope .lighting-aurora { position:absolute; inset:-30%; opacity:.7; background:conic-gradient(from 140deg,transparent,#8f2838,transparent,#375d55,transparent,#d8a54c,transparent); filter:blur(100px); animation:spinGlow 18s linear infinite; }
@keyframes spinGlow { to { transform:rotate(1turn) scale(1.08); } }
.hapfilm-packages-scope .lighting-section>*:not(.lighting-aurora) { position:relative; z-index:1; }
.hapfilm-packages-scope .lighting-section .section-split-heading>p { color:#c8c6ca; }
.hapfilm-packages-scope:is(.lighting-collections), .hapfilm-packages-scope .lighting-collections { margin-top:55px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:stretch; }
.hapfilm-packages-scope:is(.lighting-collection), .hapfilm-packages-scope .lighting-collection { overflow:hidden; min-width:0; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.2); border-radius:26px; backdrop-filter:blur(18px); transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s,border-color .38s; }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(1)), .hapfilm-packages-scope .lighting-collection:nth-child(1) { background:linear-gradient(160deg,rgba(99,23,40,.94),rgba(28,12,23,.92)); box-shadow:0 22px 70px rgba(255,64,108,.13); animation:lightRise .72s cubic-bezier(.2,.8,.2,1) both; }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(2)), .hapfilm-packages-scope .lighting-collection:nth-child(2) { background:linear-gradient(160deg,rgba(15,51,77,.96),rgba(10,20,38,.94)); box-shadow:0 22px 70px rgba(47,168,255,.13); animation:lightSweep .82s cubic-bezier(.2,.8,.2,1) .08s both; }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(3)), .hapfilm-packages-scope .lighting-collection:nth-child(3) { background:linear-gradient(160deg,rgba(23,79,68,.96),rgba(11,34,32,.94)); box-shadow:0 22px 70px rgba(70,225,187,.13); animation:lightFocus .86s cubic-bezier(.2,.8,.2,1) .12s both; }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(4)), .hapfilm-packages-scope .lighting-collection:nth-child(4) { background:linear-gradient(160deg,rgba(82,22,100,.96),rgba(29,13,45,.94)); box-shadow:0 22px 70px rgba(230,74,255,.13); animation:lightPulse .9s cubic-bezier(.2,.8,.2,1) .18s both; }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(1):hover), .hapfilm-packages-scope .lighting-collection:nth-child(1):hover { transform:translateY(-10px) rotate(-.25deg); border-color:#ff7590; box-shadow:0 30px 85px rgba(255,64,108,.27); }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(2):hover), .hapfilm-packages-scope .lighting-collection:nth-child(2):hover { transform:translateY(-10px) scale(1.012); border-color:#63c7ff; box-shadow:0 30px 85px rgba(47,168,255,.27); }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(3):hover), .hapfilm-packages-scope .lighting-collection:nth-child(3):hover { transform:translateY(-10px) rotate(-.2deg); border-color:#61dfbd; box-shadow:0 30px 85px rgba(70,225,187,.25); }
.hapfilm-packages-scope:is(.lighting-collection:nth-child(4):hover), .hapfilm-packages-scope .lighting-collection:nth-child(4):hover { transform:translateY(-10px) rotate(.25deg); border-color:#ed76ff; box-shadow:0 30px 85px rgba(230,74,255,.27); }
@keyframes lightRise { from { opacity:0; transform:translateY(36px); } to { opacity:1; transform:translateY(0); } }
@keyframes lightSweep { from { opacity:0; transform:translateX(34px); } to { opacity:1; transform:translateX(0); } }
@keyframes lightFocus { from { opacity:0; transform:translateY(24px) scale(.97); filter:brightness(.75); } to { opacity:1; transform:translateY(0) scale(1); filter:brightness(1); } }
@keyframes lightPulse { 0% { opacity:0; transform:scale(.94); filter:saturate(.7); } 70% { opacity:1; transform:scale(1.015); filter:saturate(1.18); } 100% { transform:scale(1); filter:saturate(1); } }
.hapfilm-packages-scope:is(.lighting-visual), .hapfilm-packages-scope .lighting-visual { margin:0; aspect-ratio:16/10; display:grid; place-items:center; overflow:hidden; background:#050607; }
.hapfilm-packages-scope .lighting-visual img { width:100%; height:100%; display:block; object-fit:cover; }
.hapfilm-packages-scope .lighting-collection:nth-child(2) .lighting-visual img { object-fit:contain; background:linear-gradient(145deg,#edf5fa,#cadbe6); }
.hapfilm-packages-scope:is(.lighting-content), .hapfilm-packages-scope .lighting-content { flex:1; padding:26px 24px 30px; display:flex; flex-direction:column; }
.hapfilm-packages-scope:is(.lighting-eyebrow), .hapfilm-packages-scope .lighting-eyebrow { margin:0; color:var(--gold); font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.11em; }
.hapfilm-packages-scope .lighting-content>h3 { margin:11px 0 24px; font-size:clamp(1.55rem,1.8vw,2.35rem); line-height:1; }
.hapfilm-packages-scope:is(.lighting-items), .hapfilm-packages-scope .lighting-items { flex:1; display:grid; gap:16px; align-content:start; }
.hapfilm-packages-scope:is(.lighting-item), .hapfilm-packages-scope .lighting-item { padding-top:18px; border-top:1px solid rgba(255,255,255,.15); }
.hapfilm-packages-scope .lighting-item>div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.hapfilm-packages-scope .lighting-item h4 { margin:0; font-family:"Syne",sans-serif; font-size:1.16rem; line-height:1.25; }
.hapfilm-packages-scope .lighting-item strong { flex:0 0 auto; color:var(--coral); }
.hapfilm-packages-scope .lighting-item p { margin:12px 0 16px; color:#eeeaf0; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.lighting-links), .hapfilm-packages-scope .lighting-links { display:flex; flex-wrap:wrap; gap:18px; }
.hapfilm-packages-scope .lighting-links a { color:white; font-size:1rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid rgba(255,255,255,.3); }
.hapfilm-packages-scope .lighting-links a:first-child { color:var(--gold); }
.hapfilm-packages-scope:is(.production-line), .hapfilm-packages-scope .production-line { margin-top:35px; padding-top:28px; display:flex; justify-content:space-between; align-items:center; gap:35px; border-top:1px solid rgba(255,255,255,.15); }
.hapfilm-packages-scope .production-line>div { max-width:760px; }
.hapfilm-packages-scope .production-line span { color:var(--gold); font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope .production-line p { margin:8px 0 0; color:#c9c7cb; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.button-light), .hapfilm-packages-scope .button-light { background:white; color:var(--burgundy); }
.hapfilm-packages-scope:is(.vendor-section), .hapfilm-packages-scope .vendor-section { padding:120px 5vw; }
.hapfilm-packages-scope:is(.vendor-grid), .hapfilm-packages-scope .vendor-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.hapfilm-packages-scope:is(.vendor-card), .hapfilm-packages-scope .vendor-card { overflow:hidden; border:1px solid var(--line); border-radius:24px; background:var(--ivory); transition:transform .3s,box-shadow .3s; }
.hapfilm-packages-scope:is(.vendor-card:hover), .hapfilm-packages-scope .vendor-card:hover { transform:translateY(-7px); box-shadow:0 25px 60px rgba(60,45,35,.12); }
.hapfilm-packages-scope:is(.vendor-visual), .hapfilm-packages-scope .vendor-visual { aspect-ratio:4/3; display:grid; place-items:center; overflow:hidden; background:#17191c; }
.hapfilm-packages-scope .vendor-visual img { width:100%; height:100%; object-fit:contain; }
.hapfilm-packages-scope:is(.vendor-mark), .hapfilm-packages-scope .vendor-mark { width:100%; height:100%; display:grid; place-items:center; color:white; font-family:"Syne",sans-serif; font-size:4rem; font-weight:800; }
.hapfilm-packages-scope:is(.mark-pv), .hapfilm-packages-scope .mark-pv { background:radial-gradient(circle at 30% 20%,#ffbd69,transparent 35%),linear-gradient(135deg,#a34e9d,#5e3878); }
.hapfilm-packages-scope:is(.mark-sc), .hapfilm-packages-scope .mark-sc { background:radial-gradient(circle at 70% 25%,#f6d58f,transparent 35%),linear-gradient(135deg,#284c42,#162a25); }
.hapfilm-packages-scope .vendor-card>div:last-child { padding:22px; }
.hapfilm-packages-scope .vendor-card p { margin:0 0 8px; color:#746c64; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.hapfilm-packages-scope .vendor-card h3 { font-size:1.55rem; }
.hapfilm-packages-scope .vendor-card span { display:inline-block; margin-top:18px; color:var(--burgundy); font-size:.94rem; font-weight:800; text-transform:uppercase; }
.hapfilm-packages-scope:is(.faq-section), .hapfilm-packages-scope .faq-section { padding:110px 5vw; display:grid; grid-template-columns:.8fr 1.2fr; gap:7vw; }
.hapfilm-packages-scope:is(.faq-list), .hapfilm-packages-scope .faq-list { border-top:1px solid var(--line); }
.hapfilm-packages-scope .faq-list details { border-bottom:1px solid var(--line); }
.hapfilm-packages-scope .faq-list summary { padding:22px 0; display:flex; justify-content:space-between; cursor:pointer; font-size:1.05rem; font-weight:800; list-style:none; }
.hapfilm-packages-scope .faq-list summary span { color:var(--coral); }
.hapfilm-packages-scope .faq-list details[open] summary span { transform:rotate(45deg); }
.hapfilm-packages-scope .faq-list details p { margin:0; padding:0 35px 24px 0; color:#5e5751; font-size:1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.early-bird), .hapfilm-packages-scope .early-bird { padding:95px 5vw; display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; align-items:center; color:white; background:radial-gradient(circle at 15% 30%,rgba(216,165,76,.28),transparent 32%),linear-gradient(135deg,#151719,#25201b); }
.hapfilm-packages-scope .early-bird>div:last-child p { margin:0 0 28px; color:#d5d0c9; font-size:1.08rem; line-height:1.75; }
.hapfilm-packages-scope:is(.final-cta), .hapfilm-packages-scope .final-cta { padding:130px 5vw; color:white; background:radial-gradient(circle at 80% 30%,rgba(255,93,74,.32),transparent 32%),var(--ink); }
.hapfilm-packages-scope .final-cta h2 { max-width:1000px; }
.hapfilm-packages-scope .final-cta>p:not(.kicker) { max-width:800px; margin:25px 0 32px; color:#c8c9cb; font-size:1.15rem; line-height:1.75; }
.hapfilm-packages-scope:is(.whatsapp-button), .hapfilm-packages-scope .whatsapp-button { color:#25d366; background:white; border:2px solid #25d366; box-shadow:0 16px 36px rgba(37,211,102,.16); }
.hapfilm-packages-scope:is(.whatsapp-button:hover), .hapfilm-packages-scope .whatsapp-button:hover { color:white; background:#1fb85a; border-color:#1fb85a; }
.hapfilm-packages-scope:is(.site-footer), .hapfilm-packages-scope .site-footer { padding:80px 5vw 25px; color:white; background:#08090a; }
.hapfilm-packages-scope:is(.footer-top), .hapfilm-packages-scope .footer-top { padding-bottom:40px; display:grid; grid-template-columns:.45fr 1fr; gap:5vw; border-bottom:1px solid rgba(255,255,255,.12); }
.hapfilm-packages-scope:is(.footer-brand), .hapfilm-packages-scope .footer-brand { font-size:2rem; }
.hapfilm-packages-scope .footer-top p { max-width:860px; margin:0; color:#b5b8ba; font-size:1.1rem; line-height:1.7; }
.hapfilm-packages-scope:is(.footer-links), .hapfilm-packages-scope .footer-links { padding:45px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:5vw; }
.hapfilm-packages-scope .footer-links h3 { margin-bottom:18px; color:#e6e1da; font-family:"Manrope",sans-serif; font-size:.9rem; text-transform:uppercase; letter-spacing:.12em; }
.hapfilm-packages-scope .footer-links a { display:block; padding:7px 0; color:#b3b6b8; font-size:1rem; }
.hapfilm-packages-scope .footer-links a:hover { color:var(--coral); }
.hapfilm-packages-scope .footer-links .nz-whatsapp,.hapfilm-packages-scope .footer-links .nz-whatsapp span { color:#25d366; font-weight:800; }
.hapfilm-packages-scope .footer-links .nz-whatsapp:hover,.hapfilm-packages-scope .footer-links .nz-whatsapp:hover span { color:#49e983; }
.hapfilm-packages-scope:is(.social-row), .hapfilm-packages-scope .social-row { padding:25px 0; display:flex; flex-wrap:wrap; gap:10px; border-top:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); }
.hapfilm-packages-scope .social-row a { padding:10px 13px; border:1px solid rgba(255,255,255,.13); border-radius:99px; color:#d3d5d6; font-size:.9rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.hapfilm-packages-scope .social-row a:hover, .hapfilm-packages-scope .social-row a:focus-visible { color:white; border-color:var(--social-hover, var(--coral)); background:var(--social-hover, var(--coral)); transform:translateY(-2px); }
.hapfilm-packages-scope .social-row .social-instagram { color:#ff5aaa; border-color:rgba(255,90,170,.55); --social-hover:#b72f73; }
.hapfilm-packages-scope .social-row .social-facebook { color:#4c9aff; border-color:rgba(76,154,255,.55); --social-hover:#1877f2; }
.hapfilm-packages-scope .social-row .social-youtube { color:#ff453a; border-color:rgba(255,69,58,.55); --social-hover:#d90000; }
.hapfilm-packages-scope .social-row .social-tiktok { color:#b7bdc6; border-color:rgba(183,189,198,.42); --social-hover:#505660; }
.hapfilm-packages-scope .social-row .social-pinterest { color:#ff3155; border-color:rgba(255,49,85,.55); --social-hover:#bd081c; }
.hapfilm-packages-scope .social-row .social-telegram { color:#36b9f3; border-color:rgba(54,185,243,.55); --social-hover:#168acd; }
.hapfilm-packages-scope .social-row .whatsapp-social { color:#25d366; border-color:rgba(37,211,102,.48); }
.hapfilm-packages-scope .social-row .whatsapp-social { --social-hover:#1a9f4d; }
.hapfilm-packages-scope:is(.footer-bottom), .hapfilm-packages-scope .footer-bottom { padding-top:22px; display:flex; justify-content:space-between; color:#878b8e; font-size:.9rem; text-transform:uppercase; letter-spacing:.1em; }
@media (max-width:1400px) {
  .hapfilm-packages-scope:is(.package-grid),.hapfilm-packages-scope .package-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1100px) {
  .hapfilm-packages-scope .site-header nav{display:none}.hapfilm-packages-scope:is(.hero),.hapfilm-packages-scope .hero{grid-template-columns:1fr}.hapfilm-packages-scope:is(.hero-visual),.hapfilm-packages-scope .hero-visual{min-height:560px}.hapfilm-packages-scope:is(.package-grid),.hapfilm-packages-scope .package-grid{grid-template-columns:repeat(2,1fr)}
  .hapfilm-packages-scope:is(.event-grid),.hapfilm-packages-scope .event-grid{grid-template-columns:repeat(3,1fr)}
  .hapfilm-packages-scope:is(.vendor-grid),.hapfilm-packages-scope .vendor-grid{grid-template-columns:repeat(2,1fr)}.hapfilm-packages-scope:is(.culture-card),.hapfilm-packages-scope .culture-card{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr)}.hapfilm-packages-scope:is(.culture-timeline),.hapfilm-packages-scope .culture-timeline{grid-template-columns:1fr}
  .hapfilm-packages-scope:is(.package-heading),.hapfilm-packages-scope .package-heading{align-items:flex-start;flex-direction:column}
}
@media (max-width:1200px) {
  .hapfilm-packages-scope:is(.lighting-collections),.hapfilm-packages-scope .lighting-collections{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hapfilm-packages-scope:is(.lighting-visual),.hapfilm-packages-scope .lighting-visual{aspect-ratio:16/8}
}
@media (max-width:800px) {
  .hapfilm-packages-scope:is(.section-split-heading),.hapfilm-packages-scope .section-split-heading,.hapfilm-packages-scope:is(.showreel),.hapfilm-packages-scope .showreel,.hapfilm-packages-scope:is(.faq-section),.hapfilm-packages-scope .faq-section,.hapfilm-packages-scope:is(.early-bird),.hapfilm-packages-scope .early-bird{grid-template-columns:1fr}.hapfilm-packages-scope:is(.hourly-grid),.hapfilm-packages-scope .hourly-grid{grid-template-columns:1fr}.hapfilm-packages-scope:is(.event-grid),.hapfilm-packages-scope .event-grid{grid-template-columns:repeat(2,1fr)}
  .hapfilm-packages-scope:is(.footer-top),.hapfilm-packages-scope .footer-top{grid-template-columns:1fr}.hapfilm-packages-scope:is(.footer-links),.hapfilm-packages-scope .footer-links{grid-template-columns:1fr 1fr}.hapfilm-packages-scope:is(.culture-card),.hapfilm-packages-scope .culture-card{min-height:0;grid-template-columns:1fr}.hapfilm-packages-scope .culture-media-right .culture-visual,.hapfilm-packages-scope .culture-media-right .culture-content{grid-column:1;grid-row:auto}.hapfilm-packages-scope:is(.culture-visual),.hapfilm-packages-scope .culture-visual{grid-row:1!important}.hapfilm-packages-scope:is(.culture-content),.hapfilm-packages-scope .culture-content{grid-row:2!important}.hapfilm-packages-scope .culture-visual img{min-height:0;aspect-ratio:16/10}.hapfilm-packages-scope:is(.culture-timeline),.hapfilm-packages-scope .culture-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.hapfilm-packages-scope:is(.production-line),.hapfilm-packages-scope .production-line{align-items:flex-start;flex-direction:column}.hapfilm-packages-scope:is(.planner-workspace),.hapfilm-packages-scope .planner-workspace{grid-template-columns:1fr}.hapfilm-packages-scope:is(.planner-detail),.hapfilm-packages-scope .planner-detail{grid-template-columns:1fr}.hapfilm-packages-scope:is(.planner-detail-image),.hapfilm-packages-scope .planner-detail-image{width:auto;min-height:0;margin:24px 24px 0;aspect-ratio:16/9}.hapfilm-packages-scope:is(.planner-fields),.hapfilm-packages-scope .planner-fields{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px) {
  .hapfilm-packages-scope{font-size:17px}.hapfilm-packages-scope:is(.site-header),.hapfilm-packages-scope .site-header{min-height:66px;grid-template-columns:1fr auto}.hapfilm-packages-scope:is(.header-cta),.hapfilm-packages-scope .header-cta{font-size:.8rem;padding:10px 13px}.hapfilm-packages-scope:is(.hero),.hapfilm-packages-scope .hero{padding:78px 22px 50px;min-height:auto}.hapfilm-packages-scope:is(h1),.hapfilm-packages-scope h1{font-size:clamp(3.35rem,17vw,5.1rem)}
  .hapfilm-packages-scope:is(.hero-visual),.hapfilm-packages-scope .hero-visual{min-height:440px}.hapfilm-packages-scope:is(.media-frame-hero),.hapfilm-packages-scope .media-frame-hero{width:100%}.hapfilm-packages-scope:is(.package-intro),.hapfilm-packages-scope .package-intro{padding:82px 22px 38px;grid-template-columns:1fr}.hapfilm-packages-scope:is(.journey),.hapfilm-packages-scope .journey{padding:0 22px 80px}.hapfilm-packages-scope .journey-tabs button{min-height:100px;padding:14px 9px}.hapfilm-packages-scope .journey-tabs button small{display:none}
  .hapfilm-packages-scope:is(.timeline-intro),.hapfilm-packages-scope .timeline-intro{padding:0 22px}.hapfilm-packages-scope:is(.timeline-actions),.hapfilm-packages-scope .timeline-actions{padding-inline:22px}.hapfilm-packages-scope:is(.planner-workspace),.hapfilm-packages-scope .planner-workspace{padding-inline:22px}.hapfilm-packages-scope:is(.planner-detail-copy),.hapfilm-packages-scope .planner-detail-copy{padding:28px 22px}.hapfilm-packages-scope:is(.planner-fields),.hapfilm-packages-scope .planner-fields{grid-template-columns:1fr}.hapfilm-packages-scope:is(.planner-disclaimer),.hapfilm-packages-scope .planner-disclaimer{padding-inline:22px}.hapfilm-packages-scope:is(.package-grid-section),.hapfilm-packages-scope .package-grid-section,.hapfilm-packages-scope:is(.hourly-section),.hapfilm-packages-scope .hourly-section,.hapfilm-packages-scope:is(.event-section),.hapfilm-packages-scope .event-section,.hapfilm-packages-scope:is(.showreel),.hapfilm-packages-scope .showreel,.hapfilm-packages-scope:is(.culture-section),.hapfilm-packages-scope .culture-section,.hapfilm-packages-scope:is(.lighting-section),.hapfilm-packages-scope .lighting-section,.hapfilm-packages-scope:is(.vendor-section),.hapfilm-packages-scope .vendor-section,.hapfilm-packages-scope:is(.faq-section),.hapfilm-packages-scope .faq-section,.hapfilm-packages-scope:is(.early-bird),.hapfilm-packages-scope .early-bird{padding:85px 22px}
  .hapfilm-packages-scope:is(.package-grid),.hapfilm-packages-scope .package-grid,.hapfilm-packages-scope:is(.event-grid),.hapfilm-packages-scope .event-grid,.hapfilm-packages-scope:is(.vendor-grid),.hapfilm-packages-scope .vendor-grid{grid-template-columns:1fr}.hapfilm-packages-scope:is(.package-card),.hapfilm-packages-scope .package-card{min-height:auto}.hapfilm-packages-scope:is(.event-card),.hapfilm-packages-scope .event-card{min-height:auto}.hapfilm-packages-scope:is(.event-topline),.hapfilm-packages-scope .event-topline{align-items:flex-start;gap:18px;flex-direction:column}
  .hapfilm-packages-scope:is(.market-toggle),.hapfilm-packages-scope .market-toggle{width:100%}.hapfilm-packages-scope .market-toggle button{min-width:0;flex:1;padding-inline:12px}.hapfilm-packages-scope:is(.lighting-collections),.hapfilm-packages-scope .lighting-collections{grid-template-columns:1fr}.hapfilm-packages-scope:is(.lighting-visual),.hapfilm-packages-scope .lighting-visual{aspect-ratio:16/10}.hapfilm-packages-scope:is(.lighting-content),.hapfilm-packages-scope .lighting-content{padding:30px 24px}.hapfilm-packages-scope .lighting-item>div:first-child{align-items:flex-start;flex-direction:column;gap:8px}.hapfilm-packages-scope:is(.culture-content),.hapfilm-packages-scope .culture-content{padding:32px 24px}.hapfilm-packages-scope .culture-visual img{aspect-ratio:4/3}.hapfilm-packages-scope:is(.culture-timeline),.hapfilm-packages-scope .culture-timeline{grid-template-columns:1fr}.hapfilm-packages-scope:is(.footer-links),.hapfilm-packages-scope .footer-links{grid-template-columns:1fr}.hapfilm-packages-scope:is(.footer-bottom),.hapfilm-packages-scope .footer-bottom{gap:14px;flex-direction:column}.hapfilm-packages-scope:is(.site-footer),.hapfilm-packages-scope .site-footer{padding:65px 22px 24px}
}
@media (prefers-reduced-motion:reduce) {
  .hapfilm-packages-scope{scroll-behavior:auto}
  .hapfilm-packages-scope:is(.image-orbit),.hapfilm-packages-scope .image-orbit,.hapfilm-packages-scope:is(.lighting-aurora),.hapfilm-packages-scope .lighting-aurora,.hapfilm-packages-scope:is(.lighting-collection),.hapfilm-packages-scope .lighting-collection,.hapfilm-packages-scope:is(.timeline-experience),.hapfilm-packages-scope .timeline-experience{animation:none!important}
  .hapfilm-packages-scope:is(.lighting-collection:hover),.hapfilm-packages-scope .lighting-collection:hover{transform:none}
}

/* Explicit heading contrast fixes: prevent theme/Elementor global heading colours from overriding section design. */
.hapfilm-packages-scope .timeline-package-intro h2 {
  color: #101214 !important;
}
.hapfilm-packages-scope .early-bird h2 {
  color: #ffffff !important;
}
