.ct-shipping-country {
	position: fixed;
	top: 0;
	right: max(12px, env(safe-area-inset-right));
	z-index: 9990;
	width: min(520px, calc(100vw - 24px));
	color: #493024;
	font-size: 14px;
	line-height: 1.6;
	pointer-events: none;
}
.admin-bar .ct-shipping-country { top: 32px; }
.ct-shipping-country details { pointer-events: auto; }
.ct-shipping-country details:not([open]) { width: fit-content; max-width: 100%; margin-left: auto; }
.ct-shipping-country summary { box-sizing: border-box; display: flex; align-items: center; gap: 8px; width: fit-content; max-width: 100%; min-height: 36px; margin-left: auto; padding: 6px 12px; border: 1px solid #cfad86; border-radius: 0 0 14px 14px; background: #fff7e9; color: #493024; box-shadow: 0 4px 16px #49302424; cursor: pointer; list-style: none; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.ct-shipping-country summary::-webkit-details-marker { display: none; }
.ct-shipping-country summary::marker { content: ""; }
.ct-shipping-country summary:hover { background: #f5e9d8; }
.ct-shipping-country__icon { display: flex; flex: 0 0 20px; color: #a95029; }
.ct-shipping-country__icon svg { width: 20px; height: 20px; }
.ct-shipping-country__arrow { flex-shrink: 0; font-size: 20px; line-height: 1; transition: transform 180ms; }
.ct-shipping-country details[open] .ct-shipping-country__arrow { transform: rotate(180deg); }
.ct-shipping-country__panel { box-sizing: border-box; max-height: calc(100vh - 76px); max-height: calc(100dvh - 76px); overflow-y: auto; overscroll-behavior: contain; padding: 20px; border: 1px solid #e4d0b7; border-radius: 14px 0 14px 14px; background: #fffaf2; box-shadow: 0 12px 32px #49302430; animation: ct-country-reveal 180ms ease-out; }
.admin-bar .ct-shipping-country__panel { max-height: calc(100dvh - 108px); }
.ct-shipping-country p { margin: 0 0 14px; }
.ct-shipping-country form { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.ct-shipping-country label { width: 100%; margin: 0; font-weight: 600; }
.ct-shipping-country select { flex: 1 1 180px; width: 100%; max-width: 100%; min-width: 0; min-height: 44px; padding-inline: 12px 32px; border: 1px solid #cdb79b; border-radius: 10px; background-color: #fff; color: #493024; }
.ct-shipping-country .button { min-height: 44px; padding: 10px 18px; border-radius: 10px; background: #204f66; color: #fff; }
.ct-shipping-country :is(summary, select, .button, a):focus-visible { outline: 3px solid #176d76; outline-offset: 2px; }
.ct-shipping-country__declaration { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e4d0b7; }
.ct-shipping-country__declaration h2 { margin: 0 0 10px; color: inherit; font-size: 16px; line-height: 1.4; }
.ct-shipping-country__declaration p { font-size: 13px; }
.ct-shipping-country__declaration a { color: #873d20; text-decoration: underline; }
.ct-overseas-notice { padding: 1rem; border-left: 3px solid #95643c; background: #f5f1eb; margin-block: 1rem; }
@keyframes ct-country-reveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 782px) {
	.admin-bar .ct-shipping-country { top: 46px; }
	.admin-bar .ct-shipping-country__panel { max-height: calc(100dvh - 122px); }
}
@media (max-width: 480px) {
	.ct-shipping-country__panel { padding: 16px; }
	.ct-shipping-country .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.ct-shipping-country__panel { animation: none; }
	.ct-shipping-country__arrow { transition: none; }
}

.ct-shipping-country__mobile-label { display: none; }
@media (max-width: 999px) {
	body .ct-shipping-country { top: 8px; right: 12px; width: min(380px, calc(100vw - 24px)); }
	body.admin-bar .ct-shipping-country { top: 40px; }
	.ct-shipping-country details > summary { max-width: min(180px, calc(100vw - 24px)); min-height: 36px; padding: 6px 10px; gap: 5px; border-radius: 999px; font-size: 11px; }
	.ct-shipping-country__desktop-label { display: none; }
	.ct-shipping-country__mobile-label { display: inline; white-space: nowrap; }
	.ct-shipping-country__label { display: flex; align-items: center; gap: 4px; min-width: 0; }
	.ct-shipping-country__label strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.ct-shipping-country__icon { flex-basis: 16px; }
	.ct-shipping-country__icon svg { width: 16px; height: 16px; }
	.ct-shipping-country__panel { margin-top: 6px; border-radius: 14px; }
}
@media (max-width: 782px) {
	body.admin-bar .ct-shipping-country { top: 54px; }
}
