:root{--ink:#34332b;--soft:#6c6254;--gold:#a98b58;--line:#cbb68b;--ivory:#faf7f0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:radial-gradient(circle at 50% 24%,#fffdf8 0%,#f4eee3 76%,#eee5d7 100%);font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;min-height:100vh}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #886a35;outline-offset:4px}.experience{max-width:1160px;margin:auto;padding:32px 18px 60px;text-align:center}.eyebrow,.page-overline,.section-title,.blessing,.surnames,.photo-caption{font-family:Georgia,serif;letter-spacing:.19em;font-size:11px;color:#716651}.eyebrow{margin:0 0 23px}.paper{background:linear-gradient(145deg,#fffdf8 0%,#faf7f0 48%,#f1ecdf 100%);box-shadow:inset 1px 1px 1px #fff,0 16px 35px #4339212e;position:relative;isolation:isolate}.paper:before{content:"";position:absolute;inset:12px;border:1px solid #c4a970;box-shadow:inset 0 0 0 5px #faf7f0,inset 0 0 0 6px #d9cbae,0 0 0 3px #fffaf1;pointer-events:none;z-index:2}.cover{max-width:470px;margin:auto}.cover-card{display:block;border:0;width:100%;min-height:615px;padding:44px 32px 34px;color:var(--ink);overflow:hidden;transition:transform .65s ease,box-shadow .65s ease}.cover-card:hover{transform:translateY(-3px);box-shadow:0 24px 45px #4339213b}.cover-inner{position:relative;z-index:3;display:flex;align-items:center;flex-direction:column}.flower{position:absolute;z-index:2;pointer-events:none;background:url('assets/flores-marfil.png') left top/contain no-repeat;filter:drop-shadow(2px 4px 3px #7f6c4f45)}.flower-tl{top:0;left:0;width:56%;aspect-ratio:1}.flower-br{bottom:0;right:0;width:47%;aspect-ratio:1;transform:rotate(180deg)}.cover .flower-tl{width:52%}.cover .flower-br{width:38%}.medallion{display:grid;place-items:center;width:130px;height:105px;border-radius:50%;border:1px solid #b49b6d;box-shadow:0 0 0 5px #faf7ee,0 0 0 6px #d0ba8f,inset 2px 3px 8px #89704b40,0 9px 20px #81705035;background:radial-gradient(ellipse at 35% 25%,#fff,#f1eadc);margin:8px 0 26px;font:43px Georgia,serif;color:#7d663e}.medallion span span{font-size:24px;color:var(--gold);font-style:italic}.cover-card:hover .medallion{animation:glow 1.1s ease}.blessing{margin:0 0 20px;letter-spacing:.16em}.cover-names{font:clamp(31px,8vw,43px)/1.04 'Parisienne','Cormorant Garamond',cursive;max-width:100%;color:#34372b;text-shadow:0 1px 0 white}.name-amp{font-size:32px;color:var(--gold);line-height:.7}.ornamental-rule{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:13px;margin:24px 0 15px}.ornamental-rule:before,.ornamental-rule:after{content:"";height:1px;width:57px;background:linear-gradient(to right,transparent,var(--line))}.ornamental-rule:after{transform:rotate(180deg)}.marry{font-size:28px;font-weight:600;margin-bottom:16px}.cover-date{font-size:24px;letter-spacing:.18em;font-weight:600}.cover-note{font-size:20px;line-height:1.12;margin-top:18px}.open-prompt{border:1px solid #b69b69;background:#f8f1e5;color:#40372c;width:100%;padding:15px 22px;margin-top:15px;font-size:19px;font-weight:700;box-shadow:0 6px 18px #75684d1e}.open-prompt span{color:var(--gold);margin-left:10px}.open-prompt:hover,.actions button:hover{background:#eee2cb}.sound-control{position:fixed;z-index:20;right:14px;top:14px;border:1px solid var(--line);border-radius:30px;background:#faf7f0e9;color:#514834;padding:8px 14px;font-size:16px;box-shadow:0 5px 17px #30251a21}.sound-control[aria-pressed="true"]{background:#e8dac0}.opened{animation:appear .7s ease both}.book{display:grid;grid-template-columns:1fr 1fr;max-width:1100px;margin:auto;filter:drop-shadow(0 17px 20px #4f423126)}.page{padding:43px 35px 30px;min-height:745px;overflow:hidden}.page:before{inset:12px}.photo-page{border-right:1px solid #d4c39f}.photo-page:after{content:"";position:absolute;right:0;top:0;bottom:0;width:15px;background:linear-gradient(90deg,transparent,#6e5b3b24);pointer-events:none}.words-page:after{content:"";position:absolute;left:0;top:0;bottom:0;width:15px;background:linear-gradient(270deg,transparent,#6e5b3b1f);pointer-events:none}.page>*:not(.flower){position:relative;z-index:3}.page-overline{margin:10px 0 20px}.hero-photo{margin:0 auto;width:min(72%,310px);height:363px;padding:7px;background:#fff;border:1px solid #d4c39f;box-shadow:0 8px 22px #372b1f2a;transform:rotate(-1deg)}.hero-photo img,.photo-details img{width:100%;height:100%;object-fit:cover}.hero-photo img{object-position:center 47%}.photo-details{display:flex;align-items:center;justify-content:center;gap:25px;margin:19px auto 0}.photo-details figure{margin:0;position:relative;max-width:155px}.photo-details figure:first-child{width:42%;height:166px}.photo-details figure:last-child{width:32%;height:148px;transform:rotate(3deg);padding:5px;background:#fff;box-shadow:0 5px 14px #45382830}.photo-details figure:first-child img{border:5px solid #fff;box-shadow:0 5px 14px #45382830;object-position:center 8%}.photo-details figcaption{position:absolute;left:-66px;bottom:-33px;width:210px;font:italic 18px/1.05 'Cormorant Garamond',serif;color:#665a49}.photo-caption{margin:56px 0 0}.photo-caption span{color:var(--gold);padding:0 6px}.words-inner{max-width:425px;margin:auto}.words-page .page-overline{margin-top:24px}.words-page h1{font:clamp(43px,4.2vw,64px)/1 'Parisienne','Cormorant Garamond',cursive;font-weight:400;margin:23px 0 5px;white-space:nowrap}.words-page h1 span{color:var(--gold);font-size:.72em}.surnames{font-size:10px;margin:4px 0 0;letter-spacing:.2em}.words-page .ornamental-rule{justify-content:center;margin:18px 0}.message{font-size:19px;line-height:1.15;margin:0 0 12px}.ceremony{border-block:1px solid #c8b68c;margin:21px auto 16px;padding:17px 0 13px;max-width:345px}.section-title{font-size:11px;margin:0 0 7px}.event-date{font-size:28px;font-weight:600;line-height:1.03;margin:0 0 6px}.event-time{font-size:25px;margin:0 0 7px;font-weight:600}.event-place{font-size:22px;line-height:1.02;font-weight:600;margin:0}blockquote{font-size:22px;font-style:italic;margin:10px 0 13px}cite{display:block;font:10px Georgia,serif;letter-spacing:.15em;color:#70614a;margin:6px 0 0}.rsvp{font-size:18px;line-height:1.14;margin:0}.actions{max-width:1100px;margin:15px auto 0;display:flex;gap:10px;justify-content:center}.actions button{padding:12px 22px;border:1px solid #bba376;background:#faf7f0;color:#3d382e;min-height:48px;font-size:18px}.actions button span{color:var(--gold);margin-left:10px}.actions button:last-child{background:transparent}.dialog-content{padding:35px 35px 42px;max-width:600px}.dialog-content:before{inset:9px}.dialog-content>*{position:relative;z-index:3}dialog{border:0;padding:0;max-height:min(88vh,850px);max-width:min(92vw,650px);box-shadow:0 25px 70px #17140f69}dialog::backdrop{background:#27231bd1;backdrop-filter:blur(3px)}.dialog-close{position:absolute;top:15px;right:20px;z-index:4!important;border:0;background:#eee3d1;border-radius:50%;font-size:29px;width:37px;height:37px;line-height:28px}.dialog-content h2{font-size:34px;font-weight:600;line-height:1.02;margin:9px 0 20px}.dialog-content ol{text-align:left;margin:0;padding:0;list-style:none;counter-reset:rules}.dialog-content li{counter-increment:rules;display:grid;grid-template-columns:30px 1fr;column-gap:8px;padding:8px 0;border-top:1px solid #d7c8ab;font-size:17px;line-height:1.13}.dialog-content li:before{content:counter(rules,decimal-leading-zero);grid-row:span 2;color:#a58752;font-size:16px;font-weight:700}.dialog-content li strong{font-weight:700}.dialog-content li span{grid-column:2}.cover.leaving .cover-card{animation:openBook .7s ease-in both;transform-origin:left center}@keyframes openBook{50%{transform:perspective(1000px) rotateY(-38deg) scale(.96);opacity:.8}100%{transform:perspective(1000px) rotateY(-80deg) scale(.94);opacity:0}}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes glow{50%{box-shadow:0 0 0 5px #faf7ee,0 0 0 6px #c5a76c,inset 0 0 20px #e1c383,0 0 20px #dcc792}}@media(max-width:720px){.experience{padding:52px 13px 38px}.eyebrow{margin:0 0 18px;font-size:10px}.cover{max-width:460px}.cover-card{min-height:570px;padding:34px 24px 27px}.cover .flower-tl{width:51%}.cover .flower-br{width:40%}.cover-names{font-size:clamp(29px,9vw,43px)}.blessing{font-size:9px}.medallion{width:111px;height:92px;margin:6px 0 24px;font-size:38px}.marry{font-size:27px}.cover-date{font-size:23px}.cover-note{font-size:19px}.book{display:block;max-width:490px;filter:none}.page{min-height:0;padding:35px 31px}.photo-page{border:0;margin-bottom:14px}.photo-page:after,.words-page:after{display:none}.hero-photo{width:min(75%,290px);height:340px}.photo-details{gap:17px}.photo-caption{margin:54px 0 2px}.words-page{padding:35px 27px 40px}.words-page h1{font-size:clamp(42px,10vw,57px);white-space:normal;margin-top:20px}.message{font-size:21px;line-height:1.21;margin-bottom:16px}.ceremony{margin:23px auto 18px}.event-date{font-size:29px}.event-time{font-size:27px}.event-place{font-size:24px}blockquote{font-size:24px}.rsvp{font-size:20px;line-height:1.2}.actions{max-width:490px;flex-wrap:wrap}.actions button{flex:1 1 180px}.sound-control{top:8px;right:8px;font-size:14px;padding:6px 11px}}@media(max-width:375px){.cover-card{min-height:555px}.cover-names{font-size:29px}.cover-date{font-size:20px}.page{padding-inline:26px}.hero-photo{height:310px}.photo-details figure:first-child{height:140px}.photo-details figure:last-child{height:132px}.photo-details figcaption{left:-36px;font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.top-controls{position:fixed;z-index:20;right:14px;top:14px;display:flex;align-items:center;gap:8px}.top-controls .sound-control{position:static}.language-control{border:1px solid var(--line);border-radius:30px;background:#faf7f0e9;color:#514834;padding:8px 13px;font:16px 'Cormorant Garamond',Georgia,serif;box-shadow:0 5px 17px #30251a21;min-height:38px}.language-control span{color:var(--gold);padding:0 2px}.language-control:hover{background:#eee2cb}.falling-leaves{position:fixed;inset:0;z-index:5;pointer-events:none;overflow:hidden}.leaf{position:absolute;top:-24px;width:9px;height:14px;border-radius:1px 85% 2px 85%;background:linear-gradient(135deg,#dbc497aa,#b49258aa);opacity:0;animation:leaf-fall var(--duration) linear var(--delay) infinite}.leaf:nth-child(3n){width:6px;height:10px;background:#8d9b7680}@keyframes leaf-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0deg)}12%{opacity:.65}84%{opacity:.65}100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(440deg)}}.photo-details figure:last-child img{object-position:center 8%}@media(max-width:720px){.top-controls{top:8px;right:8px;gap:6px}.language-control{font-size:14px;padding:6px 10px;min-height:32px}}@media(prefers-reduced-motion:reduce){.falling-leaves{display:none}}

.cover-card{display:flex;align-items:center;justify-content:center}.cover-inner{width:100%}.cover .medallion{margin:0 0 34px}.cover-names{margin-top:5px}.cover .ornamental-rule{margin-top:27px}.photo-details figure:last-child img{object-position:center 8%}
/* Álbum de cuatro fotografías */
.photo-page .flower-tl{width:56%}
.photo-page .photo-gallery{margin-top:25px}
.photo-page .gallery-main{width:min(68%,275px);height:285px;margin:0 0 17px auto;transform:rotate(-1deg)}
.photo-page{display:flex;flex-direction:column;align-items:center;justify-content:center}.photo-page>.flower{position:absolute}.photo-gallery{width:100%;max-width:405px;margin:12px auto 0}.gallery-photo{margin:0;padding:5px;background:#fffdf8;border:1px solid #d1bd93;box-shadow:0 6px 18px #49392324;overflow:hidden}.gallery-photo img{display:block;width:100%;height:100%;object-fit:cover}.gallery-main{width:min(80%,320px);height:334px;margin:0 auto 17px;transform:rotate(-1deg)}.gallery-main img{object-position:center 45%}.gallery-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:center}.gallery-row .gallery-photo{height:148px;transform:rotate(1.2deg)}.gallery-row .gallery-photo:first-child{transform:rotate(-2deg)}.gallery-row .gallery-photo:last-child{transform:rotate(2deg)}.gallery-row .gallery-photo:first-child img{object-position:center 38%}.gallery-row .gallery-photo:nth-child(2) img{object-position:center center}.gallery-row .gallery-photo:last-child img{object-position:center 43%}.gallery-verse{font:italic 24px/1.15 'Cormorant Garamond',Georgia,serif;color:#625641;margin:23px 0 0;text-align:center}.photo-page .photo-caption{margin:23px 0 0}.opened .gallery-photo{animation:gallery-reveal .75s ease-out both}.opened .gallery-row .gallery-photo:nth-child(1){animation-delay:.18s}.opened .gallery-row .gallery-photo:nth-child(2){animation-delay:.3s}.opened .gallery-row .gallery-photo:nth-child(3){animation-delay:.42s}.opened .gallery-verse{animation:gallery-reveal .7s ease-out .52s both}@keyframes gallery-reveal{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@media(max-width:720px){.photo-page{min-height:0;padding:46px 28px 36px}.photo-gallery{margin-top:0}.gallery-main{height:clamp(270px,82vw,350px);width:min(82%,320px)}.gallery-row{gap:8px}.gallery-row .gallery-photo{height:clamp(108px,31vw,145px)}.gallery-verse{font-size:24px;margin-top:20px}.photo-page .photo-caption{margin:19px 0 0}}@media(max-width:375px){.photo-page{padding-inline:24px}.gallery-row{gap:6px}.gallery-main{height:270px}.gallery-verse{font-size:22px}}@media(prefers-reduced-motion:reduce){.opened .gallery-photo,.opened .gallery-verse{animation:none}}
/* Invitaciones a tocar: reflejo tenue, con la misma paleta de la tarjeta. */
.open-prompt,.actions button:first-child{position:relative;overflow:hidden;border-color:#af8b50;box-shadow:0 5px 18px #6e55301c,0 0 0 1px #fdf9ef inset;animation:invitation-hint 7s ease-in-out infinite}
.open-prompt::after,.actions button:first-child::after{content:"";position:absolute;inset:0;width:42%;background:linear-gradient(100deg,transparent,#fff9e052,transparent);transform:translateX(-170%) skewX(-18deg);pointer-events:none;animation:invitation-shine 7s ease-in-out infinite}
.open-prompt:hover,.actions button:first-child:hover{border-color:#97703d;box-shadow:0 7px 20px #6e553030}
.sound-control{transition:background .25s,border-color .25s,box-shadow .25s}
.sound-control[aria-pressed="true"]{border-color:#a58147;box-shadow:0 0 0 2px #cfad7240,0 5px 17px #30251a21}
.sound-control[aria-pressed="true"]::after{content:"";display:inline-block;width:5px;height:5px;margin-left:6px;border-radius:50%;background:#9d763c;vertical-align:middle}
@keyframes invitation-shine{0%,24%{transform:translateX(-170%) skewX(-18deg)}33%,42%{transform:translateX(350%) skewX(-18deg)}43%,100%{transform:translateX(-170%) skewX(-18deg)}}
@keyframes invitation-hint{0%,24%,36%,100%{box-shadow:0 5px 18px #6e55301c,0 0 0 1px #fdf9ef inset}30%{box-shadow:0 5px 21px #ad8b4a54,0 0 0 1px #fdf9ef inset}}
@media(prefers-reduced-motion:reduce){.open-prompt,.actions button:first-child,.open-prompt::after,.actions button:first-child::after{animation:none}}
.map-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;padding:7px 13px;border:1px solid #bca371;border-radius:999px;background:#fffaf0;color:#665134;text-decoration:none;font:13px Georgia,serif;letter-spacing:.035em;box-shadow:0 2px 8px #5d492018;transition:background .25s,border-color .25s,transform .25s}.map-link:hover{background:#f1e7d4;border-color:#9f7e49;transform:translateY(-1px)}.map-link:focus-visible{outline:3px solid #886a35;outline-offset:3px}.map-link svg{flex:none}.map-link span:last-child{color:#9e7b45;font-size:17px;line-height:10px;margin-left:1px}@media(max-width:720px){.map-link{min-height:40px;font-size:14px;margin-top:13px}}
/* Ubicación visible y táctil, con un destello breve y discreto. */
.map-link{position:relative;overflow:hidden;border-color:#aa864b;background:#fbf3e4;box-shadow:0 3px 10px #6d543025;animation:map-invite 6s ease-in-out infinite}
.map-link>*{position:relative;z-index:1}
.map-link::before{content:"";position:absolute;inset:0 auto 0 0;width:42%;background:linear-gradient(100deg,transparent,#fffdf7a3,transparent);transform:translateX(-170%) skewX(-18deg);pointer-events:none;animation:map-shine 6s ease-in-out infinite}
.map-link svg{color:#9d783e}
@keyframes map-invite{0%,22%,42%,100%{box-shadow:0 3px 10px #6d543025}30%{box-shadow:0 3px 15px #aa874c73,0 0 0 3px #c8a76d3b}}
@keyframes map-shine{0%,22%{transform:translateX(-170%) skewX(-18deg)}35%,42%{transform:translateX(350%) skewX(-18deg)}43%,100%{transform:translateX(-170%) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){.map-link,.map-link::before{animation:none}}
/* Versión final del acceso al mapa: champán, clara y fácil de tocar. */
.map-link{min-height:44px;margin-top:14px;padding:9px 18px;gap:8px;border-radius:999px;border-color:#ad8b55;background:linear-gradient(145deg,#f7edda,#e9d7b5);color:#4f412f;font:15px Georgia,serif;letter-spacing:.01em;box-shadow:0 4px 12px #70553229}
.map-link:hover{background:linear-gradient(145deg,#fbf2e1,#e5ce9e);border-color:#977140;box-shadow:0 6px 16px #70553242;transform:translateY(-1px)}
.map-link span:last-child{font-size:18px;color:#806036}
@media(max-width:720px){.map-link{min-height:46px;padding:10px 19px;font-size:15px}}
/* Lista de regalos: categorías que se abren dentro de la invitación. */
.actions #showGifts{border-color:#b89a68;background:#f7efe1}
.actions #showGifts:hover{background:#ecdfc5}
.gift-content{width:min(600px,92vw);text-align:center}
.gift-content h2{margin-bottom:12px}
.gift-intro{font-size:19px;line-height:1.25;margin:0 auto 24px;max-width:470px;color:#5b5143}
.gift-content details{text-align:left;border-top:1px solid #d8c7a6}
.gift-content details:last-child{border-bottom:1px solid #d8c7a6}
.gift-content summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:53px;padding:10px 5px;cursor:pointer;color:#4c4233;font-size:22px;font-weight:600;list-style:none}
.gift-content summary::-webkit-details-marker{display:none}
.gift-content summary small{margin-left:auto;color:#9b8054;font:12px Georgia,serif;white-space:nowrap;letter-spacing:.03em}
.gift-content summary::after{content:'⌄';font:23px Georgia,serif;color:#a48755;line-height:1;transition:transform .2s}
.gift-content details[open] summary::after{transform:rotate(180deg)}
.gift-content summary:focus-visible{outline:3px solid #886a35;outline-offset:2px}
.gift-content ol{list-style:decimal;margin:0 0 15px;padding:0 10px 0 33px;counter-reset:none}
.gift-content li{display:list-item;counter-increment:none;border:0;padding:5px 0;font-size:18px;line-height:1.2;color:#52483a}
.gift-content li::before{content:none}
.gift-content li::marker{color:#a58752;font:15px Georgia,serif}
@media(max-width:720px){.gift-content{padding:31px 25px 36px}.gift-content h2{font-size:34px}.gift-intro{font-size:19px}.gift-content summary{font-size:20px}.gift-content li{font-size:18px}}
/* Estados compartidos de la lista de regalos. */
.gift-privacy{max-width:470px;margin:-10px auto 19px;color:#786d5b;font:13px/1.35 Georgia,serif}
.gift-feedback{min-height:31px;margin:0 auto 12px;padding:7px 10px;border-radius:4px;background:#f3ead8;color:#6e5631;font:14px/1.25 Georgia,serif}
.gift-item-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:37px}
.gift-name{flex:1;min-width:0}
.gift-content .gift-item-row .reserve-gift{flex:none;min-width:76px;min-height:35px;padding:6px 10px;border:1px solid #b99862;border-radius:999px;background:#f1e3cb;color:#55422a;font:14px Georgia,serif;transition:background .2s,transform .2s}
.gift-content .gift-item-row .reserve-gift:hover{background:#e8d2a9;transform:translateY(-1px)}
.gift-content .gift-item-row .reserve-gift:focus-visible{outline:3px solid #886a35;outline-offset:2px}
.gift-content .gift-item-row .reserved-badge{flex:none;padding:7px 10px;border-radius:999px;background:#e2eddf;color:#47634c;font:13px Georgia,serif;white-space:nowrap}
.gift-content li.is-reserved .gift-name{color:#77776f}
.gift-content [hidden]{display:none!important}
.reserve-content{width:min(450px,92vw);text-align:center}
.reserve-content h2{margin-bottom:12px}
.reserve-item{max-width:340px;margin:0 auto 24px;color:#78603b;font-size:25px;font-style:italic;line-height:1.1}
.reserve-content form{text-align:left}
.reserve-content label{display:block;margin-bottom:8px;color:#4b4031;font-size:19px;font-weight:600}
.reserve-content input{width:100%;min-height:47px;padding:10px 13px;border:1px solid #baa174;border-radius:3px;background:#fffdf8;color:#3d352b;font:18px Georgia,serif}
.reserve-content input:focus-visible{outline:3px solid #a98b58;outline-offset:2px}
.reserve-help{margin:10px 0 0;color:#716858;font:13px/1.35 Georgia,serif}
.reserve-error{min-height:20px;margin:12px 0;color:#9a3f35;font:14px/1.25 Georgia,serif}
.reserve-actions{display:flex;gap:10px;justify-content:space-between}
.reserve-actions button{flex:1;min-height:45px;padding:9px;border:1px solid #bba376;background:#faf7f0;color:#493d2e;font-size:17px}
.reserve-actions button:last-child{background:#ecddc1;border-color:#a98950;font-weight:600}
.reserve-actions button:disabled{opacity:.6;cursor:wait}
@media(max-width:375px){.gift-content .gift-item-row{gap:5px}.gift-content .gift-item-row .reserve-gift{min-width:68px;padding:5px 7px}.gift-content li{font-size:16px}.reserve-actions{flex-direction:column-reverse}}
/* Lista de regalos en tarjetas: lectura rápida y acciones cómodas en móvil. */
#giftList{width:min(94vw,760px);max-width:760px;max-height:92vh;border-radius:8px;overflow-y:auto;background:#faf7f0}
#giftList .gift-content{width:100%;max-width:none;padding:36px clamp(20px,5vw,46px) 48px}
.gift-content .page-overline{margin-bottom:8px}
.gift-content h2{margin:0 0 9px;font-size:clamp(34px,5vw,45px);line-height:1.05;color:#3d392f}
.gift-content .gift-intro{max-width:590px;margin:0 auto 19px;font-size:clamp(18px,2.6vw,22px);line-height:1.24}
.gift-steps{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 15px;font:13px Georgia,serif;color:#554735}
.gift-steps span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dfd0b3;border-radius:999px;background:#fffcf5}
.gift-steps b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#a48652;color:#fff;font:12px Georgia,serif}
.gift-content .gift-privacy{margin:0 auto 13px;line-height:1.35}
.gift-content .gift-feedback{max-width:600px;margin:0 auto 22px;padding:10px 14px;line-height:1.35}
.gift-content details{margin:0 0 10px;border:1px solid #e0d2b7;border-radius:7px;background:#fffcf6;box-shadow:0 3px 12px #5c4a2b0b;overflow:hidden}
.gift-content details:last-child{border-bottom:1px solid #e0d2b7}
.gift-content details[open]{border-color:#cbb381;box-shadow:0 5px 17px #5c4a2b12}
.gift-content summary{min-height:63px;padding:11px 16px;justify-content:flex-start;font-size:clamp(19px,3vw,23px);line-height:1.1}
.gift-content summary small{font-size:12px}
.gift-content summary::after{margin-left:3px}
.gift-category-icon{display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:50%;background:#f3e8d3;color:#967446}
.gift-category-icon svg{width:21px;height:21px}
.gift-content details[open] summary{border-bottom:1px solid #e6d9bf}
.gift-content ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0;padding:16px;list-style:none}
.gift-content li{display:block;margin:0;min-width:0;padding:0;border:1px solid #e2d5bc;border-radius:6px;background:#fffefa;box-shadow:0 3px 10px #594b3210;font-size:18px;line-height:1.15}
.gift-content li::marker{content:''}
.gift-content li.is-reserved{background:#f1f5ef;border-color:#cbdac7}
.gift-item-row{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:11px;min-height:117px;padding:15px 12px 13px;text-align:center}
.gift-name{display:grid;place-items:center;min-height:43px;font-weight:600;color:#4e4232}
.gift-content .gift-item-row .reserve-gift{width:min(100%,145px);min-height:37px;background:#e8d6b5;border-color:#a88750;color:#463821;font-weight:bold}
.gift-content .gift-item-row .reserve-gift:hover{background:#d9bf8e}
.gift-content .gift-item-row .reserved-badge{width:min(100%,150px);background:#dfeadb;color:#375a40;border:1px solid #c6d9c3}
.reserve-content .reserve-kicker{margin:9px 0 7px;color:#9b7a45;font:11px Georgia,serif;letter-spacing:.18em}
.reserve-content .reserve-item{padding:13px 18px;border:1px solid #d9c49e;border-radius:5px;background:#fffaf0;color:#504029;font-size:25px}
.reserve-content .reserve-actions button:last-child{border-radius:4px;background:#e5d0a7}
@media(max-width:560px){#giftList{width:96vw;max-height:94vh}.gift-content ol{gap:8px;padding:12px}.gift-content li{font-size:16px}.gift-item-row{min-height:115px;padding:12px 7px}.gift-content summary{padding:10px 12px}.gift-content summary small{font-size:11px}.gift-category-icon{width:32px;height:32px}.gift-category-icon svg{width:19px;height:19px}}
@media(max-width:355px){.gift-content ol{grid-template-columns:1fr}.gift-item-row{min-height:94px}.gift-content summary small{display:none}}
/* Todas las categorías y tarjetas visibles al abrir la lista. */
.gift-content .gift-category{margin:0 0 17px;border:1px solid #dfcfb1;border-radius:7px;background:#fffcf6;box-shadow:0 5px 17px #5c4a2b12;overflow:hidden}
.gift-content .gift-category:last-child{margin-bottom:0}
.gift-content .gift-category h3{display:flex;align-items:center;gap:12px;min-height:61px;margin:0;padding:11px 16px;border-bottom:1px solid #e6d9bf;color:#4c4233;font-size:clamp(19px,3vw,23px);font-weight:600;line-height:1.1;text-align:left}
.gift-content .gift-category h3 small{margin-left:auto;color:#9b8054;font:12px Georgia,serif;white-space:nowrap;letter-spacing:.03em}
@media(max-width:560px){.gift-content .gift-category h3{min-height:57px;padding:10px 12px}.gift-content .gift-category h3 small{font-size:11px}}
@media(max-width:355px){.gift-content .gift-category h3 small{display:none}}
/* Encabezado y confirmación visual de los regalos reservados. */
.gift-content h2{display:table;margin:4px auto 19px;padding:0 20px 13px;border-bottom:1px solid #c6a870;color:#4b3c2a;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(40px,6vw,54px);font-weight:600;letter-spacing:.015em}
.gift-content .gift-intro{max-width:540px;line-height:1.32}
.gift-content .gift-intro strong{font-weight:700;color:#69502d}
.gift-content .gift-privacy{max-width:540px;font-size:14px;color:#5b5143}
.gift-content .gift-privacy span{margin-right:4px;font-size:14px}
.gift-content li.is-reserved{background:#e6f0e4;border-color:#80a784;box-shadow:0 3px 12px #36583a21}
.gift-content li.is-reserved .gift-name{color:#31543a}
.gift-content .gift-item-row .reserved-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:min(100%,169px);min-height:37px;padding:6px 9px;background:#2f7046;border:1px solid #245b38;color:#fff;font-weight:700;box-shadow:0 3px 9px #265d3b32}
.gift-content .gift-item-row .reserved-badge::before{content:'✓';display:grid;place-items:center;flex:none;width:18px;height:18px;border:1.5px solid currentColor;border-radius:50%;font:700 12px Arial,sans-serif}
.gift-content .gift-item-row .reserved-badge[hidden]{display:none!important}
/* Aporte al inicio, seguido por el listado de regalos. */
.contribution{margin:30px auto 0;padding:26px 0 0;border-top:1px solid #d3bb8e;text-align:center}
.contribution-ornament{color:#b4965d;font-size:20px;line-height:1}
.contribution h3{margin:5px 0 8px;color:#4c3d2c;font-size:clamp(27px,4vw,34px);font-weight:600;line-height:1.12}
.contribution>p:not(.copy-feedback){max-width:540px;margin:0 auto 20px;color:#6b5c49;font-size:18px;line-height:1.22}
.bank-list{display:grid;gap:10px;text-align:left}
.bank-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px;border:1px solid #dbcbb0;border-radius:7px;background:#fffdf8;box-shadow:0 4px 13px #58442c12}
.bank-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border-radius:7px;background:#e8dfcf;color:#66533c;font:700 11px Arial,sans-serif;letter-spacing:.02em}
.bank-mark svg{width:23px;height:23px}
.bank-bhd .bank-mark{background:#e8ece5;color:#406047}
.bank-reservas .bank-mark{background:#e1eaf1;color:#35688c}
.bank-bpd .bank-mark{background:#e5edf5;color:#2b6093}
.bank-info{min-width:0}
.bank-info h4{margin:0 0 3px;color:#453a2c;font:700 16px Georgia,serif}
.bank-info p{margin:0 0 5px;color:#6b6255;font:13px/1.2 Georgia,serif}
.bank-info p span{white-space:nowrap}
.account-number{display:block;color:#342f28;font:600 20px/1.1 Georgia,serif;letter-spacing:.055em;user-select:all}
.copy-account{min-width:73px;min-height:38px;padding:7px 10px;border:1px solid #ad8d59;border-radius:999px;background:#f4e8d3;color:#54412b;font:14px Georgia,serif}
.copy-account:hover{background:#e8d5b3}
.copy-account:focus-visible{outline:3px solid #886a35;outline-offset:3px}
.copy-feedback{min-height:19px;margin:10px 0 0;color:#3e6845;font:14px Georgia,serif}
@media(max-width:530px){.bank-card{grid-template-columns:45px minmax(0,1fr);gap:10px;padding:12px}.bank-mark{width:45px;height:45px}.copy-account{grid-column:2;justify-self:start;min-height:34px;margin-top:2px}.account-number{font-size:18px}.contribution>p:not(.copy-feedback){font-size:17px}}
/* Logotipos bancarios y acentos propios de cada entidad. */
.bank-card{grid-template-columns:100px minmax(0,1fr) auto}
.bank-mark,.bank-bhd .bank-mark,.bank-reservas .bank-mark,.bank-bpd .bank-mark{width:100px;height:58px;padding:5px;border:1px solid #e7e0d4;background:#fff;color:inherit}
.bank-mark img{display:block;width:100%;height:100%;object-fit:contain}
.bank-bhd{border-left:4px solid #27854d}.bank-bhd .bank-info h4{color:#276b42}
.bank-reservas{border-left:4px solid #ee842b}.bank-reservas .bank-info h4{color:#1c5783}
.bank-bpd{border-left:4px solid #1765a6}.bank-bpd .bank-info h4{color:#145990}
@media(max-width:530px){.bank-card{grid-template-columns:77px minmax(0,1fr)}.bank-mark,.bank-bhd .bank-mark,.bank-reservas .bank-mark,.bank-bpd .bank-mark{width:77px;height:53px}.bank-info h4{font-size:15px}}
/* Sobre de introducción: papel, solapas, lacre y tarjeta que emerge. */
body.intro-active{overflow:hidden}
body.intro-active .experience{max-width:none;min-height:100dvh;padding:0}
.envelope-intro[hidden]{display:none!important}
.envelope-intro{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(24px,5dvh,44px);width:100%;max-width:none;min-height:100dvh;padding:76px 16px 30px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 42%,#fffefa 0%,#f8f5ed 56%,#eee9dd 100%)}
.envelope-intro::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.16;background-image:radial-gradient(#a9937555 .5px,transparent .5px);background-size:7px 7px;pointer-events:none}
.envelope-flower{position:absolute;width:clamp(180px,38vw,340px);aspect-ratio:1;background:url('assets/flores-marfil.png') center/contain no-repeat;opacity:.36;filter:saturate(.7);pointer-events:none}
.envelope-flower-left{top:-80px;left:-95px;transform:rotate(-18deg)}
.envelope-flower-right{bottom:-105px;right:-95px;transform:rotate(160deg)}
.envelope-scene{position:relative;width:min(88vw,540px,calc(53dvh * 1.42));aspect-ratio:1.42;filter:drop-shadow(0 22px 21px #564c3f32);perspective:1200px}
.envelope{position:absolute;inset:0;transform-style:preserve-3d}
.envelope-back,.envelope-front,.envelope-flap{position:absolute;inset:0;border:1px solid #c9af7e}
.envelope-back{z-index:1;border-radius:3px;background:linear-gradient(135deg,#fffefa,#eee8db 70%,#e4dac9)}
.envelope-letter{position:absolute;z-index:2;left:12%;right:12%;bottom:7%;height:71%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;border:1px solid #c9ad78;background:linear-gradient(145deg,#fffefa,#f5f0e5);box-shadow:0 4px 12px #66543b29;color:#5b4b36;text-align:center}
.envelope-letter::before{content:'';position:absolute;inset:8px;border:1px solid #dbc9a9}
.envelope-letter span{position:relative;font:clamp(24px,5vw,37px)/1.1 'Parisienne',cursive}
.envelope-letter small{position:relative;font:clamp(12px,2.5vw,16px) Georgia,serif;letter-spacing:.15em}
.envelope-front{z-index:3;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);background:linear-gradient(115deg,#f4eee2 0%,#fffdf7 48%,#e9dfcf 100%);box-shadow:inset 0 0 0 8px #f7f1e7,inset 0 0 0 9px #c9b68f}
.envelope-front::after{content:'';position:absolute;inset:9px;border:1px solid #c8ac78;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%)}
.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 57%);transform-origin:top center;background:linear-gradient(160deg,#fffefa 8%,#eee6d9 72%,#e3d6bf);box-shadow:inset 0 0 0 8px #f9f5eb,inset 0 0 0 9px #c9b58d;backface-visibility:visible}
.envelope-address{position:absolute;z-index:5;top:12%;left:9%;right:9%;display:flex;align-items:center;flex-direction:column;gap:9px;color:#594a37;text-align:center;pointer-events:none}
.envelope-address>span{font:clamp(10px,1.8vw,13px) Georgia,serif;letter-spacing:.21em}
.envelope-address strong{font:clamp(24px,5vw,38px)/1.1 'Parisienne',cursive;font-weight:400}
.envelope-address i{display:flex;align-items:center;gap:10px;color:#a6834c;font:17px Georgia,serif}
.envelope-address i::before,.envelope-address i::after{content:'';width:clamp(35px,10vw,70px);height:1px;background:#c5a875}
.wax-seal{position:absolute;z-index:8;top:56%;left:50%;display:grid;place-items:center;width:clamp(75px,17vw,102px);height:clamp(75px,17vw,102px);padding:0;border:2px solid #b28a48;border-radius:48% 52% 49% 51%;background:radial-gradient(circle at 35% 28%,#fff4c7,#ddbd78 35%,#af8749 69%,#ebcf8c 88%,#8e682f);box-shadow:inset 0 0 0 5px #cda75b,inset 0 0 0 7px #f6e5ac,0 6px 12px #5b463557;transform:translate(-50%,-50%);color:#694c24;transition:filter .28s,box-shadow .28s;touch-action:manipulation}
.wax-seal::before{content:'';position:absolute;inset:11px;border:1px solid #7c5b2b9c;border-radius:50%}
.wax-seal span{position:relative;font:clamp(20px,4vw,29px) Georgia,serif;letter-spacing:-.08em;text-shadow:0 1px #fff4cf}
.wax-seal em{font-size:.7em;font-weight:normal}
.wax-seal:hover,.wax-seal:focus-visible{filter:brightness(1.13);box-shadow:inset 0 0 0 5px #cda75b,inset 0 0 0 7px #f6e5ac,0 0 25px #d4b46991,0 6px 12px #5b463557}
.wax-seal:focus-visible{outline:3px solid #705227;outline-offset:6px}
.seal-hint{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;color:#78664b;font:clamp(11px,2.5vw,14px) Georgia,serif;letter-spacing:.16em}
.seal-hint svg{flex:none}
.envelope-intro.leaving .wax-seal{animation:seal-release .55s ease-in forwards}
.envelope-intro.leaving .envelope-flap{animation:flap-open 1s ease-in-out .42s forwards}
.envelope-intro.leaving .envelope-address{animation:address-fade .42s ease-in .35s forwards}
.envelope-intro.leaving .envelope-letter{animation:letter-rise 1.45s cubic-bezier(.21,.73,.22,1) 1.35s forwards}
.envelope-intro.leaving .envelope-scene{animation:scene-forward .72s ease-in 2.8s forwards}
.envelope-intro.leaving .seal-hint{opacity:0;transition:opacity .3s}
@keyframes seal-release{0%{transform:translate(-50%,-50%) scale(1)}27%{transform:translate(-50%,-50%) scale(.88)}100%{transform:translate(-50%,18px) scale(.68) rotate(12deg);opacity:0}}
@keyframes flap-open{0%{transform:rotateX(0)}100%{transform:rotateX(180deg);z-index:1}}
@keyframes address-fade{to{opacity:0}}
@keyframes letter-rise{0%{transform:translateY(0)}60%{transform:translateY(-64%)}100%{transform:translateY(-69%) scale(1.06)}}
@keyframes scene-forward{to{transform:scale(1.85);opacity:0}}
@media(max-width:530px){.envelope-flower{width:210px}.envelope-flower-left{top:-55px;left:-115px}.envelope-flower-right{bottom:-70px;right:-120px}.envelope-address{top:13%;gap:6px}.envelope-address strong{font-size:clamp(23px,6vw,30px)}.wax-seal{width:76px;height:76px}.wax-seal span{font-size:21px}.seal-hint{letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){.envelope-intro.leaving .wax-seal,.envelope-intro.leaving .envelope-flap,.envelope-intro.leaving .envelope-address,.envelope-intro.leaving .envelope-letter,.envelope-intro.leaving .envelope-scene{animation:none}}
/* Acabado fotográfico inspirado en el sobre de referencia. */
.envelope-intro{background:#f5efe5 url('assets/fondo-sobre-boda.webp') center center/cover no-repeat}
.envelope-intro::before{opacity:.08}
.envelope-flower{display:none}
.envelope-scene{filter:drop-shadow(0 8px 4px #4c38251f) drop-shadow(0 24px 23px #46362463)}
.envelope-back{border-color:#b69a6c;background:linear-gradient(115deg,#e7ddca,#fffdf7 38%,#eee3d2 78%,#d9cbb7)}
.envelope-front{border-color:#b49768;background:repeating-linear-gradient(105deg,#fffefa12 0 2px,#dbcbb715 2px 4px),linear-gradient(125deg,#f7f1e6 0%,#fffdf5 48%,#e9dcc8 100%);box-shadow:inset 0 0 0 7px #fff9ef,inset 0 0 0 8px #c7ab79,inset 0 -16px 25px #8d735021}
.envelope-flap{border-color:#b49768;background:repeating-linear-gradient(108deg,#fffefa1c 0 2px,#dbcbb71c 2px 4px),linear-gradient(165deg,#fffdf7 4%,#f2e8d8 52%,#e1d1b9);box-shadow:inset 0 0 0 8px #fff9ef,inset 0 0 0 9px #c3a676,0 5px 10px #59452a3d}
.envelope-letter{background:linear-gradient(145deg,#fffdf6,#efe7d6);box-shadow:0 6px 15px #4e3a2366}
.envelope-letter .letter-flourish{color:#af915d;font:32px Georgia,serif}
.envelope-address{top:17%;gap:15px}
.envelope-address>span{font-size:clamp(10px,2vw,14px);letter-spacing:.23em}
.envelope-address i{font-size:14px}
.wax-seal{border:3px double #a57935;border-radius:46% 53% 47% 52% / 51% 46% 54% 47%;background:radial-gradient(circle at 29% 21%,#fff5c8 0%,#e9cb8e 22%,#ba8c45 50%,#805d2f 72%,#dab274 86%,#714c20 100%);box-shadow:inset 2px 3px 7px #fff4cfbf,inset -4px -6px 8px #543816a8,inset 0 0 0 7px #c69a50,0 4px 9px #2e210e66,0 8px 15px #5b463557}
.wax-seal::before{inset:11px;border:1px solid #f8db9f;background:radial-gradient(circle at 31% 25%,#f7dfa0a1,transparent 56%);box-shadow:0 0 0 2px #79582677}
.wax-seal span{color:#62441f;text-shadow:0 1px 1px #fff0c2}
.seal-hint{padding:9px 16px;border-radius:999px;background:#fffaf2d6;box-shadow:0 2px 12px #4f402325;color:#675034;font-weight:600;text-shadow:0 1px #fff}
@media(max-width:530px){.envelope-intro{background-position:center center}.envelope-address{top:17%;gap:8px}.seal-hint{font-size:12px}}
/* Fotografía del sobre cerrado sobre piezas CSS que se abren. */
.envelope-front{clip-path:polygon(0 0,50% 72%,100% 0,100% 100%,0 100%)}
.envelope-front::after{clip-path:polygon(0 0,50% 72%,100% 0,100% 100%,0 100%)}
.envelope-flap{clip-path:polygon(0 0,100% 0,50% 72%)}
.envelope-photo{position:absolute;z-index:5;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.envelope-address{z-index:6;top:20%}
.wax-seal{top:72%}
.envelope-intro.leaving .envelope-photo{animation:photo-fade .68s ease .36s forwards}
@keyframes photo-fade{to{opacity:0}}
@media(max-width:530px){.envelope-address{top:20%}}
@media(prefers-reduced-motion:reduce){.envelope-intro.leaving .envelope-photo{animation:none}}
/* Portada de los novios después de abrir el sobre. */
.landing[hidden]{display:none!important}
.landing{animation:appear .7s ease both}
.landing .eyebrow{margin:0 0 23px}
.landing-card{max-width:470px}
.landing.leaving .cover-card{animation:openBook .7s ease-in both;transform-origin:left center}
@media(max-width:720px){.landing .eyebrow{margin-bottom:18px}.landing-card{max-width:460px}}
/* Ajustes de inicio para pantallas pequeñas y zonas seguras del teléfono. */
.sound-control{min-height:44px;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right))}
.envelope-intro{padding-top:max(76px,calc(env(safe-area-inset-top) + 58px));padding-bottom:max(30px,env(safe-area-inset-bottom))}
@media(max-width:720px){.landing .cover-card{min-height:clamp(470px,75dvh,570px)}.landing .open-prompt{min-height:48px}.landing{padding-bottom:env(safe-area-inset-bottom)}}
@media(max-width:375px){.landing .cover-card{min-height:470px;padding:24px 20px}.landing .cover-names{font-size:clamp(27px,8vw,31px)}.landing .cover-date{font-size:20px}.landing .cover-note{font-size:18px}.sound-control{padding:6px 9px;font-size:13px}}
@media(max-height:540px) and (orientation:landscape){.envelope-intro{gap:12px;padding-block:48px 12px}.envelope-scene{width:min(60vw,calc(52dvh * 1.42))}.seal-hint{padding:5px 12px}}

/* Portada enviada: visible dentro del sobre y al salir como carta completa. */
.envelope-letter{background:#f8f5ed url('assets/portada-carta.webp') center/100% 100% no-repeat}
.envelope-letter::before,.envelope-letter>*{display:none}
.landing .cover-card{min-height:0;aspect-ratio:502/637;padding:0;background:#f8f5ed url('assets/portada-carta.webp') center/100% 100% no-repeat}
.landing .cover-card::before,.landing .cover-card>.flower,.landing .cover-inner{display:none}
@media(max-width:720px){.landing .cover-card{min-height:0}}
@media(max-width:375px){.landing .cover-card{min-height:0}}

/* Fondo floral limpio detrás del sobre: composición adaptada a cada pantalla. */
.envelope-intro{background:#faf7ef url('assets/fondo-floral-horizontal.webp') center/cover no-repeat}
.envelope-intro::before{display:none}
@media(max-width:720px){.envelope-intro{background-image:url('assets/fondo-floral-vertical.webp');background-position:center center}}

/* Ayuda breve de la lista, abierta solo cuando el invitado la solicita. */
.gift-help-button{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;margin:0 auto 18px;padding:8px 15px;border:1px solid #c9b186;border-radius:999px;background:#f8f1e5;color:#594830;font:600 15px Georgia,serif;box-shadow:0 3px 9px #67533717}
.gift-help-button span{display:grid;place-items:center;width:20px;height:20px;border:1px solid #a78a57;border-radius:50%;font-size:14px}
.gift-help-button:hover,.gift-help-button[aria-expanded="true"]{background:#eadcc4}
.gift-help-panel{max-width:540px;margin:0 auto 20px;padding:18px 21px;border:1px solid #dbc9a8;border-radius:9px;background:#fffaf1;text-align:left;box-shadow:0 7px 20px #63513317}
.gift-help-panel[hidden]{display:none}
.gift-help-panel h3{margin:0 0 11px;color:#57442b;font-size:24px;text-align:center}
.gift-help-panel p{margin:0 0 10px;font-size:17px;line-height:1.28}
.gift-help-panel p:last-child{margin-bottom:0}
.gift-help-panel h3:not(:first-child){margin-top:18px;padding-top:14px;border-top:1px solid #e2d3b9}

/* Controles de lista, tarjetas y ayuda inspirados en la referencia. */
.gift-view-tools{display:flex;justify-content:flex-end;gap:8px;max-width:570px;margin:-6px auto 16px}
.gift-view-button,.gift-help-button{display:grid;place-items:center;flex:none;width:38px;height:38px;margin:0;padding:0;border:1px solid #bba986;border-radius:50%;background:#fffaf1;color:#635640;box-shadow:0 2px 7px #5b49211c;transition:background .2s,transform .2s,box-shadow .2s}
.gift-view-button svg{width:19px;height:19px}
.gift-view-button span{display:block;width:auto;height:auto;border:0;font:700 20px Georgia,serif}
.gift-view-button:hover,.gift-view-button:focus-visible{transform:translateY(-2px);box-shadow:0 4px 11px #5b492134}
.gift-view-button[aria-pressed="true"],.gift-help-button[aria-expanded="true"]{background:#74694e;border-color:#74694e;color:#fff}
#giftList.gift-list-view .gift-category ol{grid-template-columns:minmax(0,1fr);gap:8px}
#giftList.gift-list-view .gift-item-row{flex-direction:row;justify-content:space-between;gap:14px;min-height:58px;padding:8px 15px;text-align:left}
#giftList.gift-list-view .gift-name{display:block;min-height:0;flex:1}
#giftList.gift-list-view .reserve-gift,#giftList.gift-list-view .reserved-badge{width:auto;min-width:115px;min-height:34px;flex:none}
@media(max-width:560px){.gift-view-tools{margin-top:-7px;margin-bottom:14px}.gift-view-button,.gift-help-button{width:36px;height:36px}#giftList.gift-list-view .gift-item-row{padding:8px 10px;min-height:54px;gap:8px}#giftList.gift-list-view .reserve-gift,#giftList.gift-list-view .reserved-badge{min-width:95px;font-size:14px}}

/* Los controles acompañan el inicio de las categorías, con espacio propio. */
.gift-view-tools{margin:0 1px 12px auto;max-width:none}
@media(max-width:560px){.gift-view-tools{margin:0 1px 12px auto}}
.gift-content>.contribution{margin:0 auto 24px;padding:3px 0 23px;border-top:0;border-bottom:1px solid #d3bb8e}
.gift-content>.contribution .contribution-ornament{margin-bottom:5px}
.gift-content>.contribution h2{display:block;max-width:540px;margin:4px auto 10px;padding:0;border:0;font-size:clamp(29px,5vw,39px);line-height:1.08}

/* Ventana de ayuda sobre la lista, sin desplazar los artículos. */
#giftHelpDialog{width:min(92vw,570px);max-height:85dvh;border:0;border-radius:13px;overflow:auto;box-shadow:0 24px 65px #2b211b67}
#giftHelpDialog::backdrop{background:#27231bc2;backdrop-filter:blur(3px)}
.gift-help-modal{padding:35px clamp(22px,5vw,43px) 31px;text-align:center}
.gift-help-modal h2{margin:3px 0 18px;font-size:clamp(32px,5vw,43px);line-height:1.08;color:#51402c}
.gift-help-modal .gift-help-panel{margin:0 auto 20px;padding:18px 20px;background:#fffaf2;border-radius:10px;text-align:left}
.gift-help-modal .gift-help-panel h3{font-size:23px}
.gift-help-done{min-width:140px;min-height:43px;padding:9px 19px;border:1px solid #ad8d59;border-radius:999px;background:#e9d7b5;color:#4c3a24;font-weight:700}
.gift-help-done:hover{background:#dcc397}
.gift-help-steps{display:grid;gap:8px;margin:13px 0 0;padding:0;list-style:none}
.gift-help-steps li{display:flex;align-items:center;gap:10px;font-size:17px;line-height:1.25}
.gift-help-steps li span{display:grid;place-items:center;flex:none;width:25px;height:25px;border-radius:50%;background:#b69762;color:#fff;font:700 14px Georgia,serif}
