.gift-form{max-width:820px;margin:28px auto;padding:clamp(20px,4vw,38px);background:#fffcf2;border:1px solid #ccd3cb;border-radius:22px}.gift-intro h2{font-size:clamp(27px,4vw,40px);line-height:1.15;color:#20473d;margin:14px 0 30px}.gift-form p{line-height:1.65}.gift-form label{display:block;font-size:14px;line-height:1.5;font-weight:600;color:#244139}.gift-field{display:flex;flex-direction:column;gap:8px;min-width:0}.gift-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start;margin:0 0 22px}.gift-form input:not([type=checkbox]),.gift-form select,.gift-form textarea{box-sizing:border-box;min-width:0;width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid #b5c4bb;border-radius:10px;background:#fff;color:#193c34;margin:0;box-shadow:0 1px 2px #173a2d05}.gift-form input:not([type=checkbox]),.gift-form select{height:52px;min-height:52px;max-height:52px;line-height:24px}.gift-form textarea{height:152px;min-height:120px;resize:vertical;line-height:1.6}.gift-form input::placeholder,.gift-form textarea::placeholder{color:#7b8b82;font-weight:400}.gift-form small{font-size:12px;line-height:1.5;font-weight:400;color:#65756c}.gift-optional{font-weight:400;color:#65756c}.gift-check{display:flex!important;align-items:center;gap:12px;padding:15px 16px;background:#edf3ed;border:1px solid #d6e0d5;border-radius:12px;margin:2px 0 24px;cursor:pointer}.gift-check input{flex:none;width:21px;height:21px;margin:0;accent-color:#204c40}.gift-check>span{line-height:1.5}.gift-check small{margin-left:6px}.gift-explainer{border-top:1px solid #d8ddd4;margin-top:26px;padding-top:22px}.gift-explainer h3{font-size:16px;color:#244b3d;margin:0 0 10px}.gift-explainer p{font-size:14px;color:#52655a;margin:8px 0}.gift-local{padding:12px 14px;background:#f3ecdb;border-radius:10px;font-size:12px;margin:20px 0 16px}.gift-form button,.gift-form .button{min-height:48px;margin:5px 6px 5px 0;white-space:normal;line-height:1.4}.gift-form [data-result]{padding:20px;border:1px solid #98b3a3;border-radius:14px;background:#edf3ed;margin-top:16px}.gift-form [data-result] input{font-size:13px}.gift-form [data-result] label{display:grid;gap:8px}.gift-form [data-status]{color:#264c3b}.gift-referral{position:fixed;bottom:16px;left:max(16px,10vw);right:16px;z-index:300;background:#fffcf2;color:#194036;border:1px solid #b58c45;border-radius:12px;padding:18px;box-shadow:0 8px 36px #0002;font-size:14px}.gift-form :focus-visible{outline:3px solid #ba914b;outline-offset:3px}@media(max-width:600px){.gift-fields{grid-template-columns:1fr;gap:20px}.gift-form{padding:20px}.gift-form button,.gift-form .button{width:100%;box-sizing:border-box;text-align:center}.gift-referral{left:60px;font-size:12px}.gift-check small{display:block;margin:2px 0 0}}[hidden]{display:none!important}
.gift-message-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.gift-form .gift-message-tools button{width:auto;min-height:36px;margin:0;padding:6px 10px;font-size:12px;color:#28513e;background:#edf3ed;border:1px solid #c6d5c8;border-radius:8px}
.gift-name-list{border:0;padding:0;margin:26px 0;min-width:0}.gift-name-list legend,.gift-custom h3{font-size:18px;font-weight:700;color:#20473d}.gift-name-list>p,.gift-custom p{font-size:14px;color:#52655a;margin:8px 0 16px}.gift-name-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin:0 0 14px}.gift-form .gift-name-row button{width:auto;margin:0;height:52px;padding:10px 16px;border:1px solid #b5c4bb;border-radius:10px;background:#edf3ed;color:#20473d}.gift-name-row button[aria-pressed=true]{background:#234f40;color:white}.gift-price{padding:20px;background:#edf3ed;border:1px solid #cedacb;border-radius:14px;margin:24px 0}.gift-price dl{margin:0}.gift-price dl>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0}.gift-price dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.gift-total{border-top:1px solid #b7cbb9;margin-top:10px;padding-top:15px!important;font-size:20px;font-weight:700}.gift-price .gift-tiers{font-size:12px;line-height:1.8;margin-bottom:0;color:#52655a}.gift-custom{border:1px solid #dfc795;border-radius:14px;padding:20px;background:#faf1df;margin-bottom:24px}.gift-form input[type=file]{height:auto;min-height:52px;max-height:none;padding:10px;font-size:13px}.gift-image-preview{padding:35px;text-align:center;color:#244b3d}.gift-image-preview img{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:auto;border-radius:14px}.gift-image-symbol{font-size:100px;color:#ba914b}.gift-result-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;border-bottom:1px solid #cbd7c9;padding:14px 0}.gift-result-row strong{min-width:80px}.gift-form .gift-result-row button{font-size:12px;min-height:36px;padding:6px 12px}@media(max-width:600px){.gift-price{padding:15px}.gift-custom{padding:15px}.gift-total{font-size:18px}.gift-name-row{gap:8px}}
@media(min-width:760px){.gift-name-list [data-names]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}}
#site-language{margin-left:auto;min-width:108px;max-width:160px;border:1px solid #d6bd87;border-radius:8px;background:#1c3348;color:#fff4d7;padding:8px 10px;font:inherit;font-size:14px;min-height:40px}.topbar{gap:14px}@media(max-width:600px){#site-language{max-width:120px;font-size:13px}.topbar .brand{flex-shrink:0}}
/* Buttons grow with translated text and never extend beyond their card. */
.gift-form button,.gift-form .button{box-sizing:border-box;max-width:100%;min-width:0;height:auto;min-height:48px;white-space:normal;overflow-wrap:anywhere;line-height:1.45;text-align:center;margin-inline:0;padding:12px 16px;flex-shrink:1}
.gift-form .gift-name-row{grid-template-columns:minmax(0,1fr) minmax(68px,auto);align-items:stretch}
.gift-form .gift-name-row button{align-self:end;height:auto;min-height:52px;padding:10px 12px}
.gift-form .gift-message-tools{align-items:flex-start;gap:10px}
.gift-form .gift-message-tools button{min-height:44px;max-width:100%;padding:10px 12px}
.gift-form .gift-result-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:stretch}
.gift-result-row>strong{grid-column:1/-1;min-width:0;overflow-wrap:anywhere}
.gift-result-row>a,.gift-form .gift-result-row>button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;min-height:48px;margin:0;padding:10px 12px;border:1px solid #b5c4bb;border-radius:10px;text-align:center;text-decoration:none;font-size:14px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.gift-result-row>a{color:#fff;background:#234f40;border-color:#234f40}
@media(max-width:600px){.gift-form>button,.gift-form [data-result]>button{width:100%;margin:8px 0}.gift-form .gift-message-tools{display:grid;grid-template-columns:minmax(0,1fr)}.gift-form .gift-message-tools button{width:100%}.gift-form .gift-result-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.gift-form{padding:16px}.gift-form .gift-name-row{grid-template-columns:minmax(0,1fr)}.gift-form .gift-name-row button{width:100%;min-height:44px}.gift-form button{font-size:14px}}

.gift-name-row .gift-field label:not(:first-child){margin-top:12px}.keychain-sample-name{white-space:pre-line}

.gift-copy-line{display:flex;align-items:stretch;gap:8px;min-width:0}.gift-copy-line input{flex:1;min-width:0;width:0}.gift-form .gift-copy-next{flex:0 1 125px;align-self:stretch;font-size:12px;line-height:1.25;padding:8px;white-space:normal;overflow-wrap:anywhere}.gift-copy-next:disabled{opacity:.45;cursor:default}@media(max-width:600px){.gift-copy-line{flex-wrap:wrap}.gift-copy-line input{flex-basis:100%;width:100%}.gift-form .gift-copy-next{flex-basis:100%;min-height:40px;width:100%}}

.keychain-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.keychain-heading h1{margin:0}.keychain-owner-login{font-size:14px;padding:10px 16px;border:1px solid #b7c8be;border-radius:10px;text-decoration:none;color:#234d40;background:#fffdf3;min-height:44px}

.topbar .header-owner{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:40px;padding:8px 14px;border:1px solid #d6bd87;border-radius:8px;color:#fff4d7;background:transparent;text-decoration:none;font:600 14px Arial,sans-serif}.topbar .header-owner:hover{background:#ffffff14}.topbar .header-owner:focus-visible{outline:2px solid #fff4d7;outline-offset:3px}@media(max-width:600px){.topbar{gap:8px}.topbar .header-owner{padding:8px 10px;font-size:13px}.topbar #site-language{min-width:80px;max-width:105px;margin-left:0}}@media(max-width:360px){.topbar{padding-left:10px;padding-right:10px;gap:6px}.topbar .brand{font-size:26px;gap:5px}.topbar .brand span{font-size:10px}.topbar #site-language{width:87px;padding:8px 5px}.topbar .header-owner{padding:8px}.topbar #menu-toggle{padding:8px}}

.topbar .header-owner{white-space:nowrap}.topbar #site-language{width:148px;max-width:148px}@media(max-width:600px){.topbar #site-language{width:132px;min-width:132px;max-width:132px}}@media(max-width:360px){.topbar{gap:4px;padding-left:8px;padding-right:8px}.topbar .brand{font-size:22px;gap:4px}.topbar .brand span{font-size:8px;letter-spacing:1px}.topbar #site-language{width:120px;min-width:120px;max-width:120px;font-size:12px}.topbar .header-owner{font-size:12px;padding:8px}}

/* One numbered row per keychain, with stable columns and clear mobile cards. */
.gift-name-list [data-names]{display:block!important}.engraving-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}.engraving-list-toolbar>span{font-weight:700;color:#20473d;background:#e7efe9;border-radius:20px;padding:6px 12px;font-size:14px}.engraving-list-toolbar small{max-width:350px}.engraving-list-scroll{max-height:590px;overflow:auto;overscroll-behavior:contain;border:1px solid #b9ccc2;border-radius:12px;background:#fff}.engraving-list-head,.gift-form .engraving-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 122px;gap:12px;padding:14px;align-items:center}.engraving-list-head{position:sticky;top:0;z-index:1;background:#e4ede7;border-bottom:1px solid #b9ccc2;color:#294d40;font-size:12px;font-weight:700;line-height:1.5}.gift-form .engraving-row{margin:0;border-bottom:1px solid #dce5df;background:#fff;box-shadow:inset 3px 0 transparent}.gift-form .engraving-row:nth-child(even){background:#f4f7f3}.gift-form .engraving-row:last-child{border-bottom:0}.gift-form .engraving-row.is-preview{box-shadow:inset 3px 0 #29634e}.gift-form .engraving-row:focus-within{background:#eef5ee}.engraving-row-number{align-self:start;padding-top:14px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:#5d7066}.engraving-cell{min-width:0;display:grid;gap:4px}.engraving-cell>label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gift-form .engraving-cell>input{height:46px;min-height:46px;max-height:46px;border-radius:7px;padding:10px;font-size:16px}.engraving-count{text-align:right;font-variant-numeric:tabular-nums}.engraving-actions{display:flex;flex-direction:column;gap:6px;align-self:start}.gift-form .engraving-actions button{width:100%;margin:0;min-height:40px;height:auto;max-height:none;padding:8px;font-size:12px;line-height:1.3;flex:none;border-radius:7px}.gift-form .engraving-actions button[aria-pressed=true]{background:#234f40;color:#fff}.gift-form .engraving-actions .gift-copy-next{background:transparent;border:1px solid #c9d7ce;color:#234f40;font-size:11px;overflow-wrap:normal;min-height:34px}.gift-form .engraving-actions .gift-copy-next:disabled{opacity:.45}
@media(max-width:700px){.engraving-list-head{display:none}.engraving-list-scroll{max-height:680px;border:0;border-radius:0;background:transparent}.gift-form .engraving-row{grid-template-columns:26px minmax(0,1fr);gap:10px;padding:14px;border:1px solid #c5d5ca!important;border-radius:12px;margin-bottom:12px}.engraving-row-number{grid-row:1/4;padding-top:0;background:#e6eee8;border-radius:20px;text-align:center;padding:4px 0;align-self:start}.engraving-cell{grid-column:2}.engraving-cell>label{position:static!important;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font-size:12px}.engraving-actions{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:stretch}.gift-form .engraving-actions button{flex:1 1 90px;min-height:42px;font-size:12px}.engraving-list-toolbar small{max-width:none}.engraving-list-toolbar{align-items:flex-start}}
