{"id":81,"date":"2026-11-05T14:41:51","date_gmt":"2026-11-05T14:41:51","guid":{"rendered":"https:\/\/befv-berlin.com\/?page_id=81"},"modified":"2026-11-05T19:14:15","modified_gmt":"2026-11-05T19:14:15","slug":"test-page","status":"publish","type":"page","link":"https:\/\/befv-berlin.com\/de\/test-page\/","title":{"rendered":"Booking"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"class_list":["post-81","page","type-page","status-publish","hentry"],"grid":"{\"colCount\":24,\"colGutter\":1,\"rowGutters\":[],\"frameMargin\":5,\"leftFrameMargin\":5,\"rightFrameMargin\":5,\"topFrameMargin\":40,\"mus\":{\"colGutterMu\":\"%\",\"rowGutterMu\":\"%\",\"topFrameMu\":\"px\",\"bottomFrameMu\":\"%\",\"frameMu\":\"%\"},\"bottomFrameMargin\":5,\"rowAttrs\":[{\"relid\":2}],\"bgColor\":null,\"bgImage\":null,\"cont\":[{\"row\":0,\"col\":0,\"colspan\":24,\"push\":0,\"align\":\"top\",\"absolute_position\":false,\"cont\":\"<section id=\\\"befv-booking\\\" aria-labelledby=\\\"befv-booking-title\\\">\\n  <div class=\\\"booking-intro\\\">\\n    <p class=\\\"booking-kicker\\\">BOOKING ENQUIRY<\/p>\\n    <h2 id=\\\"befv-booking-title\\\">Tell us about your event<\/h2>\\n    <p>Share a few details and we\\u2019ll get back to you about availability and the next steps.<\/p>\\n  <\/div>\\n  <form id=\\\"befv-booking-form\\\" data-email-to=\\\"hello@befv-berlin.com\\\">\\n    <div class=\\\"booking-honeypot\\\" aria-hidden=\\\"true\\\"><label>Leave this field empty<input type=\\\"text\\\" name=\\\"website\\\" tabindex=\\\"-1\\\" autocomplete=\\\"off\\\"><\/label><\/div>\\n    <div class=\\\"booking-grid\\\">\\n      <label class=\\\"booking-field\\\">Your name\\n        <input name=\\\"name\\\" type=\\\"text\\\" autocomplete=\\\"name\\\" required>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Email address\\n        <input name=\\\"email\\\" type=\\\"email\\\" autocomplete=\\\"email\\\" required>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Event date\\n        <input name=\\\"date\\\" type=\\\"date\\\" required>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Start time\\n        <input name=\\\"time\\\" type=\\\"time\\\" required>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Estimated coverage duration (hours)\\n        <input name=\\\"hours\\\" type=\\\"number\\\" min=\\\"1\\\" max=\\\"24\\\" step=\\\"0.5\\\" value=\\\"2\\\" required>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Type of event\\n        <select name=\\\"event_type\\\" required>\\n          <option value=\\\"\\\" selected disabled>Select an event type<\/option>\\n          <option>Corporate event<\/option>\\n          <option>Exhibition or opening<\/option>\\n          <option>Conference or talk<\/option>\\n          <option>Performance or cultural event<\/option>\\n          <option>Private event<\/option>\\n          <option>Other<\/option>\\n        <\/select>\\n      <\/label>\\n      <label class=\\\"booking-field\\\">Number of photographers\\n        <select name=\\\"photographers\\\">\\n          <option value=\\\"0\\\">No photography<\/option>\\n          <option value=\\\"1\\\" selected>1 photographer<\/option>\\n          <option value=\\\"2\\\">2 photographers<\/option>\\n          <option value=\\\"3\\\">3 photographers<\/option>\\n        <\/select>\\n      <\/label>\\n      <label class=\\\"booking-field booking-photo-edit-toggle\\\">\\n        <span>Photo editing<\/span>\\n        <span class=\\\"booking-check\\\"><input name=\\\"photo_editing\\\" type=\\\"checkbox\\\" value=\\\"yes\\\" checked> Include photo editing<\/span>\\n      <\/label>\\n      <label class=\\\"booking-field booking-video-toggle\\\">\\n        <span>Video coverage<\/span>\\n        <span class=\\\"booking-check\\\"><input name=\\\"video_coverage\\\" type=\\\"checkbox\\\" value=\\\"yes\\\"> Add video coverage<\/span>\\n      <\/label>\\n      <div class=\\\"booking-video-options booking-field-wide\\\" hidden>\\n        <label class=\\\"booking-field\\\">Number of videographers\\n          <select name=\\\"video_crew\\\">\\n            <option value=\\\"1\\\" selected>1 videographer<\/option>\\n            <option value=\\\"2\\\">2 videographers<\/option>\\n            <option value=\\\"3\\\">3 videographers<\/option>\\n          <\/select>\\n        <\/label>\\n        <label class=\\\"booking-field\\\">Desired final video length\\n          <select name=\\\"video_minutes\\\">\\n            <option value=\\\"1\\\" selected>1 minute<\/option>\\n            <option value=\\\"2-3\\\">2\\u20133 minutes<\/option>\\n            <option value=\\\"4-6\\\">4\\u20136 minutes<\/option>\\n            <option value=\\\"7-10\\\">7\\u201310 minutes<\/option>\\n          <\/select>\\n        <\/label>\\n      <\/div>\\n      <label class=\\\"booking-field booking-field-wide\\\">Tell us about the event\\n        <textarea name=\\\"description\\\" rows=\\\"5\\\" placeholder=\\\"What is happening, where, and what would you like us to cover?\\\" required><\/textarea>\\n      <\/label>\\n    <\/div>\\n    <div class=\\\"booking-estimate\\\" aria-live=\\\"polite\\\">\\n      <div class=\\\"booking-cost-row\\\">\\n        <div class=\\\"booking-cost-label\\\"><span>Coverage estimate<\/span><small class=\\\"booking-cost-detail\\\">\\u20ac100 per hour per photographer or videographer.<\/small><\/div>\\n        <strong id=\\\"befv-booking-coverage\\\">\\u20ac200<\/strong>\\n      <\/div>\\n      <div class=\\\"booking-cost-row\\\" id=\\\"befv-booking-photo-edit-row\\\">\\n        <div class=\\\"booking-cost-label\\\"><span>Photo editing estimate<\/span><small class=\\\"booking-cost-detail\\\" id=\\\"befv-booking-photo-note\\\">Editing is charged at \\u20ac50 per photographer per shooting hour. Estimated delivery for this booking: around 40 edited photos.<\/small><\/div>\\n        <strong id=\\\"befv-booking-photo-edit\\\">\\u20ac100<\/strong>\\n      <\/div>\\n      <div class=\\\"booking-cost-row\\\" id=\\\"befv-booking-video-edit-row\\\" hidden>\\n        <div class=\\\"booking-cost-label\\\"><span>Video editing estimate<\/span><small class=\\\"booking-cost-detail\\\" id=\\\"befv-booking-video-note\\\">Estimated editing: 1 day (\\u20ac450), at \\u20ac450 per editing day. Final quote depends on the material.<\/small><\/div>\\n        <strong id=\\\"befv-booking-video-edit\\\">\\u20ac450<\/strong>\\n      <\/div>\\n      <p class=\\\"booking-vat-note\\\">All prices exclude VAT.<\/p>\\n      <div class=\\\"booking-cost-total\\\"><span>Estimated total before VAT<\/span><strong id=\\\"befv-booking-total\\\">\\u20ac300<\/strong><\/div>\\n      <p class=\\\"booking-final-note\\\">Final quote confirmed after reviewing your request.<\/p>\\n    <\/div>\\n    <button class=\\\"booking-submit\\\" type=\\\"submit\\\">Send booking request<\/button>\\n    <p class=\\\"booking-status\\\" id=\\\"befv-booking-status\\\" role=\\\"status\\\" aria-live=\\\"polite\\\"><\/p>\\n  <\/form>\\n<\/section>\\n<style>\\n#grid.id-81{background-color:#F8F8F8}\\n#befv-booking .booking-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}\\n#befv-booking{--booking-accent:#D8F95F;max-width:1120px;margin:0 auto;padding:clamp(40px,7vw,100px) clamp(20px,5vw,64px);color:#111;font-family:\\\"GoogleSans-VariableFont_GRAD_opsz_wght\\\",\\\"Google Sans\\\",Arial,sans-serif;font-size:18px;font-weight:400;line-height:1.5}\\n#befv-booking *{box-sizing:border-box}\\n#befv-booking .booking-intro{max-width:760px;margin-bottom:clamp(32px,5vw,56px)}\\n#befv-booking .booking-kicker{font-size:13px;letter-spacing:.12em;line-height:1.3;margin:0 0 18px;color:#444}\\n#befv-booking h2{font-family:inherit;font-size:clamp(38px,6vw,64px);line-height:1.02;letter-spacing:-.04em;margin:0 0 20px;font-weight:400}\\n#befv-booking .booking-intro>p:last-child{font-size:18px;line-height:1.5;color:#444;margin:0}\\n#befv-booking .booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 24px}\\n#befv-booking .booking-field{display:flex;flex-direction:column;gap:10px;font-size:18px;line-height:1.35}\\n#befv-booking .booking-field input:not([type=checkbox]),#befv-booking .booking-field select,#befv-booking .booking-field textarea{width:100%;min-height:58px;border:1px solid #999;border-radius:8px;background:#fff;padding:15px 16px;font-family:inherit;font-size:18px;font-weight:400;line-height:1.4;color:#111}\\n#befv-booking .booking-field textarea{min-height:160px;resize:vertical}\\n#befv-booking .booking-field input:focus,#befv-booking .booking-field select:focus,#befv-booking .booking-field textarea:focus{outline:none;outline-offset:0;border-color:#111;box-shadow:none}\\n#befv-booking .booking-field-wide{grid-column:1\/-1}\\n#befv-booking .booking-video-toggle{justify-content:flex-start}\\n#befv-booking .booking-photo-edit-toggle,#befv-booking .booking-video-toggle{gap:10px}\\n#befv-booking .booking-photo-edit-toggle .booking-check,#befv-booking .booking-video-toggle .booking-check{transform:translateY(-14px)}\\n#befv-booking .booking-check{display:flex;align-items:center;gap:12px;min-height:58px;padding:0}\\n#befv-booking .booking-check input{width:22px;height:22px;accent-color:#111}\\n#befv-booking .booking-video-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin-top:-26px;margin-bottom:8px}\\n#befv-booking .booking-video-options[hidden]{display:none}\\n#befv-booking .booking-cost-label{display:flex;flex-direction:column;gap:3px}\\n#befv-booking .booking-cost-detail,#befv-booking .booking-vat-note{font-size:14px;line-height:1.4;color:#777;margin:0}\\n#befv-booking .booking-vat-note{padding-top:4px}\\n#befv-booking .booking-estimate{display:flex;flex-direction:column;gap:12px;margin:40px 0 28px;padding:24px 0;border-top:1px solid #111;border-bottom:1px solid #111}\\n#befv-booking .booking-cost-row,#befv-booking .booking-cost-total{display:flex;justify-content:space-between;gap:24px;align-items:baseline}\\n#befv-booking .booking-cost-row[hidden]{display:none}\\n#befv-booking .booking-cost-row strong{font-size:22px;font-weight:400;white-space:nowrap}\\n#befv-booking .booking-cost-total{padding-top:14px;border-top:1px solid #bbb}\\n#befv-booking .booking-cost-total span{font-size:22px;font-weight:500}\\n#befv-booking .booking-cost-total strong{font-size:36px;line-height:1.1;font-weight:500;white-space:nowrap}\\n#befv-booking .booking-estimate p{font-size:18px;line-height:1.5;color:#444;margin:0}\\n#befv-booking .booking-estimate .booking-vat-note{font-size:14px;line-height:1.4;color:#777}\\n#befv-booking .booking-estimate .booking-final-note{margin-top:0;font-size:14px;line-height:1.4;color:#777}\\n#befv-booking .booking-submit{border:0;box-sizing:border-box;border-radius:8px;background:var(--booking-accent);color:#111;padding:16px 24px;font-family:inherit;font-size:18px;font-weight:400;line-height:1.4;cursor:pointer;transition:background-color 250ms ease,transform 250ms ease}\\n#befv-booking .booking-submit:hover{background:#CFF543;color:#111;transform:translateY(-2px)}\\n#befv-booking .booking-status{min-height:1.5em;margin:16px 0 0;font-size:18px;line-height:1.5;color:#444}\\n@media(max-width:640px){#befv-booking{padding:40px 20px}#befv-booking .booking-grid{grid-template-columns:1fr;gap:20px}#befv-booking .booking-field-wide{grid-column:auto}#befv-booking .booking-video-options{grid-template-columns:1fr}#befv-booking .booking-estimate{margin-top:30px}#befv-booking .booking-cost-total strong{font-size:28px}}\\n<\/style>\\n<script>\\n(function(){\\n  var form=document.getElementById('befv-booking-form');\\n  if(!form||form.dataset.ready==='true')return;\\n  form.dataset.ready='true';\\n  var hours=form.elements.hours;\\n  var photographers=form.elements.photographers;\\n  var video=form.elements.video_coverage;\\n  var videoMinutes=form.elements.video_minutes;\\n  var videoCrew=form.elements.video_crew;\\n  var photoEditing=form.elements.photo_editing;\\n  var videoOptions=form.querySelector('.booking-video-options');\\n  var coverageOut=document.getElementById('befv-booking-coverage');\\n  var photoEditRow=document.getElementById('befv-booking-photo-edit-row');\\n  var photoEditOut=document.getElementById('befv-booking-photo-edit');\\n  var videoEditRow=document.getElementById('befv-booking-video-edit-row');\\n  var videoEditOut=document.getElementById('befv-booking-video-edit');\\n  var totalOut=document.getElementById('befv-booking-total');\\n  var photoNote=document.getElementById('befv-booking-photo-note');\\n  var videoNote=document.getElementById('befv-booking-video-note');\\n  var date=form.elements.date;\\n  var today=new Date();\\n  date.min=new Date(today.getTime()-today.getTimezoneOffset()*60000).toISOString().slice(0,10);\\n  function euro(amount){return new Intl.NumberFormat('en-IE',{style:'currency',currency:'EUR',maximumFractionDigits:2}).format(amount);}\\n  function updateEstimate(){\\n    var hourCount=Math.max(0,Number(hours.value)||0);\\n    var photographerCount=Math.max(0,Number(photographers.value)||0);\\n    var includesVideo=video.checked;\\n    var videoCrewCount=includesVideo?Math.max(1,Number(videoCrew.value)||1):0;\\n    var coverage=hourCount*100*(photographerCount+videoCrewCount);\\n    var photoEdit=photoEditing.checked?hourCount*photographerCount*50:0;\\n    var editPrices={'1':450,'2-3':900,'4-6':1350,'7-10':1800};\\n    var videoEdit=includesVideo?(editPrices[videoMinutes.value]||450):0;\\n    var editDays={'1':1,'2-3':2,'4-6':3,'7-10':4};\\n    var videoEditDays=editDays[videoMinutes.value]||1;\\n    var photoCount=photographerCount*hourCount*20;\\n    videoOptions.hidden=!includesVideo;\\n    photoEditRow.hidden=!photoEditing.checked||photographerCount===0;\\n    videoEditRow.hidden=!includesVideo;\\n    coverageOut.textContent=euro(coverage);\\n    photoEditOut.textContent=euro(photoEdit);\\n    videoEditOut.textContent=euro(videoEdit);\\n    videoNote.textContent='Estimated editing: '+videoEditDays+' '+(videoEditDays===1?'day':'days')+' ('+euro(videoEdit)+'), at \\u20ac450 per editing day. Final quote depends on the material.';\\n    totalOut.textContent=euro(coverage+photoEdit+videoEdit);\\n    photoNote.textContent='Editing is charged at \\u20ac50 per photographer per shooting hour. Estimated delivery for this booking: around '+Math.round(photoCount)+' edited photos.';\\n  }\\n  [hours,photographers,photoEditing,video,videoCrew,videoMinutes].forEach(function(control){control.addEventListener('input',updateEstimate);control.addEventListener('change',updateEstimate);});\\n  updateEstimate();\\n  form.addEventListener('submit',function(event){\\n    event.preventDefault();\\n    var photographerCount=Number(photographers.value)||0;\\n    var includesVideo=video.checked;\\n    if(photographerCount===0&&!includesVideo){document.getElementById('befv-booking-status').textContent='Please choose photography, video coverage, or both.';photographers.focus();return;}\\n    var details=Object.fromEntries(new FormData(form).entries());\\n    var hourCount=Number(details.hours)||0;\\n    var videoCrewCount=includesVideo?(Number(details.video_crew)||1):0;\\n    var photoCount=photographerCount*hourCount*20;\\n        details.photographer_count=photographerCount;\\n    details.video_coverage=includesVideo;\\n    details.video_crew_count=videoCrewCount;\\n    details.photo_editing=photoEditing.checked&&photographerCount>0;\\n    details.estimated_photo_count=photoCount;\\n    details.coverage_estimate=hourCount*100*(photographerCount+videoCrewCount);\\n    details.photo_edit_estimate=details.photo_editing?hourCount*photographerCount*50:0;\\n    var videoEditPrices={'1':450,'2-3':900,'4-6':1350,'7-10':1800};\\n    details.video_edit_estimate=includesVideo?(videoEditPrices[details.video_minutes]||450):0;\\n    details.estimated_cost_before_vat=details.coverage_estimate+details.photo_edit_estimate+details.video_edit_estimate;\\n    details.recipient=form.dataset.emailTo;\\n    var status=document.getElementById('befv-booking-status');\\n    var sendButton=form.querySelector('.booking-submit');\\n    var buttonLabel=sendButton.textContent;\\n    sendButton.disabled=true;\\n    sendButton.textContent='Sending\\u2026';\\n    status.textContent='Sending your request\\u2026';\\n    fetch('\/wp-json\/befv\/v1\/booking-request',{method:'POST',headers:{'Content-Type':'application\/json'},credentials:'same-origin',body:JSON.stringify(details)})\\n      .then(function(response){return response.json().catch(function(){return {};}).then(function(result){if(!response.ok){throw new Error(result.message||'Your request could not be sent. Please try again.');}return result;});})\\n      .then(function(result){status.textContent=result.message||'Thank you. Your request has been sent.';form.reset();updateEstimate();})\\n      .catch(function(error){status.textContent=error.message||'Your request could not be sent. Please email hello@befv-berlin.com.';})\\n      .finally(function(){sendButton.disabled=false;sendButton.textContent=buttonLabel;});\\n  });\\n})();\\n<\/script>\",\"config\":[],\"type\":\"html\",\"relid\":1}]}","phonegrid":"","_links":{"self":[{"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/pages\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":0,"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/pages\/81\/revisions"}],"wp:attachment":[{"href":"https:\/\/befv-berlin.com\/de\/wp-json\/wp\/v2\/media?parent=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}