/* Romper gift editorial: original photographs and page-local layout. */
.gr-main { --gr-ink:#383026; --gr-muted:#675d50; --gr-green:#405b3b; background:#fffdf9; color:var(--gr-ink); line-height:1.9; }
.gr-main * { box-sizing:border-box; }
.gr-main>section { padding-inline:0; }
.gr-main [id] { scroll-margin-top:110px; }
.gr-wrap { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.gr-section { padding-block:72px; }
.gr-soft { background:#f5f1e9; }
.gr-kicker { color:var(--gr-green); font-size:.8rem; letter-spacing:.08em; font-weight:600; margin-bottom:14px; }
.gr-main h1,.gr-main h2,.gr-main h3 { font-family:var(--serif); font-weight:500; text-wrap:balance; }
.gr-main h1 { font-size:clamp(2.3rem,4vw,3.6rem); line-height:1.5; margin-bottom:24px; }
.gr-main h2 { font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1.6; margin-bottom:22px; }
.gr-main h3 { font-size:1.25rem; line-height:1.6; margin-bottom:14px; }
.gr-main p { margin:0 0 18px; }
.gr-main a { color:var(--gr-green); text-underline-offset:.22em; }
.gr-hero { display:grid; grid-template-columns:1fr 1.05fr; align-items:center; gap:56px; padding-block:48px 64px; }
.gr-lead { color:var(--gr-muted); font-size:1.06rem; max-width:31em; }
.gr-links { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:26px; }
.gr-links a,.gr-help { display:inline-flex; align-items:center; min-height:48px; padding-block:10px; white-space:normal; }
.gr-links a { font-size:.95rem; }
.gr-main .gr-primary { background:var(--gr-green); color:#fffdf7; padding:12px 22px; border-radius:5px; text-decoration:none; font-weight:600; }
.gr-main a:focus-visible,.gr-main summary:focus-visible { outline:3px solid #405b3b; outline-offset:5px; }
.gr-photo { min-width:0; margin:0; }
.gr-photo picture { display:block; }
.gr-photo img { display:block; width:100%; height:auto; object-fit:contain; border-radius:3px; }
.gr-photo figcaption { color:var(--gr-muted); font-size:.8rem; line-height:1.8; margin-top:12px; }
.gr-heading { max-width:780px; margin-bottom:40px; }
.gr-heading p,.gr-garment p:not(.gr-kicker),.gr-detail p:not(.gr-kicker),.gr-color p:not(.gr-kicker) { color:var(--gr-muted); }
.gr-garment { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:48px; margin-bottom:52px; }
.gr-main .gr-note { font-size:.88rem; line-height:1.9; color:var(--gr-muted); border-left:2px solid #b9c2a5; padding-left:16px; }
.gr-details-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px 32px; }
.gr-detail { display:grid; grid-template-columns:1fr; gap:23px; align-content:start; min-width:0; }
.gr-detail>div { max-width:36em; }
.gr-detail .gr-kicker { font-size:.78rem; margin-bottom:10px; }
.gr-color { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.gr-spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:55px; margin-top:32px; }
.gr-contents,.gr-care { padding-left:1.2em; color:var(--gr-muted); }
.gr-contents li,.gr-care li { margin-bottom:12px; padding-left:4px; }
.gr-order-note { border-top:1px solid #ddd3c2; padding-top:30px; margin-top:28px; max-width:850px; }
.gr-order-note p { color:var(--gr-muted); }
.gr-faq { max-width:930px; }
.gr-faq details { border-top:1px solid #ddd3c2; }
.gr-faq details:last-child { border-bottom:1px solid #ddd3c2; }
.gr-faq summary { padding:17px 4px; min-height:48px; cursor:pointer; color:var(--gr-green); font-weight:600; }
.gr-faq details p { color:var(--gr-muted); padding:0 24px 10px; }
.gr-main .buy-section { padding:60px 20px; }
.gr-main .buy-card { max-width:880px; }
.gr-main .gr-buy-help { margin:20px 0 0; }
.gr-main .gr-buy-help a { font-size:.9rem; }
body:has(.gr-main) .modal-x,body:has(.gr-main) .qty-btn-m { min-width:44px; min-height:44px; }
body:has(.gr-main) .modal-photo { object-fit:contain; }
body:has(.gr-main) .modal { overflow:hidden; }
body:has(.gr-main) .modal-r { min-height:0; }
body:has(.gr-main) .modal .opt-lbl { display:block; }
body:has(.gr-main) .col-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:260px; }
body:has(.gr-main) .col-sw { width:100%; }
body:has(.gr-main) .col-sw img { object-fit:contain; }
body:has(.gr-main) .col-sw-stk { display:block; font-size:12px; line-height:1.6; text-align:center; padding:3px; color:#4e6143; }
body:has(.gr-main) .col-sw-nm { font-size:12px; line-height:1.7; }
body:has(.gr-main) .buy-bar-name { white-space:normal; line-height:1.5; }
@media(max-width:850px) {
 .gr-wrap { width:calc(100% - 40px); }
 .gr-hero,.gr-garment,.gr-color,.gr-spec-grid { gap:30px; }
 .gr-main h1 { font-size:2.5rem; }
}
@media(max-width:768px) {
 body:has(.gr-main) .modal { display:block; max-height:90dvh; overflow-y:auto; overscroll-behavior:contain; }
 body:has(.gr-main) .modal-l { display:flex; min-height:0; padding:18px; }
 body:has(.gr-main) .modal-photo { width:min(100%,260px); height:auto; max-height:none; }
 body:has(.gr-main) .modal-r { padding:24px; max-height:none; overflow:visible; }
}
@media(max-width:650px) {
 .gr-wrap { width:calc(100% - 36px); }
 .gr-section { padding-block:46px; }
 .gr-hero { grid-template-columns:1fr; padding-block:22px 42px; gap:25px; }
 .gr-hero-photo { grid-row:1; }
 .gr-main h1 { font-size:2rem; margin-bottom:17px; }
 .gr-main h2 { font-size:1.6rem; }
 .gr-lead { font-size:1rem; }
 .gr-heading { margin-bottom:28px; }
 .gr-garment,.gr-color,.gr-spec-grid,.gr-details-grid { grid-template-columns:1fr; gap:28px; }
 .gr-garment { margin-bottom:38px; }
 .gr-details-grid { gap:40px; }
 .gr-detail { gap:20px; }
 .gr-faq details p { padding-inline:4px; }
 .gr-main .buy-card { padding:36px 20px; }
 .gr-main .buy-card .product-name-part { white-space:normal; }
 body:has(.gr-main) .buy-bar { gap:14px; padding:10px 18px; }
 body:has(.gr-main) .buy-bar-name { font-size:13px; }
 body:has(.gr-main) .buy-bar-price { font-size:18px; }
 body:has(.gr-main) .buy-bar-btn { padding:10px 15px; font-size:14px; flex-shrink:0; }
}
