    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --primary: #6B2D3E;
      --primary-light: #f5eaed;
      --charcoal: #2C1A20;
      --off-white: #FDFAF9;
      --sand: #F5EFE8;
      --sand-dark: #E8DDD4;
      --gold: #C9A84C;
      --muted: #9A8A88;
    }
    body { font-family: 'DM Sans', sans-serif; background: var(--sand); color: var(--charcoal); min-height: 100vh; cursor:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+CiAgPGRlZnM+PGNsaXBQYXRoIGlkPSJjbCI+PGNpcmNsZSBjeD0iMTAiIGN5PSI5IiByPSI5Ii8+PC9jbGlwUGF0aD48L2RlZnM+CiAgPGltYWdlIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBWUFBQUJ6ZW5yMEFBQUhya2xFUVZSNDJyMVhXMjlVMXhYKzlqNW5QTDVoUERZdWw0WUFEcFJpS0UyYXF0QW9qYVlrU3BxbVZhTXFpYXIyRitTaFNrVGYraktsRVpUbmxycnBTOU9FcHBHY2dtZ1RrUWhzT3BFYUtPRVNDR0J1TnRnWUUzdkdZM3ZHTStlMkwxOGZqajIyZ2FSR3FicWxKWjNaYzg1ZTMxN2YybnQ5UytBZUJqTVptVTFEcHBFRzBta3JIZGVDZ0xWYUlwdVZXV1NSenNLS0hUc3MvcGVqcSt0NWg2UmNNRkJTZG5VOTd5emtYZmZ6RjRJQXVxUVFMeGhBNE8rN3NQYitqVC9kVnQrOGJtdXlZV203ZE90U0pJUTEzb1QyeC9yTFk1ZU8zenozMWhFaHhOVVpJSUNnRU9BOTc1cVpqQVRpVFIvK3cvcDAzNGM3L3pFK2NOaW56cEhVakllZE5zWnpPc2ZDUUhmUWQzVG5PejJkSGR2aWxTVElqTHpua0FQQWI1NUJxcmQ3KzU4cW84ZEpraVlLR0pRTHlpL2xsRi9LNldBcWIyTExhYitVVTBHNW9Fd1VrQ1M5M0VlODBMMzk5Y3lUYUptNzVvS2RkMlVhT3daUC8vNGlHVkdGdnFsTURPdWdQR1pONkpOSzNkVk02RE1vRjJ4bGNsaXJ3RE5reE1GVG5aZjNaUm8yTFFoRUhDcUJycDB0SFRmUC9YbVVKTDFTTHZKTE9WSkZwRkswVVVnVCtMUmhRRE50Tmdwb281QTJDcXRnZ3FrY3ZWSXVJc21iNTkvSTdkdTVkQk1nUHBzT0VvS2s3SHdScVd2SGY5dFBrcFhKVzByNVJWTHIySEVZa0RxS0tUZUt0SnFrblFlZ0NrUnJLci9FeXVRdFJaTFhUKzdwZi9ORnBFaktPTG52Q0gyWEF3QWZIL3o1bTZTaVg4cEh5aXVTU3NjT3dvQ2tvZllxSEw5MGhaUDlBNXk0MHM5aS8vVVloSXB1QXhHUUtnYmhGVWNWcVhubTRNdC9uZXZyTnQ0RkR1L1ovR2g1OUFSMUZDcS9ORXBxTSt2Y0dsWnVqZkJLMXpzc0RnNVIreDZWNS9IV3Y0N3orb0gzYWFMb2ppallLQ0MxWmpDVm80NENWY21mWXMrckR6MEdpUG41TUhQSjlQN3pWd2VuUTY5bitMWlJTS3NpYXMvajJkKzl4dUsxZ2ZnQXFwQldoU1RKcTI4ZDRNREJucGlaTUxoTEpCUXJrOE9hcE8zTnZ2TCtYSitTbVl3VVF0cS9aUmEzZituK1I1NHdLcVRqMUZRVGhkWkN1QW5rVG53Q3B6YUpwaldyWUFNZklJRnBLcGR1ZVJEakY2NUNsYWNnWFFlY2QrL0U3N2h1cldPaUVFdFhmWHZiL2xlYUhoQkNXbVl5VWlJTkNSQXJOejc1Vk91cWh4STY4a3lpcGtHUU52WXhQY3JESTJpOGJ4a3F0MFl3OU1GeFFMb3dTbVBnWUErc0pTQUUvUHc0S0owWW5KaWI0Qlp1b2g1YVZVekx5Z2NUOTNWODd5bUFRQnBTQW1rQVFHUGJocTF3VWlBMXBIUUJFTktaUFRFMWpRMWdwRkM1UG9RZ1B3RklCMnFxak9MbDY2aHBYb1MxenoyTm1rV05FQkNRamd1U0lJbVpZRWpwZ3RZQVRncUxXamR1aldmVGtFaW5MUURVTlN4dEJ4d0lDQUVBUWpvb2wwclZZQzU3ZUJQS1E1OWlJbCtBVTVlRUVFQmQweUxVTFc2Q0l3UVdyVnFKbWxRVEJxOWV3ZVQ0QkdRaUFlbTZFSzZER1JSQ1FBQVN5ZnEyOXRoLzJycFN1aFlBcEZ2ZkRCQWdCS1NEY21rU3ZlY3VZUDNHRFFqeWVjQjFZTzVydzRtMzM4RjNmdndEakk3bDRTcU5zZkZ4MUgwNmd0b3dnQUF3UGo0QmE0bElSVWk0THNJZ3hOSXZyNWltVXdpQWNCTDFxZW1vMkdvMUZQT3VCc0pvZzJVcmxzTXJWekF5TW9KVnExZGg1V05iRVV4VlVPd2ZSTi9ZS05vNzFvUFdJbGxmajJSVEk4WnZqV0RaaXVWSTF0WWk5SDFNRlV1b3JhMjk0ODRSUWxTenk3VldTeUdFMVZHbENBaEFrTEFXaTVzWFkvR1NKUmdmR2NHYTlqVm9ibXNESUxCdXcxY3hKdnZSdW1rdEVzVXlmT2xpNnQ5bmdUVXJzZnBiWDQrakxlSk42RWpCZFdQdWhYRGlTUWhvNVJXQldNaElaTE1TQUNJdjF3OFljUG9Na1JZMkN0SGNta0p6U3dvbURFQVNVUmhDdUE1V2I5NkVGVnUvQVpHc3daSXRtMUVjR01LbDEvZkRXZ3RyTkdnTTNFU2NqRE5IZ2lBQmk2QXllZzBBa00xS0NXUUJBS1d4aThkZ0ppQ2tDMnMxQUFFaFlpTlpmWTUveDhWREJ5RWdKWktwWnF6N3lZK2d3d0NEaHo2QVRDUkJhNmVkeDhOYUhVZkJUS0JjdUh3c25zMUNJZ3NMQ0F5ZFAzU29jT09NY212cUhhMDhDaUZuMG1IV0FGaGpZSlNLVTFvS1dLMWhJd1dRV1BmYzl6RjI1aUw4MFJ4a3NxNzZqUkFTV25sd0UvVk80Y1laUGZCSjl5RkFBRmxZVit6WVlVbEtJY1MxM3ZTeDd0WTFUendkZWdWVGsyeHk1aEE2bmNBVzFoaElSNExHUVBzaG5OcWFPQkswU0M1cFFmc1BIOGVON2creC9KRnZvcTR0QlRkWkF3RFFPakExRFMweWYrUG9rUmQyNVB1bWZkcjV4ZWlQRHo5YXlaMmtqa0lWVE9WbUsrR2N1OTBFZm56ZmgwSDEyUVIrL0g4WXE2RndjcEpUUThQVVhvWFVoc0ZVamlvTWxKYy9mZmRpTkxkRW5uM3ZwYjJrcGwvS1Jjb3YzUWxDM2FYcXpaa3pZUkJyQlpxcUpvakxzZUdaOTE1Kzg2N2xlSzRnZWUwbE5GLy9hRS9mckNBcFZRWEpnaTJjMVFLVnlXRkZrZ09uT3ZzNlAwK1F6RW95aWYyN1d6YmNQTCszS3NsaU9oVG5sZWg1MUh5V0pCdU5TSEw0L0Y5eUIzYTJkQ3hJSWM5dzgvYXZHellPbnU2OFRFWlVnV2NxazhNNkxCZm1pRkk5UjVEcXFpZ055d1ZibVpnUnBZcURINzk2WmQvT0JZclMyMEhzZWhhdHZkM2IzL0J5SjJMbEgvbFZXUjVNM1NuTC9YSkI2ZEFuU2ZyNWsrenQrY1hlWGMraTlaNmMzMDRIQVBSMGRteTdkblQzdTRXQjdwQW0vOW1OaVJuaitFQlBlTzNZN25lUHZQcTF4eGZTbUlqLzNwcFJ6SnpYL2J2d2xUV2JmdmJkeHRUNkxZbUd0Z2NjMlpBQ0FHTzh5Y2diN2ZjbStvNFBuOTk3NUpsZjRzb1hiczMrWDgycCtFTHQrYlNXbUduUGdTeHdqKzM1ZndENGRmY3ZLK042VUFBQUFBQkpSVTVFcmtKZ2dnPT0iIHg9IjEiIHk9IjAiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgY2xpcC1wYXRoPSJ1cmwoI2NsKSIvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iOSIgcj0iOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzlBODRDIiBzdHJva2Utd2lkdGg9IjEiLz4KICA8bGluZSB4MT0iMTciIHkxPSIxNiIgeDI9IjM2IiB5Mj0iMzYiIHN0cm9rZT0iIzdDM0Q1QSIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgogIDxjaXJjbGUgY3g9IjM2IiBjeT0iMzYiIHI9IjIuMiIgZmlsbD0iI0M5QTg0QyIvPgogIDxjaXJjbGUgY3g9IjMiIGN5PSIyMCIgcj0iMS4yIiBmaWxsPSIjRThCNEM4IiBvcGFjaXR5PSIwLjgiLz4KICA8Y2lyY2xlIGN4PSIyMyIgY3k9IjIiIHI9IjEiIGZpbGw9IiNFOEI0QzgiIG9wYWNpdHk9IjAuOCIvPgo8L3N2Zz4=") 10 9, auto; }
a,button,[onclick],.product-card,.back-link,.share-btn,.sort-select,.banner-card{cursor:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+CiAgPGRlZnM+PGNsaXBQYXRoIGlkPSJjbCI+PGNpcmNsZSBjeD0iMTAiIGN5PSI5IiByPSI5Ii8+PC9jbGlwUGF0aD48L2RlZnM+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI5IiByPSI5IiBmaWxsPSJyZ2JhKDIwMSwxNjgsNzYsMC4xNSkiLz4KICA8aW1hZ2UgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FZQUFBQnplbnIwQUFBSHJrbEVRVlI0MnIxWFcyOVUxeFgrOWo1blBMNWhQRFl1bDRZQURwUmlLRTJhcXRBb2phWWtTcHFtVmFNcWlhcjJGK1NoU2tUZitqS2xFWlRubHJycFM5T0VwcEdjZ21nVGtRaHNPcEVhS09FU0NHQnVOdGdZRTN2R1kzdkdNK2UyTDE4ZmpqMjJnYVJHcWJxbEpaM1pjODVlMzE3ZjJudDlTK0FlQmpNWm1VMURwcEVHMG1rckhkZUNnTFZhSXB1VldXU1J6c0tLSFRzcy9wZWpxK3Q1aDZSY01GQlNkblU5N3l6a1hmZnpGNElBdXFRUUx4aEE0Tys3c1BiK2pUL2RWdCs4Ym11eVlXbTdkT3RTSklRMTNvVDJ4L3JMWTVlTzN6ejMxaEVoeE5VWklJQ2dFT0E5NzVxWmpBVGlUUi8rdy9wMDM0YzcvekUrY05pbnpwSFVqSWVkTnNaek9zZkNRSGZRZDNUbk96MmRIZHZpbFNUSWpMem5rQVBBYjU1QnFyZDcrNThxbzhkSmtpWUtHSlFMeWkvbGxGL0s2V0FxYjJMTGFiK1VVMEc1b0V3VWtDUzkzRWU4MEwzOTljeVRhSm03NW9LZGQyVWFPd1pQLy80aUdWR0Z2cWxNRE91Z1BHWk42Sk5LM2RWTTZETW9GMnhsY2xpcndETmt4TUZUblpmM1pSbzJMUWhFSENxQnJwMHRIVGZQL1htVUpMMVNMdkpMT1ZKRnBGSzBVVWdUK0xSaFFETnROZ3BvbzVBMkNxdGdncWtjdlZJdUlzbWI1OS9JN2R1NWRCTWdQcHNPRW9LazdId1JxV3ZIZjl0UGtwWEpXMHI1UlZMcjJIRVlrRHFLS1RlS3RKcWtuUWVnQ2tScktyL0V5dVF0UlpMWFQrN3BmL05GcEVqS09MbnZDSDJYQXdBZkgvejVtNlNpWDhwSHlpdVNTc2NPd29Da29mWXFITDkwaFpQOUE1eTQwczlpLy9VWWhJcHVBeEdRS2diaEZVY1ZxWG5tNE10L25ldnJOdDRGRHUvWi9HaDU5QVIxRkNxL05FcHFNK3ZjR2xadWpmQksxenNzRGc1Uit4NlY1L0hXdjQ3eitvSDNhYUxvamlqWUtDQzFaakNWbzQ0Q1ZjbWZZcytyRHowR2lQbjVNSFBKOVA3elZ3ZW5RNjluK0xaUlNLc2lhcy9qMmQrOXh1SzFnZmdBcXBCV2hTVEpxMjhkNE1EQm5waVpNTGhMSkJRcms4T2FwTzNOdnZMK1hKK1NtWXdVUXRxL1pSYTNmK24rUjU0d0txVGoxRlFUaGRaQ3VBbmtUbndDcHphSnBqV3JZQU1mSUlGcEtwZHVlUkRqRjY1Q2xhY2dYUWVjZCsvRTc3aHVyV09pRUV0WGZYdmIvbGVhSGhCQ1dtWXlVaUlOQ1JBck56NzVWT3VxaHhJNjhreWlwa0dRTnZZeFBjckRJMmk4YnhrcXQwWXc5TUZ4UUxvd1NtUGdZQStzSlNBRS9QdzRLSjBZbkppYjRCWnVvaDVhVlV6THlnY1Q5M1Y4N3ltQVFCcFNBbWtBUUdQYmhxMXdVaUExcEhRQkVOS1pQVEUxalExZ3BGQzVQb1FnUHdGSUIycXFqT0xsNjZocFhvUzF6ejJObWtXTkVCQ1FqZ3VTSUltWllFanBndFlBVGdxTFdqZHVqV2ZUa0VpbkxRRFVOU3h0Qnh3SUNBRUFRam9vbDByVllDNTdlQlBLUTU5aUlsK0FVNWVFRUVCZDB5TFVMVzZDSXdRV3JWcUptbFFUQnE5ZXdlVDRCR1FpQWVtNkVLNkRHUlJDUUFBU3lmcTI5dGgvMnJwU3VoWUFwRnZmREJBZ0JLU0RjbWtTdmVjdVlQM0dEUWp5ZWNCMVlPNXJ3NG0zMzhGM2Z2d0RqSTdsNFNxTnNmRngxSDA2Z3Rvd2dBQXdQajRCYTRsSVJVaTRMc0lneE5JdnI1aW1Vd2lBY0JMMXFlbW8yR28xRlBPdUJzSm9nMlVybHNNclZ6QXlNb0pWcTFkaDVXTmJFVXhWVU93ZlJOL1lLTm83MW9QV0lsbGZqMlJUSThadmpXRFppdVZJMXRZaTlIMU1GVXVvcmEyOTQ4NFJRbFN6eTdWV1N5R0UxVkdsQ0FoQWtMQVdpNXNYWS9HU0pSZ2ZHY0dhOWpWb2Jtc0RJTEJ1dzFjeEp2dlJ1bWt0RXNVeWZPbGk2dDluZ1RVcnNmcGJYNCtqTGVKTjZFakJkV1B1aFhEaVNRaG81UldCV01oSVpMTVNBQ0l2MXc4WWNQb01rUlkyQ3RIY21rSnpTd29tREVBU1VSaEN1QTVXYjk2RUZWdS9BWkdzd1pJdG0xRWNHTUtsMS9mRFdndHJOR2dNM0VTY2pETkhnaUFCaTZBeWVnMEFrTTFLQ1dRQkFLV3hpOGRnSmlDa0MyczFBQUVoWWlOWmZZNS94OFZEQnlFZ0paS3BacXo3eVkrZ3d3Q0RoejZBVENSQmE2ZWR4OE5hSFVmQlRLQmN1SHdzbnMxQ0lnc0xDQXlkUDNTb2NPT01jbXZxSGEwOENpRm4wbUhXQUZoallKU0tVMW9LV0sxaEl3V1FXUGZjOXpGMjVpTDgwUnhrc3E3NmpSQVNXbmx3RS9WTzRjWVpQZkJKOXlGQUFGbFlWK3pZWVVsS0ljUzEzdlN4N3RZMVR6d2RlZ1ZUazJ4eTVoQTZuY0FXMWhoSVI0TEdRUHNobk5xYU9CSzBTQzVwUWZzUEg4ZU43Zyt4L0pGdm9xNHRCVGRaQXdEUU9qQTFEUzB5ZitQb2tSZDI1UHVtZmRyNXhlaVBEejlheVoya2prSVZUT1ZtSytHY3U5MEVmbnpmaDBIMTJRUisvSDhZcTZGd2NwSlRROFBVWG9YVWhzRlVqaW9NbEpjL2ZmZGlOTGRFbm4zdnBiMmtwbC9LUmNvdjNRbEMzYVhxelprellSQnJCWnFxSm9qTHNlR1o5MTUrODY3bGVLNGdlZTBsTkYvL2FFL2ZyQ0FwVlFYSmdpMmMxUUtWeVdGRmtnT25PdnM2UDArUXpFb3lpZjI3V3piY1BMKzNLc2xpT2hUbmxlaDUxSHlXSkJ1TlNITDQvRjl5QjNhMmRDeElJYzl3OC9hdkd6WU9udTY4VEVaVWdXY3FrOE02TEJmbWlGSTlSNURxcWlnTnl3VmJtWmdScFlxREg3OTZaZC9PQllyUzIwSHNlaGF0dmQzYjMvQnlKMkxsSC9sVldSNU0zU25ML1hKQjZkQW5TZnI1ayt6dCtjWGVYYytpOVo2YzMwNEhBUFIwZG15N2RuVDN1NFdCN3BBbS85bU5pUm5qK0VCUGVPM1k3bmVQdlBxMXh4ZlNtSWovM3BwUnpKelgvYnZ3bFRXYmZ2YmR4dFQ2TFltR3RnY2MyWkFDQUdPOHljZ2I3ZmNtK280UG45OTc1SmxmNHNvWGJzMytYODJwK0VMdCtiU1dtR25QZ1N4d2orMzVmd0Q0ZGZjdksrTjZVQUFBQUFCSlJVNUVya0pnZ2c9PSIgeD0iMSIgeT0iMCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBjbGlwLXBhdGg9InVybCgjY2wpIi8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI5IiByPSI5IiBmaWxsPSJub25lIiBzdHJva2U9IiNDOUE4NEMiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgPGxpbmUgeDE9IjE3IiB5MT0iMTYiIHgyPSIzNiIgeTI9IjM2IiBzdHJva2U9IiM3QzNENUEiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8Y2lyY2xlIGN4PSIzNiIgY3k9IjM2IiByPSIyLjIiIGZpbGw9IiNDOUE4NEMiLz4KICA8Y2lyY2xlIGN4PSIyIiBjeT0iMTgiIHI9IjEuNSIgZmlsbD0iI0M5QTg0QyIgb3BhY2l0eT0iMC45Ii8+CiAgPGNpcmNsZSBjeD0iMjIiIGN5PSIyIiByPSIxLjIiIGZpbGw9IiNFOEI0QzgiIG9wYWNpdHk9IjAuOCIvPgogIDxjaXJjbGUgY3g9IjI2IiBjeT0iMjYiIHI9IjAuOSIgZmlsbD0iI0U4QjRDOCIgb3BhY2l0eT0iMC43Ii8+Cjwvc3ZnPg==") 10 9, auto;}
input,textarea,select{cursor:text;}

    /* ── Header ── */
    header {
      background: var(--charcoal); padding: 13px 20px;
      display: flex; align-items: center; justify-content: space-between;
      position: sticky; top: 0; z-index: 100;
    }
    .hdr-left { display: flex; align-items: center; gap: 10px; }
    .hdr-logo { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
    .hdr-wordmark { font-family: 'Cormorant Garamond', serif; font-size: 16px; color: var(--off-white); text-decoration: none; letter-spacing: 0.02em; }
    .hdr-wordmark em { color: var(--gold); font-style: italic; }
    .back-link { font-size: 11px; color: var(--muted); text-decoration: none; letter-spacing: 0.06em; display: flex; align-items: center; gap: 4px; }
    .back-link:hover { color: var(--off-white); }

    /* ── States ── */
    .state-screen {
      display: flex; align-items: center; justify-content: center;
      min-height: 60vh; flex-direction: column; gap: 12px;
      color: var(--muted); font-size: 13px; text-align: center; padding: 20px;
    }
    .state-screen a { color: var(--primary); text-decoration: none; font-size: 12px; margin-top: 4px; }
    .state-screen a:hover { text-decoration: underline; }
    .spinner {
      width: 32px; height: 32px; border: 2px solid var(--sand-dark);
      border-top-color: var(--primary); border-radius: 50%;
      animation: spin .8s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    /* ── Product Page ── */
    #productPage { display: none; max-width: 480px; margin: 0 auto; padding-bottom: 48px; }

    .product-image-wrap {
      position: relative; width: 100%; aspect-ratio: 1;
      background: var(--primary-light); overflow: hidden;
    }
    .product-image-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .new-badge {
      position: absolute; top: 12px; left: 12px;
      background: var(--gold); color: var(--charcoal);
      font-size: 9px; font-weight: 700; letter-spacing: 0.1em;
      padding: 3px 8px; border-radius: 10px;
    }
    .oos-overlay {
      position: absolute; inset: 0; background: rgba(44,26,32,.5);
      display: flex; align-items: center; justify-content: center;
    }
    .oos-overlay span {
      background: var(--charcoal); color: var(--off-white);
      font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
      padding: 8px 20px; border-radius: 4px;
    }

    .product-info { padding: 20px 16px; }
    .product-brand { font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; text-decoration: none; display: block; }
    .product-brand:hover { text-decoration: underline; }
    .product-name { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 500; line-height: 1.3; color: var(--charcoal); margin-bottom: 4px; }
    .product-type { font-size: 11px; color: var(--muted); margin-bottom: 14px; }
    .product-price { font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 500; color: var(--primary); margin-bottom: 8px; }
    .stock-status { font-size: 11px; margin-bottom: 20px; }
    /* pre-line keeps line breaks so spec-style descriptions (Material: / Size: / …) render as a list */
    .product-desc { font-size: 12.5px; color: var(--charcoal); opacity: .78; line-height: 1.75; margin: -8px 0 20px; max-width: 46ch; white-space: pre-line; }
    .stock-low  { color: #B45309; }
    .stock-ok   { color: #065F46; }
    .stock-none { color: #991B1B; }

    .qty-row { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
    .qty-label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
    .qty-ctrl { display: flex; align-items: center; gap: 12px; }
    .qty-btn {
      width: 32px; height: 32px; border-radius: 50%;
      border: 0.5px solid var(--sand-dark); background: var(--off-white);
      font-size: 18px; line-height: 1; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s;
    }
    .qty-btn:hover:not(:disabled) { background: var(--sand-dark); }
    .qty-val { font-size: 15px; font-weight: 500; min-width: 24px; text-align: center; }

    .action-row { display: flex; gap: 10px; align-items: stretch; }
    .btn-add-cart {
      flex: 1; padding: 14px; background: var(--primary); color: var(--off-white);
      border: none; border-radius: 6px; font-family: 'DM Sans', sans-serif;
      font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
      cursor: pointer; transition: opacity .2s;
    }
    .btn-add-cart:hover:not(:disabled) { opacity: 0.88; }
    .btn-add-cart:disabled { background: var(--sand-dark); color: var(--muted); cursor: not-allowed; }
    .btn-wa {
      width: 48px; background: #25D366; border: none; border-radius: 6px;
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      transition: opacity .2s; flex-shrink: 0;
    }
    .btn-wa:hover { opacity: 0.88; }

    .product-divider { border: none; border-top: 0.5px solid var(--sand-dark); margin: 20px 16px; }
    .product-meta { padding: 0 16px 4px; }
    .meta-row { display: flex; justify-content: space-between; align-items: flex-start; font-size: 12px; padding: 10px 0; border-bottom: 0.5px solid var(--sand-dark); }
    .meta-row:last-child { border-bottom: none; }
    .meta-label { color: var(--muted); }
    .meta-val { color: var(--charcoal); font-weight: 500; text-align: right; max-width: 60%; }

    /* ── Share strip ── */
    .share-strip {
      padding: 14px 16px 0;
      display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--muted);
    }
    .share-btn {
      padding: 6px 12px; background: var(--off-white); border: 0.5px solid var(--sand-dark);
      border-radius: 16px; font-size: 11px; cursor: pointer; display: flex; align-items: center; gap: 5px;
      color: var(--charcoal); transition: border-color .15s;
    }
    .share-btn:hover { border-color: var(--primary); color: var(--primary); }

    /* ── Checkout Modal ── */
    .modal-overlay {
      position: fixed; inset: 0; background: rgba(44,26,32,.6);
      z-index: 300; display: none; align-items: flex-end; padding: 0;
    }
    @media (min-width: 500px) { .modal-overlay { align-items: center; padding: 20px; } }
    .modal-overlay.open { display: flex; }
    .modal-box {
      background: var(--off-white); border-radius: 12px 12px 0 0; width: 100%;
      max-height: 92vh; overflow-y: auto;
    }
    @media (min-width: 500px) { .modal-box { border-radius: 12px; max-width: 420px; margin: auto; } }
    .modal-hdr {
      padding: 18px 20px; border-bottom: 0.5px solid var(--sand-dark);
      display: flex; justify-content: space-between; align-items: center;
      position: sticky; top: 0; background: var(--off-white); z-index: 1;
    }
    .modal-title { font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 400; }
    .modal-close { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--muted); padding: 0 4px; line-height: 1; }
    .modal-body { padding: 20px; display: flex; flex-direction: column; gap: 14px; }

    .field-label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 5px; }
    .field-input {
      width: 100%; padding: 11px 13px; border: 0.5px solid var(--sand-dark);
      border-radius: 6px; font-family: 'DM Sans', sans-serif; font-size: 13px;
      background: var(--sand); color: var(--charcoal);
    }
    .field-input:focus { outline: none; border-color: var(--primary); }
    .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

    .summary-box {
      background: var(--sand); border-radius: 8px; padding: 14px;
      font-size: 12px; line-height: 1.9; border: 0.5px solid var(--sand-dark);
    }
    .summary-box-title { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .summary-row { display: flex; justify-content: space-between; }
    .summary-divider { border: none; border-top: 0.5px solid var(--sand-dark); margin: 8px 0; }
    .summary-total { display: flex; justify-content: space-between; font-size: 14px; font-weight: 500; color: var(--primary); }
    .summary-saving { font-size: 10px; color: #065F46; margin-top: 4px; }

    .voucher-row { display: flex; gap: 8px; }
    .voucher-btn {
      padding: 11px 16px; background: var(--charcoal); color: var(--off-white);
      border: none; border-radius: 6px; font-size: 12px; cursor: pointer; white-space: nowrap;
    }
    .voucher-msg { font-size: 11px; margin-top: 5px; }
    .voucher-ok  { color: #065F46; }
    .voucher-err { color: #991B1B; }

    .section-label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
    .option-list { display: flex; flex-direction: column; gap: 8px; }
    .option-row {
      display: flex; align-items: center; gap: 10px; padding: 10px 12px;
      border: 0.5px solid var(--sand-dark); border-radius: 6px; cursor: pointer;
    }
    .option-row.selected { border-color: var(--primary); background: var(--primary-light); }
    .option-row input[type=radio] { accent-color: var(--primary); flex-shrink: 0; }
    .option-info { flex: 1; }
    .option-name { font-size: 12px; font-weight: 500; }
    .option-desc { font-size: 10px; color: var(--muted); margin-top: 1px; }
    .option-price { font-size: 12px; font-weight: 500; color: var(--primary); white-space: nowrap; }

    .btn-place-order {
      width: 100%; padding: 14px; background: var(--primary); color: var(--off-white);
      border: none; border-radius: 6px; font-family: 'DM Sans', sans-serif;
      font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
      cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
      transition: opacity .2s;
    }
    .btn-place-order:hover:not(:disabled) { opacity: 0.88; }
    .btn-place-order:disabled { opacity: 0.5; cursor: not-allowed; }

    /* ── Success Modal ── */
    .success-inner { padding: 36px 24px; text-align: center; }
    .success-icon {
      width: 64px; height: 64px; border-radius: 50%; background: #D1FAE5;
      display: flex; align-items: center; justify-content: center; margin: 0 auto 16px;
    }
    .success-icon svg { width: 28px; height: 28px; stroke: #065F46; stroke-width: 2.5; fill: none; }
    .success-title { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; margin-bottom: 8px; }
    .success-desc { font-size: 12px; color: var(--muted); margin-bottom: 24px; line-height: 1.7; }
    .order-ref-box {
      background: var(--sand); border: 0.5px solid var(--sand-dark); border-radius: 8px;
      padding: 14px; margin-bottom: 20px;
    }
    .order-ref-id { font-size: 18px; font-weight: 500; color: var(--primary); letter-spacing: 0.06em; margin-bottom: 4px; }
    .order-ref-note { font-size: 11px; color: var(--muted); }
    .btn-wa-confirm {
      width: 100%; padding: 13px; background: #25D366; color: #fff;
      border: none; border-radius: 6px; font-size: 12px; letter-spacing: 0.08em;
      cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
      margin-bottom: 10px; text-decoration: none;
    }
    .btn-continue {
      display: block; width: 100%; padding: 12px; background: none; color: var(--muted);
      border: 0.5px solid var(--sand-dark); border-radius: 6px; font-size: 12px;
      cursor: pointer; text-decoration: none; text-align: center;
    }
    .btn-continue:hover { border-color: var(--primary); color: var(--primary); }

    /* ── Toast ── */
    .toast {
      position: fixed; bottom: 24px; left: 50%;
      transform: translateX(-50%) translateY(80px);
      background: var(--charcoal); color: var(--off-white);
      padding: 10px 20px; border-radius: 20px; font-size: 12px;
      z-index: 999; transition: transform .3s; white-space: nowrap; pointer-events: none;
    }
    .toast.show { transform: translateX(-50%) translateY(0); }