@import "oc-theme-base.css";

/* Root variables now injected dynamically via PHP (oc_output_design_css_vars) */
/* Fallbacks kept minimal for safety if PHP injection fails */
:root { --oc-primary-color:#233b68; --oc-link-color:#0d6efd; }

body { font-size: var(--oc-font-size-base,16px); line-height: var(--oc-line-height,1.8); }

.text-primary-color{
	color: var(--oc-primary-color);
}
.clear-fix { clear: both; }

a {
	text-decoration: none;
	color: var(--oc-link-color);;
}
a:hover {
	text-decoration: none;
}
img {
	max-width: 100%;
}

.bg-image {
	z-index: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.text-bg-top {
	z-index: 0;
	height: 200px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.text-bg-top .caption h1,
.text-bg-top .caption h2 {
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
}

.content-none {
    text-align: center;
    font-size: 20px;
    padding: 80px 10px;
}
.content-none .error-number {
    font-size: 70px;
}
.content-none .content-none-btn {
    margin: 20px auto;
    text-align: center;
}

/* OC Button Style */
.site-btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 375px;
    height: 73px;
    max-width: 90%;
    border: 1px solid #fff;
    color: #fff;
    background-color: transparent;
    transition: all 0.5s;
}
.site-btn {
    color: var(--oc-primary-color);
    border-color: var(--oc-primary-color);
}

/* END - OC Button Style */

/* OC Modal Style */
.modal-design {
	height: 80vh;
	overflow: scroll;
	margin: 15% 0 10% 0;
	border-radius: unset;
} 
.modal-dialog{
	max-width: 800px;
	padding: 1rem;
}

@media (min-width: 576px){
	.modal-dialog {
		max-width: 500px;
		margin: 1.75rem auto;
	}
}

.close-btn {
	position: fixed;
	right: 0x;
	top: 25px;
}
.modal-side-margin {
	margin: 0;
}

.modal-body-design {
	padding: 0;
}

.round_btn {
	display: block;
	width: 45px;
	height: 45px;
	border: 2px solid #AA8400; /* 枠の調整 */
	border-radius: 50%;  /* 丸みの度合い */
	background: #fff; /* ボタンの背景色 */
}

.round_btn::before, .round_btn::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 3px; /* 棒の幅（太さ） */
	height: 22px; /* 棒の高さ */
	background: #AA8400; /* バツ印の色 */
}

.round_btn::before {
	transform: translate(-50%,-50%) rotate(45deg);
}

.round_btn::after {
	transform: translate(-50%,-50%) rotate(-45deg);
}

/* END - OC Modal Style */

/* Generic Page Template Styles */
.oc-page-hero {
	position: relative;
	min-height: 220px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, rgba(35,59,104,0.9), rgba(35,59,104,0.65)), url('../img/top-main.jpg') center/cover no-repeat;
	color: #fff;
	margin-bottom: 2.5rem;
}
.oc-page-hero__inner { position: relative; z-index: 2; }
.oc-page-hero__title { font-size: clamp(1.9rem, 2.8vw, 3rem); font-weight: 700; letter-spacing: .05em; margin:0; }
.oc-page-breadcrumb { margin-top: .75rem; }
.oc-page-breadcrumb__trail { font-size: .85rem; opacity: .85; margin:0; }

