{"id":26,"date":"2026-04-14T21:35:25","date_gmt":"2026-04-14T21:35:25","guid":{"rendered":"https:\/\/nickandveri.com\/?page_id=26"},"modified":"2026-04-28T21:30:50","modified_gmt":"2026-04-28T21:30:50","slug":"nick-veri","status":"publish","type":"page","link":"https:\/\/nickandveri.com\/","title":{"rendered":"Nick &#038; Veri"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"26\" class=\"elementor elementor-26\">\n\t\t\t\t<div class=\"elementor-element elementor-element-99ee551 e-flex e-con-boxed e-con e-parent\" data-id=\"99ee551\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21e060c elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"21e060c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\"\/>\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<link rel=\"icon\" type=\"image\/jpeg\" href=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/NV-Logo.jpg\">\n<link rel=\"apple-touch-icon\" href=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/NV-Logo.jpg\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n<title>Nick &amp; Veri<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Jost:wght@200;300;400;500&display=swap\" rel=\"stylesheet\"\/>\n<style>\n  :root {\n    --sand: #f5ede0;\n    --cream: #fdf6ee;\n    --terracotta: #b85c38;\n    --terracotta-light: #cc7a58;\n    --deep-green: #2d4a3e;\n    --leaf: #4a7c6a;\n    --gold: #c9a96e;\n    --text: #3a3028;\n    --text-light: #7a6a5a;\n  }\n  * { margin:0; padding:0; box-sizing:border-box; }\n  html { font-size: 20px !important; scroll-behavior: smooth; }\n  body { font-family:'Jost',sans-serif; font-weight:300; background:var(--cream); color:var(--text); overflow-x:hidden; font-size: 20px !important; }\n\n  \/* NAV *\/\n  nav {\n    position:fixed; top:0; left:0; right:0; z-index:100;\n    display:flex; align-items:center; justify-content:space-between;\n    padding:1rem 2.5rem;\n    background:rgba(253,246,238,0.82);\n    backdrop-filter:blur(16px);\n    border-bottom:1px solid rgba(201,169,110,0.15);\n  }\n  .nav-logo img { height:64px; width:64px; object-fit:contain; }\n  .nav-links { display:flex; gap:2.5rem; list-style:none; }\n  .nav-links a { text-decoration:none; font-size:.86rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-light); transition:color .3s; }\n  .nav-links a:hover { color:var(--terracotta); }\n  .nav-menu { display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:101; }\n  .nav-menu span { display:block; width:24px; height:1.5px; background:var(--text-light); transition: all .3s; }\n  \/* Mobile nav overlay *\/\n  .nav-overlay {\n    display: none;\n    position: fixed; inset: 0; z-index: 99;\n    background: rgba(253,246,238,0.97);\n    backdrop-filter: blur(16px);\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 2.5rem;\n  }\n  .nav-overlay.open { display: flex; }\n  .nav-overlay a {\n    text-decoration: none; font-size: 1.1rem;\n    letter-spacing: .2em; text-transform: uppercase;\n    color: var(--text-light); transition: color .3s;\n  }\n  .nav-overlay a:hover { color: var(--terracotta); }\n  @media(max-width:600px) {\n    .nav-menu { display:flex; }\n    .nav-links { display:none; }\n  }\n\n  \/* HERO *\/\n  #hero {\n    height:85vh; min-height:500px;\n    position:relative; overflow:hidden;\n    display:flex; flex-direction:column; justify-content:flex-end;\n  }\n  .hero-img {\n    position:absolute; inset:0;\n    background:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/NV-Portrait.jpeg') center 20% \/ cover no-repeat;\n  }\n  .hero-img::after {\n    content:''; position:absolute; inset:0;\n    background:linear-gradient(to bottom, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.03) 40%, rgba(20,15,10,0.65) 100%);\n  }\n  .hero-content {\n    position:relative; z-index:2;\n    padding:0 5vw 14vh;\n    animation:fadeUp 1.4s ease both;\n  }\n  .hero-eyebrow { font-size:.96rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(245,237,224,.75); margin-bottom:1.2rem; }\n  .hero-names {\n    font-family:'Cormorant Garamond',serif;\n    font-size:clamp(5rem,14vw,10.5rem);\n    font-weight:300; line-height:.88; color:var(--sand); letter-spacing:-.01em;\n  }\n  .hero-names .amp { font-style:italic; color:var(--terracotta-light); font-size:.75em; }\n  @keyframes fadeUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }\n\n  \/* PLANTS SECTION *\/\n  #wedding-details {\n    position:relative;\n    background:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/NV-Plants.jpeg') center \/ cover no-repeat;\n    display:flex;\n    align-items:flex-start;\n    justify-content:center;\n    padding:0 5vw 7rem;\n  }\n  #wedding-details::before {\n    content:''; position:absolute; inset:0;\n    background:rgba(10,28,20,.52);\n  }\n\n  \/* FLOATING CARD *\/\n  .floating-card {\n    position:relative; z-index:2;\n    margin-top:-80px;\n    width:100%; max-width:620px;\n    background:var(--cream);\n    clip-path:polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px);\n    box-shadow:0 30px 80px rgba(10,20,15,.35);\n    overflow:hidden;\n  }\n\n  \/* Countdown *\/\n  .fc-countdown {\n    padding:2rem 2.4rem;\n  }\n  .fc-label {\n    font-size:.86rem; letter-spacing:.28em; text-transform:uppercase;\n    color:var(--terracotta); margin-bottom:.8rem; display:block;\n  }\n  .countdown-grid { display:flex; gap:.5rem; }\n  .cd-box {\n    border:1px solid rgba(184,92,56,.22); border-radius:3px;\n    padding:.65rem .5rem; text-align:center; flex:1;\n  }\n  .cd-num {\n    font-family:'Cormorant Garamond',serif;\n    font-size:2.1rem; font-weight:300;\n    color:var(--deep-green); line-height:1; display:block;\n  }\n  .cd-lbl { font-size:.95rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-light); margin-top:.2rem; display:block; }\n\n  \/* Events *\/\n  .fc-events { display:flex; flex-direction:column; }\n  .fc-event { padding:1.8rem 2.4rem; display:flex; gap:1.6rem; align-items:flex-start; }\n  .fc-event + .fc-event { }\n  .fc-event-left { min-width:140px; }\n  .fc-event-name {\n    font-family:'Cormorant Garamond',serif; font-style:italic;\n    font-size:1.35rem; color:var(--terracotta); line-height:1.15;\n  }\n  .fc-vert-divider { width:1px; background:rgba(184,92,56,.28); align-self:stretch; flex-shrink:0; }\n  .fc-event-right { display:flex; flex-direction:column; gap:.25rem; padding-top:.1rem; }\n  .fc-event-date { font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--text); }\n  .fc-event-date strong { font-weight:600; }\n  .fc-event-time { font-size:1rem; color:var(--text); }\n  .fc-event-desc { font-size:1.05rem; color:var(--text-light); line-height:1.65; margin-top:.3rem; }\n\n  \/* TIMELINE *\/\n  #timeline { background:var(--sand); padding:6rem 5vw 18rem; }\n  .tl-inner { max-width:960px; margin:0 auto; }\n  .section-label { font-size:.95rem; letter-spacing:.35em; text-transform:uppercase; color:var(--terracotta); margin-bottom:.8rem; }\n  .section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,5vw,3.8rem); font-weight:300; color:var(--deep-green); line-height:1.1; margin-bottom:2.5rem; }\n  .section-title em { font-style:italic; color:var(--terracotta); }\n\n  \/* New itinerary-style header *\/\n  .tl-heading {\n    margin-bottom: 3.5rem;\n  }\n  .tl-script {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-weight: 300;\n    font-size: clamp(3rem, 8vw, 5.5rem);\n    color: var(--text);\n    line-height: 1;\n    display: block;\n    margin-bottom: .1em;\n  }\n  .tl-script-line2 {\n    display: flex;\n    align-items: center;\n    gap: 1rem;\n  }\n  .tl-script-line2 span {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-weight: 300;\n    font-size: clamp(3rem, 8vw, 5.5rem);\n    color: var(--text);\n    line-height: 1;\n    white-space: nowrap;\n  }\n  .tl-script-rule {\n    flex: 1;\n    height: 1.5px;\n    background: var(--text);\n    max-width: 180px;\n  }\n\n  \/* Four-column horizontal timeline *\/\n  .tl-grid {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 0;\n    position: relative;\n    margin-top: 2rem;\n  }\n  \/* Connecting horizontal line *\/\n  .tl-grid::before {\n    content: '';\n    position: absolute;\n    top: 5px;\n    left: calc(12.5%);\n    right: calc(12.5%);\n    height: 1px;\n    background: linear-gradient(to right, transparent, rgba(184,92,56,.3) 10%, rgba(184,92,56,.3) 90%, transparent);\n    z-index: 0;\n  }\n  .tl-item {\n    opacity: 1;\n    transform: translateY(0);\n    transition: all .6s ease;\n    padding: 0 1.5rem;\n    text-align: center;\n    position: relative;\n  }\n  .tl-item.animate { opacity: 0; transform: translateY(16px); }\n  .tl-item.animate.visible { opacity:1; transform:translateY(0); }\n  \/* Dot on the line *\/\n  .tl-item::before {\n    content: '';\n    display: block;\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    background: var(--terracotta);\n    border: 2px solid var(--sand);\n    box-shadow: 0 0 0 1px var(--terracotta);\n    margin: 0 auto 1.2rem;\n    position: relative;\n    z-index: 1;\n  }\n  .tl-day-label {\n    font-family: 'Jost', sans-serif;\n    font-size: .72rem;\n    font-weight: 400;\n    letter-spacing: .22em;\n    text-transform: uppercase;\n    color: var(--terracotta);\n    margin-bottom: .6rem;\n  }\n  .tl-event {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-size: 1.4rem;\n    color: var(--deep-green);\n    line-height: 1.15;\n    margin-bottom: .5rem;\n  }\n  .tl-desc { font-size:.92rem; color:var(--text-light); line-height:1.7; }\n\n  @media(max-width:700px) {\n    .tl-grid {\n      grid-template-columns: 1fr;\n      gap: 0;\n    }\n    .tl-grid::before {\n      top: 0;\n      bottom: 0;\n      left: 22px;\n      right: auto;\n      width: 1px;\n      height: auto;\n      background: linear-gradient(to bottom, transparent, rgba(184,92,56,.3) 10%, rgba(184,92,56,.3) 90%, transparent);\n    }\n    .tl-item {\n      text-align: left;\n      padding: 0 0 2.5rem 3.5rem;\n    }\n    .tl-item::before {\n      position: absolute;\n      left: 16px;\n      top: 4px;\n      margin: 0;\n    }\n    .tl-script-rule { max-width: 80px; }\n  }\n\n  \/* TRAVEL *\/\n  #travel { background:var(--cream); padding:3rem 0 6rem; }\n  .travel-grid { max-width:960px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.5rem; }\n  .t-card { background:white; clip-path:polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px); overflow:hidden; border:1px solid rgba(201,169,110,.15); transition:transform .3s,box-shadow .3s; }\n  .t-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(45,74,62,.09); }\n  .t-card-bar { height:6px; background:linear-gradient(to right,var(--terracotta),var(--gold)); }\n  .t-card-body { padding:1.6rem; }\n  .t-card-icon { font-size:1.6rem; margin-bottom:.8rem; }\n  .t-card-title { font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--deep-green); margin-bottom:.5rem; }\n  .t-card-text { font-size:.97rem; line-height:1.75; color:var(--text-light); }\n  .t-card-link { display:inline-block; margin-top:1rem; font-size:.95rem; letter-spacing:.18em; text-transform:uppercase; color:var(--terracotta); text-decoration:none; border-bottom:1px solid rgba(184,92,56,.3); padding-bottom:2px; transition:all .3s; }\n  .t-card-link:hover { color:var(--deep-green); border-color:var(--deep-green); }\n\n  \/* RSVP *\/\n  #rsvp { background:var(--deep-green); padding:10rem 5vw 6rem; text-align:center; position:relative; overflow:hidden; z-index: 3; }\n  #rsvp::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 60% at 20% 40%,rgba(184,92,56,.15) 0%,transparent 60%),radial-gradient(ellipse 50% 50% at 80% 60%,rgba(74,124,106,.2) 0%,transparent 60%); }\n  #rsvp .section-label { color:var(--gold); }\n  #rsvp .section-title { color:var(--sand); }\n  #rsvp .section-title em { color:var(--gold); }\n  .rsvp-sub { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.2rem; color:rgba(122,173,151,.9); margin-bottom:2.5rem; position:relative; }\n  .rsvp-form { position:relative; max-width:520px; margin:0 auto; background:rgba(255,255,255,.05); border:none; clip-path:polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px); padding:2.2rem; }\n  .f-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }\n  .f-group { display:flex; flex-direction:column; gap:.35rem; margin-bottom:.9rem; }\n  .f-group label { font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }\n  .f-group input,.f-group select,.f-group textarea { background:rgba(255,255,255,.07); border:1px solid rgba(201,169,110,.2); border-radius:4px; padding:.7rem .9rem; color:var(--sand); font-family:'Jost',sans-serif; font-size:1rem; font-weight:300; outline:none; transition:border-color .3s; width:100%; }\n  .f-group input::placeholder,.f-group textarea::placeholder { color:rgba(245,237,224,.3); }\n  .f-group input:focus,.f-group select:focus,.f-group textarea:focus { border-color:rgba(201,169,110,.55); }\n  .f-group select option { background:var(--deep-green); }\n  .f-group textarea { resize:vertical; min-height:75px; }\n  .btn-rsvp { width:100%; padding:.95rem; background:linear-gradient(135deg,var(--terracotta),var(--terracotta-light)); color:white; border:none; border-radius:4px; font-family:'Jost',sans-serif; font-size:1rem; letter-spacing:.25em; text-transform:uppercase; cursor:pointer; margin-top:.4rem; transition:opacity .3s,transform .2s; }\n  .btn-rsvp:hover { opacity:.87; transform:translateY(-1px); }\n  .rsvp-note { margin-top:1.2rem; font-size:.86rem; color:rgba(245,237,224,.3); position:relative; }\n\n  \/* FOOTER *\/\n  footer { background:#111a17; text-align:center; padding:2.5rem; }\n  .footer-names { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:2rem; color:var(--sand); margin-bottom:.4rem; }\n  .footer-sub { font-size:.76rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); opacity:.5; }\n\n  \/* TOAST *\/\n  #toast { position:fixed; bottom:2rem; left:50%; transform:translateX(-50%) translateY(60px); background:var(--deep-green); color:var(--sand); border:1px solid rgba(201,169,110,.3); border-radius:50px; padding:.85rem 1.8rem; font-size:.96rem; opacity:0; transition:all .4s; z-index:999; white-space:nowrap; }\n  #toast.show { opacity:1; transform:translateX(-50%) translateY(0); }\n\n\n  \/* \u2500\u2500 VENUE SECTION \u2500\u2500 *\/\n  #venue {\n    background: var(--sand);\n    padding: 0;\n    overflow: visible;\n    position: relative;\n    z-index: 3;\n  }\n  .venue-inner {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    min-height: 480px;\n    align-items: stretch;\n  }\n  .venue-left {\n    padding: 5rem 4rem 5rem 5vw;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    gap: 1.5rem;\n    background: var(--sand);\n  }\n  .venue-script {\n    font-family: 'Cormorant Garamond', serif;\n    font-style: italic;\n    font-weight: 300;\n    font-size: clamp(2.4rem, 5vw, 3.8rem);\n    color: var(--terracotta);\n    line-height: 1.15;\n  }\n  .venue-body {\n    font-size:1.05rem;\n    line-height: 1.8;\n    color: var(--text);\n    max-width: 380px;\n  }\n  .venue-body strong {\n    font-weight: 500;\n    color: var(--text);\n  }\n  .venue-right {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    min-height: 480px;\n    padding: 0 1.5rem;\n    background:\n      linear-gradient(to bottom, rgba(10,28,20,.15) 0%, rgba(10,28,20,.05) 100%),\n      url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/IMG_7934.jpg') center top \/ cover no-repeat;\n  }\n  .venue-card {\n    background: rgba(52, 28, 14, 0.88);\n    backdrop-filter: blur(6px);\n    clip-path: polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px);\n    padding: 2rem 2.5rem 3rem;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n    margin-bottom: -4rem;\n    position: relative;\n    z-index: 2;\n  }\n  .venue-hotel-name {\n    font-family: 'Jost', sans-serif;\n    font-weight: 500;\n    font-size: 1.25rem;\n    color: white;\n    letter-spacing: .02em;\n  }\n  .venue-hotel-sub {\n    font-size:1rem;\n    color: rgba(255,255,255,.7);\n    margin-top: -.6rem;\n  }\n  .venue-address {\n    font-size: .97rem;\n    color: rgba(255,255,255,.8);\n    line-height: 1.6;\n    padding-top: .4rem;\n    border-top: 1px solid rgba(255,255,255,.12);\n  }\n  .venue-detail {\n    display: flex;\n    gap: 1rem;\n    align-items: flex-start;\n  }\n  .venue-detail-icon {\n    font-size: 1.3rem;\n    flex-shrink: 0;\n    margin-top: .1rem;\n    filter: sepia(1) saturate(2) hue-rotate(340deg);\n  }\n  .venue-detail-label {\n    font-size: .86rem;\n    font-weight: 500;\n    color: white;\n    letter-spacing: .04em;\n    margin-bottom: .15rem;\n  }\n  .venue-detail-value {\n    font-size: .96rem;\n    color: rgba(255,255,255,.75);\n    line-height: 1.55;\n  }\n  .venue-detail-value strong {\n    color: white;\n    font-weight: 500;\n  }\n  @media(max-width:700px) {\n    .venue-inner { grid-template-columns: 1fr; }\n    .venue-left { padding: 3.5rem 2rem 2rem; }\n    .venue-right { min-height: 320px; }\n    .dresscode-cards { grid-template-columns: 1fr; }\n  }\n\n\n  \/* \u2500\u2500 TRAVEL REDESIGN \u2500\u2500 *\/\n  #travel { background: var(--cream); padding: 3rem 5vw 6rem; }\n  \/* \u2500\u2500 TRAVEL PHOTO STRIP \u2500\u2500 *\/\n  .travel-photos {\n    position: relative;\n    width: 100%;\n    height: calc(140vh + 10rem);\n    min-height: 900px;\n    overflow: hidden;\n    margin-top: -12rem;\n    z-index: 1;\n  }\n  .travel-photos .travel-slide {\n    position: absolute;\n    inset: 0;\n    background-size: cover;\n    background-position: center;\n    opacity: 0;\n    transition: opacity 1.4s ease;\n  }\n  .travel-photos .travel-slide.active { opacity: 1; }\n  .travel-photos .travel-slide-dots {\n    position: absolute;\n    bottom: 1.5rem;\n    right: 2rem;\n    display: flex;\n    gap: .5rem;\n    z-index: 2;\n  }\n  .travel-photos .travel-dot {\n    width: 7px; height: 7px;\n    border-radius: 50%;\n    background: rgba(255,255,255,.4);\n    cursor: pointer;\n    transition: background .3s;\n  }\n  .travel-photos .travel-dot.active { background: white; }\n\n  \/* Card overlaps the photo strip *\/\n  .travel-inner { padding: 0 5vw 0; margin-top: -80rem; margin-bottom: -10rem; position: relative; z-index: 5; }\n  .travel-card {\n    max-width: 860px;\n    margin: 0 auto;\n    background: #fdfaf6;\n    clip-path: polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px);\n    filter: drop-shadow(0 20px 50px rgba(0,0,0,.35)) drop-shadow(0 4px 12px rgba(0,0,0,.2));\n  }\n  .travel-card-inner { padding: 2.5rem 2.8rem; }\n  .travel-header { padding: 0 0 1.5rem; }\n  @media(max-width:700px) {\n    .travel-photos { height: 80vh; }\n    .travel-inner { margin-top: -42rem; padding: 0 5vw 4rem; }\n    .travel-card-inner { padding: 1.5rem; }\n  }\n    max-width: 860px;\n    margin: 0 auto;\n    background: #fdfaf6;\n    clip-path: polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px);\n    filter: drop-shadow(0 20px 50px rgba(0,0,0,.35)) drop-shadow(0 4px 12px rgba(0,0,0,.2));\n  }\n  .travel-card-inner { padding: 2.5rem 2.8rem; }\n  .travel-header { padding: 0 5vw 2rem; }\n  .travel-intro { font-size:1.05rem; line-height: 1.8; color: var(--text-light); max-width: 600px; margin-top: .5rem; font-style: italic; }\n\n  .travel-step { }\n  .travel-step-title { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; color: var(--deep-green); margin-bottom: .2rem; }\n  .travel-step-body { font-size:1rem; line-height: 1.75; color: var(--text-light); margin-bottom: 1.2rem; }\n  .travel-step-body strong { color: var(--text); }\n\n  .travel-flag-card { display: flex; gap: 1rem; align-items: flex-start; background: white; border: 1px solid rgba(201,169,110,.2); border-radius: 5px; padding: 1rem 1.2rem; margin-top: 1rem; }\n  .travel-flag { font-size: 1.8rem; flex-shrink: 0; }\n  .travel-flag-label { font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: var(--terracotta); margin-bottom: .25rem; }\n  .travel-flag-text { font-size: .97rem; color: var(--text-light); line-height: 1.6; }\n\n  .travel-options { display: flex; flex-direction: column; gap: .8rem; }\n  .travel-option { display: flex; gap: 1rem; align-items: flex-start; padding: .8rem 1rem; background: white; border: 1px solid rgba(201,169,110,.15); border-radius: 5px; }\n  .travel-option span { font-size: 1.3rem; flex-shrink: 0; margin-top: .1rem; }\n  .travel-option strong { display: block; font-size: .97rem; color: var(--text); margin-bottom: .1rem; }\n  .travel-option p { font-size: .95rem; color: var(--text-light); line-height: 1.5; }\n\n  .travel-essentials { }\n  .essentials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.2rem; }\n  .essential-item { display: flex; gap: 1rem; align-items: flex-start; background: white; border: 1px solid rgba(201,169,110,.15); border-radius: 5px; padding: 1rem 1.2rem; }\n  .essential-icon { font-size: 1.3rem; flex-shrink: 0; }\n  .icon-img { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }\n  .essential-item strong { display: block; font-size:1.05rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text); margin-bottom: .2rem; }\n  .essential-item p { font-size: .95rem; color: var(--text-light); line-height: 1.55; }\n\n  .travel-accom { }\n  .accom-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }\n  .accom-card { background: white; border: 1px solid rgba(201,169,110,.18); clip-path: polygon(12px 0%, calc(100% - 12px) 0%, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0% calc(100% - 12px), 0% 12px); padding: 1.5rem; display: flex; flex-direction: column; gap: .5rem; transition: transform .3s, box-shadow .3s; }\n  .accom-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(45,74,62,.08); }\n  .accom-featured-wrapper {\n    clip-path: polygon(12px 0%, calc(100% - 12px) 0%, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0% calc(100% - 12px), 0% 12px);\n    background: var(--terracotta);\n    padding: 2px;\n  }\n  .accom-featured { background: #fff9f6; }\n  .accom-badge { font-size: .86rem; letter-spacing: .22em; text-transform: uppercase; color: white; background: var(--terracotta); border-radius: 2px; padding: .25rem .6rem; display: inline-block; margin-bottom: .3rem; align-self: flex-start; }\n  .accom-name { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; color: var(--deep-green); }\n  .accom-dist { font-size: .95rem; letter-spacing: .18em; text-transform: uppercase; color: var(--terracotta); }\n  .accom-desc { font-size: .95rem; color: var(--text-light); line-height: 1.65; flex: 1; }\n  .accom-link { font-size: .95rem; letter-spacing: .15em; text-transform: uppercase; color: var(--terracotta); text-decoration: none; border-bottom: 1px solid rgba(184,92,56,.3); padding-bottom: 2px; align-self: flex-start; margin-top: .5rem; transition: all .3s; }\n  .accom-link:hover { color: var(--deep-green); border-color: var(--deep-green); }\n\n  @media(max-width:700px) {\n    .travel-step { flex-direction: column; gap: .8rem; }\n    .travel-step-num { font-size: 2rem; width: auto; }\n    .essentials-grid { grid-template-columns: 1fr; }\n    .accom-grid { grid-template-columns: 1fr; }\n  }\n\n  \/* \u2500\u2500 DRESS CODE MOODBOARD \u2500\u2500 *\/\n  #dresscode { }\n  .dresscode-floating {\n    max-width: 860px;\n    margin: 0 auto;\n    background: #fdfaf6;\n    clip-path: polygon(18px 0%, calc(100% - 18px) 0%, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0% calc(100% - 18px), 0% 18px);\n    filter: drop-shadow(0 20px 50px rgba(0,0,0,.35)) drop-shadow(0 4px 12px rgba(0,0,0,.2));\n    overflow: hidden;\n  }\n  .dresscode-floating-header { padding: 2.5rem 2.8rem 1.5rem; }\n  .dresscode-floating-header .section-label { color: var(--leaf); }\n  .dresscode-floating-header .section-title { color: var(--deep-green); }\n  .dresscode-floating-header .section-title em { color: var(--terracotta); }\n  .dc-intro { font-size:1rem; line-height: 1.8; color: var(--text-light); font-style: italic; max-width: 600px; margin-top: .5rem; }\n  .dc-tabs { display: flex; margin-top: 1.5rem; border-bottom: 1px solid rgba(58,48,40,.1); }\n  .dc-tab { background: none; border: none; padding: .65rem 1.8rem; font-family: 'Jost', sans-serif; font-size: .95rem; letter-spacing: .22em; text-transform: uppercase; color: var(--text-light); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all .25s; }\n  .dc-tab.active { color: var(--deep-green); border-bottom-color: var(--leaf); }\n  .dc-tab:hover:not(.active) { color: var(--text); }\n  .dc-moodboard { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: 1.5rem 2.8rem 0; }\n  .dc-moodboard-right { display: grid; grid-template-rows: 1fr 1fr 1fr; gap: .5rem; }\n  .dc-photo { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--sand), rgba(201,169,110,.15)); display: flex; align-items: center; justify-content: center; }\n  .dc-photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }\n  .dc-photo-main { aspect-ratio: 3\/4; }\n  .dc-photo-sm { aspect-ratio: 16\/9; }\n  .dc-photo .placeholder-label { position: relative; z-index: 1; font-size: .86rem; letter-spacing: .15em; text-transform: uppercase; color: var(--text-light); background: rgba(253,246,238,.85); padding: .25rem .6rem; border-radius: 2px; }\n  .dc-panel-body { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 2rem 2.8rem 2.5rem; align-items: start; }\n  .dresscode-card-gender { font-size:1rem; letter-spacing: .25em; text-transform: uppercase; color: var(--leaf); margin-bottom: .4rem; }\n  .dresscode-card-title { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.6rem; color: var(--deep-green); line-height: 1.15; margin-bottom: .7rem; }\n  .dresscode-card-desc { font-size:1rem; color: var(--text-light); line-height: 1.75; }\n  .dc-palette-label { font-size:1rem; letter-spacing: .25em; text-transform: uppercase; color: var(--text-light); margin-bottom: .9rem; }\n  .dc-palette-note { font-size:1rem; color: var(--text-light); font-style: italic; margin-top: .5rem; }\n  .palette-strip { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: .3rem; }\n  .palette-swatch { display: flex; flex-direction: column; align-items: center; gap: .35rem; }\n  .swatch-dot { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(0,0,0,.08); }\n  .swatch-label { font-size: .5rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-light); }\n  .dc-panel { animation: dcFadeIn .3s ease; }\n  @keyframes dcFadeIn { from { opacity:0; transform: translateY(6px); } to { opacity:1; transform: translateY(0); } }\n  @media(max-width:640px) {\n    .dc-moodboard { grid-template-columns: 1fr; padding: 1rem 1.5rem 0; }\n    .dc-moodboard-right { grid-template-rows: auto; grid-template-columns: 1fr 1fr; }\n    .dc-photo-sm { aspect-ratio: 1; }\n    .dc-panel-body { grid-template-columns: 1fr; padding: 1.5rem; }\n    .dresscode-floating-header { padding: 2rem 1.5rem 1rem; }\n  }\n\n  \/* LANG TOGGLE *\/\n  .lang-toggle {\n    display: flex;\n    align-items: center;\n    gap: 0;\n    border: 1px solid rgba(184,92,56,.35);\n    border-radius: 3px;\n    overflow: hidden;\n    flex-shrink: 0;\n  }\n  .lang-btn {\n    background: none;\n    border: none;\n    padding: .3rem .55rem;\n    font-family: 'Jost', sans-serif;\n    font-size: .76rem;\n    letter-spacing: .15em;\n    text-transform: uppercase;\n    color: var(--text-light);\n    cursor: pointer;\n    transition: background .2s, color .2s;\n  }\n  .lang-btn.active {\n    background: var(--terracotta);\n    color: white;\n  }\n  .lang-btn:not(.active):hover { background: rgba(184,92,56,.08); }\n  .lang-divider { width: 1px; background: rgba(184,92,56,.35); align-self: stretch; }\n\n  \/* RESPONSIVE *\/\n  @media(max-width:600px) {\n    .floating-card { margin-top:-40px; }\n    .fc-event { flex-direction:column; gap:.8rem; }\n    .fc-vert-divider { display:none; }\n    .f-row { grid-template-columns:1fr; }\n    nav { padding:.9rem 1.4rem; }\n  }\n\n  html { font-size: 16px !important; }\n  body { font-size: 16px !important; }\n\n  \/* \u2500\u2500 WORDPRESS \/ ELEMENTOR MARGIN RESET \u2500\u2500 *\/\n  html, body, .site, #page, #content, .site-content,\n  .entry-content, .elementor, .elementor-section,\n  .elementor-container, .e-container, .e-con,\n  .elementor-widget-wrap, .elementor-widget-container,\n  .elementor-widget-html {\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: 100% !important;\n    width: 100% !important;\n    box-sizing: border-box;\n  }\n  \/* RSVP FORM EXTRAS *\/\n  .rsvp-code-label { font-size:.96rem; color:rgba(245,237,224,.7); margin-bottom:1rem; letter-spacing:.04em; }\n  .rsvp-code-row { display:flex; gap:.6rem; margin-bottom:.6rem; }\n  .rsvp-code-input { flex:1; background:rgba(255,255,255,.08); border:1px solid rgba(201,169,110,.3); color:white; padding:.7rem 1rem; font-family:'Jost',sans-serif; font-size:.95rem; letter-spacing:.15em; text-transform:uppercase; outline:none; border-radius:3px; }\n  .rsvp-code-input::placeholder { color:rgba(255,255,255,.25); text-transform:none; letter-spacing:.05em; }\n  .rsvp-code-input:focus { border-color:var(--gold); }\n  .rsvp-code-btn { background:var(--terracotta); border:none; color:white; padding:.7rem 1.4rem; font-family:'Jost',sans-serif; font-size:.96rem; letter-spacing:.18em; text-transform:uppercase; cursor:pointer; border-radius:3px; transition:background .2s; white-space:nowrap; }\n  .rsvp-code-btn:hover { background:var(--terracotta-light); }\n  .rsvp-code-error { font-size:1.05rem; color:#e07070; margin-top:.3rem; }\n  .rsvp-welcome { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; padding-bottom:1.2rem; border-bottom:1px solid rgba(201,169,110,.15); flex-wrap:wrap; }\n  .rsvp-welcome-text { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.3rem; color:var(--gold); }\n  .rsvp-change-code { background:none; border:none; font-size:.95rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(245,237,224,.4); cursor:pointer; text-decoration:underline; }\n  .rsvp-change-code:hover { color:rgba(245,237,224,.7); }\n  .f-checkbox { flex-direction:row; align-items:center; }\n  .f-check-label { display:flex; align-items:center; gap:.6rem; cursor:pointer; font-size:1.05rem; color:rgba(245,237,224,.6); }\n  .f-check-label input[type=checkbox] { width:16px; height:16px; accent-color:var(--terracotta); }\n  .rsvp-kids-age { display:flex; align-items:center; gap:.8rem; margin-bottom:.6rem; }\n  .rsvp-kids-age label { font-size:1rem; color:rgba(245,237,224,.6); min-width:80px; }\n  .rsvp-kids-age input { width:80px; background:rgba(255,255,255,.08); border:1px solid rgba(201,169,110,.25); color:white; padding:.5rem .7rem; font-family:'Jost',sans-serif; font-size:1rem; border-radius:3px; outline:none; }\n  .rsvp-kids-age input:focus { border-color:var(--gold); }\n\n  \/* Force correct button colours - override WordPress\/Elementor *\/\n  .dc-tab,\n  .dc-tab:hover,\n  .dc-tab:focus,\n  .dc-tab:active,\n  .dc-tab.active,\n  .rsvp-code-btn {\n    -webkit-appearance: none;\n    appearance: none;\n  }\n  .dc-tab { background: none !important; border-radius: 0 !important; color: var(--text-light) !important; border-bottom: 2px solid transparent !important; box-shadow: none !important; }\n  .dc-tab.active { color: var(--deep-green) !important; border-bottom-color: var(--leaf) !important; background: none !important; }\n  .dc-tab:hover:not(.active) { color: var(--text) !important; background: none !important; }\n\n  \/* \u2500\u2500 ACCORDION \u2500\u2500 *\/\n  .accordion-step { border-bottom: 1px solid rgba(201,169,110,.15); }\n  .travel-step-header {\n    display: grid;\n    grid-template-columns: 60px 1fr auto;\n    align-items: center;\n    gap: 0;\n    cursor: pointer;\n    padding: 1.4rem 0;\n    transition: background .2s;\n    user-select: none;\n    width: 100%;\n    margin: 0 -2.8rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n    width: calc(100% + 5.6rem);\n  }\n  .travel-step-header:hover { background: rgba(201,169,110,.06); }\n  .accordion-step.open .travel-step-header { background: rgba(201,169,110,.08); }\n  .travel-step-num {\n    font-family: 'Cormorant Garamond', serif;\n    font-size: 3rem;\n    font-weight: 300;\n    color: rgba(184,92,56,.2);\n    text-align: center;\n    line-height: 1;\n  }\n  .travel-step-header-text { flex: 1; padding-right: 2rem; }\n  .travel-step-header .travel-step-title { margin-bottom: .1rem; }\n  .travel-step-preview {\n    font-size: .88rem;\n    color: var(--text-light);\n    font-style: italic;\n    transition: opacity .25s;\n    margin: 0;\n  }\n  .accordion-step.open .travel-step-preview { opacity: 0; height: 0; overflow: hidden; }\n  .accordion-arrow {\n    font-size: 1.2rem;\n    color: var(--terracotta);\n    transition: transform .35s cubic-bezier(.22,.61,.36,1);\n    flex-shrink: 0;\n    padding-right: 1rem;\n  }\n  .accordion-step.open .accordion-arrow { transform: rotate(180deg); }\n  .travel-step-body-wrap {\n    max-height: 0;\n    overflow: hidden;\n    transition: max-height .5s cubic-bezier(.22,.61,.36,1);\n  }\n  .accordion-step.open .travel-step-body-wrap { max-height: 1400px; }\n  .travel-step-content { padding: 1rem 1rem 1.5rem 60px; }\n  @media(max-width:640px) {\n    .travel-step-header { grid-template-columns: 44px 1fr auto; }\n    .travel-step-num { font-size: 2rem; }\n    .travel-step-content { padding: 1rem 0 1.2rem 44px; }\n    .travel-card-inner { padding: 1.5rem; }\n    .travel-step-header { margin: 0 -1.5rem; width: calc(100% + 3rem); padding-left: .5rem; padding-right: .5rem; }\n  }\n\n  \/* \u2500\u2500 SCROLL REVEAL ANIMATIONS \u2500\u2500 *\/\n  .reveal-up,\n  .reveal-left,\n  .reveal-right {\n    opacity: 0;\n    transition: opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);\n  }\n  .reveal-up    { transform: translateY(40px); }\n  .reveal-left  { transform: translateX(-50px); }\n  .reveal-right { transform: translateX(50px); }\n\n  .reveal-up.visible,\n  .reveal-left.visible,\n  .reveal-right.visible {\n    opacity: 1;\n    transform: translate(0, 0);\n  }\n\n  \/* Override for tl-item which has its own animation *\/\n  .tl-item.reveal-up { transform: translateY(30px); }\n  .tl-item.reveal-up.visible { transform: translateY(0); }\n\n  .btn-registry {\n    display: inline-block;\n    font-family: 'Jost', sans-serif;\n    font-size: .72rem;\n    letter-spacing: .22em;\n    text-transform: uppercase;\n    color: var(--terracotta);\n    text-decoration: none;\n    border-bottom: 1px solid rgba(184,92,56,.3);\n    padding-bottom: 3px;\n    transition: all .3s;\n  }\n  .btn-registry:hover { color: var(--deep-green); border-bottom-color: var(--deep-green); }\n\n  \/* SCROLL TO TOP *\/\n  .scroll-top {\n    position: fixed;\n    bottom: 2rem;\n    right: 2rem;\n    width: 44px;\n    height: 44px;\n    background: rgba(45,74,62,.9);\n    backdrop-filter: blur(8px);\n    clip-path: polygon(10px 0%, calc(100% - 10px) 0%, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0% calc(100% - 10px), 0% 10px);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    opacity: 0;\n    transform: translateY(10px);\n    transition: opacity .3s, transform .3s;\n    z-index: 200;\n    border: none;\n  }\n  .scroll-top.visible { opacity: 1; transform: translateY(0); }\n  .scroll-top:hover { background: var(--terracotta); }\n  .scroll-top svg { width: 16px; height: 16px; stroke: white; fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }\n<\/style>\n<\/head>\n<body>\n\n<!-- NAV -->\n<nav>\n  <div class=\"nav-logo\"><a href=\"#\" onclick=\"window.scrollTo({top:0,behavior:'smooth'});return false;\"><img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/NV_monogram.png\" alt=\"N&V\"\/><\/a><\/div>\n  <ul class=\"nav-links\">\n    <li><a href=\"#wedding-details\" data-en=\"Wedding Details\" data-pt=\"Detalhes\">Wedding Details<\/a><\/li>\n    <li><a href=\"#dresscode\" data-en=\"Dress Code\" data-pt=\"Dress Code\">Dress Code<\/a><\/li>\n    <li><a href=\"#travel-tips\" data-en=\"Tips\" data-pt=\"Dicas\">Tips<\/a><\/li>\n    <li><a href=\"#registry\" data-en=\"Registry\" data-pt=\"Presentes\">Registry<\/a><\/li>\n          <li><a href=\"#rsvp\" data-en=\"RSVP\" data-pt=\"RSVP\">RSVP<\/a><\/li>\n  <\/ul>\n  <div style=\"display:flex;align-items:center;gap:1.2rem;\">\n    <div class=\"lang-toggle\">\n      <button class=\"lang-btn active\" id=\"btn-en\" onclick=\"setLang('en')\">EN<\/button>\n      <div class=\"lang-divider\"><\/div>\n      <button class=\"lang-btn\" id=\"btn-pt\" onclick=\"setLang('pt')\">PT<\/button>\n    <\/div>\n    <div class=\"nav-menu\" id=\"hamburger\" onclick=\"toggleMenu()\"><span><\/span><span><\/span><span><\/span><\/div>\n  <\/div>\n<\/nav>\n\n<!-- Mobile nav overlay -->\n<div class=\"nav-overlay\" id=\"nav-overlay\">\n  <a href=\"#wedding-details\" onclick=\"toggleMenu()\" data-en=\"Wedding Details\" data-pt=\"Detalhes\">Wedding Details<\/a>\n  <a href=\"#timeline\" onclick=\"toggleMenu()\" data-en=\"Schedule\" data-pt=\"Programa\u00e7\u00e3o\">Schedule<\/a>\n  <a href=\"#venue\" onclick=\"toggleMenu()\" data-en=\"Venue\" data-pt=\"Local\">Venue<\/a>\n  <a href=\"#dresscode\" onclick=\"toggleMenu()\" data-en=\"Dress Code\" data-pt=\"Dress Code\">Dress Code<\/a>\n  <a href=\"#travel-tips\" onclick=\"toggleMenu()\" data-en=\"Travel & Tips\" data-pt=\"Viagem & Dicas\">Travel & Tips<\/a>\n  <a href=\"#registry\" onclick=\"toggleMenu()\" data-en=\"Registry\" data-pt=\"Presentes\">Registry<\/a>\n  <a href=\"#rsvp\" onclick=\"toggleMenu()\" data-en=\"RSVP\" data-pt=\"RSVP\">RSVP<\/a>\n<\/div>\n\n<!-- HERO -->\n<section id=\"hero\">\n  <div class=\"hero-img\"><\/div>\n  <div class=\"hero-content\">\n    <p class=\"hero-eyebrow\" data-en=\"We are getting married\" data-pt=\"Vamos nos casar\">We are getting married<\/p>\n    <h1 class=\"hero-names\">Nick<span class=\"amp\">&amp;<\/span>Veri<\/h1>\n  <\/div>\n<\/section>\n\n<!-- PLANTS + FLOATING CARD -->\n<div id=\"wedding-details\">\n  <div class=\"floating-card\">\n\n    <div class=\"fc-countdown\">\n      <span class=\"fc-label\" data-en=\"See you in\" data-pt=\"Nos vemos em\">See you in<\/span>\n      <div class=\"countdown-grid\">\n        <div class=\"cd-box\"><span class=\"cd-num\" id=\"cd-days\">--<\/span><span class=\"cd-lbl\" data-en=\"Days\" data-pt=\"Dias\">Days<\/span><\/div>\n        <div class=\"cd-box\"><span class=\"cd-num\" id=\"cd-hours\">--<\/span><span class=\"cd-lbl\" data-en=\"Hours\" data-pt=\"Horas\">Hours<\/span><\/div>\n        <div class=\"cd-box\"><span class=\"cd-num\" id=\"cd-mins\">--<\/span><span class=\"cd-lbl\" data-en=\"Min\" data-pt=\"Min\">Min<\/span><\/div>\n        <div class=\"cd-box\"><span class=\"cd-num\" id=\"cd-secs\">--<\/span><span class=\"cd-lbl\" data-en=\"Sec\" data-pt=\"Seg\">Sec<\/span><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"fc-events\">\n      <div class=\"fc-event\">\n        <div class=\"fc-event-left\">\n          <p class=\"fc-event-name\" data-en=\"Welcome<br>reception\" data-pt=\"Recep\u00e7\u00e3o<br>de boas\u2011vindas\">Welcome<br>reception<\/p>\n        <\/div>\n        <div class=\"fc-vert-divider\"><\/div>\n        <div class=\"fc-event-right\">\n          <p class=\"fc-event-date\" data-en=\"Monday, <strong>5 October<\/strong>\" data-pt=\"Segunda, <strong>5 de outubro<\/strong>\">Monday, <strong>5 October<\/strong><\/p>\n          <p class=\"fc-event-time\">6:30 pm to 9:30 pm<\/p>\n          <p class=\"fc-event-desc\" data-en=\"Join us for an intimate welcome gathering \u2014 bites, good company, and the start of something beautiful.\" data-pt=\"Junte-se a n\u00f3s para um encontro intimista de boas-vindas \u2014 petiscos, boa companhia e o in\u00edcio de algo lindo.\">Join us for an intimate welcome gathering \u2014 bites, good company, and the start of something beautiful.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"fc-event\">\n        <div class=\"fc-event-left\">\n          <p class=\"fc-event-name\" data-en=\"The<br>big day\" data-pt=\"O grande<br>dia\">The<br>big day<\/p>\n        <\/div>\n        <div class=\"fc-vert-divider\"><\/div>\n        <div class=\"fc-event-right\">\n          <p class=\"fc-event-date\" data-en=\"Tuesday, <strong>6 October<\/strong>\" data-pt=\"Ter\u00e7a, <strong>6 de outubro<\/strong>\">Tuesday, <strong>6 October<\/strong><\/p>\n          <p class=\"fc-event-time\">2:30 pm to midnight<\/p>\n          <p class=\"fc-event-desc\" data-en=\"Vows and dancing into the night.\" data-pt=\"Votos e dan\u00e7a at\u00e9 a madrugada.\">Vows and dancing into the night.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n\n<!-- CELEBRATION BY THE SEA -->\n<section id=\"venue\">\n  <div class=\"venue-inner\">\n\n    <!-- Left: text -->\n    <div class=\"venue-left\">\n      <h2 class=\"venue-script\" data-en=\"A celebration<br>by the sea\" data-pt=\"Uma celebra\u00e7\u00e3o<br>\u00e0 beira-mar\">A celebration<br>by the sea<\/h2>\n      <p class=\"venue-body\" data-en='We choose the sea to be the background of our \"yes\".' data-pt='Escolhemos o mar como cen\u00e1rio do nosso \"sim\".'>We choose the sea to be the background of our \"yes\".<\/p>\n      <p class=\"venue-body\" data-en=\"Both the <strong>Welcome Reception<\/strong> and <strong>The Big Day<\/strong> take place at Hotel Miradouro in S\u00e3o Sebasti\u00e3o \u2014 mostly on its covered, stone-paved terraces.\" data-pt=\"Tanto a <strong>Recep\u00e7\u00e3o de Boas-vindas<\/strong> quanto <strong>O Grande Dia<\/strong> acontecem no Hotel Miradouro, em S\u00e3o Sebasti\u00e3o \u2014 principalmente nas varandas cobertas com piso de pedra.\">Both the <strong>Welcome Reception<\/strong> and <strong>The Big Day<\/strong> take place at Hotel Miradouro in S\u00e3o Sebasti\u00e3o \u2014 mostly on its covered, stone-paved terraces.<\/p>\n      <p class=\"venue-body\" style=\"margin-top:1.5rem;font-style:italic;font-size:.95rem;color:var(--text-light);border-top:1px solid rgba(201,169,110,.2);padding-top:1.2rem;\"\n         data-en=\"While we love the little ones in our lives, our wedding celebration will be best suited for adults. As our venue is a beautiful but open clifftop setting with an uncovered swimming pool, it is not entirely safe for children. We kindly ask guests with children to make childcare arrangements where possible \u2014 we completely understand if this is not feasible, and we hope you understand our concerns.\"\n         data-pt=\"Embora amemos as crian\u00e7as das nossas vidas, a nossa celebra\u00e7\u00e3o ser\u00e1 mais adequada para adultos. O espa\u00e7o \u00e9 um cen\u00e1rio deslumbrante mas aberto no topo de uma fal\u00e9sia, com uma piscina sem prote\u00e7\u00e3o, n\u00e3o sendo totalmente seguro para crian\u00e7as. Pedimos gentilmente que os convidados com crian\u00e7as tomem provid\u00eancias para o cuidado delas quando poss\u00edvel \u2014 entendemos completamente se isso n\u00e3o for vi\u00e1vel, e esperamos que compreendam as nossas preocupa\u00e7\u00f5es.\">\n        While we love the little ones in our lives, our wedding celebration will be best suited for adults. As our venue is a beautiful but open clifftop setting with an uncovered swimming pool, it is not entirely safe for children. We kindly ask guests with children to make childcare arrangements where possible \u2014 we completely understand if this is not feasible, and we hope you understand our concerns.\n      <\/p>\n    <\/div>\n\n    <!-- Right: hotel card -->\n    <div class=\"venue-right\">\n      <div class=\"venue-card\">\n        <h3 class=\"venue-hotel-name\">Hotel Miradouro de S\u00e3o Sebasti\u00e3o<\/h3>\n        \n        <p class=\"venue-address\">Av. Ver. Ant\u00f4nio Borges, 88<br>S\u00e3o Sebasti\u00e3o \u2013 SP, Brazil<\/p>\n        <div class=\"venue-detail\">\n          <span class=\"venue-detail-icon\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Airplane.png\" alt=\"\"\/><\/span>\n          <div>\n            <p class=\"venue-detail-label\" data-en=\"Airport nearby:\" data-pt=\"Aeroporto pr\u00f3ximo:\">Airport nearby:<\/p>\n            <p class=\"venue-detail-value\" data-en=\"Guarulhos International Airport\" data-pt=\"Aeroporto Internacional de Guarulhos\">Guarulhos International Airport<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"venue-detail\">\n          <span class=\"venue-detail-icon\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Car.png\" alt=\"\"\/><\/span>\n          <div>\n            <p class=\"venue-detail-value\" data-en=\"From the airport to the hotel, it's about <strong>3 hours driving<\/strong>.\" data-pt=\"Do aeroporto ao hotel, s\u00e3o cerca de <strong>3 horas de carro<\/strong>.\">From the airport to the hotel, it's about <strong>3 hours driving<\/strong>.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<!-- TIMELINE -->\n<section id=\"timeline\">\n  <div class=\"tl-inner\">\n\n    <div class=\"tl-heading\">\n      <span class=\"tl-script\" data-en=\"The\" data-pt=\"A\">The<\/span>\n      <div class=\"tl-script-line2\">\n        <span data-en=\"Itinerary\" data-pt=\"Programa\u00e7\u00e3o\">Itinerary<\/span>\n        <div class=\"tl-script-rule\"><\/div>\n      <\/div>\n      <p style=\"font-size:1rem;letter-spacing:.25em;text-transform:uppercase;color:var(--terracotta);margin-top:.8rem;\" data-en=\"Tuesday, 6 October 2026\" data-pt=\"Ter\u00e7a-feira, 6 de outubro de 2026\">Tuesday, 6 October 2026<\/p>\n    <\/div>\n\n    <div class=\"tl-grid\">\n\n      <div class=\"tl-item\">\n        <p class=\"tl-day-label\" data-en=\"2:30 PM\" data-pt=\"14h30\">2:30 PM<\/p>\n        <p class=\"tl-event\" data-en=\"Welcome<br>Drinks\" data-pt=\"Boas-vindas\">Welcome<br>Drinks<\/p>\n        <p class=\"tl-desc\" data-en=\"Arrive at the venue and join us for a welcome drink.\" data-pt=\"Chegue ao local e junte-se a n\u00f3s para uma bebida de boas-vindas.\">Arrive at the venue and join us for a welcome drink.<\/p>\n      <\/div>\n\n      <div class=\"tl-item\">\n        <p class=\"tl-day-label\" data-en=\"3:00 PM\" data-pt=\"15h00\">3:00 PM<\/p>\n        <p class=\"tl-event\" data-en=\"Exchange<br>of Vows\" data-pt=\"Troca<br>de Votos\">Exchange<br>of Vows<\/p>\n        <p class=\"tl-desc\" data-en=\"Nick and Veri exchange vows in an intimate outdoor ceremony surrounded by lush greenery and warm sunlight.\" data-pt=\"Nick e Veri trocam votos em uma cerim\u00f4nia \u00edntima ao ar livre, rodeados de verde exuberante e luz do sol.\">Nick and Veri exchange vows in an intimate outdoor ceremony surrounded by lush greenery and warm sunlight.<\/p>\n      <\/div>\n\n      <div class=\"tl-item\">\n        <p class=\"tl-day-label\" data-en=\"4:00 PM\" data-pt=\"16h00\">4:00 PM<\/p>\n        <p class=\"tl-event\" data-en=\"Cocktail<br>Hour\" data-pt=\"Hora do<br>Coquetel\">Cocktail<br>Hour<\/p>\n        <p class=\"tl-desc\" data-en=\"Drinks, bites, and good company.\" data-pt=\"Drinks, petiscos e boa companhia.\">Drinks, bites, and good company.<\/p>\n      <\/div>\n\n      <div class=\"tl-item\">\n        <p class=\"tl-day-label\" data-en=\"5:00 PM until late\" data-pt=\"17h00 at\u00e9 tarde\">5:00 PM until late<\/p>\n        <p class=\"tl-event\" data-en=\"Golden Hour,<br>Dinner &amp; Dancing\" data-pt=\"Jantar &amp; Festa\">Golden Hour,<br>Dinner &amp; Dancing<\/p>\n        <p class=\"tl-desc\" data-en=\"The sun sets over the mountains as the party begins \u2014 music, laughter, and dancing under the stars.\" data-pt=\"O sol se p\u00f5e sobre as montanhas enquanto a festa come\u00e7a \u2014 m\u00fasica, risadas e dan\u00e7a sob as estrelas.\">The sun sets over the mountains as the party begins \u2014 music, laughter, and dancing under the stars.<\/p>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- TRAVEL -->\n<section id=\"travel\">\n  <!-- DRESS CODE \u2014 floats up into timeline section above -->\n  <div id=\"dresscode\" style=\"position:relative; z-index:10; padding: 0 5vw; margin-top:-15rem; margin-bottom:4rem;\">\n  <div class=\"dresscode-floating\">\n\n    <div class=\"dresscode-floating-header\">\n      <p class=\"section-label\" data-en=\"What to Wear\" data-pt=\"O Que Vestir\">What to Wear<\/p>\n      <h2 class=\"section-title\" data-en=\"Dress <em>Code<\/em>\" data-pt=\"Dress <em>Code<\/em>\">Dress <em>Code<\/em><\/h2>\n      <p class=\"dc-intro\" data-en=\"The ceremony takes place outdoors, followed by a celebration on a covered stone-paved terrace overlooking the sea. October weather in S\u00e3o Sebasti\u00e3o can be unpredictable \u2014 we recommend keeping an eye on the forecast closer to the date.\"\n         data-pt=\"A cerim\u00f4nia acontece ao ar livre, seguida de uma celebra\u00e7\u00e3o em uma varanda coberta com piso de pedra e vista para o mar. O tempo em S\u00e3o Sebasti\u00e3o em outubro pode ser imprevis\u00edvel \u2014 recomendamos acompanhar a previs\u00e3o do tempo conforme a data se aproxima.\">\n        The ceremony takes place outdoors, followed by a celebration on a covered stone-paved terrace overlooking the sea. October weather in S\u00e3o Sebasti\u00e3o can be unpredictable \u2014 we recommend keeping an eye on the forecast closer to the date.\n      <\/p>\n\n      <!-- Tab switcher -->\n      <div class=\"dc-tabs\">\n        <button class=\"dc-tab active\" id=\"tab-ladies\" onclick=\"switchTab('ladies')\" data-en=\"Ladies\" data-pt=\"Ela\">Ladies<\/button>\n        <button class=\"dc-tab\" id=\"tab-gents\" onclick=\"switchTab('gents')\" data-en=\"Gentlemen\" data-pt=\"Ele\">Gentlemen<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- GENTLEMEN PANEL -->\n    <div class=\"dc-panel\" id=\"panel-gents\" style=\"display:none\">\n      <div class=\"dc-moodboard\">\n        <div class=\"dc-moodboard-left\">\n          <div class=\"dc-photo dc-photo-main\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/gentlemen-main.jpg\" alt=\"Gentlemen attire\"\/>\n          <\/div>\n        <\/div>\n        <div class=\"dc-moodboard-right\">\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/gentlemen-2.jpg\" alt=\"\"\/>\n          <\/div>\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/gentlemen-3.jpg\" alt=\"\"\/>\n          <\/div>\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/gentlemen-4.jpg\" alt=\"\"\/>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"dc-panel-body\">\n        <div class=\"dc-panel-text\">\n          <p class=\"dresscode-card-gender\" data-en=\"For him\" data-pt=\"Para ele\">For him<\/p>\n          <h3 class=\"dresscode-card-title\" data-en=\"Summer formal attire\" data-pt=\"Traje social de ver\u00e3o\">Summer formal attire<\/h3>\n          <p class=\"dresscode-card-desc\" data-en=\"A lightweight suit or blazer with tailored trousers and a dress shirt. Light, summery shades such as beige, sand, sage, olive or soft grey are especially encouraged. Linen and other breathable fabrics are ideal. A tie is welcome, but entirely optional.\" data-pt=\"Terno leve ou blazer com cal\u00e7a social e camisa. Tons claros e de ver\u00e3o, como bege, areia, verde-s\u00e1lvia, oliva ou cinza-claro, s\u00e3o especialmente bem-vindos. Linho e outros tecidos leves s\u00e3o ideais. A gravata \u00e9 bem-vinda, mas totalmente opcional.\">A lightweight suit or blazer with tailored trousers and a dress shirt. Light, summery shades such as beige, sand, sage, olive or soft grey are especially encouraged. Linen and other breathable fabrics are ideal. A tie is welcome, but entirely optional.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- LADIES PANEL -->\n    <div class=\"dc-panel\" id=\"panel-ladies\">\n      <div class=\"dc-moodboard\">\n        <div class=\"dc-moodboard-left\">\n          <div class=\"dc-photo dc-photo-main\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/ladies-main.jpg\" alt=\"Ladies attire\"\/>\n          <\/div>\n        <\/div>\n        <div class=\"dc-moodboard-right\">\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/ladies-2.jpg\" alt=\"\"\/>\n          <\/div>\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/ladies-3.jpg\" alt=\"\"\/>\n          <\/div>\n          <div class=\"dc-photo dc-photo-sm\">\n            <img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/ladies-4.jpg\" alt=\"\"\/>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"dc-panel-body\">\n        <div class=\"dc-panel-text\">\n          <p class=\"dresscode-card-gender\" data-en=\"For her\" data-pt=\"Para ela\">For her<\/p>\n          <h3 class=\"dresscode-card-title\" data-en=\"Formal attire\" data-pt=\"Traje social\">Formal attire<\/h3>\n          <p class=\"dresscode-card-desc\" data-en=\"Long or midi dresses, and elegant jumpsuits are all welcome. Feel free to embrace colour, prints, flowing fabrics and special details for an elegant, festive look with personality.<br><br>The celebration will take place on a terrace with a firm, even stone floor, suitable for heels. For extra comfort, block heels are recommended.\" data-pt=\"Vestidos longos ou midi, conjuntos sofisticados e produ\u00e7\u00f5es elegantes s\u00e3o bem-vindos. Aposte em cores, estampas, tecidos fluidos e detalhes especiais para um visual marcante e festivo.<br><br>A celebra\u00e7\u00e3o acontece em uma varanda com piso de pedra firme e regular, adequado para o uso de salto. Para maior conforto, recomendamos saltos bloco.\">Long or midi dresses, and elegant jumpsuits are all welcome. Feel free to embrace colour, prints, flowing fabrics and special details for an elegant, festive look with personality.<br><br>The celebration will take place on a terrace with a firm, even stone floor, suitable for heels. For extra comfort, block heels are recommended.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n  <\/div>\n\n  <!-- Rotating image banner -->\n  <div class=\"travel-slideshow\">\n    <div class=\"travel-slide active\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-3.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-4.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-5.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-2.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-1.jpg')\"><\/div>\n    <div class=\"travel-slide-dots\">\n      <span class=\"travel-dot active\" onclick=\"goToSlide(0)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(1)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(2)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(3)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(4)\"><\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"travel-photos\">\n    <div class=\"travel-slide active\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-3.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-4.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-5.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-2.jpg')\"><\/div>\n    <div class=\"travel-slide\" style=\"background-image:url('https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Miradouro-Hotel-1.jpg')\"><\/div>\n    <div class=\"travel-slide-dots\">\n      <span class=\"travel-dot active\" onclick=\"goToSlide(0)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(1)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(2)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(3)\"><\/span>\n      <span class=\"travel-dot\" onclick=\"goToSlide(4)\"><\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"travel-inner\">\n    <div class=\"travel-card\">\n      <div class=\"travel-card-inner\">\n    <div class=\"travel-header\" id=\"travel-tips\">\n      <p class=\"section-label\" data-en=\"For Our International Guests\" data-pt=\"Para Nossos Convidados Internacionais\">For Our International Guests<\/p>\n      <h2 class=\"section-title\" data-en=\"Travel &amp; <em>Tips<\/em>\" data-pt=\"Viagem &amp; <em>Dicas<\/em>\">Travel &amp; <em>Tips<\/em><\/h2>\n      <p class=\"travel-intro\" data-en=\"We are so honoured that you are travelling all the way to Brazil to celebrate with us. Here are some tips to make your journey to S\u00e3o Sebasti\u00e3o as smooth as possible.\" data-pt=\"\u00c9 uma honra enorme ter voc\u00eas viajando at\u00e9 o Brasil para celebrar conosco. Aqui v\u00e3o algumas dicas para tornar a viagem at\u00e9 S\u00e3o Sebasti\u00e3o mais tranquila.\">We are so honoured that you are travelling all the way to Brazil to celebrate with us. Here are some tips to make your journey to S\u00e3o Sebasti\u00e3o as smooth as possible.<\/p>\n    <\/div>\n\n    <!-- Step 1: Flight -->\n    <div class=\"travel-step accordion-step\">\n      <div class=\"travel-step-header\" onclick=\"toggleStep(this)\">\n        <div class=\"travel-step-num\">1<\/div>\n        <div class=\"travel-step-header-text\">\n          <h3 class=\"travel-step-title\" data-en=\"The Flight\" data-pt=\"O Voo\">The Flight<\/h3>\n          <p class=\"travel-step-preview\" data-en=\"Flying into Guarulhos (GRU), S\u00e3o Paulo\" data-pt=\"Aterrissar em Guarulhos (GRU), S\u00e3o Paulo\">Flying into Guarulhos (GRU), S\u00e3o Paulo<\/p>\n        <\/div>\n        <span class=\"accordion-arrow\">\u2193<\/span>\n      <\/div>\n      <div class=\"travel-step-body-wrap\">\n        <div class=\"travel-step-content\">\n          <p class=\"travel-step-body\" data-en=\"We recommend flying into <strong>Guarulhos International Airport (GRU)<\/strong> in S\u00e3o Paulo.\" data-pt=\"Recomendamos pousar no <strong>Aeroporto Internacional de Guarulhos (GRU)<\/strong>, em S\u00e3o Paulo.\">We recommend flying into <strong>Guarulhos International Airport (GRU)<\/strong> in S\u00e3o Paulo.<\/p>\n          <div class=\"travel-flag-card\">\n            <img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Tulip.png\" alt=\"\"\/>\n            <div>\n              <p class=\"travel-flag-label\" data-en=\"From the Netherlands\" data-pt=\"Da Holanda\">From the Netherlands<\/p>\n              <p class=\"travel-flag-text\" data-en=\"KLM and LATAM both operate direct flights from Amsterdam (AMS) to S\u00e3o Paulo (GRU) \u2014 approximately 11 hours. Indirect flights (e.g., via Lisbon) can sometimes be a cost-effective alternative.\" data-pt=\"KLM e LATAM operam voos diretos de Amsterd\u00e3 (AMS) para S\u00e3o Paulo (GRU) \u2014 aproximadamente 11 horas. Voos indiretos (p. ex., via Lisboa) podem ser uma alternativa mais econ\u00f4mica.\">KLM and LATAM both operate direct flights from Amsterdam (AMS) to S\u00e3o Paulo (GRU) \u2014 approximately 11 hours. Indirect flights (e.g., via Lisbon) can sometimes be a cost-effective alternative.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Step 2: Drive -->\n    <div class=\"travel-step accordion-step\">\n      <div class=\"travel-step-header\" onclick=\"toggleStep(this)\">\n        <div class=\"travel-step-num\">2<\/div>\n        <div class=\"travel-step-header-text\">\n          <h3 class=\"travel-step-title\" data-en=\"The Drive\" data-pt=\"O Trajeto\">The Drive<\/h3>\n          <p class=\"travel-step-preview\" data-en=\"~3 hours from the airport to S\u00e3o Sebasti\u00e3o\" data-pt=\"~3 horas do aeroporto a S\u00e3o Sebasti\u00e3o\">~3 hours from the airport to S\u00e3o Sebasti\u00e3o<\/p>\n        <\/div>\n        <span class=\"accordion-arrow\">\u2193<\/span>\n      <\/div>\n      <div class=\"travel-step-body-wrap\">\n        <div class=\"travel-step-content\">\n          <p class=\"travel-step-body\" data-en=\"S\u00e3o Sebasti\u00e3o is on the coast, about <strong>3 hours drive<\/strong> from the airport.\" data-pt=\"S\u00e3o Sebasti\u00e3o fica no litoral, a cerca de <strong>3 horas de carro<\/strong> do aeroporto.\">S\u00e3o Sebasti\u00e3o is on the coast, about <strong>3 hours drive<\/strong> from the airport.<\/p>\n          <div class=\"travel-options\">\n            <div class=\"travel-option\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Taxi.png\" alt=\"\"\/><div><strong data-en=\"Private Transfer\" data-pt=\"Transfer Privativo\">Private Transfer<\/strong><p data-en=\"We can recommend trusted drivers \u2014 just reach out.\" data-pt=\"Podemos indicar motoristas de confian\u00e7a \u2014 \u00e9 s\u00f3 falar com a gente.\">We can recommend trusted drivers \u2014 just reach out.<\/p><\/div><\/div>\n            <div class=\"travel-option\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Car.png\" alt=\"\"\/><div><strong data-en=\"Rent a Car\" data-pt=\"Aluguel de Carro\">Rent a Car<\/strong><p data-en=\"Available at GRU (Localiza, Movida, Hertz).\" data-pt=\"Dispon\u00edvel no GRU (Localiza, Movida, Hertz).\">Available at GRU (Localiza, Movida, Hertz).<\/p><\/div><\/div>\n            <div class=\"travel-option\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Bus.png\" alt=\"\"\/><div><strong data-en=\"Bus\" data-pt=\"\u00d4nibus\">Bus<\/strong><p data-en='\"P\u00e1ssaro Marron\" bus line runs from the airport to S\u00e3o Sebasti\u00e3o.' data-pt='A linha \"P\u00e1ssaro Marron\" opera do aeroporto at\u00e9 S\u00e3o Sebasti\u00e3o.'>\"P\u00e1ssaro Marron\" bus line runs from the airport to S\u00e3o Sebasti\u00e3o.<\/p><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Step 3: Accommodations -->\n    <div class=\"travel-step accordion-step\">\n      <div class=\"travel-step-header\" onclick=\"toggleStep(this)\">\n        <div class=\"travel-step-num\">3<\/div>\n        <div class=\"travel-step-header-text\">\n          <h3 class=\"travel-step-title\" data-en=\"Accommodations\" data-pt=\"Acomoda\u00e7\u00f5es\">Accommodations<\/h3>\n          <p class=\"travel-step-preview\" data-en=\"Stay close to the party in S\u00e3o Sebasti\u00e3o\" data-pt=\"Fique pertinho da festa em S\u00e3o Sebasti\u00e3o\">Stay close to the party in S\u00e3o Sebasti\u00e3o<\/p>\n        <\/div>\n        <span class=\"accordion-arrow\">\u2193<\/span>\n      <\/div>\n      <div class=\"travel-step-body-wrap\">\n        <div class=\"travel-step-content\">\n          <div class=\"accom-grid\">\n\n            <div class=\"accom-featured-wrapper\">\n            <div class=\"accom-card accom-featured\">\n              <div class=\"accom-badge\" data-en=\"Wedding Venue\" data-pt=\"Local do Casamento\">Wedding Venue<\/div>\n              <h4 class=\"accom-name\">Hotel Miradouro<\/h4>\n              <p class=\"accom-desc\" data-en=\"The wedding venue hotel, perched above the sea with stunning ocean views. Rooms at the venue are by personal invitation \u2014 we'll be in touch.\" data-pt=\"O hotel do casamento, situado acima do mar com vistas deslumbrantes para o oceano. Os quartos no local s\u00e3o por convite pessoal \u2014 entraremos em contato.\">The wedding venue hotel, perched above the sea with stunning ocean views. Rooms at the venue are by personal invitation \u2014 we'll be in touch.<\/p>\n            <\/div>\n            <\/div>\n\n            <div class=\"accom-card\">\n              <h4 class=\"accom-name\">Vila Bareque\u00e7aba<\/h4>\n              <p class=\"accom-desc\" data-en=\"A lovely beachfront pousada offering a relaxing atmosphere. Perfect for families looking for a quiet retreat nearby.\" data-pt=\"Uma pousada encantadora \u00e0 beira-mar, com ambiente tranquilo. Perfeita para fam\u00edlias que buscam um retiro sossegado perto da festa.\">A lovely beachfront pousada offering a relaxing atmosphere. Perfect for families looking for a quiet retreat nearby.<\/p>\n              <a href=\"https:\/\/www.booking.com\/searchresults.html?ss=Vila+Barequecaba+Pousada%2C+S%C3%A3o+Sebasti%C3%A3o%2C+Brazil&checkin_year=2026&checkin_month=10&checkin_monthday=5&checkout_year=2026&checkout_month=10&checkout_monthday=7&group_adults=2&group_children=0&no_rooms=1\" target=\"_blank\" class=\"accom-link\" data-en=\"Check availability \u2192\" data-pt=\"Ver disponibilidade \u2192\">Check availability \u2192<\/a>\n            <\/div>\n\n            <div class=\"accom-card\">\n              <h4 class=\"accom-name\">Pousada da Sesmaria<\/h4>\n              <p class=\"accom-desc\" data-en=\"A charming pousada in S\u00e3o Sebasti\u00e3o. You can also reach them directly via WhatsApp: +55 12 99669-2347 (ask for Gabriel).\" data-pt=\"Uma pousada charmosa em S\u00e3o Sebasti\u00e3o. Voc\u00ea tamb\u00e9m pode entrar em contato pelo WhatsApp: +55 12 99669-2347 (falar com Gabriel).\">A charming pousada in S\u00e3o Sebasti\u00e3o. You can also reach them directly via WhatsApp: +55 12 99669-2347 (ask for Gabriel).<\/p>\n              <a href=\"https:\/\/www.booking.com\/hotel\/br\/sesmarias.pt-br.html?aid=304142&label=gen173rf-10CAQoggJCOHNlYXJjaF92aWxhIGJhcmVxdWVjYWJhIHBvdXNhZGEsIHPDo28gc2ViYXN0acOjbywgYnJhemlsSDNYA2ggiAEBmAEzuAEHyAEN2AED6AEB-AEBiAIBogIPbmlja2FuZHZlcmkuY29tqAIBuAKnl7vPBsACAdICJDc1NmEzZmVmLTc3MDEtNDRjMy1hZWUxLTc1NDA1YzU3ZTRlNNgCAeACAQ&sid=492468e1adaa91b6fb1a5c8ab46d47a7&checkin=2026-10-05&checkout=2026-10-07&group_adults=2&group_children=0&no_rooms=1\" target=\"_blank\" class=\"accom-link\" data-en=\"Check availability \u2192\" data-pt=\"Ver disponibilidade \u2192\">Check availability \u2192<\/a>\n            <\/div>\n\n            <div class=\"accom-card\">\n              <h4 class=\"accom-name\">Pousada Ana Doce<\/h4>\n              <p class=\"accom-desc\" data-en=\"A sweet pousada near Toque Toque Grande beach, close to the wedding venue.\" data-pt=\"Uma pousada encantadora perto da praia de Toque Toque Grande, pr\u00f3xima ao local do casamento.\">A sweet pousada near Toque Toque Grande beach, close to the wedding venue.<\/p>\n              <a href=\"https:\/\/www.booking.com\/hotel\/br\/pousada-ana-doce.pt-br.html?aid=304142&label=gen173rf-10CAQoggJCMnNlYXJjaF90b3F1ZSB0b3F1ZSBncmFuZGUsIHPDo28gc2ViYXN0acOjbywgYnJhemlsSDNYA2ggiAEBmAEzuAEHyAEN2AED6AEB-AEBiAIBogIPbmlja2FuZHZlcmkuY29tqAIBuALal7vPBsACAdICJGUwYTMwNmE1LTYwYTItNDk0OS1iMDJkLTFmY2ZmOGVlYTZjY9gCAeACAQ&sid=492468e1adaa91b6fb1a5c8ab46d47a7&checkin=2026-10-05&checkout=2026-10-07&group_adults=2&group_children=0&no_rooms=1\" target=\"_blank\" class=\"accom-link\" data-en=\"Check availability \u2192\" data-pt=\"Ver disponibilidade \u2192\">Check availability \u2192<\/a>\n            <\/div>\n\n            <div class=\"accom-card reveal-up\"><h4 class=\"accom-name\">Villa dei Fiori 33<\/h4><p class=\"accom-desc\" data-en=\"A charming Tuscan-style guesthouse right on Bareque\u00e7aba beach \u2014 ocean-view suites, a heated pool, and warm Italian hospitality.\" data-pt=\"Uma charmosa pousada em estilo toscano na Praia de Bareque\u00e7aba \u2014 su\u00edtes com vista para o mar, piscina aquecida e hospitalidade italiana.\">A charming Tuscan-style guesthouse right on Bareque\u00e7aba beach \u2014 ocean-view suites, a heated pool, and warm Italian hospitality.<\/p><a href=\"https:\/\/www.villadeifiori33.com.br\/\" target=\"_blank\" class=\"accom-link\" data-en=\"Check availability \u2192\" data-pt=\"Ver disponibilidade \u2192\">Check availability \u2192<\/a><\/div><div class=\"accom-card\">\n              <h4 class=\"accom-name\">Vistabela Resort & Spa<\/h4>\n              <p class=\"accom-desc\" data-en=\"A beautiful resort and spa with stunning views, offering a more luxurious stay in the region.\" data-pt=\"Um belo resort e spa com vistas deslumbrantes, ideal para quem busca uma estadia mais luxuosa na regi\u00e3o.\">A beautiful resort and spa with stunning views, offering a more luxurious stay in the region.<\/p>\n              <a href=\"https:\/\/www.booking.com\/hotel\/br\/vistabela-resort.pt-br.html?aid=304142&label=gen173rf-10CAQoggJCMnNlYXJjaF90b3F1ZSB0b3F1ZSBncmFuZGUsIHPDo28gc2ViYXN0acOjbywgYnJhemlsSDNYA2ggiAEBmAEzuAEHyAEN2AED6AEB-AEBiAIBogIPbmlja2FuZHZlcmkuY29tqAIBuALal7vPBsACAdICJGUwYTMwNmE1LTYwYTItNDk0OS1iMDJkLTFmY2ZmOGVlYTZjY9gCAeACAQ&sid=492468e1adaa91b6fb1a5c8ab46d47a7&checkin=2026-10-05&checkout=2026-10-07&group_adults=2&group_children=0&no_rooms=1\" target=\"_blank\" class=\"accom-link\" data-en=\"Check availability \u2192\" data-pt=\"Ver disponibilidade \u2192\">Check availability \u2192<\/a>\n            <\/div>\n\n          <\/div><!-- end accom-grid -->\n        <\/div><!-- end travel-step-content -->\n      <\/div><!-- end travel-step-body-wrap -->\n    <\/div><!-- end accordion-step -->\n\n    <div class=\"travel-step accordion-step\">\n      <div class=\"travel-step-header\" onclick=\"toggleStep(this)\">\n        <div class=\"travel-step-num\">4<\/div>\n        <div class=\"travel-step-header-text\">\n          <h3 class=\"travel-step-title\" data-en=\"Good to Know\" data-pt=\"Dicas \u00dateis\">Good to Know<\/h3>\n          <p class=\"travel-step-preview\" data-en=\"Currency, voltage, safety &amp; language tips\" data-pt=\"Moeda, voltagem, seguran\u00e7a e idioma\">Currency, voltage, safety &amp; language tips<\/p>\n        <\/div>\n        <span class=\"accordion-arrow\">\u2193<\/span>\n      <\/div>\n      <div class=\"travel-step-body-wrap\">\n        <div class=\"travel-step-content\">\n          <div class=\"essentials-grid\">\n            <div class=\"essential-item\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Money.png\" alt=\"\"\/><div><strong data-en=\"Currency\" data-pt=\"Moeda\">Currency<\/strong><p data-en=\"Brazilian Real (BRL). Credit cards accepted almost everywhere.\" data-pt=\"Real Brasileiro (BRL). Cart\u00f5es de cr\u00e9dito aceitos em quase todo lugar.\">Brazilian Real (BRL). Credit cards accepted almost everywhere.<\/p><\/div><\/div>\n            <div class=\"essential-item\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Plug.png\" alt=\"\"\/><div><strong data-en=\"Voltage\" data-pt=\"Voltagem\">Voltage<\/strong><p data-en=\"S\u00e3o Sebasti\u00e3o is 220V. S\u00e3o Paulo city is 110V. Bring a universal adapter!\" data-pt=\"S\u00e3o Sebasti\u00e3o usa 220V. A cidade de S\u00e3o Paulo usa 110V. Traga um adaptador universal!\">S\u00e3o Sebasti\u00e3o is 220V. S\u00e3o Paulo city is 110V. Bring a universal adapter!<\/p><\/div><\/div>\n            <div class=\"essential-item\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/handlove.png\" alt=\"\"\/><div><strong data-en=\"Safety\" data-pt=\"Seguran\u00e7a\">Safety<\/strong><p data-en=\"S\u00e3o Sebasti\u00e3o is safe. In SP city\/airport, use Uber to get around.\" data-pt=\"S\u00e3o Sebasti\u00e3o \u00e9 segura. Na cidade de SP e no aeroporto, use Uber para se locomover.\">S\u00e3o Sebasti\u00e3o is safe. In SP city\/airport, use Uber to get around.<\/p><\/div><\/div>\n            <div class=\"essential-item\"><img decoding=\"async\" class=\"icon-img\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Speechbubble.png\" alt=\"\"\/><div><strong data-en=\"Language\" data-pt=\"Idioma\">Language<\/strong><p data-en=\"Portuguese. English is not widely spoken outside hotels \u2014 Spanish speakers, Portu\u00f1ol will get you surprisingly far!\" data-pt=\"Portugu\u00eas. O ingl\u00eas n\u00e3o \u00e9 muito falado fora dos hot\u00e9is \u2014 falantes de espanhol, o portunhol vai longe!\">Portuguese. English is not widely spoken outside hotels \u2014 Spanish speakers, Portu\u00f1ol will get you surprisingly far!<\/p><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n      <\/div><!-- end travel-card-inner -->\n    <\/div><!-- end travel-card -->\n  <\/div>\n<\/section>\n\n<!-- GIFT REGISTRY -->\n<section id=\"registry\" style=\"background:var(--cream); padding:6rem 5vw; text-align:center; position:relative; z-index:4;\">\n  <div style=\"max-width:580px; margin:0 auto;\">\n    <h2 class=\"section-title\" data-en=\"Gift <em>Registry<\/em>\" data-pt=\"Lista de <em>Presentes<\/em>\">Gift <em>Registry<\/em><\/h2>\n    <p style=\"font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.4rem; color:var(--deep-green); line-height:1.4; margin-bottom:1.5rem;\"\n       data-en='Your presence at our wedding is the greatest gift of all.'\n       data-pt='A sua presen\u00e7a no nosso casamento \u00e9 o maior presente de todos.'>\n      Your presence at our wedding is the greatest gift of all.\n    <\/p>\n    <p style=\"font-size:1rem; line-height:1.85; color:var(--text-light); margin-bottom:1rem;\"\n       data-en=\"We know that many of you are traveling from far away to be with us, and we are so grateful for the effort and expense involved. Please know that your attendance is the only gift we expect.\"\n       data-pt=\"Sabemos que muitos de voc\u00eas est\u00e3o viajando de longe para estar conosco, e somos muito gratos pelo esfor\u00e7o e custo envolvidos. Saibam que a sua presen\u00e7a \u00e9 o \u00fanico presente que esperamos.\">\n      We know that many of you are traveling from far away to be with us, and we are so grateful for the effort and expense involved. Please know that your attendance is the only gift we expect.\n    <\/p>\n    <p style=\"font-size:1rem; line-height:1.85; color:var(--text-light); margin-bottom:2rem;\"\n       data-en=\"However, for those who have expressed an interest in offering something extra, we have put together a small registry below.\"\n       data-pt=\"No entanto, para quem manifestou interesse em oferecer algo a mais, criamos uma pequena lista de presentes abaixo.\">\n      However, for those who have expressed an interest in offering something extra, we have put together a small registry below.\n    <\/p>\n    <a href=\"https:\/\/site.lejour.com.br\/lista-de-presentes\/nickandveri\" target=\"_blank\" class=\"btn-registry\" data-en=\"View our registry \u2192\" data-pt=\"Ver nossa lista \u2192\">View our registry \u2192<\/a>\n  <\/div>\n<\/section>\n\n<!-- RSVP -->\n<section id=\"rsvp\">\n  <div style=\"position:relative\">\n    <p class=\"section-label\" data-en=\"Will You Join Us?\" data-pt=\"Voc\u00ea Vem?\">Will You Join Us?<\/p>\n    <h2 class=\"section-title\" data-en=\"RSVP <em>Here<\/em>\" data-pt=\"Confirme <em>Aqui<\/em>\">RSVP <em>Here<\/em><\/h2>\n    <p class=\"rsvp-sub\" data-en=\"Kindly reply by 1 September 2026\" data-pt=\"Por favor confirme at\u00e9 1\u00ba de setembro de 2026\">Kindly reply by 1 September 2026<\/p>\n\n    <div class=\"rsvp-form\" id=\"rsvp-form-wrap\">\n\n      <!-- STEP 1: Code entry -->\n      <div id=\"rsvp-step-code\">\n        <p class=\"rsvp-code-label\" data-en=\"Enter your personal invitation code\" data-pt=\"Insira seu c\u00f3digo de convite pessoal\">Enter your personal invitation code<\/p>\n        <div class=\"rsvp-code-row\">\n          <input type=\"text\" id=\"rsvp-code-input\" class=\"rsvp-code-input\" placeholder=\"NV-XXX-000!\" maxlength=\"12\" autocomplete=\"off\" spellcheck=\"false\"\/>\n          <button class=\"rsvp-code-btn\" onclick=\"checkCode()\" data-en=\"Continue \u2192\" data-pt=\"Continuar \u2192\">Continue \u2192<\/button>\n        <\/div>\n        <p id=\"rsvp-code-error\" class=\"rsvp-code-error\" style=\"display:none\" data-en=\"Code not recognised. Please check your invitation.\" data-pt=\"C\u00f3digo n\u00e3o reconhecido. Por favor verifique o seu convite.\">Code not recognised. Please check your invitation.<\/p>\n      <\/div>\n\n      <!-- STEP 2: Form (hidden until code unlocked) -->\n      <div id=\"rsvp-step-form\" style=\"display:none\">\n        <div class=\"rsvp-welcome\">\n          <p class=\"rsvp-welcome-text\" id=\"rsvp-guest-name\"><\/p>\n          <button class=\"rsvp-change-code\" onclick=\"resetCode()\" data-en=\"Not you? Change code\" data-pt=\"N\u00e3o \u00e9 voc\u00ea? Mudar c\u00f3digo\">Not you? Change code<\/button>\n        <\/div>\n\n        <div class=\"f-group\">\n          <label data-en=\"Will you be attending?\" data-pt=\"Voc\u00ea vai comparecer?\">Will you be attending?<\/label>\n          <select id=\"f-attending\" onchange=\"updateAttending()\">\n            <option value=\"\" data-en=\"\u2014 Please select \u2014\" data-pt=\"\u2014 Selecione \u2014\">\u2014 Please select \u2014<\/option>\n            <option value=\"yes\" data-en=\"Joyfully accepts \ud83c\udf89\" data-pt=\"Confirmo com alegria \ud83c\udf89\">Joyfully accepts \ud83c\udf89<\/option>\n            <option value=\"no\" data-en=\"Regretfully declines\" data-pt=\"Infelizmente n\u00e3o poderei ir\">Regretfully declines<\/option>\n          <\/select>\n        <\/div>\n\n        <div id=\"f-attending-fields\" style=\"display:none\">\n\n          <div id=\"f-plusone-wrap\" style=\"display:none\">\n            <div class=\"f-group\">\n              <label data-en=\"Will your +1 be joining?\" data-pt=\"Seu acompanhante vai comparecer?\">Will your +1 be joining?<\/label>\n              <select id=\"f-plusone\" onchange=\"updatePlusOne()\">\n                <option value=\"\" data-en=\"\u2014 Please select \u2014\" data-pt=\"\u2014 Selecione \u2014\">\u2014 Please select \u2014<\/option>\n                <option value=\"yes\" data-en=\"Yes, joining!\" data-pt=\"Sim, vem junto!\">Yes, joining!<\/option>\n                <option value=\"no\" data-en=\"No, coming alone\" data-pt=\"N\u00e3o, vou sozinho(a)\">No, coming alone<\/option>\n              <\/select>\n            <\/div>\n            <div id=\"f-plusone-details\" style=\"display:none\">\n              <div class=\"f-group\">\n                <label data-en=\"+1 Name\" data-pt=\"Nome do acompanhante\">+1 Name<\/label>\n                <input type=\"text\" id=\"f-plusone-name\" placeholder=\"Full name\"\/>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div id=\"f-kids-note\" style=\"display:none; background:rgba(201,169,110,.08); border:1px solid rgba(201,169,110,.25); border-radius:4px; padding:1.2rem 1.4rem; margin-top:.5rem;\">\n            <p style=\"font-size:.9rem; line-height:1.8; color:rgba(245,237,224,.8); font-style:italic;\"\n               data-en=\"While we love the little ones in our lives, our wedding celebration will be best suited for adults. As our venue is a beautiful but open clifftop setting with an uncovered swimming pool, it's not entirely safe for children. We would like everyone to be able to relax and enjoy the evening without worries. Therefore, we kindly ask guests with children to make childcare arrangements where possible. We completely understand this may not be feasible for everyone, so please let us know in your message if attending without your children would be difficult. Your presence means a lot to us.\"\n               data-pt=\"Embora amemos as crian\u00e7as das nossas vidas, a nossa celebra\u00e7\u00e3o ser\u00e1 mais adequada para adultos. O nosso espa\u00e7o \u00e9 um cen\u00e1rio deslumbrante mas aberto no topo de uma fal\u00e9sia, com uma piscina sem prote\u00e7\u00e3o, n\u00e3o sendo totalmente seguro para crian\u00e7as. Gostar\u00edamos que todos pudessem relaxar e aproveitar a noite sem preocupa\u00e7\u00f5es. Por isso, pedimos gentilmente que os convidados com crian\u00e7as tomem provid\u00eancias para o cuidado delas, quando poss\u00edvel. Entendemos completamente que isso pode n\u00e3o ser vi\u00e1vel para todos, por isso, por favor, indique na sua mensagem se vir sem as crian\u00e7as for dif\u00edcil. A sua presen\u00e7a significa muito para n\u00f3s.\">\n              While we love the little ones in our lives, our wedding celebration will be best suited for adults. As our venue is a beautiful but open clifftop setting with an uncovered swimming pool, it's not entirely safe for children. We would like everyone to be able to relax and enjoy the evening without worries. Therefore, we kindly ask guests with children to make childcare arrangements where possible. We completely understand this may not be feasible for everyone, so please let us know in your message if attending without your children would be difficult. Your presence means a lot to us.\n            <\/p>\n          <\/div>\n\n        <\/div>\n\n        <div class=\"f-group\">\n          <label data-en=\"Message (optional)\" data-pt=\"Mensagem (opcional)\">Message (optional)<\/label>\n          <textarea id=\"f-message\" placeholder=\"A kind word or anything you'd like us to know\u2026\"><\/textarea>\n        <\/div>\n\n        <button class=\"btn-rsvp\" onclick=\"submitRSVP()\" data-en=\"Send RSVP\" data-pt=\"Enviar RSVP\">Send RSVP<\/button>\n        <p id=\"rsvp-submit-msg\" style=\"display:none;margin-top:1rem;font-size:1rem;text-align:center;color:var(--leaf);\"><\/p>\n        <p class=\"rsvp-note\" data-en=\"Your details will only be used for wedding planning.\" data-pt=\"Seus dados ser\u00e3o usados apenas para o planejamento do casamento.\">Your details will only be used for wedding planning.<\/p>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- FOOTER -->\n<footer>\n  <p class=\"footer-names\">Nicolas &amp; Veridiana<\/p>\n  <p class=\"footer-sub\" data-en=\"Forever begins here \u00b7 With love &amp; gratitude\" data-pt=\"O sempre come\u00e7a aqui \u00b7 Com amor &amp; gratid\u00e3o\">Forever begins here \u00b7 With love &amp; gratitude<\/p>\n<\/footer>\n\n<div id=\"toast\" data-en=\"RSVP received \u2014 we can't wait to celebrate with you!\" data-pt=\"Confirma\u00e7\u00e3o recebida \u2014 mal podemos esperar para celebrar com voc\u00ea!\"><img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Palm.png\" style=\"width:20px;vertical-align:middle;margin-right:6px\"\/> RSVP received \u2014 we can't wait to celebrate with you!<\/div>\n\n<button class=\"scroll-top\" id=\"scrollTop\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" aria-label=\"Back to top\">\n  <svg viewBox=\"0 0 24 24\"><polyline points=\"18 15 12 9 6 15\"><\/polyline><\/svg>\n<\/button>\n\n<script>\n  window.addEventListener('scroll', () => {\n    document.getElementById('scrollTop').classList.toggle('visible', window.scrollY > 400);\n  });\n  function setLang(lang) {\n    document.getElementById('btn-en').classList.toggle('active', lang === 'en');\n    document.getElementById('btn-pt').classList.toggle('active', lang === 'pt');\n    document.querySelectorAll('[data-en]').forEach(el => {\n      el.innerHTML = el.getAttribute('data-' + lang);\n    });\n    \/\/ Handle placeholders separately (innerHTML would break input elements)\n    document.querySelectorAll('[data-placeholder-en]').forEach(el => {\n      el.placeholder = el.getAttribute('data-placeholder-' + lang);\n    });\n    \/\/ Update select option text\n    document.querySelectorAll('option[data-en]').forEach(el => {\n      el.textContent = el.getAttribute('data-' + lang);\n    });\n  }\n\n  \/\/ \u2500\u2500 RSVP SYSTEM \u2500\u2500\n  const APPS_SCRIPT_URL = 'https:\/\/nickandveri.com\/wp-admin\/admin-ajax.php';\n\n  let currentGuest = null;\n  let currentCode = null;\n  const lang = () => document.getElementById('btn-en')?.classList.contains('active') ? 'en' : 'pt';\n\n  function checkCode() {\n    const input = document.getElementById('rsvp-code-input').value.trim();\n    if (!input) return;\n\n    const btn = document.querySelector('.rsvp-code-btn');\n    btn.textContent = lang() === 'en' ? 'Checking\u2026' : 'Verificando\u2026';\n    btn.disabled = true;\n\n    const url = `${APPS_SCRIPT_URL}?action=nv_rsvp&rsvp_action=validate&code=${encodeURIComponent(input)}`;\n    fetch(url)\n    .then(r => r.json())\n    .then(data => {\n      btn.textContent = lang() === 'en' ? 'Continue \u2192' : 'Continuar \u2192';\n      btn.disabled = false;\n      if (data.valid) {\n        currentGuest = { name1: data.name1, name2: data.name2, name3: data.name3, couple: data.couple, thirdPerson: data.thirdPerson, plusOne: data.plusOne, kids: data.kids, maxKids: data.maxKids };\n        currentCode = input;\n        document.getElementById('rsvp-step-code').style.display = 'none';\n        document.getElementById('rsvp-step-form').style.display = 'block';\n        const displayName = data.thirdPerson\n          ? `${data.name1}, ${data.name2} & ${data.name3}`\n          : data.couple ? `${data.name1} & ${data.name2}` : data.name1;\n        document.getElementById('rsvp-guest-name').textContent =\n          lang() === 'en' ? `Welcome, ${displayName}!` : `Bem-vindo(a), ${displayName}!`;\n\n        \/\/ Set attending dropdown\n        const attendingSelect = document.getElementById('f-attending');\n        const l = lang();\n        if (data.thirdPerson) {\n          attendingSelect.innerHTML = `\n            <option value=\"\">\u2014 ${l === 'en' ? 'Please select' : 'Selecione'} \u2014<\/option>\n            <option value=\"all3\">${l === 'en' ? 'All three of us \ud83c\udf89' : 'Todos n\u00f3s tr\u00eas \ud83c\udf89'}<\/option>\n            <option value=\"name1and2\">${data.name1} & ${data.name2}<\/option>\n            <option value=\"name1only\">${l === 'en' ? 'Just' : 'S\u00f3'} ${data.name1}<\/option>\n            <option value=\"name2only\">${l === 'en' ? 'Just' : 'S\u00f3'} ${data.name2}<\/option>\n            <option value=\"name3only\">${l === 'en' ? 'Just' : 'S\u00f3'} ${data.name3}<\/option>\n            <option value=\"none\">${l === 'en' ? 'None of us' : 'Nenhum de n\u00f3s'}<\/option>`;\n        } else if (data.couple) {\n          attendingSelect.innerHTML = `\n            <option value=\"\">\u2014 ${l === 'en' ? 'Please select' : 'Selecione'} \u2014<\/option>\n            <option value=\"both\">${l === 'en' ? 'Both of us \ud83c\udf89' : 'Ambos \ud83c\udf89'}<\/option>\n            <option value=\"name1only\">${l === 'en' ? 'Just' : 'S\u00f3'} ${data.name1}<\/option>\n            <option value=\"name2only\">${l === 'en' ? 'Just' : 'S\u00f3'} ${data.name2}<\/option>\n            <option value=\"none\">${l === 'en' ? 'Neither of us' : 'Nenhum dos dois'}<\/option>`;\n        } else {\n          attendingSelect.innerHTML = `\n            <option value=\"\">\u2014 ${l === 'en' ? 'Please select' : 'Selecione'} \u2014<\/option>\n            <option value=\"yes\">${l === 'en' ? 'Joyfully accepts \ud83c\udf89' : 'Confirmo com alegria \ud83c\udf89'}<\/option>\n            <option value=\"none\">${l === 'en' ? 'Regretfully declines' : 'Infelizmente n\u00e3o poderei ir'}<\/option>`;\n        }\n\n        if (data.plusOne) document.getElementById('f-plusone-wrap').style.display = 'block';\n        if (data.kids) {\n          document.getElementById('f-kids-note').style.display = 'block';\n        }\n        document.getElementById('rsvp-code-error').style.display = 'none';\n      } else {\n        const err = document.getElementById('rsvp-code-error');\n        err.style.display = 'block';\n        err.textContent = lang() === 'en'\n          ? 'Code not recognised. Please check your invitation.'\n          : 'C\u00f3digo n\u00e3o reconhecido. Por favor verifique o seu convite.';\n      }\n    })\n    .catch(() => {\n      btn.textContent = lang() === 'en' ? 'Continue \u2192' : 'Continuar \u2192';\n      btn.disabled = false;\n      const err = document.getElementById('rsvp-code-error');\n      err.style.display = 'block';\n      err.textContent = lang() === 'en'\n        ? 'Connection error. Please try again.'\n        : 'Erro de conex\u00e3o. Por favor tente novamente.';\n    });\n  }\n\n  document.addEventListener('DOMContentLoaded', () => {\n    document.getElementById('rsvp-code-input')?.addEventListener('keydown', e => {\n      if (e.key === 'Enter') checkCode();\n    });\n  });\n\n  function resetCode() {\n    currentGuest = null; currentCode = null;\n    document.getElementById('rsvp-step-code').style.display = 'block';\n    document.getElementById('rsvp-step-form').style.display = 'none';\n    document.getElementById('rsvp-code-input').value = '';\n    document.getElementById('f-attending').value = '';\n    document.getElementById('f-attending-fields').style.display = 'none';\n    document.getElementById('rsvp-submit-msg').style.display = 'none';\n    document.getElementById('f-kids-note').style.display = 'none';\n    document.querySelector('.btn-rsvp').style.display = 'block';\n    document.querySelector('.btn-rsvp').disabled = false;\n  }\n\n  function updateAttending() {\n    const val = document.getElementById('f-attending').value;\n    const isAttending = val !== '' && val !== 'none';\n    document.getElementById('f-attending-fields').style.display = isAttending ? 'block' : 'none';\n\n    \/\/ Show second dietary field only if both of a couple are coming\n    const dietary2Wrap = document.getElementById('f-dietary2-wrap');\n    if (dietary2Wrap) {\n      dietary2Wrap.style.display = (val === 'both' && currentGuest?.couple) ? 'block' : 'none';\n    }\n  }\n\n  function updatePlusOne() {\n    const val = document.getElementById('f-plusone').value;\n    document.getElementById('f-plusone-details').style.display = val === 'yes' ? 'block' : 'none';\n  }\n\n  async function submitRSVP() {\n    const attending = document.getElementById('f-attending').value;\n    if (!attending) {\n      alert(lang() === 'en' ? 'Please select whether you are attending.' : 'Por favor selecione se vai comparecer.');\n      return;\n    }\n\n    const params = new URLSearchParams({\n      timestamp:      new Date().toISOString(),\n      code:           currentCode,\n      name1:          currentGuest.name1,\n      name2:          currentGuest.name2 || '',\n      attending:      document.getElementById('f-attending').value,\n      plusOne:        document.getElementById('f-plusone')?.value || 'n\/a',\n      plusOneName:    document.getElementById('f-plusone-name')?.value || '',\n      message:        document.getElementById('f-message').value,\n      language:       lang(),\n    });\n\n    const btn = document.querySelector('.btn-rsvp');\n    btn.textContent = lang() === 'en' ? 'Sending\u2026' : 'Enviando\u2026';\n    btn.disabled = true;\n\n    fetch(`${APPS_SCRIPT_URL}?action=nv_rsvp&rsvp_action=submit&${params.toString()}`)\n    .then(() => {\n      const msg = document.getElementById('rsvp-submit-msg');\n      msg.style.display = 'block';\n      msg.innerHTML = lang() === 'en'\n        ? '<img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Palm.png\" style=\"width:28px;vertical-align:middle;margin-right:8px\"\/> Thank you! Your RSVP has been received.'\n        : '<img decoding=\"async\" src=\"https:\/\/nickandveri.com\/wp-content\/uploads\/2026\/04\/Palm.png\" style=\"width:28px;vertical-align:middle;margin-right:8px\"\/> Obrigado! Sua confirma\u00e7\u00e3o foi recebida.';\n      btn.style.display = 'none';\n    })\n    .catch(() => {\n      btn.textContent = lang() === 'en' ? 'Send RSVP' : 'Enviar RSVP';\n      btn.disabled = false;\n      alert(lang() === 'en' ? 'Something went wrong. Please try again.' : 'Algo deu errado. Por favor tente novamente.');\n    });\n  }\n\n  \/\/ \u2500\u2500 TRAVEL SLIDESHOW \u2500\u2500\n  let currentSlide = 0;\n  const slides = document.querySelectorAll('.travel-photos .travel-slide');\n  const dots = document.querySelectorAll('.travel-photos .travel-dot');\n  function goToSlide(n) {\n    slides[currentSlide].classList.remove('active');\n    dots[currentSlide].classList.remove('active');\n    currentSlide = n;\n    slides[currentSlide].classList.add('active');\n    dots[currentSlide].classList.add('active');\n  }\n  setInterval(() => goToSlide((currentSlide + 1) % slides.length), 4000);\n\n  function toggleStep(header) {\n    const step = header.closest('.accordion-step');\n    const isOpen = step.classList.contains('open');\n    \/\/ Close all\n    document.querySelectorAll('.accordion-step.open').forEach(s => s.classList.remove('open'));\n    \/\/ Open clicked if it was closed\n    if (!isOpen) step.classList.add('open');\n  }\n\n  function switchTab(gender) {\n    document.getElementById('panel-gents').style.display = gender === 'gents' ? 'block' : 'none';\n    document.getElementById('panel-ladies').style.display = gender === 'ladies' ? 'block' : 'none';\n    document.getElementById('tab-gents').classList.toggle('active', gender === 'gents');\n    document.getElementById('tab-ladies').classList.toggle('active', gender === 'ladies');\n  }\n\n  function toggleMenu() {\n    const overlay = document.getElementById('nav-overlay');\n    overlay.classList.toggle('open');\n  }\n\n  const weddingDate = new Date('2026-10-05T21:00:00Z');\n  function tick() {\n    const diff = weddingDate - new Date();\n    if (diff <= 0) { ['days','hours','mins','secs'].forEach(u => document.getElementById('cd-'+u).textContent='0'); return; }\n    document.getElementById('cd-days').textContent  = String(Math.floor(diff\/86400000)).padStart(2,'0');\n    document.getElementById('cd-hours').textContent = String(Math.floor(diff%86400000\/3600000)).padStart(2,'0');\n    document.getElementById('cd-mins').textContent  = String(Math.floor(diff%3600000\/60000)).padStart(2,'0');\n    document.getElementById('cd-secs').textContent  = String(Math.floor(diff%60000\/1000)).padStart(2,'0');\n  }\n  tick(); setInterval(tick,1000);\n\n  const obs = new IntersectionObserver(entries => {\n    entries.forEach(e => {\n      if (e.isIntersecting) {\n        e.target.classList.add('visible');\n        obs.unobserve(e.target);\n      }\n    });\n  }, { threshold: 0.12 });\n\n  \/\/ Assign animation classes to elements\n  document.querySelectorAll('.tl-item').forEach((el, i) => {\n    el.classList.add('reveal-up');\n    el.style.transitionDelay = `${i * 0.12}s`;\n    obs.observe(el);\n  });\n\n  \/\/ Section labels + titles \u2014 fade up\n  document.querySelectorAll('.section-label, .section-title, .tl-heading, .rsvp-sub, .travel-intro, .dc-intro').forEach(el => {\n    el.classList.add('reveal-up');\n    obs.observe(el);\n  });\n\n  \/\/ Venue \u2014 left from left, right from right\n  document.querySelectorAll('.venue-left').forEach(el => { el.classList.add('reveal-left'); obs.observe(el); });\n  document.querySelectorAll('.venue-right').forEach(el => { el.classList.add('reveal-right'); obs.observe(el); });\n\n  \/\/ Floating card\n  document.querySelectorAll('.floating-card').forEach(el => { el.classList.add('reveal-up'); obs.observe(el); });\n\n  \/\/ Travel cards \u2014 alternate left\/right\n  document.querySelectorAll('.t-card').forEach((el, i) => {\n    el.classList.add(i % 2 === 0 ? 'reveal-left' : 'reveal-right');\n    el.style.transitionDelay = `${(i % 3) * 0.1}s`;\n    obs.observe(el);\n  });\n\n  \/\/ Essentials grid items \u2014 fade up with stagger\n  document.querySelectorAll('.essential-item').forEach((el, i) => {\n    el.classList.add('reveal-up');\n    el.style.transitionDelay = `${i * 0.1}s`;\n    obs.observe(el);\n  });\n\n  \/\/ Travel options\n  document.querySelectorAll('.travel-option').forEach((el, i) => {\n    el.classList.add('reveal-left');\n    el.style.transitionDelay = `${i * 0.1}s`;\n    obs.observe(el);\n  });\n\n  \/\/ Accommodation cards\n  document.querySelectorAll('.accom-card').forEach((el, i) => {\n    el.classList.add('reveal-up');\n    el.style.transitionDelay = `${i * 0.12}s`;\n    obs.observe(el);\n  });\n\n  \/\/ Dress code card\n  document.querySelectorAll('.dresscode-floating').forEach(el => { el.classList.add('reveal-up'); obs.observe(el); });\n\n  \/\/ RSVP form\n  document.querySelectorAll('.rsvp-form').forEach(el => { el.classList.add('reveal-up'); obs.observe(el); });\n\n  \/\/ Footer\n  document.querySelectorAll('.footer-names, .footer-sub').forEach((el, i) => {\n    el.classList.add('reveal-up');\n    el.style.transitionDelay = `${i * 0.15}s`;\n    obs.observe(el);\n  });\n\n\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Nick &amp; Veri Wedding Details Dress Code Tips Registry RSVP EN PT Wedding Details Schedule Venue Dress Code Travel &#038; Tips Registry RSVP We are getting married Nick&amp;Veri See you in &#8211;Days &#8211;Hours &#8211;Min &#8211;Sec Monday, 5 October 6 pm Join us for an intimate welcome gathering \u2014 bites, good company, and the start of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-26","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/pages\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nickandveri.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=26"}],"version-history":[{"count":118,"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/pages\/26\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/nickandveri.com\/index.php?rest_route=\/wp\/v2\/pages\/26\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/nickandveri.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}