/* =========== Algemene voorwaarden + privacy =========== */
function Voorwaarden(){
  const t = useT();
  useDocumentMeta({
    title: t('Algemene voorwaarden en privacyverklaring','Terms & conditions and privacy statement'),
    description: t('Algemene voorwaarden, betaalvoorwaarden, annulering, leveringstermijnen en privacyverklaring (AVG/GDPR) van Wedding Visions.','Terms & conditions, payment terms, cancellation, delivery times and privacy statement (GDPR) of Wedding Visions.'),
  });
  return (
    <Page label="Algemene voorwaarden">
      <Nav current="/voorwaarden" solid/>

      {/* HERO */}
      <section className="av-hero" style={{paddingTop:160, paddingBottom:60}}>
        <div className="wrap" style={{maxWidth:960}}>
          <div className="reveal">
            <div className="h-number">{t('JURIDISCH','LEGAL')}</div>
            <h1 className="h-display" style={{fontSize:'clamp(48px,7vw,104px)', marginTop:32, lineHeight:.95}}>
              {t(<>Algemene <span className="italic-serif">voorwaarden</span>.</>,
                 <>Terms & <span className="italic-serif">conditions</span>.</>)}
            </h1>
            <p style={{fontSize:16, lineHeight:1.7, color:'var(--ink-60)', marginTop:32, maxWidth:640}}>
              {t('Van toepassing op alle diensten aangeboden door Wedding Visions. Vragen? Mail ons op ','Applicable to all services offered by Wedding Visions. Questions? Email us at ')}<a href={'mailto:'+SITE.contact.email} style={{color:'var(--ink)', textDecoration:'underline'}}>{SITE.contact.email}</a>.
            </p>
          </div>
        </div>
      </section>

      {/* CONTENT */}
      <section style={{padding:'40px 0 120px'}}>
        <div className="wrap av-wrap">

          <Clause n="01" title={t('Algemeen','General')}>
            <p>{t('Deze algemene voorwaarden zijn van toepassing op alle diensten aangeboden door Wedding Visions, gevestigd aan Gitsestraat 593, 8800 Roeselare, met btw-nummer BE 1031.162.458. Alle overeenkomsten met Wedding Visions worden beheerst door deze voorwaarden. Het ondertekenen van de overeenkomst en betaling van het voorschot betekent dat de klant instemt met deze algemene voorwaarden.','These terms and conditions apply to all services offered by Wedding Visions, located at Gitsestraat 593, 8800 Roeselare, with VAT number BE 1031.162.458. All agreements with Wedding Visions are governed by these terms. Signing the agreement and paying the deposit means the client accepts these terms and conditions.')}</p>
          </Clause>

          <Clause n="02" title={t('Bindend karakter van de overeenkomst','Binding nature of the agreement')}>
            <p>{t('De overeenkomst wordt bindend zodra de Klant het contract heeft ondertekend én het overeengekomen voorschot heeft betaald. Het voorschot dient als bevestiging van de reservering en als compensatie voor het vrijhouden van de trouwdatum.','The agreement becomes binding once the Client has signed the contract and paid the agreed deposit. The deposit serves as confirmation of the reservation and as compensation for keeping the wedding date available.')}</p>
            <p>{t('De Klant kan de overeenkomst uitsluitend schriftelijk annuleren via ','The Client can only cancel the agreement in writing via ')}<a href={'mailto:'+SITE.contact.email}>{SITE.contact.email}</a>.</p>
            <p style={{marginTop:16, marginBottom:8}}><strong>{t('Bij annulering gelden de volgende voorwaarden:','The following terms apply in case of cancellation:')}</strong></p>
            <ul>
              <li>{t('Meer dan 6 maanden voor de trouwdatum: het voorschot wordt terugbetaald.','More than 6 months before the wedding date: the deposit is refunded.')}</li>
              <li>{t('Minder dan 6 maanden voor de trouwdatum: het voorschot blijft verschuldigd en wordt niet terugbetaald.','Less than 6 months before the wedding date: the deposit remains due and is not refunded.')}</li>
              <li>{t('Minder dan 30 dagen voor de trouwdatum: het volledige factuurbedrag (incl. btw) is verschuldigd.','Less than 30 days before the wedding date: the full invoice amount (incl. VAT) is due.')}</li>
            </ul>
            <p>{t('In uitzonderlijke situaties is het mogelijk om de trouwdatum kosteloos te verplaatsen, onder voorbehoud van beschikbaarheid en na akkoord van Wedding Visions. Wij behouden ons het beslissingsrecht voor om te oordelen of de aangebrachte reden als uitzonderlijk kan worden beschouwd. Wordt het verzoek aanvaard, dan blijft het betaalde voorschot geldig voor de nieuwe datum. De Klant dient ons in elk geval zo snel mogelijk schriftelijk op de hoogte te brengen van de gewijzigde datum en de aanleiding ervan.','In exceptional situations it is possible to move the wedding date free of charge, subject to availability and after approval by Wedding Visions. We reserve the right to decide whether the stated reason can be considered exceptional. If the request is accepted, the deposit paid remains valid for the new date. In any case, the Client must inform us in writing of the changed date and its reason as soon as possible.')}</p>
          </Clause>

          <Clause n="03" title={t('Reserveringsfee','Reservation fee')}>
            <p>{t('Om de trouwdatum vast te leggen, dient de klant een niet-restitueerbare reserveringsfee van 10% van het totaal bedrag te betalen. Deze fee wordt verrekend met de uiteindelijke factuur. Indien de reserveringsfee niet tijdig wordt betaald, kan Wedding Visions de trouwdatum aan een andere klant toewijzen zonder verdere verplichtingen jegens de oorspronkelijke klant.','To secure the wedding date, the client must pay a non-refundable reservation fee of 10% of the total amount. This fee is offset against the final invoice. If the reservation fee is not paid on time, Wedding Visions may assign the wedding date to another client without any further obligations towards the original client.')}</p>
          </Clause>

          <Clause n="04" title={t('Betaling en facturering','Payment and invoicing')}>
            <p>{t('De eindfactuur wordt na de trouwdag opgemaakt en verzonden naar het door de klant opgegeven e-mailadres. De volledige betaling van de factuur dient binnen 14 dagen na factuurdatum te zijn voldaan. Foto\'s en/of video\'s worden pas geleverd nadat de volledige betaling is ontvangen.','The final invoice is drawn up after the wedding day and sent to the email address provided by the client. Full payment of the invoice must be made within 14 days of the invoice date. Photos and/or videos are only delivered once full payment has been received.')}</p>
            <p style={{marginTop:16, marginBottom:8}}><strong>{t('Bij te late betalingen gelden de volgende stappen:','The following steps apply in case of late payment:')}</strong></p>
            <ul>
              <li><strong>{t('1','1')}<sup>{t('e','st')}</sup> {t('herinnering:','reminder:')}</strong> {t('administratiekosten van €25,00 worden toegevoegd aan de factuur.','administration costs of €25.00 are added to the invoice.')}</li>
              <li><strong>{t('2','2')}<sup>{t('e','nd')}</sup> {t('herinnering:','reminder:')}</strong> {t('administratiekosten van €50,00 worden toegevoegd.','administration costs of €50.00 are added.')}</li>
              <li>{t('Indien de betaling na de tweede herinnering uitblijft, worden incassokosten en eventuele gerechtelijke kosten in rekening gebracht.','If payment is still not made after the second reminder, collection costs and any legal costs will be charged.')}</li>
            </ul>
          </Clause>

          <Clause n="05" title={t('Levering van diensten','Delivery of services')}>
            <p>{t('Wedding Visions levert de afgesproken foto- en/of videografie in overeenstemming met de gekozen pakketten en afspraken. Foto\'s en video\'s worden digitaal geleverd via een beveiligde link, en bij afname van een fysiek fotoboek wordt dit binnen de afgesproken tijd bezorgd.','Wedding Visions delivers the agreed photography and/or videography in accordance with the chosen packages and arrangements. Photos and videos are delivered digitally via a secure link, and when a physical photo book is ordered, it is delivered within the agreed time.')}</p>
            <p>{t('De standaard leveringstermijn bedraagt maximaal 2 maanden voor zowel foto als video, tenzij anders overeengekomen. U ontvangt steeds een snelle preview binnen 1 tot 3 dagen. Wedding Visions behoudt zich het recht voor om deze termijn in uitzonderlijke gevallen te verlengen (bv. drukte), waarbij de klant tijdig op de hoogte wordt gesteld.','The standard delivery time is a maximum of 2 months for both photo and video, unless agreed otherwise. You always receive a quick preview within 1 to 3 days. Wedding Visions reserves the right to extend this term in exceptional cases (e.g. busy periods), in which case the client is informed in good time.')}</p>
          </Clause>

          <Clause n="06" title={t('Klachten en problemen','Complaints and issues')}>
            <p>{t('Eventuele klachten over de geleverde diensten dienen binnen 7 dagen na ontvangst van de foto\'s en/of video\'s schriftelijk te worden gemeld via ','Any complaints about the delivered services must be reported in writing within 7 days of receiving the photos and/or videos via ')}<a href={'mailto:'+SITE.contact.email}>{SITE.contact.email}</a>. {t('Na deze termijn wordt de levering als geaccepteerd beschouwd. Wedding Visions zal binnen 14 dagen na ontvangst van de klacht een passende oplossing voorstellen.','After this term the delivery is considered accepted. Wedding Visions will propose a suitable solution within 14 days of receiving the complaint.')}</p>
          </Clause>

          <Clause n="07" title={t('Aansprakelijkheid','Liability')}>
            <p>{t('Wedding Visions kan niet aansprakelijk worden gesteld voor enige directe of indirecte schade voortvloeiend uit het gebruik van de geleverde foto\'s en/of video\'s, tenzij er sprake is van opzet of grove nalatigheid. Indien aansprakelijkheid wordt vastgesteld, is deze beperkt tot maximaal het bedrag van de overeenkomst.','Wedding Visions cannot be held liable for any direct or indirect damage arising from the use of the delivered photos and/or videos, unless there is intent or gross negligence. If liability is established, it is limited to a maximum of the amount of the agreement.')}</p>
          </Clause>

          <Clause n="08" title={t('Overmacht','Force majeure')}>
            <p>{t('In geval van overmacht, zoals maar niet beperkt tot ziekte, ongevallen, extreme weersomstandigheden, technische storingen of andere onvoorziene omstandigheden die de uitvoering van de opdracht onmogelijk maken, verbindt Wedding Visions zich ertoe alles in het werk te stellen om een gelijkwaardige vervangende fotograaf en/of videograaf te voorzien.','In case of force majeure, such as but not limited to illness, accidents, extreme weather conditions, technical failures or other unforeseen circumstances that make carrying out the assignment impossible, Wedding Visions undertakes to do everything possible to provide an equivalent replacement photographer and/or videographer.')}</p>
            <p>{t('Indien vervanging redelijkerwijze niet mogelijk blijkt, behoudt Wedding Visions zich het recht voor de opdracht te verplaatsen naar een andere datum of de overeenkomst te annuleren. In dat geval worden reeds betaalde bedragen terugbetaald, zonder dat enige bijkomende schadevergoeding verschuldigd is.','If replacement reasonably proves impossible, Wedding Visions reserves the right to move the assignment to another date or to cancel the agreement. In that case, amounts already paid are refunded, without any additional compensation being due.')}</p>
            <p>{t('Wedding Visions zal de Klant in dergelijke situaties zo snel mogelijk informeren en steeds in overleg zoeken naar de best mogelijke oplossing.','In such situations Wedding Visions will inform the Client as soon as possible and will always look for the best possible solution in consultation.')}</p>
          </Clause>

          <Clause n="09" title={t('Gebruik van foto\'s en video\'s','Use of photos and videos')}>
            <p>{t('Wedding Visions behoudt het recht om gemaakte foto\'s en video\'s te gebruiken voor promotiedoeleinden, tenzij de klant schriftelijk, voor de trouwdag, aangeeft hier bezwaar tegen te maken.','Wedding Visions reserves the right to use photos and videos taken for promotional purposes, unless the client objects to this in writing before the wedding day.')}</p>
          </Clause>

          <Clause n="10" title={t('Toepasselijk recht en geschillen','Applicable law and disputes')}>
            <p>{t('Op alle overeenkomsten is Belgisch recht van toepassing. Geschillen zullen in eerste instantie in onderling overleg worden opgelost. Indien dit niet lukt, zullen deze worden voorgelegd aan de bevoegde rechtbank te West-Vlaanderen.','Belgian law applies to all agreements. Disputes will first be resolved by mutual consultation. If this fails, they will be submitted to the competent court in West Flanders.')}</p>
            <p>{t('Bij vragen of klachten kunt u contact opnemen via ','For questions or complaints you can get in touch via ')}<a href={'mailto:'+SITE.contact.email}>{SITE.contact.email}</a>.</p>
          </Clause>

          {/* Privacy */}
          <div style={{marginTop:120, paddingTop:80, borderTop:'1px solid var(--ink)'}}>
            <div className="reveal">
              <div className="h-number">PRIVACY</div>
              <h2 className="h-display" style={{fontSize:'clamp(36px,5vw,64px)', marginTop:24, lineHeight:1}}>
                {t('Privacyverklaring.','Privacy statement.')}
              </h2>
              <p style={{marginTop:24, fontSize:16, lineHeight:1.75, color:'var(--ink-80)'}}>
                {t('Dit is de privacyverklaring van Wedding Visions, gevestigd te Roeselare aan de Gitsestraat 593, ','This is the privacy statement of Wedding Visions, located in Roeselare at Gitsestraat 593, ')}<a href="https://www.weddingvisions.be" target="_blank" rel="noreferrer">www.weddingvisions.be</a>.
              </p>
            </div>
          </div>

          <Clause n="11" title={t('Toepasselijkheid','Applicability')}>
            <p>{t('Deze privacyverklaring is van toepassing op alle privacygevoelige informatie of persoonsgegevens die u aan ons verstrekt, bijvoorbeeld via een inschrijfformulier, contactformulier of bestellingen. Wedding Visions hecht veel waarde aan de bescherming van uw privacy en behandelt uw persoonsgegevens met zorg, in overeenstemming met de Algemene Verordening Gegevensbescherming (AVG). Wedding Visions is de verantwoordelijke voor de verwerking van uw persoonsgegevens en bepaalt welke gegevens worden verwerkt, voor welk doel en op welke manier.','This privacy statement applies to all privacy-sensitive information or personal data you provide to us, for example via a registration form, contact form or orders. Wedding Visions attaches great importance to protecting your privacy and handles your personal data with care, in accordance with the General Data Protection Regulation (GDPR). Wedding Visions is the controller responsible for processing your personal data and determines which data is processed, for what purpose and in what way.')}</p>
          </Clause>

          <Clause n="12" title={t('Overzicht persoonsgegevens','Overview of personal data')}>
            <p>{t('Hieronder een overzicht van de persoonsgegevens die wij verwerken:','Below is an overview of the personal data we process:')}</p>
            <ul>
              <li>{t('Naam','Name')}</li>
              <li>{t('Telefoonnummer','Phone number')}</li>
              <li>{t('E-mailadres','Email address')}</li>
              <li>{t('Trouwdatum','Wedding date')}</li>
              <li>{t('IP-adres van een websitebezoeker','IP address of a website visitor')}</li>
            </ul>
          </Clause>

          <Clause n="13" title={t('Doelen en verwerking persoonsgegevens','Purposes and processing of personal data')}>
            <p>{t('Wij verwerken persoonsgegevens voor onder meer:','We process personal data for, among other things:')}</p>
            <ul>
              <li>{t('Contact met u op te nemen indien nodig voor onze dienstverlening','Contacting you if necessary for our services')}</li>
              <li>{t('Het informeren over wijzigingen in onze producten of diensten','Informing you about changes to our products or services')}</li>
              <li>{t('Het afleveren van goederen en diensten bij u','Delivering goods and services to you')}</li>
            </ul>
          </Clause>

          <Clause n="14" title={t('Verstrekking aan derden','Disclosure to third parties')}>
            <p>{t('Uw persoonsgegevens kunnen worden gedeeld met derden, mits dit noodzakelijk is voor de uitvoering van de overeenkomst, het behartigen van onze gerechtvaardigde belangen of om te voldoen aan wettelijke verplichtingen. Met bedrijven die in onze opdracht gegevens verwerken, sluiten wij een verwerkersovereenkomst om eenzelfde niveau van beveiliging te waarborgen.','Your personal data may be shared with third parties, provided this is necessary for performing the agreement, pursuing our legitimate interests or complying with legal obligations. With companies that process data on our behalf, we conclude a data processing agreement to guarantee the same level of security.')}</p>
          </Clause>

          <Clause n="15" title={t('Cookies','Cookies')}>
            <p>{t('Wij gebruiken functionele cookies om de website te laten werken en, met uw toestemming, analytische cookies om het bezoek te meten. Wij gebruiken geen marketing- of trackingcookies. U kunt cookies beheren via uw browserinstellingen. Bij het eerste bezoek krijgt u een cookiemelding waarmee u akkoord of niet akkoord kunt gaan met de analytische cookies.','We use functional cookies to make the website work and, with your consent, analytical cookies to measure visits. We do not use marketing or tracking cookies. You can manage cookies via your browser settings. On your first visit you receive a cookie notice with which you can agree or disagree with the analytical cookies.')}</p>
          </Clause>

          <Clause n="16" title={t('Inzage, correctie of verwijdering','Access, correction or deletion')}>
            <p>{t('U heeft het recht om uw gegevens in te zien, te corrigeren of te verwijderen. Verzoeken hiervoor kunt u sturen naar ','You have the right to access, correct or delete your data. You can send requests for this to ')}<a href={'mailto:'+SITE.contact.email}>{SITE.contact.email}</a>. {t('Om uw identiteit te bevestigen, vragen wij om een kopie van uw identiteitsbewijs mee te sturen (met afgeschermde gevoelige informatie). Wij reageren binnen vier weken op uw verzoek.','To confirm your identity, we ask you to include a copy of your identity document (with sensitive information masked). We respond to your request within four weeks.')}</p>
          </Clause>

          <Clause n="17" title={t('Contact','Contact')}>
            <p>{t('Heeft u vragen of vermoedt u misbruik van uw gegevens, neem dan contact op via ','If you have questions or suspect misuse of your data, please get in touch via ')}<a href={'mailto:'+SITE.contact.email}>{SITE.contact.email}</a>.</p>
          </Clause>

          <p style={{marginTop:80, fontSize:12, letterSpacing:'.2em', textTransform:'uppercase', color:'var(--ink-40)'}}>
            {t('Laatste update · April 2026','Last updated · April 2026')}
          </p>
        </div>
      </section>

      <Footer/>

      <style>{`
        .av-wrap{max-width:820px}
        .av-clause{padding:40px 0; border-top:1px solid var(--rule)}
        .av-clause__head{
          display:grid;
          grid-template-columns:80px 1fr;
          gap:32px;
          align-items:baseline;
          margin-bottom:20px;
        }
        .av-clause__num{
          font-family:var(--serif);
          font-style:italic;
          font-size:36px;
          line-height:1;
          color:var(--gold);
        }
        .av-clause__title{
          font-family:var(--serif);
          font-size:clamp(22px,2.6vw,30px);
          line-height:1.2;
          color:var(--ink);
        }
        .av-clause__body{
          padding-left:112px;
        }
        .av-clause__body p{
          font-size:15px;
          line-height:1.8;
          color:var(--ink-80);
          margin-bottom:12px;
        }
        .av-clause__body p:last-child{margin-bottom:0}
        .av-clause__body ul{
          list-style:none;
          padding:0;
          margin:4px 0 16px;
        }
        .av-clause__body li{
          font-size:15px;
          line-height:1.7;
          color:var(--ink-80);
          padding:6px 0 6px 24px;
          position:relative;
        }
        .av-clause__body li::before{
          content:"·";
          position:absolute;
          left:0;
          color:var(--ink-40);
          font-weight:600;
        }
        .av-clause__body a{
          color:var(--ink);
          text-decoration:underline;
          text-decoration-color:var(--ink-20);
          text-underline-offset:3px;
          transition:text-decoration-color .2s;
        }
        .av-clause__body a:hover{text-decoration-color:var(--ink)}
        .av-clause__body p, .av-clause__body li, .av-clause__body a{
          overflow-wrap:break-word;
          word-break:break-word;
        }
        @media (max-width:1024px){
          .av-wrap{max-width:100%}
        }
        @media (max-width:900px){
          .av-hero{padding-top:128px !important; padding-bottom:48px !important}
          .av-clause{padding:32px 0}
          .av-clause__head{gap:24px; margin-bottom:16px}
        }
        @media (max-width:600px){
          .av-hero{padding-top:112px !important; padding-bottom:40px !important}
        }
        @media (orientation:landscape) and (max-height:520px){
          .av-hero{padding-top:104px !important; padding-bottom:36px !important}
        }
        @media (max-width:700px){
          .av-clause__head{grid-template-columns:48px 1fr; gap:20px}
          .av-clause__num{font-size:26px}
          .av-clause__body{padding-left:0}
        }
        @media (max-width:600px){
          .av-clause{padding:28px 0}
          .av-clause__head{grid-template-columns:40px 1fr; gap:14px; margin-bottom:14px}
          .av-clause__num{font-size:22px}
          .av-clause__body p, .av-clause__body li{font-size:14px; line-height:1.7}
          .av-clause__body li{padding-left:20px}
        }
      `}</style>
    </Page>
  );
}

function Clause({n, title, children}){
  return (
    <div className="av-clause reveal">
      <div className="av-clause__head">
        <div className="av-clause__num">{n}</div>
        <h3 className="av-clause__title">{title}</h3>
      </div>
      <div className="av-clause__body">
        {children}
      </div>
    </div>
  );
}

Object.assign(window, { Voorwaarden });