.oc-page-main { padding-bottom: 4rem; }
.oc-page-article { background:#fff; box-shadow: 0 8px 30px -10px rgba(0,0,0,.12); border-radius: 14px; padding: clamp(1.5rem,2vw,2.5rem) clamp(1.25rem,2vw,2.75rem); }
.oc-page-article__meta { display:flex; flex-wrap:wrap; gap:1rem; font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; font-weight:600; color:#6d7481; margin-bottom:1rem; }
.oc-page-article__date--modified { color: var(--oc-primary-color); }
.oc-page-article__content > *:first-child { margin-top:0; }
.oc-page-article__content h2 { margin-top:2.5rem; font-size: clamp(1.4rem,2.2vw,2rem); position:relative; padding-bottom:.6rem; }
.oc-page-article__content h2:after { content:""; position:absolute; left:0; bottom:0; width:70px; height:3px; background:linear-gradient(90deg,var(--oc-primary-color), rgba(35,59,104,.15)); border-radius:2px; }
.oc-page-article__content h3 { margin-top:2rem; font-size: clamp(1.2rem,1.9vw,1.55rem); }
.oc-page-article__content p { line-height:1.85; }
.oc-page-article__content blockquote { margin:2rem 0; padding:1.25rem 1.5rem; background:#f5f8fc; border-left:5px solid var(--oc-primary-color); font-style:italic; }
.oc-page-article__content a { text-decoration: underline; text-underline-offset:3px; }
.oc-page-article__content a:hover { text-decoration:none; }

/* CTA Section */
.oc-page-cta { background:linear-gradient(135deg,#f5f8fc,#eef2f7); padding:4rem 0 4.5rem; margin-top:2rem; position:relative; overflow:hidden; }
.oc-page-cta:before, .oc-page-cta:after { content:""; position:absolute; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(35,59,104,.12), rgba(35,59,104,0)); top:-140px; right:-120px; opacity:.6; }
.oc-page-cta:after { width:300px; height:300px; top:auto; bottom:-120px; right:auto; left:-110px; background:radial-gradient(circle at 65% 65%, rgba(35,59,104,.10), rgba(35,59,104,0)); }
.oc-page-cta__box { position:relative; max-width:840px; margin:0 auto; text-align:center; padding:2.5rem 1.5rem 2.8rem; background:#fff; border-radius:20px; box-shadow:0 18px 50px -15px rgba(0,0,0,.15); }
.oc-page-cta__title { font-size: clamp(1.6rem,2.3vw,2.2rem); font-weight:700; margin:0 0 1rem; letter-spacing:.04em; }
.oc-page-cta__text { font-size:1rem; margin:0 0 2rem; color:#4b5563; }
.oc-page-cta__actions { display:flex; justify-content:center; }
.oc-page-cta__btn { --btn-bg: var(--oc-primary-color); display:inline-flex; align-items:center; gap:.55em; padding:.95em 2.3em; background:var(--btn-bg); color:#fff; font-weight:600; border-radius:999px; position:relative; overflow:hidden; box-shadow:0 10px 25px -8px rgba(35,59,104,.55); transition:.35s ease; }
.oc-page-cta__btn:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,255,255,.25), rgba(255,255,255,0)); transform:translateX(-60%); transition:.6s ease; }
.oc-page-cta__btn:hover { transform:translateY(-3px); box-shadow:0 15px 35px -10px rgba(35,59,104,.6); }
.oc-page-cta__btn:hover:before { transform:translateX(0); }

@media (max-width: 767px) {
	.oc-page-article { padding:1.4rem 1.1rem 2rem; }
	.oc-page-hero { min-height: 180px; }
	.oc-page-cta { padding:3.2rem 0 3.6rem; }
	.oc-page-cta__box { padding:2.1rem 1.25rem 2.3rem; }
}

/* --- Single Post Redesigned Styles --- */
.oc-post-hero { position:relative; min-height:300px; display:flex; align-items:flex-end; padding:3.5rem 0 2.75rem; background:linear-gradient(120deg,rgba(35,59,104,.85),rgba(35,59,104,.55)); color:#fff; margin-bottom:2.8rem; }
.oc-post-hero.has-image { background: linear-gradient(120deg,rgba(35,59,104,.82),rgba(35,59,104,.4)), var(--oc-post-hero-image) center/cover no-repeat; }
.oc-post-hero__inner { position:relative; z-index:2; width:100%; }
.oc-post-breadcrumb { font-size:.75rem; margin:0 0 .75rem; opacity:.9; }
.oc-post-hero__category { display:inline-block; background:#fff; color:var(--oc-primary-color); font-weight:600; font-size:.7rem; letter-spacing:.08em; padding:.45em .9em; border-radius:999px; margin:0 0 1rem; text-decoration:none; }
.oc-post-hero__title { font-size:clamp(1.9rem,2.9vw,3rem); font-weight:700; line-height:1.15; margin:0 0 1.2rem; letter-spacing:.03em; }
.oc-post-hero__meta { display:flex; flex-wrap:wrap; gap:.9rem 1.3rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; font-weight:600; opacity:.9; }
.oc-post-hero__date--modified { color:#ffe28a; }

.oc-post-main { padding-bottom:4.2rem; }
.oc-post-article { background:#fff; box-shadow:0 12px 40px -18px rgba(0,0,0,.25); border-radius:18px; padding:clamp(1.6rem,2.2vw,2.8rem) clamp(1.4rem,2.2vw,2.9rem) 3rem; position:relative; }
.oc-post-article:before { content:""; position:absolute; inset:0; border-radius:18px; pointer-events:none; background:linear-gradient(135deg,rgba(35,59,104,.07),rgba(35,59,104,0)); opacity:.65; }
.oc-post-article__content > *:first-child { margin-top:0; }
.oc-post-article__content h2 { margin-top:2.8rem; font-size:clamp(1.45rem,2.15vw,2.05rem); font-weight:700; position:relative; padding-bottom:.8rem; }
.oc-post-article__content h2:after { content:""; position:absolute; left:0; bottom:0; width:90px; height:4px; background:linear-gradient(90deg,var(--oc-primary-color),rgba(35,59,104,.15)); border-radius:2px; }
.oc-post-article__content h3 { margin-top:2.2rem; font-size:clamp(1.18rem,1.7vw,1.55rem); font-weight:600; }
.oc-post-article__content p { line-height:1.9; }
.oc-post-article__content blockquote { margin:2.4rem 0; padding:1.45rem 1.8rem; background:#f5f8fc; border-left:6px solid var(--oc-primary-color); font-style:italic; position:relative; }
.oc-post-article__content a { text-decoration:underline; text-underline-offset:3px; }
.oc-post-article__content a:hover { text-decoration:none; }

/* Author */
.oc-post-author { margin-top:4rem; border-top:1px solid #e3e8ef; padding-top:3rem; }
.oc-post-author__heading { font-size:1.1rem; letter-spacing:.05em; text-transform:uppercase; font-weight:700; margin:0 0 1.4rem; color:var(--oc-primary-color); }
.oc-post-author__card { display:flex; gap:1.75rem; align-items:flex-start; text-decoration:none; background:#f9fbfd; padding:1.4rem 1.6rem 1.6rem; border-radius:16px; position:relative; overflow:hidden; transition:.3s ease; border:1px solid #e4e9f1; }
.oc-post-author__card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 15%,rgba(35,59,104,.1),rgba(35,59,104,0)); opacity:0; transition:.45s ease; }
.oc-post-author__card:hover { box-shadow:0 15px 35px -18px rgba(0,0,0,.28); transform:translateY(-4px); }
.oc-post-author__card:hover:before { opacity:1; }
.oc-post-author__avatar { flex:0 0 92px; width:92px; aspect-ratio:1/1; border-radius:50%; overflow:hidden; background:#dfe6ef; position:relative; }
.oc-post-author__avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.oc-post-author__body { flex:1; }
.oc-post-author__titles { font-weight:700; font-size:.95rem; display:flex; flex-wrap:wrap; gap:.55em .85em; margin:0 0 .65rem; align-items:center; }
.oc-post-author__titles span { display:inline-block; }
.oc-post-author__public { color:var(--oc-primary-color); }
.oc-post-author__clinic { font-size:.75rem; background:#e6ebf5; padding:.3em .6em; border-radius:6px; }
.oc-post-author__name { font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; color:#546078; }
.oc-post-author__intro { font-size:.9rem; line-height:1.6; margin:0; color:#374151; }

/* Pagination */
.oc-post-pagination { margin-top:4rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.oc-post-pagination__link { flex:1; display:flex; align-items:center; justify-content:center; gap:.6rem; padding:.95rem 1.2rem; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; text-decoration:none; color:var(--oc-primary-color); border:1px solid var(--oc-primary-color); border-radius:14px; position:relative; overflow:hidden; background:#fff; transition:.35s ease; }
.oc-post-pagination__link:hover { background:var(--oc-primary-color); color:#fff; }
.oc-post-pagination__placeholder { flex:1; }
.oc-post-back { margin-top:3.5rem; text-align:center; }
.oc-post-back__btn { --btn-bg:var(--oc-primary-color); display:inline-flex; align-items:center; gap:.55em; padding:.95em 2.3em; background:var(--btn-bg); color:#fff; font-weight:600; border-radius:999px; position:relative; overflow:hidden; text-decoration:none; box-shadow:0 10px 25px -8px rgba(35,59,104,.55); transition:.35s ease; }
.oc-post-back__btn:hover { transform:translateY(-3px); box-shadow:0 15px 35px -10px rgba(35,59,104,.6); }

/* Sidebar */
.oc-post-sidebar { margin-top:2rem; }

/* CTA reuse adjustment for posts */
.oc-post-cta { margin-top:0; }

@media (max-width: 991px) {
  .oc-post-article { padding:1.7rem 1.25rem 2.4rem; }
  .oc-post-hero { min-height:240px; padding:2.8rem 0 2.25rem; }
  .oc-post-hero__title { font-size:clamp(1.9rem,4.5vw,2.4rem); }
  .oc-post-pagination { flex-direction:column; }
  .oc-post-pagination__link, .oc-post-pagination__placeholder { width:100%; }
}
@media (max-width: 575px) {
  .oc-post-author__card { flex-direction:column; text-align:center; align-items:center; }
  .oc-post-author__avatar { margin:0 auto; }
  .oc-post-author__titles { justify-content:center; }
}
/* --- END Single Post Redesigned Styles --- */
/* --- Archive / Category / Search Redesigned Styles --- */
.oc-archive-hero { position:relative; min-height:240px; display:flex; align-items:flex-end; padding:3rem 0 2.2rem; background:linear-gradient(135deg,rgba(35,59,104,.9), rgba(35,59,104,.6)); color:#fff; margin-bottom:2.2rem; }
.oc-archive-hero__bg { position:absolute; inset:0; opacity:.25; }
.oc-archive-hero__title { font-size:clamp(1.8rem,2.6vw,2.6rem); font-weight:700; margin:0; letter-spacing:.04em; }
.oc-hero-subtitle { margin:.8rem 0 0; font-size:.85rem; letter-spacing:.05em; opacity:.85; }

.oc-archive-main { padding-bottom:4rem; }
.oc-archive-posts { margin-bottom:3rem; }
.oc-archive-grid { display:grid; gap:1.7rem 1.4rem; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.oc-archive-grid .blog-item { border:1px solid #e2e8f0; border-radius:14px; padding:0; overflow:hidden; background:#fff; box-shadow:0 6px 18px -8px rgba(0,0,0,.15); transition:.35s ease; display:flex; flex-direction:column; }
.oc-archive-grid .blog-item:hover { transform:translateY(-4px); box-shadow:0 14px 32px -10px rgba(0,0,0,.25); }
.oc-archive-grid .blog-item .blog-img { position:relative; aspect-ratio: 16 / 10; overflow:hidden; }
.oc-archive-grid .blog-item .blog-img .img-url { position:absolute; inset:0; background-size:cover; background-position:center; transition:1.8s ease transform; }
.oc-archive-grid .blog-item:hover .blog-img .img-url { transform:scale(1.08); }
.oc-archive-grid .blog-item .blog-content { padding:1rem 1.05rem .5rem; flex:1; }
.oc-archive-grid .blog-item .blog-title { font-size:1rem; line-height:1.45; font-weight:600; margin:0 0 .5rem; }
.oc-archive-grid .blog-item .blog-cate { font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; background:#e6ebf5; display:inline-block; padding:.35em .8em; border-radius:50px; font-weight:600; color:var(--oc-primary-color); }
.oc-archive-grid .blog-item .blog-date { padding:0 .95rem 1rem; font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; color:#5b6472; display:flex; justify-content:flex-end; }

.oc-archive-sidebar, .oc-post-sidebar { margin-top:1rem; }
.oc-archive-sidebar .widget, .oc-post-sidebar .widget {
	background:#fff;
	border:1px solid color-mix(in srgb, var(--oc-primary-color), #ffffff 85%);
	border-radius:14px;
	padding:1.2rem 1.2rem 1.4rem;
	box-shadow:0 4px 14px -6px rgba(0,0,0,.12);
	margin-bottom:1.6rem;
}
.oc-archive-sidebar .widget-title, .oc-post-sidebar .widget-title {
	font-size:.8rem;
	letter-spacing:.08em;
	font-weight:700;
	text-transform:uppercase;
	margin:0 0 1rem;
	color:var(--oc-primary-color);
}
.oc-archive-sidebar a, .oc-post-sidebar a { color: var(--oc-link-color); text-decoration: none; }
.oc-archive-sidebar a:hover, .oc-post-sidebar a:hover { text-decoration: underline; text-underline-offset: 2px; }

/* Unified list styles inside widgets */
.oc-archive-sidebar .widget ul,
.oc-post-sidebar .widget ul { list-style:none; padding:0; margin:0; }
.oc-archive-sidebar .oc-widget-list,
.oc-post-sidebar .oc-widget-list { list-style:none; padding:0; margin:0; }
.oc-archive-sidebar .widget ul li,
.oc-post-sidebar .widget ul li { padding:.7rem 0; border-bottom:1px solid color-mix(in srgb, var(--oc-primary-color), #ffffff 85%); }
.oc-archive-sidebar .oc-widget-list li,
.oc-post-sidebar .oc-widget-list li { padding:.7rem 0; border-bottom:1px solid color-mix(in srgb, var(--oc-primary-color), #ffffff 85%); }
.oc-archive-sidebar .widget ul li:last-child,
.oc-post-sidebar .widget ul li:last-child { border-bottom:none; }
.oc-archive-sidebar .oc-widget-list li:last-child,
.oc-post-sidebar .oc-widget-list li:last-child { border-bottom:none; }
.oc-archive-sidebar .widget ul li a,
.oc-post-sidebar .widget ul li a { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.oc-archive-sidebar .oc-widget-list li a,
.oc-post-sidebar .oc-widget-list li a { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.oc-archive-sidebar .widget .count,
.oc-post-sidebar .widget .count { color:var(--oc-primary-color); background:#e6ebf5; border-radius:999px; padding:.15em .6em; font-size:.75em; font-weight:700; }

/* Search widget */
.oc-archive-sidebar .widget_search form,
.oc-post-sidebar .widget_search form { display:flex; gap:.5rem; }
.oc-archive-sidebar .widget_search input[type="search"],
.oc-post-sidebar .widget_search input[type="search"] { flex:1; padding:.6rem .8rem; border-radius:10px; border:1px solid color-mix(in srgb, var(--oc-primary-color), #ffffff 80%); }
.oc-archive-sidebar .widget_search input[type="submit"],
.oc-post-sidebar .widget_search input[type="submit"] { padding:.6rem 1rem; border-radius:10px; border:1px solid var(--oc-primary-color); background:var(--oc-primary-color); color:#fff; font-weight:600; }
.oc-archive-sidebar .widget_search input[type="submit"]:hover,
.oc-post-sidebar .widget_search input[type="submit"]:hover { filter:brightness(1.05); }

/* Tag cloud */
.oc-archive-sidebar .tagcloud a,
.oc-post-sidebar .tagcloud a { display:inline-block; margin:.25rem .35rem .35rem 0; padding:.35em .7em; border-radius:999px; background:#f3f6fb; color:var(--oc-primary-color); border:1px solid color-mix(in srgb, var(--oc-primary-color), #ffffff 80%); font-size:.75rem !important; text-decoration:none; }
.oc-archive-sidebar .tagcloud a:hover,
.oc-post-sidebar .tagcloud a:hover { background:var(--oc-primary-color); color:#fff; }

/* Minor dividers and meta */
.oc-archive-sidebar .widget .widget-divider,
.oc-post-sidebar .widget .widget-divider { height:1px; background:color-mix(in srgb, var(--oc-primary-color), #ffffff 85%); margin: .9rem 0; }

@media (max-width: 767px) {
	.oc-archive-grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1.2rem .9rem; }
}
/* --- END Archive / Category / Search Redesigned Styles --- */