/* FotoHoliday — identità oceano / sole. Direzione visiva e interfaccia. */
:root {
  --sand-50:#fbfdfd; --sand-100:#f0f8fa; --sand-200:#dceef3; --sand-300:#c2e0e9; --sand-400:#8ebdcc;
  --ink-900:#073d61; --ink-800:#104867; --ink-700:#345d74; --ink-500:#577486; --ink-400:#718b99;
  --terra-700:#045177; --terra-600:#0877a6; --terra-500:#21a1c2; --terra-100:#e1f3f8;
  --ocean-800:#075888; --ocean-700:#087ca7; --ocean-200:#cceaf1;
  --sun:#ffe16b; --deep:#075888; --blue:#087fae; --aqua:#bfeaed;
  --bg:#fbfdfd; --bg-alt:#f0f8fa; --text:#104867; --text-muted:#577486; --accent:#075888;
  --line:rgba(7,61,97,.13); --line-strong:rgba(7,61,97,.25);
  --font-display:"Avenir Next","Segoe UI",Arial,sans-serif;
  --font-sans:"Avenir Next",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --shadow-s:0 3px 12px rgba(7,61,97,.05); --shadow-m:0 16px 40px rgba(7,61,97,.09);
  --shadow-l:0 30px 70px rgba(7,61,97,.14); --container:80rem;
}
h1,h2,h3,h4 {font-weight:700;letter-spacing:-.045em;}
.btn {font-weight:650;letter-spacing:0;}
.btn--accent {--btn-bg:var(--deep);--btn-border:var(--deep);--btn-fg:#fff;}
.btn--accent:hover {--btn-bg:#003e68;--btn-border:#003e68;}
.btn--sun {--btn-bg:var(--sun);--btn-border:var(--sun);--btn-fg:var(--deep);}
.btn--sun:hover {--btn-bg:#ffe887;--btn-border:#ffe887;}
.preview-bar {background:#e3f3f7;color:#315f78;font-size:.73rem;line-height:1.45;}
.preview-bar__inner {padding-block:.42rem;gap:1rem;}
.preview-bar strong {color:var(--deep);font-weight:650;}
.preview-bar__close {color:var(--deep);border-color:rgba(7,61,97,.22);font-size:.7rem;white-space:nowrap;padding:.18rem .6rem;}
.preview-bar__dot {background:var(--blue);}
.site-header {background:rgba(251,253,253,.96);border-bottom:1px solid transparent;backdrop-filter:blur(16px);}
.site-header.is-scrolled {background:rgba(251,253,253,.96);border-color:var(--line);box-shadow:0 4px 20px rgba(7,61,97,.03);}
.site-header__inner {min-height:6rem;}
.logo {gap:.65rem;}
.logo__mark {width:3rem;height:3rem;flex-shrink:0;}
.logo__sun {display:none;}
.logo__word {font-family:var(--font-display);font-weight:800;font-size:1.62rem;letter-spacing:-.065em;line-height:1;display:block;color:var(--deep);}
.logo__word i {color:inherit;font-weight:600;}
.logo__word small {display:block;font-size:.49rem;font-weight:650;letter-spacing:.36em;margin-top:.55rem;line-height:1;}
.logo__tag {display:none;}
.logo--footer .logo__word,.logo--footer .logo__word i {color:#fff;}
.nav {gap:1.8rem;}
.nav__list {gap:1.65rem;}
.nav__link {font-size:.85rem;font-weight:550;}
.nav .btn {padding:.75rem 1.2rem;gap:1.4rem;}
.site-footer {background:#053f65;color:#c3dce8;}
.site-footer h3 {color:#fff;}
.site-footer a {color:#dceef3;}
.site-footer__claim {font-family:var(--font-sans);font-size:1.05rem;line-height:1.5;color:#c3dce8;margin-top:1.5rem;}
.site-footer__bottom {border-color:rgba(255,255,255,.15);font-size:.73rem;}
.site-footer__grid {grid-template-columns:1.25fr 1fr 1fr 1.2fr;gap:3rem;}
.footer-postcard {border:1px solid #5885a0;padding:1.4rem;transform:rotate(3deg);}
.footer-postcard>span {float:right;font-size:2rem;line-height:1;color:var(--sun);}
.footer-postcard p {font-size:1.1rem;line-height:1.3;color:#fff;}
.footer-postcard small {font-size:.55rem;letter-spacing:.16em;}
.page-head {background:linear-gradient(120deg,#e5f5f7,#f8fbf9);}
.flow {border-color:var(--line);box-shadow:var(--shadow-m);}
.note {background:#e8f4f8;}
.note--warning {background:#fff7d7;}
.choice__input:checked + .choice__body,.pill__input:checked + .pill__label {border-color:var(--deep);}
.eyebrow {color:#087ba6;font-size:.7rem;letter-spacing:.17em;font-weight:750;}
.ocean-home .container {width:min(100% - 5rem,80rem);}
.sunrise-hero {display:grid;grid-template-columns:44% 56%;align-items:center;position:relative;padding-block:1.25rem 4.25rem;min-height:650px;}
.sunrise-copy {position:relative;padding:2.75rem 0;z-index:2;}
.island-label {display:flex;align-items:center;gap:.55rem;font-size:.71rem;letter-spacing:.015em;font-weight:600;color:#35748e;margin-bottom:1.9rem;}
.sun-dot {color:var(--blue);font-size:1.75rem;line-height:1;}
.sunrise-copy h1 {font-size:clamp(3.5rem,5.5vw,5.45rem);font-weight:800;line-height:1.035;letter-spacing:-.067em;color:var(--deep);margin-bottom:1.7rem;text-wrap:initial;}
.sunrise-copy h1>span {position:relative;display:inline-block;color:var(--blue);z-index:0;white-space:nowrap;}
.sunrise-copy h1>span::after {content:"";position:absolute;left:0;right:-.07em;height:.18em;bottom:.075em;background:var(--sun);z-index:-1;transform:rotate(-2deg);border-radius:30% 8% 42% 12%;}
.sunrise-intro {font-size:1.04rem;line-height:1.8;color:#476a7e;margin-bottom:1.8rem;}
.sunrise-intro strong {font-weight:650;color:var(--deep);}
.ocean-button {display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding:.63rem .63rem .63rem 1.6rem;border-radius:100px;background:var(--deep);color:white;text-decoration:none;font-weight:650;font-size:.9rem;min-height:3.55rem;transition:transform .25s,box-shadow .25s;}
.ocean-button>span {display:grid;place-items:center;background:var(--sun);color:var(--deep);width:2.3rem;height:2.3rem;border-radius:50%;font-size:1.35rem;transition:transform .25s;}
.ocean-button:hover {transform:translateY(-3px);box-shadow:0 8px 22px #07588822;}
.ocean-button:hover>span {transform:rotate(45deg);}
.quiet-link {display:block;width:fit-content;font-size:.76rem;margin:1rem 0 0 1.6rem;text-decoration:none;color:#3b657c;}
.quiet-link span {margin-left:.75rem;}
.hero-caption {margin-top:2.7rem;max-width:19rem;font-size:.67rem;color:#628090;display:flex;align-items:center;gap:.65rem;line-height:1.5;}
.hero-caption>span {font-size:1.5rem;color:#087fae;}
.sunrise-visual {position:relative;align-self:stretch;min-height:590px;padding:0 0 2.3rem 1rem;}
.hero-frame {height:100%;min-height:570px;margin:0;position:relative;border-radius:40% 40% 1.4rem 1.4rem/23% 23% 1.4rem 1.4rem;overflow:hidden;background:#8ed4e6;}
.hero-frame>img {width:100%;height:100%;position:absolute;object-fit:cover;object-position:61% 50%;transition:transform 1.2s cubic-bezier(.2,.6,.3,1);}
.hero-frame:hover>img {transform:scale(1.025);}
.hero-frame figcaption {position:absolute;bottom:1.25rem;left:1.35rem;right:1.35rem;display:flex;gap:.5rem;align-items:center;width:fit-content;max-width:calc(100% - 2.7rem);background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-radius:100px;padding:.55rem .9rem;font-size:.66rem;color:#235672;}
.location-dot {width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0;}
.sun-seal {position:absolute;left:-2.65rem;bottom:4.6rem;width:9.3rem;aspect-ratio:1;background:var(--sun);color:var(--deep);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);box-shadow:0 7px 0 #07588810;}
.sun-seal>span {font-size:2rem;line-height:1.1;margin-bottom:.3rem;}
.sun-seal strong {font-size:1.22rem;line-height:1.15;text-align:center;font-weight:750;letter-spacing:-.04em;}
.photo-note {position:absolute;right:.5rem;bottom:-.7rem;color:#49788f;font-size:.74rem;font-style:italic;line-height:1.25;transform:rotate(-4deg);display:flex;gap:.8rem;align-items:center;}
.photo-note>span {font-size:2.4rem;transform:rotate(-50deg);}
.island-ribbon {background:var(--sun);color:var(--deep);overflow:hidden;}
.island-ribbon>.container {display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.25rem 0;font-weight:650;font-size:.9rem;}
.island-ribbon b {font-size:1.3rem;font-weight:400;}
.ocean-section {padding-block:6.5rem;}
.ocean-section-head {display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:2.5rem;}
.ocean-section-head h2,.moment-copy h2,.island-copy h2,.faq-section h2 {font-size:clamp(2.2rem,3.2vw,3.2rem);line-height:1.13;letter-spacing:-.05em;margin:0;}
.ocean-section-head>p {font-size:.92rem;line-height:1.8;color:#567588;max-width:24rem;margin:0 0 .2rem;}
.blue-italic {color:#0788b1;font-style:normal;}
.memory-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.memory-card {text-decoration:none;min-width:0;}
.memory-photo {height:360px;border-radius:1.3rem;overflow:hidden;position:relative;background:#b6dae8;}
.memory-photo>img {width:100%;height:100%;object-fit:cover;transition:transform .7s;}
.memory-card:first-child .memory-photo>img {object-position:59% 50%;}
.memory-card:nth-child(2) .memory-photo>img {object-position:55% 50%;}
.memory-card:nth-child(3) .memory-photo>img {object-position:50% 35%;}
.memory-card:hover .memory-photo>img {transform:scale(1.05);}
.photo-number {position:absolute;top:1rem;left:1rem;font-size:.57rem;letter-spacing:.08em;font-weight:700;padding:.45rem .7rem;background:#ffffffdd;backdrop-filter:blur(5px);color:#174d6b;border-radius:100px;}
.memory-title {display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:1.25rem .1rem;}
.memory-title h3 {font-size:1.55rem;font-weight:750;margin:0 0 .35rem;}
.memory-title p {font-size:.77rem;margin:0;color:#5b7787;}
.round-arrow {width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid #bfd4dd;border-radius:50%;font-size:1.4rem;flex-shrink:0;transition:background .25s,border-color .25s;}
.memory-card:hover .round-arrow {background:var(--sun);border-color:var(--sun);}
.other-stories {margin-top:1.25rem;display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;font-size:.72rem;}
.other-stories>span {color:#648294;margin-right:.3rem;}
.other-stories>a {border:1px solid #c9dee6;border-radius:100px;padding:.5rem .85rem;text-decoration:none;transition:background .2s;}
.other-stories>a:hover {background:#e3f4f8;}
.live-moment {background:var(--deep);color:#fff;padding-block:5.25rem;overflow:hidden;}
.moment-layout {display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:5rem;}
.moment-image {position:relative;margin:1rem 0;}
.moment-image>img {width:100%;height:500px;object-fit:cover;object-position:48% 50%;border-radius:1.4rem;transform:rotate(-3deg);}
.moment-stamp {position:absolute;bottom:-1rem;right:-1rem;background:var(--sun);color:var(--deep);padding:1.4rem 1.8rem;line-height:1.1;font-size:1.5rem;letter-spacing:-.06em;font-weight:750;transform:rotate(5deg);border-radius:.5rem;}
.moment-copy {max-width:30rem;}
.moment-copy .eyebrow {color:#aadfe8;}
.moment-copy h2 {color:#fff;font-size:clamp(2.8rem,4vw,4.15rem);margin-bottom:1.5rem;line-height:1.07;}
.moment-copy h2 span {color:var(--sun);}
.moment-copy>p:not(.eyebrow) {color:#cee7f1;font-size:.95rem;line-height:1.85;}
.text-cta {display:inline-flex;align-items:center;gap:1.25rem;text-decoration:none;font-size:.83rem;font-weight:650;border-bottom:1px solid #80b5cc;padding-bottom:.45rem;margin-top:.9rem;}
.journey-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem;}
.journey-grid>article {border-top:1px solid #c6dce5;padding-top:1.6rem;}
.journey-number {width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;background:#dceff3;color:var(--deep);font-size:.85rem;font-weight:750;margin-bottom:1.5rem;}
.journey-grid>article:nth-child(2) .journey-number {background:var(--sun);}
.journey-grid h3 {font-size:1.3rem;font-weight:750;}
.journey-grid p {font-size:.86rem;color:#58788b;line-height:1.85;}
.package-section {background:#edf7f8;padding-block:6.5rem;}
.offer-note {font-size:.73rem;color:#5b7889;margin-top:-1.25rem;margin-bottom:3rem;}
.ocean-packages {display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.ocean-package {border:1px solid #c9e1e7;border-radius:1.3rem;background:#fbfdfd;padding:2.25rem 1.85rem;position:relative;display:flex;flex-direction:column;}
.package-kicker {font-size:.55rem;letter-spacing:.12em;font-weight:750;margin-bottom:1rem;}
.ocean-package h3 {font-size:2.2rem;font-weight:750;margin-bottom:.75rem;}
.ocean-package>p:not(.package-price) {font-size:.83rem;line-height:1.7;min-height:3rem;max-width:24rem;color:#658192;}
.package-quantity {display:flex;align-items:center;gap:.8rem;border-bottom:1px solid #d2e4eb;padding:.75rem 0 1.3rem;margin-bottom:1.3rem;}
.package-quantity>strong {font-size:3.7rem;font-weight:700;letter-spacing:-.07em;line-height:1;}
.package-quantity>span {font-size:.73rem;max-width:4rem;line-height:1.4;}
.ocean-package ul {list-style:none;padding:0;margin-bottom:1.5rem;}
.ocean-package li {font-size:.8rem;line-height:2.1;}
.ocean-package li::before {content:'✓';margin-right:.55rem;}
.package-price {font-size:2rem;letter-spacing:-.05em;font-weight:750;margin-top:auto;margin-bottom:1rem;}
.ocean-package--featured {background:var(--deep);color:#fff;border-color:var(--deep);}
.ocean-package--featured>p:not(.package-price) {color:#c3e1eb;}
.ocean-package--featured .package-quantity {border-color:#4b87a5;}
.package-badge {position:absolute;right:1.15rem;top:-.8rem;background:var(--sun);color:var(--deep);font-size:.64rem;font-weight:650;padding:.45rem .85rem;border-radius:100px;}
.event-note {text-align:center;font-size:.8rem;margin:2rem 0 0;color:#597e90;}
.event-note>a {color:var(--deep);font-weight:650;}
.island-section {display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5rem;}
.island-copy>p:not(.eyebrow) {font-size:.93rem;line-height:1.9;color:#55788a;max-width:27rem;margin:1.5rem 0;}
.island-zones {display:flex;gap:.45rem;flex-wrap:wrap;margin:1.5rem 0;max-width:28rem;}
.island-zones>span {font-size:.67rem;padding:.35rem .6rem;background:#eaf5f7;border-radius:4px;}
.island-photo {margin:0;position:relative;}
.island-photo>img {width:100%;height:510px;object-fit:cover;object-position:22% 50%;border-radius:45% 45% 1rem 1rem/35% 35% 1rem 1rem;}
.island-photo figcaption {position:absolute;left:-1.5rem;bottom:2rem;background:var(--sun);color:var(--deep);padding:1rem 1.4rem;border-radius:.3rem;transform:rotate(-5deg);font-size:.83rem;font-weight:650;}
.island-photo figcaption>span {margin-right:.7rem;font-size:1.4rem;vertical-align:middle;}
.faq-section {display:grid;grid-template-columns:1fr 1.35fr;gap:5rem;padding-bottom:7rem;}
.faq-section>div>p:last-child {font-size:.87rem;color:#688594;margin-top:1.5rem;}
.faq__item summary {font-family:var(--font-sans);font-size:.93rem;font-weight:650;padding-block:1.45rem;}
.faq__answer {font-size:.85rem;line-height:1.85;}
.sunny-finale {background:var(--sun);text-align:center;padding:4.5rem 0 4rem;position:relative;overflow:hidden;}
.finale-sun {font-size:4.5rem;line-height:1;display:inline-block;color:var(--deep);margin-bottom:1.3rem;}
.sunny-finale .eyebrow {color:var(--deep);font-size:.63rem;}
.sunny-finale h2 {font-size:clamp(2.5rem,4.8vw,4.7rem);font-weight:750;line-height:1.05;letter-spacing:-.06em;margin:1.1rem 0 2rem;}
.sunny-finale .ocean-button>span {background:#fff5ce;}
.sunny-finale .container>p:last-child {font-size:.75rem;margin:1.15rem 0 0;}
.photographer-invite {display:flex;gap:2rem;justify-content:space-between;align-items:center;padding-block:4rem;}
.photographer-invite h2 {font-size:1.7rem;margin:.4rem 0 .7rem;}
.photographer-invite p {font-size:.85rem;color:#638292;margin:0;}
.photographer-invite .btn {white-space:nowrap;}
@media(min-width:1500px){.sunrise-hero{min-height:735px}.sunrise-visual{min-height:640px}.sunrise-copy h1{font-size:6.1rem}}
@media(max-width:1150px){.nav__list{gap:1rem}.nav{gap:1rem}.sunrise-copy h1{font-size:5.4vw}.sun-seal{left:-1.6rem;width:8rem}.memory-photo{height:300px}.moment-layout{gap:3.5rem}.site-footer__grid{gap:2rem}.ocean-home .container{width:min(100% - 3.5rem,80rem)}}
@media(max-width:62rem){
 .site-header__inner{min-height:5rem}.nav__list{gap:0}.nav{background:#fbfdfd}.nav .btn{margin-top:.5rem}
 .sunrise-hero{grid-template-columns:46% 54%;min-height:570px;padding-bottom:3rem}.sunrise-copy{padding-block:2rem}.sunrise-copy h1{font-size:5.9vw}.island-label{font-size:.58rem;max-width:17rem}.sunrise-intro{font-size:.88rem}.sunrise-visual{min-height:510px}.hero-frame{min-height:485px}.sun-seal{width:6.5rem;bottom:4.7rem;left:-1rem}.sun-seal strong{font-size:.97rem}.sun-seal>span{font-size:1.5rem}.hero-caption{font-size:.6rem;margin-top:2rem;max-width:16rem}.hero-frame figcaption{font-size:.52rem;left:.7rem;right:.7rem;max-width:calc(100% - 1.4rem);padding:.5rem .65rem}.ocean-button{gap:1rem;font-size:.8rem;padding-left:1.2rem}.island-ribbon>.container{gap:1rem;font-size:.73rem}.island-ribbon b:last-of-type,.island-ribbon span:last-child{display:none}
 .ocean-section-head{gap:2rem}.ocean-section-head>p{max-width:19rem;font-size:.8rem}.ocean-section{padding-block:4.5rem}.memory-grid{gap:1rem}.memory-photo{height:260px}.memory-title h3{font-size:1.22rem}.memory-title p{font-size:.67rem}.round-arrow{width:2rem;height:2rem}.moment-layout{gap:3rem}.moment-image>img{height:430px}.moment-copy h2{font-size:3.1rem}.moment-copy>p:not(.eyebrow){font-size:.83rem}.journey-grid{gap:1.7rem}.journey-grid h3{font-size:1.1rem}.journey-grid p{font-size:.78rem}.package-section{padding-block:4.5rem}.ocean-package{padding:1.9rem 1.15rem}.package-kicker{font-size:.46rem}.ocean-package h3{font-size:1.8rem}.ocean-package>p:not(.package-price){font-size:.75rem}.ocean-package .btn{font-size:.75rem;padding-inline:1rem}.package-quantity>strong{font-size:3rem}.ocean-package li{font-size:.71rem}.island-section{gap:3rem}.island-photo>img{height:430px}.faq-section{gap:3rem}.site-footer__grid{grid-template-columns:1fr 1fr}.footer-postcard{max-width:18rem}
}
@media(max-width:680px){
 .ocean-home .container{width:calc(100% - 2.5rem)}.site-header__inner{min-height:4.75rem}.logo__mark{width:2.55rem;height:2.55rem}.logo__word{font-size:1.5rem}.logo__word small{font-size:.43rem}.preview-bar{font-size:.64rem}.preview-bar__inner{gap:.55rem}.preview-bar__text{line-height:1.45}.preview-bar__close{font-size:.6rem}.sunrise-hero{display:flex;flex-direction:column;align-items:stretch;padding-block:.75rem 2.5rem;gap:1.25rem}.sunrise-copy{padding:1rem 0 .5rem}.island-label{font-size:.64rem;max-width:none;margin-bottom:1.3rem;gap:.5rem}.sun-dot{font-size:1.45rem}.sunrise-copy h1{font-size:clamp(3.15rem,12vw,4.75rem);line-height:1.02;margin-bottom:1.35rem;letter-spacing:-.065em}.sunrise-copy h1 br:first-child{display:none}.sunrise-copy h1 br:first-child::after{content:' '}.sunrise-copy h1{max-width:11ch}.sunrise-intro{font-size:.88rem;line-height:1.75;margin-bottom:1.4rem}.sunrise-intro br{display:none}.sunrise-intro strong{display:block;margin-top:.1rem}.ocean-button{font-size:.85rem;padding-left:1.3rem;gap:1.7rem}.quiet-link{display:inline-block;margin:0 0 0 1rem;font-size:.7rem}.hero-caption{display:none}.sunrise-visual{padding:0;min-height:380px;margin-top:.35rem}.hero-frame{min-height:380px;height:380px;border-radius:2rem;}.hero-frame>img{object-position:61% 50%}.sun-seal{left:auto;right:-.5rem;top:-1.8rem;bottom:auto;width:6.35rem;transform:rotate(10deg)}.sun-seal strong{font-size:.93rem}.hero-frame figcaption{font-size:.59rem;left:1rem;bottom:1rem;max-width:calc(100% - 2rem)}.photo-note{display:none}.island-ribbon>.container{padding-block:1rem;gap:.7rem;font-size:.68rem;justify-content:center}.island-ribbon span:nth-of-type(3),.island-ribbon b:nth-of-type(2){display:none}.island-ribbon b{font-size:1rem}.ocean-section{padding-block:3.75rem}.ocean-section-head{display:block;margin-bottom:1.9rem}.ocean-section-head h2,.island-copy h2,.faq-section h2{font-size:2.15rem}.ocean-section-head>p{margin-top:1.2rem;font-size:.85rem;max-width:none}.ocean-section-head>p br{display:none}.memory-grid{grid-template-columns:1fr;gap:1.15rem}.memory-photo{height:350px;border-radius:1.1rem}.memory-title{padding:1rem 0}.memory-title h3{font-size:1.5rem}.memory-title p{font-size:.78rem}.round-arrow{width:2.6rem;height:2.6rem}.other-stories{gap:.55rem;margin-top:1rem}.other-stories>span{width:100%;margin-bottom:.3rem}.other-stories>a{font-size:.71rem}.live-moment{padding-block:3rem}.moment-layout{grid-template-columns:1fr;gap:3.2rem}.moment-image{margin-inline:.7rem}.moment-image>img{height:340px;object-position:55% 50%}.moment-stamp{font-size:1.3rem;padding:1rem 1.35rem;right:-.7rem}.moment-copy{max-width:none}.moment-copy h2{font-size:2.8rem}.moment-copy h2 span br{display:none}.moment-copy>p:not(.eyebrow){font-size:.9rem}.journey-grid{grid-template-columns:1fr;gap:1.35rem;margin-top:2rem}.journey-grid>article{padding-top:1.2rem;display:grid;grid-template-columns:2.7rem 1fr;column-gap:1rem}.journey-number{grid-row:span 2;margin:0}.journey-grid h3{font-size:1.2rem;margin-bottom:.65rem}.journey-grid p{font-size:.84rem;margin:0}.package-section{padding-block:3.75rem}.offer-note{margin-top:0;font-size:.7rem;margin-bottom:2.5rem}.ocean-packages{grid-template-columns:1fr;gap:1.7rem}.ocean-package{padding:2rem}.package-kicker{font-size:.57rem}.ocean-package h3{font-size:2.15rem}.ocean-package>p:not(.package-price){font-size:.86rem;min-height:0}.ocean-package li{font-size:.85rem}.ocean-package .btn{font-size:.86rem}.package-quantity>strong{font-size:3.5rem}.package-quantity>span{font-size:.77rem}.package-price{font-size:2.35rem}.event-note{font-size:.79rem;line-height:1.8}.event-note>a{display:block}.island-section{grid-template-columns:1fr;gap:2.5rem}.island-photo{margin-left:.7rem}.island-photo>img{height:360px}.island-photo figcaption{left:-.7rem;font-size:.77rem}.island-copy>p:not(.eyebrow){font-size:.86rem}.faq-section{grid-template-columns:1fr;gap:1.6rem;padding-bottom:3.75rem}.faq-section>div>p:last-child{margin-top:1rem}.faq__item summary{font-size:.87rem}.sunny-finale{padding-block:3.5rem}.sunny-finale h2{font-size:2.85rem}.finale-sun{font-size:3.5rem}.photographer-invite{display:block;padding-block:3rem}.photographer-invite h2{font-size:1.55rem}.photographer-invite .btn{margin-top:1.4rem}.site-footer__grid{gap:2rem;grid-template-columns:1fr 1fr}.site-footer__grid>div:first-child{grid-column:span 2}.footer-postcard{grid-column:span 2;margin-top:.5rem;max-width:none;transform:rotate(1deg)}.site-footer__bottom{gap:.8rem;line-height:1.5}.site-footer__claim{font-size:.96rem}
}
@media(max-width:380px){.quiet-link{display:block;margin:1rem 0 0 1.3rem}.sunrise-copy h1{font-size:3rem}.sunrise-visual,.hero-frame{min-height:330px;height:330px}.memory-photo{height:310px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}

/* Colori della pagina professionisti */
.pro-hero::after { background: linear-gradient(90deg,rgba(4,60,93,.91),rgba(4,60,93,.22)); }
.pro-hero .eyebrow { color: #FFE16B; }

/* Costo medio nei pacchetti: totale e media restano distinti. */
.ocean-package > .package-unit-price {
  min-height: 0;
  margin: -.55rem 0 1.35rem;
  color: #496e83;
  font-size: .8rem;
  line-height: 1.5;
}
.ocean-package > .package-unit-price strong { font-size: 1.06rem; font-weight: 750; }
.ocean-package--featured > .package-unit-price { color: #FFE16B; }
.package-quantity > span { max-width: 5.5rem; }


/* Prenotazione: opzioni leggibili in un solo colpo d'occhio. */
.booking-page { background: #f0f8fa; }
.booking-page .site-header__inner { min-height: 4.75rem; }
.booking-page main > .section { padding: .25rem 0 3rem; }
.booking-page main > section > .container { max-width: 64rem; }
.booking-intro { padding: 1.25rem 0 .8rem; }
.booking-intro__title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.booking-intro h1 { margin: 0; font-size: clamp(1.1rem,2vw,1.65rem); line-height: 1.3; letter-spacing: -.035em; }
.booking-intro__title > span { font-size: .76rem; color: #54788c; }
.booking-demo { display: flex; align-items: baseline; gap: .3rem; flex-wrap: wrap; margin: .5rem 0 0; font-size: .7rem; line-height: 1.5; color: #547488; }
.booking-demo > span { align-self: center; width: 6px; height: 6px; border-radius: 50%; background: #087fab; }
.booking-page .flow { background: #fff; border-radius: 1.25rem; scroll-margin-top: 5.25rem; }
.booking-page .flow__header { padding: .8rem 1.6rem; background: #f8fcfd; gap: .6rem 1rem; }
.booking-page .flow__counter { font-size: .65rem; letter-spacing: .11em; }
.booking-page .flow__title-mini { font-size: .78rem; }
.booking-page .flow__progress { flex: 1 1 8rem; margin-left: auto; max-width: 12rem; height: 4px; }
.booking-page .flow__body { padding: 1.5rem 1.6rem; }
.booking-page .flow__question { font-size: clamp(1.5rem,2.6vw,2.05rem); letter-spacing: -.035em; line-height: 1.2; }
.booking-page .flow__help { font-size: .88rem; line-height: 1.5; }
.booking-page .flow__footer { padding: .9rem 1.6rem; gap: .75rem; }
.booking-page .flow__status:empty { display: none; }
.booking-page .flow__footer .btn--accent { margin-left: auto; min-width: 9rem; }
.booking-page .flow__footer .btn { min-height: 44px; padding-block: .65rem; }
.booking-page .flow[data-step="tipo"] .flow__step-head { margin-bottom: 1.25rem; }
.booking-page .flow[data-step="tipo"] .fieldset { margin: 0; }
.choices--session-types { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.choice.choice--session-type { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .65rem; padding: 1rem; min-height: 114px; border: 1px solid #c7e0e9; border-radius: .85rem; background: #fff; box-shadow: none; }
.choice--session-type .choice__icon { display: block; width: 34px; height: 34px; flex: 0 0 34px; }
.choice.choice--session-type .choice__body { padding: 0; gap: .2rem; min-width: 0; }
.choice.choice--session-type .choice__title { font-size: .9rem; font-weight: 650; line-height: 1.25; }
.choice.choice--session-type .choice__meta { font-size: .65rem; line-height: 1.3; color: #547488; }
.choice--session-type .choice__check { width: 1.15rem; height: 1.15rem; top: .7rem; right: .7rem; border-color: #b5d2df; }
.choice.choice--session-type:hover { border-color: #62a8c2; background: #f2fafc; transform: none; }
.choice.choice--session-type:has(input:checked) { border-color: #087fab; background: #e9f7fa; box-shadow: inset 0 0 0 1px #087fab; }
.choice--session-type:has(input:checked) .choice__check { background: #075888; border-color: #075888; }
.session-types-note { margin: 1rem 0 0; font-size: .75rem; line-height: 1.45; color: #547488; }
.booking-page .pills .pill { min-height: 44px; gap: .5rem; }
.booking-page .pill:has(input[type="checkbox"])::after { content: '+'; font-size: 1rem; font-weight: 600; }
.booking-page .pill:has(input[type="checkbox"]:checked)::after { content: '✓'; }
@media (max-width: 680px) {
 .booking-page .site-header__inner { min-height: 4rem; }
 .booking-page .logo__mark { width: 2.3rem; height: 2.3rem; }
 .booking-page .container { width: calc(100% - 2rem); }
 .booking-intro { padding: .85rem 0 .65rem; }
 .booking-intro__title > span { display: none; }
 .booking-demo { display: block; font-size: .66rem; margin-top: .3rem; }
 .booking-demo > span { display: inline-block; vertical-align: middle; margin-right: .3rem; }
 .booking-page .flow { border-radius: 1rem; scroll-margin-top: 4.5rem; }
 .booking-page .flow__header { padding: .7rem 1rem; gap: .5rem; }
 .booking-page .flow__progress { max-width: 5rem; flex-basis: 3rem; }
 .booking-page .flow__body { padding: 1.2rem 1rem; }
 .booking-page .flow__question { font-size: 1.4rem; }
 .booking-page .flow__help { font-size: .78rem; }
 .booking-page .flow[data-step="tipo"] .flow__step-head { margin-bottom: .9rem; }
 .choices--session-types { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
 .choice.choice--session-type { flex-direction: row; align-items: center; justify-content: flex-start; gap: .5rem; min-height: 78px; padding: .7rem .55rem; }
 .choice--session-type .choice__icon { width: 28px; height: 28px; flex-basis: 28px; }
 .choice.choice--session-type .choice__title { font-size: .8rem; }
 .choice.choice--session-type .choice__meta { font-size: .58rem; line-height: 1.3; }
 .choice--session-type .choice__check { width: .75rem; height: .75rem; top: .3rem; right: .3rem; }
 .choice--session-type .choice__check::after { width: .2rem; height: .35rem; border-width: 0 1.5px 1.5px 0; }
 .session-types-note { font-size: .7rem; margin-top: .8rem; }
 .booking-page .flow__footer { padding: .75rem 1rem; }
 .booking-page .flow__footer .btn { font-size: .84rem; }
}
@media (max-width: 359px) {
 .choice.choice--session-type { gap: .35rem; padding-inline: .4rem; }
 .choice--session-type .choice__icon { width: 24px; height: 24px; flex-basis: 24px; }
 .choice.choice--session-type .choice__title { font-size: .75rem; }
}

.booking-page .flow__counter, .booking-page .flow__title-mini { margin: 0; }
@media (min-width: 520px) and (max-width: 680px) {
 .choices--session-types { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* Ricerca hotel: nomi completi e località leggibili anche su telefono. */
.booking-page .combo__list { position: relative; top: auto; margin-top: .4rem; max-height: 17rem; overscroll-behavior: contain; }
.booking-page .combo__option { flex-direction: column; align-items: stretch; gap: .2rem; padding: .7rem .8rem; min-height: 48px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; }
.booking-page .combo__option small { white-space: normal; font-size: .75rem; font-weight: 400; line-height: 1.4; }
.booking-page .combo__option[aria-selected="true"] { background: #e5f5fa; outline: 2px solid #087fab; outline-offset: -2px; }


/* Candidatura dedicata: un argomento per schermata, spazio alle risposte. */
.recruitment-invite .container { max-width: 56rem; text-align: center; }
.recruitment-invite .lead { margin: 1rem auto 1.6rem; max-width: 38rem; }
.application-page { background: #edf7fa; min-height: 100svh; }
.application-local-notice { margin: 1.2rem 0; padding: 1rem 1.2rem; border: 1px solid #a7d2e0; border-radius: .9rem; background: #fff; color: #10466a; line-height: 1.55; }
.application-local-notice[hidden] { display: none; }
.application-local-notice strong { display: block; }
.application-local-notice a { display: inline-block; margin-top: .35rem; font-weight: 700; }
.application-page .container { max-width: 54rem; width: calc(100% - 3rem); }
.application-page .site-header { position: relative; background: transparent; }
.application-page .site-header__inner { min-height: 5rem; justify-content: space-between; }
.application-back { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; text-decoration: none; min-height: 44px; }
.application-back:hover { text-decoration: underline; }
.application-intro { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .6rem 0 1.2rem; }
.application-intro .eyebrow { font-size: .62rem; margin: 0 0 .4rem; }
.application-intro h1 { font-size: clamp(1.25rem,2.5vw,1.7rem); margin: 0; }
.application-sun { font-size: 2.5rem; width: 3.8rem; height: 3.8rem; border-radius: 50%; display: grid; place-items: center; color: #075888; background: #ffe16b; flex: none; }
.application-page .flow { background: #fff; border-radius: 1.3rem; scroll-margin-top: 1rem; }
.application-page .flow__header { padding: .9rem 1.75rem; background: #f9fcfd; gap: .5rem 1rem; }
.application-page .flow__counter, .application-page .flow__title-mini { margin: 0; font-size: .7rem; }
.application-page .flow__counter { letter-spacing: .08em; }
.application-page .flow__progress { flex: 1 1 5rem; max-width: 9rem; margin-left: auto; height: 4px; }
.application-page .flow__body { padding: 2rem 1.75rem; min-height: 19rem; }
.application-page .flow__step-head { margin-bottom: 1.5rem; }
.application-page .flow__question { font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.2; letter-spacing: -.04em; }
.application-page .flow__help { font-size: .87rem; line-height: 1.55; margin-top: .65rem; max-width: 39rem; }
.application-page .flow__footer { padding: .9rem 1.75rem; gap: .6rem; }
.application-page .flow__status:empty { display: none; }
.application-page .flow__footer .btn--accent { margin-left: auto; min-width: 9rem; }
.application-page .flow__footer .btn { min-height: 46px; padding-block: .7rem; }
.application-page .fieldset { margin: 0; }
.application-page .flow[data-step="spostamenti"] .application-transport__question { margin-top:2rem; }
.application-page .flow[data-step="spostamenti"] .application-transport__question .flow__subhead { margin:0 0 .9rem; color:#10466a; font-size:1rem; font-weight:700; letter-spacing:0; line-height:1.35; }
.application-page .flow[data-step="spostamenti"] .choices { gap:.75rem; }
.application-page .flow[data-step="spostamenti"] .choice--plain { min-height:4rem; display:flex; align-items:center; }
.application-page .flow[data-step="spostamenti"] .choice--plain .choice__body { padding:.8rem 3rem .8rem 1rem; }
.application-page .flow[data-step="spostamenti"] .choice--plain .choice__title { font-size:.94rem; line-height:1.25; }
.application-page .flow[data-step="spostamenti"] .choice__check { top:50%; right:.9rem; transform:translateY(-50%); }
.application-page .flow[data-step="spostamenti"] .application-transport__question .flow__section { margin-top:1rem; }
.application-page .flow[data-step="ritocco"] .application-retouch__group { margin:0; min-width:0; padding:1rem 1.1rem 1.1rem; border:1px solid #d6e8ee; border-radius:1rem; background:#fbfdfe; }
.application-page .flow[data-step="ritocco"] .application-retouch__details { margin-top:1rem; }
.application-page .flow[data-step="ritocco"] .application-retouch__details > * + * { margin-top:1rem; }
.application-page .flow[data-step="ritocco"] .application-retouch__legend,
.application-page .flow[data-step="ritocco"] .application-retouch__group .field__label { display:block; width:100%; margin:0 0 .55rem; padding:0; color:#10466a; font-size:1rem; font-weight:700; line-height:1.35; }
.application-page .flow[data-step="ritocco"] .application-retouch__hint { margin:-.2rem 0 .8rem; color:#517187; font-size:.84rem; line-height:1.45; }
.application-page .flow[data-step="ritocco"] .application-retouch__group .field__error:not(:empty) { display:block; margin-top:.65rem; }
.application-page .flow[data-step="ritocco"] .application-retouch__group:has([aria-invalid="true"]) { border-color:#bc7269; }
.application-page .pills { gap: .6rem; }
.application-page .pill { min-height: 46px; padding: .65rem .9rem; display: flex; justify-content: space-between; gap: .65rem; font-size: .88rem; }
.application-page .pill::after { content: '+'; font-size: 1rem; }
.application-page .pill:has(input:checked)::after { content: '✓'; }
.application-page .application-session-option { position:relative; min-width:0; }
.application-page .application-session-option > .pill { width:100%; height:100%; padding-right:3.9rem; }
.application-page .application-session-option > .pill::after { position:absolute; right:.9rem; }
.application-page .application-session-option__help { position:absolute; right:2.15rem; top:50%; transform:translateY(-50%); z-index:2; }
.application-page .application-session-option__info { display:grid; place-items:center; width:1.5rem; height:1.5rem; padding:0; border:1px solid currentColor; border-radius:50%; background:transparent; color:#376884; font:700 .8rem/1 var(--font-sans); cursor:pointer; }
.application-page .application-session-option__info:focus-visible { outline:2px solid var(--deep); outline-offset:3px; }
.application-page .application-session-option:has(input:checked) .application-session-option__info { color:#fff; }
.application-page .application-session-option__tooltip { display:none; position:absolute; right:-2rem; bottom:calc(100% + .55rem); width:max-content; max-width:min(17rem,calc(100vw - 3rem)); padding:.55rem .75rem; border-radius:.65rem; background:#083f61; box-shadow:0 6px 22px rgba(5,40,65,.18); color:#fff; font-size:.76rem; line-height:1.4; z-index:5; }
.application-page .application-session-option__info[aria-expanded="true"] + .application-session-option__tooltip,
.application-page .application-session-option__info:focus-visible + .application-session-option__tooltip { display:block; }
@media (hover:hover) { .application-page .application-session-option__help:hover .application-session-option__tooltip { display:block; } }
@media (max-width:600px) { .application-page .application-session-option { grid-column:1 / -1; } }
.application-page .application-retouch-levels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.application-page .application-retouch-level { position:relative; min-width:0; }
.application-page .application-retouch-level > .pill { width:100%; height:100%; min-height:3.3rem; padding-right:3.8rem; }
.application-page .application-retouch-level > .pill::after { position:absolute; right:.8rem; }
.application-page .application-retouch-level__help { position:absolute; right:2rem; top:50%; transform:translateY(-50%); z-index:2; }
.application-page .application-retouch-level__info { display:grid; place-items:center; width:1.6rem; height:1.6rem; padding:0; border:1px solid currentColor; border-radius:50%; background:transparent; color:#376884; font:700 .8rem/1 var(--font-sans); cursor:pointer; }
.application-page .application-retouch-level__info:focus-visible { outline:2px solid var(--deep); outline-offset:2px; }
.application-page .application-retouch-level:has(input:checked) .application-retouch-level__info { color:#fff; }
.application-page .application-retouch-level__tooltip { display:none; grid-column:1 / -1; padding:.55rem .75rem; border:1px solid #b9dbe6; border-radius:.65rem; background:#eef8fb; color:#10466a; font-size:.78rem; line-height:1.4; }
.application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(1) .application-retouch-level__info[aria-expanded="true"]) > .application-retouch-level__tooltip[data-level="base"],
.application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(2) .application-retouch-level__info[aria-expanded="true"]) > .application-retouch-level__tooltip[data-level="autonomo"],
.application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(3) .application-retouch-level__info[aria-expanded="true"]) > .application-retouch-level__tooltip[data-level="avanzato"] { display:block; }
@media (hover:hover) {
  .application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(1) .application-retouch-level__info:hover) > .application-retouch-level__tooltip[data-level="base"],
  .application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(2) .application-retouch-level__info:hover) > .application-retouch-level__tooltip[data-level="autonomo"],
  .application-page .application-retouch-levels:has(> .application-retouch-level:nth-child(3) .application-retouch-level__info:hover) > .application-retouch-level__tooltip[data-level="avanzato"] { display:block; }
}
@media (max-width:600px) {
  .application-page .application-retouch-levels { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .application-page .application-retouch-level:nth-child(3) { grid-column:1 / -1; }
}
.application-page .field:last-child { margin-bottom: 0; }
.application-page .textarea { min-height: 5.5rem; }
.application-page .flow__section { margin-top: .8rem; }
.application-page .dropzone { padding: 1rem; }
.application-page details { margin-top: 1rem; font-size: .85rem; }
.application-page summary { cursor: pointer; padding-block: .6rem; color: #075888; }
.application-page details[open] summary { margin-bottom: .5rem; }
.application-page .attachments { margin-block: .9rem; }
.application-page .input:focus, .application-page .select:focus, .application-page .textarea:focus { box-shadow: 0 0 0 3px #087fab22; }
.application-picker { max-width: 34rem; }
.application-picker__trigger { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; min-height:3.35rem; padding:.75rem 1rem; border:1px solid #accfdc; border-radius:.85rem; background:#fff; color:#10466a; text-align:left; box-shadow:0 2px 8px rgba(10,70,100,.05); font-size:1rem; line-height:1.4; }
.application-picker__trigger:hover { border-color:#087fab; background:#f8fcfd; }
.application-picker__trigger:focus-visible, .application-picker__option:focus-visible, .application-date__nav:focus-visible, .application-date__day:focus-visible { outline:3px solid #087fab; outline-offset:2px; }
.application-picker__trigger[aria-expanded="true"] { border-color:#087fab; box-shadow:0 0 0 3px #087fab22; }
.application-picker__trigger[aria-invalid="true"] { border-color:#a22c1e; box-shadow:0 0 0 3px rgba(162,44,30,.14); }
.application-picker__value { min-width:0; overflow-wrap:anywhere; }
.application-picker__chevron { width:.6rem; height:.6rem; border-right:2px solid #087fab; border-bottom:2px solid #087fab; transform:rotate(45deg); flex:none; margin-right:.2rem; transition:transform .16s ease; }
.application-picker__trigger[aria-expanded="true"] .application-picker__chevron { transform:rotate(225deg); }
.application-picker__panel { display:grid; gap:.2rem; max-height:min(17rem,45vh); overflow-y:auto; margin-top:.55rem; padding:.45rem; border:1px solid #bed9e3; border-radius:1rem; background:#fff; box-shadow:0 12px 28px rgba(10,70,100,.12); }
.application-picker__panel[hidden], .application-date__calendar[hidden] { display:none; }
.application-picker__option { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; min-height:2.85rem; border:0; border-radius:.7rem; padding:.55rem .8rem; background:transparent; color:#10466a; text-align:left; font-size:.94rem; line-height:1.3; }
.application-picker__option:hover, .application-picker__option[aria-checked="true"] { background:#eaf6fa; }
.application-picker__check { visibility:hidden; color:#087fab; font-weight:700; }
.application-phone__row { display:grid; grid-template-columns:9.5rem minmax(0,1fr); gap:.65rem; align-items:stretch; }
.application-phone__prefix { position:relative; min-width:0; }
.application-phone__trigger { gap:.5rem; min-height:3.35rem; }
.application-phone__flag { flex:none; font-size:1.3rem; line-height:1; font-family:system-ui,sans-serif; }
.application-phone__code { font-weight:700; white-space:nowrap; }
.application-phone__number { min-width:0; min-height:3.35rem; font-size:1rem; }
.application-phone__panel { width:100%; max-height:min(19rem,50vh); margin-top:.6rem; overscroll-behavior:contain; }
.application-phone__option { min-height:3.1rem; }
.application-phone__option-main { display:flex; align-items:center; gap:.75rem; min-width:0; }
.application-phone__option[aria-checked="true"] .application-picker__check { visibility:visible; }
@media (max-width:600px) {
 .application-phone__row { grid-template-columns:8.25rem minmax(0,1fr); gap:.5rem; }
 .application-phone__trigger { padding-inline:.7rem; }
}
.application-picker__option[aria-checked="true"] .application-picker__check { visibility:visible; }
.application-date__icon { display:grid; place-items:center; width:2rem; height:2rem; border-radius:.55rem; background:#eaf6fa; color:#087fab; font-size:1.35rem; flex:none; }
.application-date__calendar { width:min(100%,25rem); margin-top:.65rem; padding:1rem; border:1px solid #bed9e3; border-radius:1rem; background:#fff; box-shadow:0 12px 28px rgba(10,70,100,.12); }
.application-date__head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.8rem; }
.application-date__month { font-size:1rem; text-transform:capitalize; color:#10466a; text-align:center; }
.application-date__nav { display:grid; place-items:center; width:2.7rem; height:2.7rem; border:1px solid #c5dde6; border-radius:50%; background:#f8fcfd; color:#075888; font-size:1.2rem; flex:none; }
.application-date__nav:hover:not([disabled]) { background:#eaf6fa; border-color:#087fab; }
.application-date__nav[disabled] { opacity:.35; cursor:not-allowed; }
.application-date__weekdays, .application-date__grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.25rem; }
.application-date__weekdays { margin-bottom:.25rem; color:#547488; font-size:.72rem; font-weight:700; text-align:center; }
.application-date__day { display:grid; place-items:center; width:100%; min-height:2.55rem; border:1px solid transparent; border-radius:.65rem; background:#f1f8fa; color:#10466a; font-size:.9rem; }
.application-date__day:hover:not([disabled]) { background:#d8eef5; border-color:#87bfd2; }
.application-date__day[aria-checked="true"] { background:#075888; color:#fff; font-weight:700; }
.application-date__day[disabled] { background:transparent; color:#9db5c0; cursor:not-allowed; }
.application-date__note { margin:.75rem .1rem 0; color:#547488; font-size:.72rem; line-height:1.45; }
.application-availability { display:grid; gap:.85rem; }
.application-availability__hours { margin:0; padding:.6rem .8rem; border-radius:.65rem; background:#eaf6fa; color:#10466a; font-size:.78rem; line-height:1.45; }
.application-availability__mode-group h3 { margin:0 0 .55rem; color:#10466a; font-size:.92rem; line-height:1.35; }
.application-availability__modes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.application-availability__mode { display:grid; gap:.2rem; min-height:4.35rem; padding:.65rem .8rem; border:1px solid #b8d8e3; border-radius:.75rem; background:#fff; color:#10466a; text-align:left; cursor:pointer; }
.application-availability__mode strong { font-size:.9rem; }
.application-availability__mode span { color:#547488; font-size:.73rem; line-height:1.35; }
.application-availability__mode[aria-pressed="true"] { border:2px solid #087fab; background:#edf8fb; padding:calc(.65rem - 1px) calc(.8rem - 1px); }
.application-availability__weeks { display:grid; gap:.8rem; }
.application-availability__week { overflow:hidden; border:1px solid #c9dfe7; border-radius:.8rem; background:#fff; }
.application-availability__week h3 { margin:0; padding:.6rem .75rem; background:#f1f8fa; color:#10466a; font-size:.84rem; }
.application-availability__day { display:grid; grid-template-columns:minmax(7.5rem,1fr) minmax(0,2.3fr); align-items:center; gap:.65rem; padding:.4rem .75rem; border-top:1px solid #e8f0f3; }
.application-availability__date { color:#10466a; text-transform:capitalize; }
.application-availability__date strong { font-size:.79rem; line-height:1.25; }
.application-availability__parts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; }
.application-availability__part { min-height:2.3rem; padding:.25rem .2rem; border:1px solid #b8d8e3; border-radius:.6rem; background:#fff; color:#10466a; font-size:.75rem; cursor:pointer; }
.application-availability__label-short { display:none; }
.application-availability__part:hover { background:#edf8fb; }
.application-availability__part[aria-pressed="true"] { border-color:#087fab; background:#075888; color:#fff; font-weight:700; }
.application-availability__mode:focus-visible,.application-availability__part:focus-visible { outline:3px solid #087fab; outline-offset:2px; }
.application-availability__count { margin:0; color:#075888; font-size:.84rem; font-weight:700; }
.application-coverage__status { margin:.5rem 0; color:#547488; font-size:.8rem; }
.application-coverage__all,.application-coverage__hotel { display:flex; align-items:flex-start; gap:.65rem; padding:.65rem .8rem; border:1px solid #c9dfe7; border-radius:.7rem; background:#fff; color:#10466a; font-size:.83rem; line-height:1.4; cursor:pointer; }
.application-coverage__all { margin-top:.7rem; background:#edf8fb; font-weight:700; }
.application-coverage__all input,.application-coverage__hotel input { flex:none; width:1.1rem; height:1.1rem; margin:.1rem 0 0; accent-color:#075888; }
.application-coverage__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; max-height:17rem; overflow-y:auto; padding:.15rem; }
.application-coverage__hotel:has(input:checked) { border-color:#087fab; background:#edf8fb; }
@media (max-width:600px) {
  .application-availability__modes { grid-template-columns:1fr; gap:.45rem; }
  .application-availability__mode { min-height:0; }
  .application-availability__day { grid-template-columns:minmax(5.3rem,.9fr) minmax(0,1.7fr); gap:.35rem; padding:.4rem .55rem; }
  .application-availability__date strong { font-size:.7rem; }
  .application-availability__parts { gap:.2rem; }
  .application-availability__part { min-height:2.2rem; font-size:.68rem; }
  .application-availability__label-full { display:none; }
  .application-availability__label-short { display:inline; }
  .application-coverage__list { grid-template-columns:1fr; }
}
@media (max-width:360px) {
  .application-availability__day { grid-template-columns:1fr; }
}
.application-demo { font-size: .69rem; line-height: 1.6; color: #547488; margin: .9rem 0; text-align: center; }
.application-footer { padding: .25rem 1rem 1rem; text-align: center; color: #648293; font-size: .68rem; }
.application-footer p { margin: 0; }
.application-footer span { margin: 0 .5rem; color: #9ebbc8; }
@media (max-width: 600px) {
 .application-page .container { width: calc(100% - 2rem); }
 .application-page .site-header__inner { min-height: 4.5rem; gap: .75rem; }
 .application-page .logo__mark { width: 2rem; height: 2rem; }
 .application-page .logo__word { font-size: 1.2rem; }
 .application-page .logo__word small { font-size: .36rem; margin-top: .4rem; }
 .application-back { font-size: .7rem; gap: .35rem; }
 .application-intro { margin: .3rem 0 .9rem; }
 .application-intro .eyebrow { font-size: .54rem; }
 .application-intro h1 { font-size: 1.2rem; }
 .application-sun { width: 2.7rem; height: 2.7rem; font-size: 1.8rem; }
 .application-page .flow { border-radius: 1rem; }
 .application-page .flow__header { padding: .7rem 1rem; gap: .4rem .7rem; }
 .application-page .flow__counter, .application-page .flow__title-mini { font-size: .63rem; }
 .application-page .flow__progress { max-width: 4rem; flex-basis: 3rem; }
 .application-page .flow__body { padding: 1.25rem 1rem; min-height: 18rem; }
 .application-page .flow__step-head { margin-bottom: 1.1rem; }
 .application-page .flow__question { font-size: 1.4rem; }
 .application-page .flow__help { font-size: .8rem; margin-top: .5rem; }
 .application-page .pills { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
 .application-page .pill { padding: .6rem .7rem; font-size: .8rem; }
 .application-page .flow__footer { padding: .8rem 1rem; }
 .application-page .flow__footer .btn { font-size: .85rem; }
 .application-page .flow__footer .btn--accent { min-width: 7rem; }
 .application-page .field-row--phone { grid-template-columns: minmax(7rem,.9fr) minmax(0,1.2fr); gap: .6rem; }
 .application-page .field__label { font-size: .85rem; }
 .application-page .flow[data-step="ritocco"] .application-retouch__group { padding:.9rem; }
 .application-page .flow[data-step="ritocco"] .application-retouch__legend,
 .application-page .flow[data-step="ritocco"] .application-retouch__group .field__label { font-size:.92rem; }
 .application-demo { text-align: left; font-size: .66rem; }
}

/* Foto dei professionisti: anteprime chiare e autorizzazioni distinte. */
.application-page .portrait-upload__actions { display:flex; gap:.75rem; flex-wrap:wrap; }
.application-page .portrait-preview { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1rem; padding:1rem; border:1px solid #c5dde6; border-radius:1rem; background:#f7fbfc; }
.application-page .portrait-preview:empty { display:none; }
.application-page .portrait-preview__img { width:104px; height:104px; border-radius:50%; object-fit:cover; flex:none; }
.application-page .portrait-preview__meta { flex:1; min-width:0; display:flex; flex-direction:column; gap:.25rem; }
.application-page .portrait-preview__remove { min-height:44px; }
.application-page .portrait-status:empty { display:none; }
.application-page .portfolio-consent,.application-page .portrait-consent { padding:.85rem 1rem; background:#eef8fb; border:1px solid #c5dde6; border-radius:.8rem; margin-top:1rem; }
.application-page .portfolio-consent .checkbox,.application-page .portrait-consent .checkbox { padding:0; font-size:.82rem; line-height:1.55; }
.application-page .portfolio-consent .caption,.application-page .portrait-consent .caption { margin:.6rem 0 0; font-size:.7rem; line-height:1.5; }
.application-page .portfolio-formats { font-size:.75rem; }
.application-page .summary img.portrait-preview__img { width:64px; height:64px; }
@media(max-width:600px) {
 .application-page .portrait-preview { gap:.75rem; padding:.75rem; }
 .application-page .portrait-preview__img { width:80px; height:80px; }
 .application-page .portrait-preview__remove { width:100%; }
 .application-page .portfolio-consent,.application-page .portrait-consent { padding:.75rem; }
 .application-page .portfolio-consent .checkbox,.application-page .portrait-consent .checkbox { font-size:.76rem; }
}

/* Occasioni speciali: un catalogo distinto dalle sessioni di vacanza. */
.celebrations-page { background:#f7fbfc; }
.celebration-hero { padding:5rem 0 3.5rem; background:#e7f5f8; }
.celebration-hero h1 { font-size:clamp(2.8rem,5vw,4.7rem); line-height:1.08; margin:1rem 0 1.5rem; max-width:55rem; }
.celebration-hero h1 span { text-decoration:underline; text-decoration-color:#ffe16b; text-decoration-thickness:.15em; text-underline-offset:.05em; }
.celebration-hero > .container > p:not(.eyebrow) { color:#4a7186; font-size:1.05rem; line-height:1.75; }
.celebration-links { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2rem; }
.celebration-links a { display:flex; gap:2rem; align-items:center; border:1px solid #b8d9e4; border-radius:100px; padding:.85rem 1.25rem; color:#075888; background:#fff; text-decoration:none; font-weight:600; font-size:.88rem; }
.celebration-links a span { font-size:.78rem; color:#4a7186; font-weight:450; }
.celebration-links a:hover { border-color:#075888; background:#fff9df; }
.celebration-section { padding-block:4rem 1rem; scroll-margin-top:6rem; }
.celebration-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:3rem; margin-bottom:2rem; }
.celebration-section-head h2 { font-size:clamp(1.8rem,3vw,2.8rem); max-width:33rem; line-height:1.15; margin:0; }
.celebration-section-head > p { max-width:25rem; margin:0; font-size:.9rem; color:#547488; line-height:1.7; }
.celebration-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.celebration-card { padding:2rem 1.5rem 1.5rem; background:#fff; border:1px solid #c7dfe7; border-radius:1.2rem; display:flex; flex-direction:column; position:relative; }
.celebration-card h3 { font-size:1.65rem; margin:0; }
.celebration-card > .eyebrow { font-size:.6rem; margin-bottom:.5rem; }
.celebration-card .celebration-price { font-size:3rem; font-weight:750; letter-spacing:-.06em; line-height:1.2; margin:1.4rem 0; color:#075888; }
.celebration-price span { font-size:1.8rem; }
.celebration-card ul { margin:0 0 2rem; padding-left:1.2rem; font-size:.86rem; line-height:1.6; color:#456c81; }
.celebration-card li+li { margin-top:.65rem; }
.celebration-card .btn { margin-top:auto; font-size:.85rem; }
.celebration-card--premium { background:#075888; border-color:#075888; color:#fff; }
.celebration-card--premium h3,.celebration-card--premium .celebration-price { color:#fff; }
.celebration-card--premium > .eyebrow,.celebration-card--premium ul { color:#d3e9f2; }
.celebration-badge { position:absolute; top:-.7rem; right:1rem; border-radius:100px; background:#ffe16b; color:#075888; padding:.4rem .75rem; font-size:.62rem; font-weight:650; }
.celebration-details { font-size:.76rem; line-height:1.75; max-width:65rem; margin:1.25rem 0 0; color:#56788b; }
.celebration-planning { padding-block:4rem 5rem; max-width:55rem; text-align:center; }
.celebration-planning h2 { font-size:2.1rem; }
.celebration-planning > p:not(.eyebrow) { color:#56788b; font-size:.9rem; line-height:1.8; }
.celebration-planning .quiet-link { margin:1.25rem auto 0; }
.celebration-home { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2.5rem; padding:2rem; background:#e6f3f7; border-radius:1.2rem; }
.celebration-home h3 { font-size:1.5rem; margin-bottom:.6rem; }
.celebration-home p { font-size:.8rem; margin-bottom:0; }
.celebration-home .eyebrow { margin-bottom:.65rem; font-size:.62rem; }
.celebration-home-links { display:grid; gap:.7rem; }
.celebration-home-links a { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid #b8d4df; text-decoration:none; font-size:.87rem; padding-bottom:.65rem; }
.celebration-home-links a:hover { color:#087fae; }
.celebration-home-links span { white-space:nowrap; font-weight:650; }
@media(max-width:760px) {
 .celebration-hero { padding:2.5rem 0; }
 .celebration-links { flex-direction:column; }
 .celebration-links a { justify-content:space-between; }
 .celebration-section { padding-top:3rem; }
 .celebration-section-head { display:block; }
 .celebration-section-head > p { margin-top:1rem; }
 .celebration-cards { grid-template-columns:1fr; gap:1.6rem; }
 .celebration-card { padding:1.5rem; }
 .celebration-card .celebration-price { margin:1rem 0; }
 .celebration-home { grid-template-columns:1fr; padding:1.4rem; gap:1.5rem; }
}
.application-page .portrait-thumb { display:flex; align-items:center; gap:.65rem; overflow-wrap:anywhere; }
.application-page .portrait-thumb__img { width:56px; height:56px; object-fit:cover; border-radius:50%; flex:none; }

/* I pacchetti vacanza rimandano al listino dedicato per le nozze. */
.offer-scope { max-width: 64rem; margin: 0 0 1.6rem; padding: 1rem 1.2rem; border-left: 3px solid var(--blue); border-radius: 0 .6rem .6rem 0; background: #e7f4f8; color: #345d74; font-size: .85rem; line-height: 1.7; }
.offer-scope strong { display: block; color: var(--deep); margin-bottom: .15rem; }
.offer-scope a { color: var(--deep); text-decoration: underline; text-underline-offset: .18em; }
@media(max-width:639px) {
 .offer-scope { padding: .85rem 1rem; font-size: .8rem; }
}

/* Autorizzazioni clienti: ogni canale resta una scelta indipendente. */
.booking-page .photo-permissions { display: grid; gap: .85rem; }
.booking-page .photo-permission { display: grid; grid-template-columns: 1.2rem minmax(0,1fr); align-items: start; gap: .9rem; padding: 1.15rem 1.25rem; border: 1px solid #c7e0e9; border-radius: .9rem; background: #fbfdfe; cursor: pointer; }
.booking-page .photo-permission:hover { border-color: #62a8c2; background: #f2fafc; }
.booking-page .photo-permission:has(input:checked) { background: #e9f7fa; border-color: #087fab; box-shadow: inset 0 0 0 1px #087fab; }
.booking-page .photo-permission:has(input:focus-visible) { outline: 3px solid var(--blue); outline-offset: 3px; }
.booking-page .photo-permission__input { appearance: auto; position: static; opacity: 1; width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; accent-color: var(--deep); cursor: pointer; }
.booking-page .photo-permission__body { display: grid; gap: .35rem; min-width: 0; }
.booking-page .photo-permission__title { color: var(--deep); font-size: 1rem; font-weight: 700; line-height: 1.35; }
.booking-page .photo-permission__description { color: #45667b; font-size: .85rem; line-height: 1.6; }
.booking-page .photo-permission-note { color: #345d74; font-size: .82rem; line-height: 1.6; margin: 1.1rem 0 .55rem; }
.booking-page .photo-permission-people { color: #577486; font-size: .75rem; line-height: 1.55; margin: 0; }
@media(max-width:639px) {
 .booking-page .photo-permissions { gap: .65rem; }
 .booking-page .photo-permission { padding: .85rem; gap: .65rem; border-radius: .75rem; }
 .booking-page .photo-permission__title { font-size: .9rem; }
 .booking-page .photo-permission__description { font-size: .78rem; line-height: 1.5; }
 .booking-page .photo-permission-note { font-size: .75rem; margin-top: .85rem; }
 .booking-page .photo-permission-people { font-size: .7rem; }
}

/* Le due quote restano visibili accanto al prezzo totale. */
.ocean-package > .package-payment { min-height: 0; margin: .2rem 0 .8rem; color: var(--ocean-ink, #123b52); font-size: .82rem; line-height: 1.45; }

/* Ultimo passo prenotazione: riepilogo compatto accanto ai contatti. */
.booking-page .summary--breve {
  margin: 0 0 1.4rem;
  padding: 1.1rem 1.2rem;
  background: #f3fafd;
  border: 1px solid #c8e2ed;
  border-radius: 1rem;
}
.booking-page .summary--breve > .caption { margin: 0 0 .65rem; color: #075888; font-weight: 700; }
.booking-page .summary--breve ul { margin: 0; padding-left: 1.1rem; font-size: .92rem; line-height: 1.65; }
.booking-page .summary--breve li + li { margin-top: .2rem; }
.booking-page .summary--breve .summary__totale { margin: .9rem 0 0; padding-top: .85rem; border-top: 1px solid #c8e2ed; font-size: .9rem; line-height: 1.6; color: #154d6c; }
@media (max-width: 560px) {
 .booking-page .summary--breve { padding: .9rem; }
 .booking-page .summary--breve ul, .booking-page .summary--breve .summary__totale { font-size: .85rem; }
}
